Normativa front sección Theming Tipografías Vigente Versión: 1.0.0Estado: ACTIVOEntrada en vigor desde:Obligado cumplimiento desde: Sept-2023 | Normativa front sección Theming Tipografías PRE-RELEASE Versión: 1.0.0Estado: RELEASEEntrada en vigor desde:Obligado cumplimiento desde: - |
---|
Las normas expuestas son de obligado cumplimiento. La STIC podrá estudiar los casos excepcionales los cuales serán gestionados a través de los responsables del proyecto correspondiente y autorizados por el Área de Gobernanza de la STIC. Asimismo cualquier aspecto no recogido en estas normas deberá regirse en primera instancia por las guías técnicas correspondientes al esquema nacional de seguridad y esquema nacional de interoperabilidad según correspondencia y en su defecto a los marcos normativos y de desarrollo software establecidos por la Junta de Andalucía, debiendo ser puesto de manifiesto ante la STIC.
La STIC se reserva el derecho a la modificación de la norma sin previo aviso, tras lo cual, notificará del cambio a los actores implicados para su adopción inmediata según la planificación de cada proyecto.
En el caso de que algún actor considere conveniente y/o necesario el incumplimiento de alguna de las normas y/o recomendaciones, deberá aportar previamente la correspondiente justificación fehaciente documentada de la solución alternativa propuesta, así como toda aquella documentación que le sea requerida por la STIC para proceder a su validación técnica.
Contacto Arquitectura: l-arquitectura.stic@juntadeandalucia.es
Los cambios en la normativa vendrán acompañados de un registro de las modificaciones. De este modo se podrá realizar un seguimiento y consultar su evolución. Ordenándose de mas recientes a menos recientes, prestando especial cuidado a las cabeceras de la tablas dónde se indican las fechas de entrada en vigor y versión.
Alcance | Esta definición en ningún momento le impone qué valores utilizar o cómo definir la identidad corporativa de su solución para la interfaz de usuario, sin embargo sí que define una serie de pautas mínimas a cumplir encaminadas a conseguir interfaces de usuario que puedan llegar a proporcionar experiencias de usuario ordenadas y homogéneas. |
La escala tipográfica es una combinación de estilos compatibles con el sistema tipográfico. Contiene diferentes elementos de texto reutilizables, cada una con una aplicación y un significado previstos.
La familia tipográfica define las fuentes disponibles para usar en nuestro sistema de diseño. Se ha elegido el siguiente conjunto de fuentes por defecto dentro del theme:
Este conjunto de fuentes se ha elegido porque mediante ellas y los distintos valores de sus propiedades se ofrece al desarrollador todas las opciones necesarias para que los elementos tipográficos disponibles tengan el sentido y la accesibilidad exigidas por esta normativa.
La pareja Roboto slab + Roboto ofrece unas opciones de visualización en conjunto que abarcan todas las posibilidades necesarias a nivel re elementos tipográficos así como a nivel de accesibilidad, y se le añade la fuente Montserrat para completar los elementos tipográficos de mayor impacto visual (headers), aumentando también la accesibilidad de la familia tipográfica establecida.
Una tipografía es un conjunto de letras distinguibles a través de sus diferentes propiedades. Mediante las distintas combinaciones de estas propiedades se puede obtener, con una sola tipografía, múltiples versiones de la misma que se podrá usar en nuestros desarrollos.
Las propiedades disponibles son las siguientes:
Se decide usar como unidad de medida para las propiedades de las fuentes que usen tamaños REM, ya que mediante el tamaño base para esta unidad de medida será el definido en el elemento raíz (elemento HTML - rem se define como Root EM). La ventaja de esta unidad frente a otras es por un lado que es dinámica frente al elemento raíz, no como las clásicas PX o %, que son unidades fijas, de modo que si modificamos este valor del elemento raíz todas las propiedades definidas con REM se verán afectadas. Otra ventaja se observa cuando la comparamos por ejemplo con EM, que siempre dependerá de elemento padre donde se haya definido un tamaño, por lo que el control de las distintas propiedades es más exclusivo pero también es más difícil de controlar.
Esta sección engloba todos los elementos tipográficos que se tienen disponibles para su uso dentro de nuestros desarrollos. Un elemento tipográfico no es más que una combinación de una fuente (se usará la fuente por defecto "Roboto-Slab") y sus propiedades para obtener una aplicación y significado dentro de nuestro desarrollo.
Se ha decidido usar una base para que todos los elementos tipográficos partan de ella, de modo que si se modifican cualquiera de las propiedades de esta base afectará a todos los elementos tipográficos disponibles. Los valores por defecto de las propiedades del elemento base son los siguientes:
Elemento | font-family | font-size | font-weight | line-height | letter-spacing | text-decoration | text-transform |
Base | Roboto-Slab | 1rem | --theme-typo-weight-regular (= 400) | 1rem | 0.03125rem | none | none |
Se definen los elementos tipográficos disponibles la siguiente manera:
Enlazado con los conceptos anteriores de unidades de medida y elemento base, siempre se debe exigir que los elementos tipográficos que expongamos en nuestros componentes sean fácilmente diferenciables para todo tipo de usuarios, incluyendo aquellos con dificultades de visión.
Como se puede observar en las propiedades del elemento base, el tamaño por defecto es 1rem. Esto se ha hecho para mantener la accesibilidad a nivel de configuración del navegador, de modo que el usuario puede aumentar o disminuir el tamaño base como referencia a través de la configuración del navegador.
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P1 | Theming | La fuentes disponibles dentro de la familia tipográfica disponen un abanico de posibilidades muy amplio para cubrir todas las necesidades que se tenga a este nivel dentro del desarrollo de nuestros componentes. | Solo se podrán usar las fuentes tipográficas establecidas dentro de las reglas de esta sección. | Storybook |
P1.R1 | Fuentes por defecto | De manera predeterminada tendremos disponibles las siguientes fuentes de google fonts: |
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P2 | Theming | El tamaño de la fuente se usa para realzar la importancia de los elementos tipográficos dentro de nuestros componentes. | El valor aplicado no debe variar el sentido de los componentes sobre los que se está aplicando, manteniendo siempre la accesibilidad y usabilidad de los mismos. | Storybook |
P2.R1 | Defecto | El tamaño base de la tipografía será el tamaño elegido en elemento base. Este elemento será la referencia para el resto de los tamaños aplicables, que se escalará en proporción al valor definido en el mismo, consiguiéndose un modelo jerárquico simple y aplicable en cualquier tipo de dispositivo. |
P2.R2 | Unidades permitidas | La unidad de medida a user será rem (DEF: The root element's font-size): Para garantizar la accesibilidad, tanto el tamaño base como todos los de los elementos tipográficos serán expresados en unidades rem, de modo que la base real del tamaño de la fuente se establece a través de la selección del usuario de la fuente del navegador. La aplicación de los tamaños expresados se hará siempre en base a los elementos tipográficos que los sustentan, de modo que no estarán permitidas aplicaciones de tamaños en tipografías fuera de los elementos tipográficos previstos en esta normativa. |
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P3 | Theming | El peso de la fuente realza aún más la importancia de determinados elementos tipográficos dentro de nuestros componentes. | El valor aplicado no debe variar el sentido de los componentes sobre los que se está aplicando, manteniendo siempre la accesibilidad y usabilidad de los mismos. | Storybook |
P3.R1 | Valores permitidos | Los valores permitidos para cada fuente disponible en la familia de fuentes se indican a continuación:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P4 | Theming | La altura de línea implica una correcta visualización de la fuente, y se usará aumentar el espacio entre párrafos en los textos de nuestros componentes. | Se deberá usar una altura de línea que permita la correcta visualización de la fuente, respetando la usabilidad y accesibilidad de la misma. Dicha altura siempre será proporcional al tamaño de la fuente. | Storybook |
P4.R1 | Unidades permitidas | La unidad de medida a user será rem (DEF: The root element's font-size): Para garantizar la accesibilidad, tanto el tamaño base como todos los de los elementos tipográficos serán expresados en unidades rem, de modo que la base real del tamaño de la fuente se establece a través de la selección del usuario de la fuente del navegador. La aplicación de los tamaños expresados se hará siempre en base a los elementos tipográficos que los sustentan, de modo que no estarán permitidas aplicaciones de tamaños en tipografías fuera de los elementos tipográficos previstos en esta normativa. |
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P5 | Theming | Al igual que la anterior, el espaciado de letra implica una correcta visualización de la fuente, y se usará aumentar o disminuir el espacio entre las letras en los textos de nuestros componentes. | Se deberá usar un espaciado que permita la correcta visualización de la fuente, respetando la usabilidad y accesibilidad de la misma. | Storybook |
P5.R1 | Unidades permitidas | La unidad de medida a user será rem (DEF: The root element's font-size): Para garantizar la accesibilidad, tanto el tamaño base como todos los de los elementos tipográficos serán expresados en unidades rem, de modo que la base real del tamaño de la fuente se establece a través de la selección del usuario de la fuente del navegador. La aplicación de los tamaños expresados se hará siempre en base a los elementos tipográficos que los sustentan, de modo que no estarán permitidas aplicaciones de tamaños en tipografías fuera de los elementos tipográficos previstos en esta normativa. |
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P6 | Theming | La propiedad text-decoration se usará cuando se quiere resaltar un elemento tipográfico mostrando una línea en diferentes posiciones con respecto al mismo. | Solo se podrán usar los valores establecidos dentro de las reglas de esta sección. | Storybook |
P6.R1 | Valores disponibles | Solo podrán usarse las siguientes valores para la propiedad text-decoration:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P7 | Theming | La propiedad text-tranform se usará cuando se quiere resaltar un elemento tipográfico modificando la capitalización (conversión a mayúsculas/minúsculas) del mismo. | Solo se podrán usar los valores establecidos dentro de las reglas de esta sección. | Storybook |
P7.R1 | Valores disponibles | Solo podrán usarse las siguientes valores para la propiedad text-transform:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P8 | Theming | Se usarán los distintos elementos tipográficos para representar los distintos textos de nuestra aplicación en función de la importancia que se necesite darle dentro de la misma. | Solo se podrán usar los elementos tipográficos definidos a continuación. | Storybook |
P8.R1 | Customización | Los elementos tipográficos permitidos serán los definidos a continuación, tendrán algunos aspectos customizables expresados en el subapartado Aplicación P8-R1. |
Los valores por defecto de los elementos tipográficos disponibles se muestran en la siguiente tabla:
Elemento | font-family | font-size | font-weight | line-height | letter-spacing | text-decoration | text-transform | Selector CSS |
Body | default* | 1rem | default | 1rem | 0.03125rem | default | default | body |
Headline1 | default | 6rem | --theme-typo-weight-light (= 300) | 6rem | -0.09375rem | default | default | h1 |
Headline2 | default | 3.75rem | --theme-typo-weight-light (= 300) | 3.75rem | -0.03125rem | default | default | h2 |
Headline3 | default | 3rem | default | 3rem | 0 | default | default | h3 |
Headline4 | default | 2.125rem | default | 2.125rem | 0.015625rem | default | default | h4 |
Headline5 | default | 1.5rem | default | 1.5rem | 0 | default | default | h5 |
Headline6 | default | 1.25rem | --theme-typo-weight-medium (= 500) | 1.25rem | 0.009375rem | default | default | h6 |
Subtitle | default | 1rem | default | 1rem | 0.009375rem | default | default | |
Actionable | default | 0.875rem | --theme-typo-weight-medium (= 500) | 0.875rem | 0.078125rem | default | uppercase | |
Caption | default | 0.75rem | default | 0.75rem | 0.025rem | default | default | |
Overline | default | 0.625rem | default | 0.625rem | 0.09375rem | default | uppercase |
*default implica que se toma como valor el del elemento base.
El mecanismo de aplicación de las tipografías se encuentra provisto por la definición de un conjunto de variables fijo (theming) que tendrán los valores que su diseño del SSUI haya contemplado y por otro lado la exposición por parte de su SSUI de un conjunto de variables que pueden ser sobreescritas para hacer su componente componente customizable externamente.
Para definir los valores fijos de su theme, se definirán temas desde el nivel del ámbito de aplicación hacia afuera, mientras que la definición de variables customizables se efectúa en el ámbito del componente de su SSUI, y se exponen desde dicho ámbito hacia el exterior.
A continuación se listan el conjunto de pautas y reglas a tener en cuenta para integrar su SSUI en el mecanismo de theming.
Tenga en cuenta ... | Los ítems marcados con * son obligatorios, por lo tanto su definición del theming debe contemplar valores para dicha implementación obligatoriamente. |
Se ha dividido el conjunto de variables por cada elemento tipográfico disponible, de modo que para cada uno de ellos se tendrá una variable para cada una de las propiedades definidas (se toma como ejemplo el elemento base): --theme-typography-font-family --theme-typography-font-size --theme-typography-font-weight --theme-typography-line-height --theme-typography-letter-spacing --theme-typography-text-decoration --theme-typography-text-transform De modo que, de manera general, la nomenclatura de las variables sería: --theme-typography-<elemento_tipográfico>-<propiedad> De modo que, por ejemplo, para el elemento body se definirían las siguientes variables: --theme-typography-body-font-family --theme-typography-body-font-size --theme-typography-body-font-weight --theme-typography-body-line-height --theme-typography-body-letter-spacing --theme-typography-body-text-decoration --theme-typography-body-text-transform Los elementos tipográficos disponibles son los siguientes:
| |
Por otro lado, la nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-<propiedad> Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
|
A continuación, se divide la aplicación y customización de variables por propiedad y elemento tipográfico, dejando este segundo factor como variable:
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P9 | --theme-typography-<elemento_tipográfico>-font-family | Theming | Cuando quiere modificar la fuente por defecto en el elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS font-family . | Storybook |
P9.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P9.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P9.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-font-family Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P10 | --theme-typography-<elemento_tipográfico>-font-size | Theming | Cuando quiere modificar el tamaño de la fuente por defecto en el elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS font-size . | Storybook |
P10.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P10.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P10.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-font-size Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P11 | --theme-typography-<elemento_tipográfico>-font-weight | Theming | Cuando quiere modificar el peso de la fuente por defecto en el elemento tipográfico definido. |
| Storybook |
P11.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P11.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P11.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-font-weight Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P12 | --theme-typography-<elemento_tipográfico>-line-height | Theming | Cuando quiere modificar la altura de línea de la fuente por defecto en el elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS line-height . | Storybook |
P12.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P12.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P12.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-line-height Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P13 | --theme-typography-<elemento_tipográfico>-letter-spacing | Theming | Cuando quiere modificar el espacio entre letras de la fuente por defecto en el elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS letter-spacing . | Storybook |
P13.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P13.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P13.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-letter-spacing Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P14 | --theme-typography-<elemento_tipográfico>-text-decoration | Theming | Cuando quiere añadir una línea decorativa en el texto del elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS text-decoration . | Storybook |
P14.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P14.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P14.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-text-decoration Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|
Pauta | Variable | Scope de aplicación | Cuando se utiliza | Restricciones | Verificaciones |
P15 | --theme-typography-<elemento_tipográfico>-text-transform | Theming | Cuando quiere modificar la capitalización del texto del elemento tipográfico definido. | La definición corresponderá con la nomenclatura usada en la propiedad CSS text-transform . | Storybook |
P15.R1 | Ámbitos | Los ámbitos permitidos dónde se define el valor reutilizable: Negocio y Aplicación. |
P15.R2 | Fallback | Cada ámbito puede definir un valor concreto para la variable del tema, siendo el valor de fallback en dicho ámbito el de la variable en el ámbito inmediatamente superior |
P15.R3 | Customización | La nomenclatura general de las variables en caso de customización será la siguiente: --<área_de_negocio>-<app>-theme-typography-<elemento_tipográfico>-text-transform Recordando que <área_de_negocio> se sustituirá por las siguientes letras dependiendo del ámbito de negocio en el que se encuentre:
y los elementos tipográficos disponibles son los siguientes:
|