Sistema de estilos

El sistema de estilos permite a un autor de plantillas definir clases de estilos en la política de contenido de un componente, de modo que un autor de contenido puede seleccionarlos al editar el componente en una página. Estos estilos pueden ser variaciones visuales alternativas de un componente, lo que hace que el componente sea más flexible.

Esto elimina la necesidad de desarrollar un componente personalizado para cada estilo o de personalizar el cuadro de diálogo del componente para permitir dicha funcionalidad de estilo. De esta manera, más componentes reutilizables se pueden adaptar de forma rápida y sencilla a las necesidades de los autores de contenido sin ningún desarrollo final de AEM.

Caso práctico

Los autores de plantillas no solo necesitan la posibilidad de configurar la forma en que los componentes funcionan para los autores de contenido, sino también de configurar diversas variaciones visuales alternativas de un componente.

Del mismo modo, los autores de contenido no solo necesitan la posibilidad de estructurar y organizar su contenido, sino también de seleccionar cómo se presenta visualmente.

El sistema de estilos proporciona una solución unificada para los requisitos del autor de la plantilla y del autor del contenido:

  • Los autores de plantillas pueden definir clases de estilos en la política de contenido de los componentes.
  • Los autores de contenido pueden seleccionar estas clases en una lista desplegable al editar el componente en una página para aplicar los estilos correspondientes.

A continuación, la clase de estilos se inserta en el elemento envolvente de la decoración del componente, de modo que el desarrollador de componentes no se tenga que preocupar de administrar los estilos más allá de proporcionar sus reglas CSS.

Información general

El uso del sistema de estilos suele tener el siguiente formato.

  1. El diseñador web crea diferentes variaciones visuales de un componente.

  2. Se proporciona al desarrollador de HTML la salida HTML de los componentes y las variaciones visuales deseadas que se van a implementar.

  3. El desarrollador de HTML define las clases CSS que corresponden a cada variación visual y que deben insertarse en el elemento que ajusta los componentes.

  4. El desarrollador de HTML implementa el código CSS correspondiente (y opcionalmente el código JS) para cada una de las variaciones visuales para que su aspecto se corresponda a como están definidas.

  5. El desarrollador de AEM coloca el CSS proporcionado (y el JS opcional) en una biblioteca de cliente y la implementa.

  6. El desarrollador de AEM o el creador de plantillas configuran las plantillas de página, editan la política de cada componente diseñado, añaden las clases CSS definidas, asignan nombres de usuario sencillos a cada estilo e indican los estilos que se pueden combinar.

  7. El autor de páginas de AEM puede seleccionar los estilos diseñados en el editor de página a través del menú Estilo de la barra de herramientas del componente.

Tenga en cuenta que, en realidad, solo los tres últimos pasos se llevan a cabo en AEM. Esto significa que todo el desarrollo de los CSS y JavaScript necesarios se puede realizar sin AEM.

Para implementar realmente los estilos solo hace falta la implementación en AEM y la selección en los componentes de las plantillas que desee.

El siguiente diagrama ilustra la arquitectura del sistema de estilos.

aem-style-system

Uso

Para demostrar la función, utilizaremos como ejemplo la implementación por WKNDdel componente de título del componente principal.

The following sections As a Content Author and As a Template Author describe how to test the functionality of the Style System using the Style System of WKND.

Si desea utilizar el sistema de estilos para sus propios componentes, haga lo siguiente:

  1. Instale el CSS como bibliotecas de cliente, tal como se ha indicado en la sección Información general.
  2. Configure las clases CSS que desea poner a disposición de los autores de contenido, tal como se describe en la sección Como autor de plantillas.
  3. A continuación, los autores de contenido pueden utilizar los estilos, tal como se describe en la sección Como autor de contenido.

Como autor de contenido

  1. Después de instalar el proyecto WKND, vaya a la página de inicio maestra de idioma inglés de WKND en http://<host>:<port>/sites.html/content/wknd/language-masters/en y edite la página.

  2. Seleccione un componente Título más abajo en la página

    Sistema de estilos para el autor

  3. Toque o haga clic en el botón Estilos de la barra de herramientas del componente Lista para abrir el menú Estilo y cambiar el aspecto del componente.

    Selección de estilos

    Nota

    En este ejemplo, los estilos Colores (Negro, Blanco y Gris) se excluyen mutuamente, mientras que las opciones Estilo (Subrayado, Alinear a la derecha, y Miniespaciado ​**​**​**​**) se pueden combinar. Esto se puede configurar en la plantilla como el autor de la misma.

