Saltar al contenido

Primitivos

Espaciado

La escala de espaciado de DesignToken101, con base de 4 px, de dónde sale, cómo encajar en ella los valores de tu inventario y por qué los espaciados negativos viven en código.

Última revisión:

El espaciado se aplica al padding, al gap y a la separación entre bloques. En esta lección verás la escala de DesignToken101, de dónde sale y cómo encajar en ella tus propios valores.

En esta página

La escala de DesignToken101

Trece pasos. El número del nombre es proporcional al valor: 100 = 4 px.

Tokenpx (Figma)rem (CSS)
space/000
space/05020.125
space/10040.25
space/15060.375
space/20080.5
space/300120.75
space/400161
space/600241.5
space/800322
space/1200483
space/1600644
space/2400966
space/400016010

Fíjate en cómo crecen los saltos: de 2 en 2 px al principio y de 32, 48 o 64 px al final. Entre dos elementos pequeños, 2 px se notan; entre dos secciones de una página, no. Por eso la escala tiene más pasos abajo que arriba.

Figma guarda el valor en píxeles y el CSS lo escribe en rem. Por qué, lo viste en Tipos simples.

De dónde sale la base de 4 px

La escala es la del Simple Design System (SDS) de Figma, paso por paso: --sds-size-space-100 mide 0.25rem (4 px) y --sds-size-space-4000, 10rem (160 px) (SDS: theme.css).

Coincide con Tailwind CSS. Su variable --spacing vale 0.25rem por defecto, y las utilidades de espaciado la multiplican: p-4 es calc(var(--spacing) * 4), 16 px (Tailwind CSS: Theme variables, Padding). Así, space/400 mide lo mismo que p-4.

Otros sistemas usan otra base. Atlassian parte de 8 px y su número es un porcentaje de esa base: space.100 mide 8 px y space.200, 16 px (Atlassian: Spacing).

Recomendación

DesignToken101 usa la base de 4 px del SDS porque permite pasos finos en los componentes (2, 4, 6 px) y coincide con la de Tailwind CSS. Si tu equipo ya trabaja con una base de 8 px, mantenla: lo importante es que el número del nombre sea proporcional al valor.

Encajar tu inventario en la escala

Toma los espaciados de tu inventario del módulo 1, ordenados de menor a mayor, y lleva cada uno al paso más cercano:

Valor del inventarioVecesPaso de la escalaQué cambia
15 px3space/400 (16 px)+1 px, imperceptible
16 px22space/400 (16 px)Nada
20 px4space/400 o space/600Hay que decidir
40 px1space/1200 (48 px)Revisar el diseño
  • Los casi duplicados se funden en un paso. Es el caso de 15 y 16 px.
  • Un valor entre dos pasos obliga a decidir. Mira dónde aparece y qué paso tienen sus vecinos.
  • Un valor que aparece una vez rara vez justifica un paso nuevo. Es más probable que sea un error del diseño.

Recomendación

Añade un paso a la escala cuando un valor se repite en varios componentes y ningún paso existente funciona. Si añades uno, sigue la regla del número: 20 px sería space/500.

Espaciado negativo

Un espaciado negativo superpone elementos: dos avatares que se solapan, por ejemplo. Los sistemas lo nombran en un nivel propio: --sds-size-space-negative-100 en el SDS (SDS: theme.css) y space.negative.100 en Atlassian (Atlassian: Spacing).

En CSS, la superposición se hace con márgenes negativos, que son válidos (MDN: margin). El gap y el padding no admiten negativos (MDN: gap, MDN: padding).

Figma acepta variables con valores negativos (Figma: Overview of variables). Lo probamos en el archivo de DesignToken101:

  • Una variable de −8 en el gap de un auto layout funciona: los elementos se solapan.
  • La misma variable se puede aplicar al padding, y Figma acepta un padding de −8.
  • En la API de plugins hay un único scope, GAP, para gap y padding. No se puede limitar la variable a un uso.

Aviso

En Figma, un espaciado negativo se aplica al gap o al padding. En CSS, ninguna de las dos propiedades lo admite: hay que traducirlo a un margen negativo. Un token negativo en Figma invita a dibujar algo que el código no puede copiar tal cual.

Recomendación

En DesignToken101 los espaciados negativos (space/negative/100, 200, 300, 400 y 600) son tokens de código. No existen en Figma. Es el mismo criterio que viste en Una sola fuente de verdad.

En Figma

En la colección Primitives, crea una variable Number por paso (Figma: Create and manage variables):

  1. Nómbrala con la ruta completa, por ejemplo space/400. Figma crea el grupo space al escribir la barra.
  2. Escribe el valor en píxeles, sin unidad: 16.
  3. En Edit variable, abre el scope y deja marcado el espaciado de auto layout. La ayuda de Figma lo lista como Gap y Padding; en la exportación aparece como un único scope, GAP.
  4. Añade el code syntax Web: var(--t101-space-400).
  5. No la ocultes al publicar.

Recomendación

Los espaciados se publican porque el diseñador los aplica directamente: DesignToken101 no tiene tokens semánticos de espaciado. Los colores, en cambio, se ocultan, porque al diseñar se usan sus semánticos. El criterio completo está en La colección completa.

Lo que te llevas

  • El espaciado es una escala de base 4 px en la que el número es proporcional al valor: space/400 mide 16 px.
  • Cada valor del inventario se lleva al paso más cercano; un paso nuevo se añade solo si se repite.
  • El espaciado negativo vive en código, porque ni el gap ni el padding de CSS lo admiten.

Fuentes