Interfaz de usuario

La personalización de la interfaz de usuario del widget de Naiz Fit SizeForm se realiza mediante el fichero especificado en la configuración del dominio "custom/html" (de ahora en adelante lo llamaremos "plantilla" o "plantilla.hbs").

Sistema de plantillas

El formulario emplea Handlebars como sistema de plantillas para renderizar el widget de Naiz Fit SizeForm.

Se añaden como herramientas a este sistema de plantillas el módulo handlebars-layouts que nos permite personalizar las plantilla por defecto actuando sobre elementos concretos de la misma.

Datos de entrada de la plantilla

En el momento del renderizado la plantilla recibe los siguientes parametros de entrada, lo cuales podemos emplear como expresiones de Handlebars

Nombre Descripción
lang Objeto compuesto por las cadenas de texto necesarios por el formulario en el idioma requerido mediante la función sobreescribible "extractLanguage"
  • es - Español
  • de - Alemán
  • it - Italiano
  • fr - Francés
  • en - Inglés
sizechart Objeto con los datos de la guía de tallas del producto
sizechart.dimensions Listado de las dimensiones 2D y 3D del producto
sizechart.sizes Objeto con la información de medidas 2D y 3D del producto
sizechart.svg SVG de la prenda
data.assets.svg.body SVG del cuerpo
consumerData Datos del usuario
years Listado de años para el selector de edad
isMobile Ayudante para detectar si se está visualizando la página en un dispositivo móvil. {{#if isMobile}} Es un dispositivo móvil {{/if}}
colors Objeto con la definición de colores
product Objeto con los datos generales del producto

Estos parametros son completados o sobreescritos mediante el método getCustomTemplateData()

Se puede ver un ejemplo de datos de entrada completo aquí

Lanzador del formulario

El botón que lanza el formulario del widget puede ser personlizado extendiendo el ayudante de handlebars "Opener", mediante el bloque "opener".

<!-- Contenido por defecto del bloque "opener" dentro del ayudante "Opener" -->
<div>{{lang.find_your_size}}</div>

Si quisieramos reemplazar este contenido por uno propio, podríamos intrducir el siguiente código en nuestra plantilla:

<!-- plantilla.hbs -->
{{#extend "Opener"}}
  {{#content "opener"}}
    <button class="miclase">Encuentra tu talla</button>
  {{/content}}
{{/extend}}

Mediante "#extend" indicamos que estamos tomando como referencia el ayudante "Opener". Mediante "#content" indicamos que queremos sustituir el contenido del bloque "opener"

Formulario

El formulario del widget puede ser personalizado extendiendo el ayudante de handlebars "SizeForm". Este ayudante expone diferentes bloques que permiten personalizar cada una de las partes del formulario de forma independiente:

style: Permite personalizar el estilo CSS del formulario.
form: Ventana del Sizeform.
└─form-body: Cuerpo del Sizeform
  ├─image-wrapper: Apartado de imagenes
  ├─divider: Divisor entre apartados
  └─form-wrapper: Apartado de información
    ├─form-data: Formulario de datos
    │ ├─form-data-title: Título del formulario
    │ ├─form-data-body: Cuerpo del formulario
    │ └─form-data-footer: Pie del formulario
    ├─form-sizechart: Guía de tallas
    │ ├─form-sizechart-title: Título de la guía de tallas
    │ ├─form-sizechart-body: Cuerpo de la guía de tallas
    │ │ ├─form-sizechart-selector: Selector de cuerpo-prenda
    │ │ ├─form-sizechart-charts: Tablas de medidas
    │ │ ├─form-sizechart-actions: Botones inferiores
    │ ├─form-sizechart-footer: Pie de la guía de tallas
    ├─form-recommendation-loading: Mensaje de carga
    └─form-recommendation: Recomendación de talla
      ├─form-recommendation-title: Título de la recomendación
      ├─form-recommendation-body: Cuerpo de la recomendación
      │ ├─form-recommendation-options: Selector de datos cuerpo-prenda
      │ ├─form-recommendation-actions: Botones inferiores
      └─form-recommendation-footer: Pie de la recomendación 

Cada uno de estos bloques se puede personalizar de dos maneras:

  • Por defecto reemplazaremos todo el contenido del bloque especificado mediante #content
  • Podemos añadir contenido al final del bloque añadiendo el atributo mode=append al #content
# plantilla.hbs
# En este ejemplo añadimos una clase a la hoja de estilos del formulario
# y reemplazamos el contenido del título del formulario para añadirle esa nueva clase.
# Usamos los datos de 'lang' pra el contenido del título.
{{#extend "SizeForm"}}
  {{#content "style" mode="append"}}
    .my-title {
      color: red;
      font-size: 1.2em;
    }
  {{/content}}
  {{#content "form-data-title"}}
    <div class="naiz-form-title my-title">{{{lang.create_profile}}}</div>
  {{/content}}  
{{/extend}}

En este enlace puede encontrar la plantilla por defecto del formulario para que pueda ser usada como implementación de referencia así como para poder visualizar los contenidos por defecto de cada uno de los bloques.