Como autor de plantillas

  1. While editing WKND's English language master home page at http://<host>:<port>/sites.html/content/wknd/language-masters/en, edit the template of the page via Page Information -> Edit Template.

    Editar plantilla

  2. Edit the policy of the Title component by tapping or clicking the Policy button of the component.

    Editar directiva

  3. En la pestaña Estilos de las propiedades, puede ver cómo se han configurado los estilos.

    Editar propiedades

    • Nombre del grupo: los estilos se pueden agrupar en el menú Estilo que el autor de contenido verá al configurar el estilo del componente.
    • Los estilos se pueden combinar: permite que se seleccionen al mismo tiempo diversos estilos dentro de ese grupo.
    • Nombre del estilo: la descripción del estilo que se mostrará al autor de contenido al configurar el estilo del componente.
    • Clases CSS: el nombre real de la clase CSS asociada al estilo.

    Utilice los controles de arrastre para ordenar los grupos y los estilos dentro de los grupos. Utilice los iconos Añadir o Eliminar para añadir o quitar grupos y estilos dentro de los grupos.

PRECAUCIÓN

The CSS classes (as well as any necessary Javascript) configured as style properties of a component's policy must be deployed as Client Libraries in order to work.

Configuración

Los componentes principales versión 2 y posteriores están totalmente habilitados para aprovechar el sistema de estilos y no requieren ninguna configuración adicional.

Los pasos siguientes solo son necesarios para habilitar el sistema de estilos para sus propios componentes personalizados o para habilitar la ficha Estilos opcional en el cuadro de diálogo Editar.

Activar la ficha Estilo en el cuadro de diálogo Diseño

Para que un componente funcione con el sistema de estilos de AEM y muestre la ficha de estilo en el cuadro de diálogo de diseño, el desarrollador de componentes debe incluir la ficha de estilo con la siguiente configuración en el componente:

  • path = "/mnt/overlay/cq/gui/components/authoring/dialog/style/tab_design/styletab"
  • sling:resourceType = "granite/ui/components/coral/foundation/include"

Con el componente configurado, AEM insertará automáticamente en el elemento de decoración que AEM ajusta automáticamente en cada componente editable los estilos que los autores de páginas hayan configurado. El componente en sí no tiene que hacer nada más para que esto ocurra.

Activar la ficha Estilos en el cuadro de diálogo Editar

A partir de la versión 6.5.3.0 de AEM, ya está disponible una ficha Estilos opcional en el cuadro de diálogo Editar. A diferencia de la ficha Cuadro de diálogo de diseño, la ficha del cuadro de diálogo Editar no es esencial para que funcione el sistema de estilos, pero es una interfaz alternativa opcional para que un autor de contenido defina estilos.

La ficha Editar cuadro de diálogo se puede incluir de forma similar a la ficha Diseño:

  • path = "/mnt/overlay/cq/gui/components/authoring/dialog/style/tab_edit/styletab"
  • sling:resourceType = "granite/ui/components/coral/foundation/include"
Nota

La ficha Estilos del cuadro de diálogo Editar no está activada de forma predeterminada.

Estilos con nombres de elemento

Un desarrollador también puede configurar una lista de nombres de elemento permitidos para los estilos del componente con la propiedad matriz de cadenas cq:styleElements. A continuación, en la pestaña Estilos de la política, dentro del cuadro de diálogo de diseño, el creador de plantillas también puede elegir un nombre de elemento para cada estilo. Esto definirá el nombre de elemento del elemento envolvente.

Esta propiedad se establece en el nodo cq:Component. Por ejemplo:

  • /apps/<yoursite>/components/content/list@cq:styleElements=[div,section,span]
PRECAUCIÓN

Evite definir los nombres de elemento para los estilos que se pueden combinar. Cuando se definen los nombres de varios elementos, el orden de prioridad es:

  1. HTL tiene prioridad sobre todo: data-sly-resource="${'path/to/resource' @ decorationTagName='span'}.
  2. A continuación, entre diversos estilos activos, se toma el primer estilo de la lista de estilos configurados en la política del componente.
  3. Por último, el valor cq:htmlTag/cq:tagName del componente se considera como un valor alternativo.

Esta capacidad para definir nombres de estilo resulta útil para los componentes muy genéricos, como el contenedor de diseño o el componente Fragmento de contenido, a fin de complementar su significado.

Por ejemplo, permite que un contenedor de diseños reciba valores semánticos como <main>, <aside>, <nav>, etc.

En esta página