DIANA

Diseño Aplicaciones Navarra

Tipografía

La tipografía del sistema se apoya en tokens de tamaño (--gn-text-h*, --gn-text-p-*) definidos en tokens.css, y en dos variables de interlineado definidas en main.css:

  • --gn-line-height-ui: 1.2 para interfaz compacta (encabezados, botones, etiquetas)
  • --gn-line-height-text: 1.4 para contenido corrido (párrafos, listas, prose)

Escala de encabezados (HTML real)

H1 — Encabezado principal

H2 — Título de sección

H3 — Subtítulo

H4 — Encabezado de bloque

H5 — Encabezado menor

H0 no tiene etiqueta HTML nativa. Cuando se necesite como specimen visual o hero puntual, se aplica manualmente con token:

H0

Escala de párrafo

Texto de párrafo XL

Texto de párrafo LG

Texto de párrafo base

Texto de párrafo SM

Texto de párrafo XS

Referencia de valores

Los tokens de encabezado tienen dos valores: escritorio (≥ 1280 px) y mobile (< 1280 px). Los tokens de párrafo no cambian con el punto de ruptura.

Token Desktop Mobile
--gn-text-h0 80 px 48 px
--gn-text-h1 48 px 36 px
--gn-text-h2 32 px 24 px
--gn-text-h3 24 px 20 px
--gn-text-h4 20 px 18 px
--gn-text-h5 18 px 16 px
--gn-text-p-xl 24 px
--gn-text-p-lg 20 px
--gn-text-p-base 18 px
--gn-text-p-sm 16 px
--gn-text-p-xs 12 px

Responsivo

Los tokens de encabezado se reducen automáticamente en pantallas menores de 1280px desde tokens.css. No hace falta añadir media queries por componente para estos tamaños.

Uso manual de tokens (casos específicos)

Fuera de contenido editorial (por ejemplo, componentes de interfaz), usa tokens manualmente en clases de componente.

/* Ejemplo: texto de componente */
.mi-componente__titulo {
  font-size: var(--gn-text-h3);
  font-weight: 700;
  line-height: var(--gn-line-height-ui);
}

.mi-componente__descripcion {
  font-size: var(--gn-text-p-sm);
  line-height: var(--gn-line-height-text);
}

Enlaces externos (con icono)

Enlace externo XS Enlace externo MD Enlace externo base Enlace externo LG

Contenido editorial con .prose

Aplica .prose al contenedor de páginas de texto corrido (artículos, páginas legales, documentación, contenido de CMS o Markdown). La clase aplica estilos tipográficos scopeados a los elementos HTML semánticos descendientes sin contaminar el resto del proyecto.

Elementos cubiertos

| Elemento | Notas | |---|---| | h1h5 | Escala tipográfica con tokens --gn-text-h* | | h6 | Sin token propio; usa tamaño de h5 con color secundario | | p | Párrafo base con --gn-text-p-base y --gn-line-height-text | | a | Enlace con color, subrayado y foco accesible | | strong, b | Negrita (peso 700) | | em, i | Cursiva | | small | Texto auxiliar en --gn-text-p-xs con color secundario | | sup, sub | Sin romper el interlineado (line-height: 0) | | abbr[title] | Subrayado punteado accesible con cursor: help | | mark | Resaltado editorial claro (no alerta) | | ul, ol, li | Listas con sangría y espaciado coherentes | | hr | Separador con --gn-color-border-neutral-light | | blockquote:not([class]) | Borde lateral izquierdo, color secundario | | code:not([class]) | Código inline con fondo y borde sutil | | pre:not([class]) | Bloque de código con overflow horizontal | | img | Responsive (max-width: 100%; height: auto) | | figure:not([class]) | Margen vertical coherente | | figcaption | Tamaño y color de texto secundario | | table:not([class]) | Ancho completo, border-collapse, sin comportamiento JS | | dl:not([class]), dt, dd | Lista de definiciones editorial básica |

Patrón :not([class])

Para elementos que pueden tener una versión componente del sistema (table, dl, blockquote, figure, code, pre), .prose aplica estilos solo cuando no tienen clase propia. Así, si se usa el componente .gn-table dentro de .prose, sus estilos prevalecen sin conflicto.

/* Solo se estila si no tiene clase */
.prose table:not([class]) { ... }
.prose dl:not([class]) { ... }
.prose code:not([class]) { ... }

Uso básico

Título principal

Párrafo con énfasis, cursiva, enlace y texto auxiliar. El GN y términos resaltados con sup1 y sub2.

Listas

  • Elemento de lista
  • Otro elemento

Cita

La accesibilidad es un requisito, no una opción.

Código

Usa .prose en el contenedor.

article.prose { color: var(--gn-color-text-default); }

Tabla básica

Columna AColumna B
Dato 1Dato 2

Definiciones

Token
Variable de decisión de diseño.

Convivencia con componentes del sistema

Si dentro de .prose se necesita una tabla con variantes, ordenación o comportamiento interactivo, usa el componente .gn-table en lugar del HTML nativo. Los estilos de .prose no afectan a elementos con clase propia del sistema.