Saltar al contenido

Primitivos

Tipografía

Los primitivos tipográficos de DesignToken101 (familias, tamaños y pesos), de dónde sale la escala de tamaños y por qué el interlineado vive en código.

Última revisión:

La tipografía tiene varias escalas a la vez: familias, tamaños, pesos e interlineados. En esta lección verás los primitivos tipográficos de DesignToken101 y de dónde sale cada escala. Cómo se combinan en estilos de texto lo verás en Estilos de texto como capa.

En esta página

Los primitivos tipográficos

EscalaTokensTipo de variable en FigmaDónde vive
Familiafont-family/sans, font-family/monoStringFigma
Tamañofont-size/01 … font-size/10NumberFigma
Pesofont-weight/400 … font-weight/700NumberFigma
Interlineadoline-height/tight, snug, normalNo se creaCódigo

Por qué cada tipo de variable es el que es lo viste en Tipos simples. Aquí nos centramos en los valores.

Familias

TokenValorUso
font-family/sansInterInterfaz y texto
font-family/monoJetBrains MonoCódigo y nombres de tokens

Las dos tienen licencia SIL Open Font License 1.1, que permite usarlas, también en proyectos comerciales (Inter, JetBrains Mono).

En Figma, la variable guarda un único nombre de fuente. Las fuentes de reserva (system-ui, sans-serif…) se añaden en el CSS.

Tamaños

Diez pasos, tomados de la escala del Simple Design System (SDS) de Figma, que va de --sds-typography-scale-01 (0.75rem) a --sds-typography-scale-10 (4.5rem) (SDS: theme.css):

Tokenpx (Figma)rem (CSS)
font-size/01120.75
font-size/02140.875
font-size/03161
font-size/04201.25
font-size/05241.5
font-size/06322
font-size/07402.5
font-size/08483
font-size/09644
font-size/10724.5

Aquí el número es un orden, no una proporción: font-size/02 no mide el doble que font-size/01. Los tamaños de letra no crecen a partir de una base fija, así que un número proporcional dejaría huecos sin sentido. El cero inicial (01, 02) mantiene el orden al ordenar los nombres como texto.

El texto de lectura mide 16 px (font-size/03). Es el tamaño que el navegador usa por defecto: con el valor por defecto, 1rem equivale a 16 px, y rem se calcula a partir del tamaño de letra del elemento raíz (MDN: font-size).

Recomendación

DesignToken101 no añade un tamaño de 18 px para el texto de lectura. Con 16 px, el texto respeta el tamaño por defecto, y quien lo necesite más grande lo amplía en su navegador.

Nota

Los títulos son más pequeños en móvil. Eso no se resuelve en los primitivos, sino con una colección semántica con dos modos, Desktop y Mobile, que apunta a pasos distintos de esta escala. Lo verás en Crear la colección Layout, en el módulo Modos y temas.

Tu escala puede ser otra

DesignToken101 usa la escala del SDS porque está probada en un sistema real y encaja con la base de 4 px del espaciado. No es la única válida: puedes usar la de otro sistema o crear la tuya.

Una forma habitual de crear una escala propia es la escala modular: partes de un tamaño base y multiplicas cada paso por la misma proporción. Typescale, una herramienta web gratuita (con funciones de pago), lo hace por ti: eliges el tamaño base y una proporción entre varias predefinidas, desde 1,067 (Minor Second) hasta 1,618 (Golden Ratio), pasando por 1,2 (Minor Third) o 1,25 (Major Third), y ves el resultado con tus fuentes. También exporta el CSS.

Nota

La escala del SDS no es modular: de 12 a 14 px el salto es de ×1,17, y de 24 a 32 px, de ×1,33. Sus pasos están elegidos uno a uno. Las dos opciones funcionan; lo importante es que el sistema tenga pocos tamaños y que cada uno tenga un uso.

Recomendación

Si generas tu escala con una herramienta, redondea cada tamaño a un número entero de píxeles y, si puedes, a un múltiplo de 2 o de 4. Así los tamaños encajan con el espaciado y se leen mejor en las tablas de tokens.

Pesos

TokenValorEn Figma, con Inter
font-weight/400400Regular
font-weight/500500Medium
font-weight/600600Semi Bold
font-weight/700700Bold

Son variables Number, por los motivos que viste en Tipos simples.

Recomendación

En el peso, el nombre del token es su valor: font-weight/600 vale 600. Es la única excepción a la regla de no poner valores en el nombre, porque el número es el nombre estándar del peso en CSS y en DTCG.

Interlineado y espaciado entre letras

TokenValorEn los estilos de texto de FigmaUso
line-height/tight1.2120 %Títulos
line-height/snug1.4140 %Interfaz y textos cortos
line-height/normal1.5150 %Texto de lectura

Los tres son tokens de código: Figma lee una variable de interlineado como píxeles, no como multiplicador (Tipos simples). En Figma, los estilos de texto escriben el porcentaje a mano.

El texto de lectura usa 1.5 por accesibilidad. El criterio 1.4.12 Text Spacing (AA) de WCAG 2.2 pide que el contenido no se rompa si la persona aumenta el interlineado hasta 1,5 veces el tamaño de la letra, junto con otros espaciados (Understanding 1.4.12). El criterio no obliga a usar 1.5: pide que nada se rompa cuando la persona cambia el espaciado. Por eso afecta al diseño de los componentes, que deben tener alturas flexibles. Cómo se comprueba lo verás en Tamaño y espaciado.

Recomendación

DesignToken101 no tiene tokens de espaciado entre letras: todos los estilos usan 0. Si los títulos grandes lo necesitan, se añadirán. Ten en cuenta que Figma también lee una variable de espaciado entre letras como píxeles, no como porcentaje (Figma: Overview of variables).

En Figma

Crea las variables tipográficas en la colección Primitives (Figma: Create and manage variables):

VariablesTipoScopeAl publicar
font-family/*StringFont familyOcultas
font-size/*NumberFont sizeOcultas
font-weight/*NumberFont weightOcultas

Añade a cada una su code syntax Web, por ejemplo var(--t101-font-size-03). No crees variables de interlineado.

Recomendación

Los primitivos tipográficos se ocultan al publicar porque nadie los aplica a mano: los usan los estilos de texto (módulo Relaciones) y los tamaños por contexto (módulo Modos y temas). Quien usa la biblioteca elige un estilo de texto, no un tamaño suelto.

Nota

En la exportación de Figma, el scope del peso aparece como FONT_STYLE (comprobado en la exportación de esta web). Sirve para saber qué buscar si lees el JSON.

Lo que te llevas

  • La tipografía son varias escalas a la vez: familias, tamaños, pesos e interlineados.
  • El texto de lectura usa 16 px, el tamaño por defecto del navegador.
  • Los primitivos tipográficos se ocultan: al diseñar se aplican estilos de texto.

Fuentes