System · Tokens

La tabla viva

Espejo tipado de globals.css (fuente: src/lib/tokens.ts). Cada swatch se renderiza con su token real — si un valor cambia en el CSS sin pasar por aquí, esta página lo delata. Sistema lockeado por color.mdx (decision-log #44).

Color

Mundo papel — interior / superficie de trabajo (default)

Papel--color-paper · #FCFBF9Fondo de lectura / lienzo del interior
Nácar--color-nacre · #F7F6F3Card elevada (method cards, fichas)
Tinta--color-ink · #26231FTexto primario / dato de prueba
Tinta-sub--color-ink-sub · #5B5751Texto secundario, captions
Tinta-eyebrow--color-ink-eyebrow · #706B65Eyebrow/microcopy sobre papel (remediado AA)
Tinta-faint--color-ink-faint · #807C76Detalle no-textual
Perla--color-pearl · #E1DFDBHairline / borde / divisor

Mundo grafito — portada / umbral / chrome

Grafito--color-cover-background · #0E1012Campo de portada / contraportada / chrome
Panel--color-cover-raised · #2F3439Plano alzado (spread de postura)
Bruma--color-cover-foreground · #F1F4F6Texto claro sobre grafito
Luz--color-cover-foreground-strong · #F9FAFCWordmark / titular sobre grafito
Bruma-sub--color-cover-muted · #C1C5C9Secundario sobre grafito
Bruma-quieta--color-cover-eyebrow · #83868CEyebrow SOLO sobre Grafito base (5.22:1)
Bruma-quieta-panel--color-cover-eyebrow-panel · #9B9FA3Eyebrow sobre Panel (4.72:1 AA)
Hairline-grafito--color-cover-hairline · #2B2E32Hairline / borde no-textual sobre Grafito (chrome) — decorativo, exento de 1.4.11

Acento bronce — funcional, invariante

Bronce (display)--color-bronze · #927656Tick de verificado, estados grandes/UI (≥3:1)
Bronce-texto--color-bronze-text · #7F6343Links y estados en texto de cuerpo (5.39:1 AA)
Arena--color-sand · #D6C4A9Detalle cálido (foil, micro-detalle)

Matriz WCAG — pares medidos

Algoritmo WCAG 2.1 sobre los HEX exactos — no estimaciones. Piso AA 4.5:1 (texto normal) / 3:1 (grande y UI). Las filas que fallan en normal son, por regla, colores de display/UI — nunca de cuerpo.

TextoFondoRatioNormalGrande / UI
TintaPapel15.12:1AAAAAA
TintaNácar14.47:1AAAAAA
TintaPerla11.75:1AAAAAA
TintaArena9.18:1AAAAAA
Tinta-subPapel6.94:1AAAAA
Tinta-eyebrowPapel5.10:1AAAAA
Bronce-textoPapel5.39:1AAAAA
Bronce (display)Papel4.10:1— (no texto)AA
Bronce (display)Nácar3.93:1— (no texto)AA
BrumaGrafito17.26:1AAAAAA
LuzGrafito18.25:1AAAAAA
BrumaPanel11.38:1AAAAAA
LuzPanel12.03:1AAAAAA
Bruma-subPanel7.24:1AAAAAA
Bruma-subGrafito10.98:1AAAAAA
Bronce-textoNácar5.16:1AAAAA
Bruma-quietaGrafito5.22:1AAAAA
Bruma-quieta-panelPanel4.72:1AAAAA
GrafitoPapel18.43:1AAAAAA

Tipografía

Aa

GT Sectra Display / Cormorant Garamond

Display / editorial

Aa

Söhne / Inter

Texto / UI

Aa

Söhne Mono / JetBrains Mono

Dato / prueba (dossier)

Committed retail sin licenciar — la compra es acción de Rodrigo; el sitio corre los fallbacks open. Nada renderizado en fallbacks es production-ready (typography.mdx).

TokenValorUso
--text-xs0.75rem (12px)Eyebrow, microcopy, dato
--text-sm0.875rem (14px)Caption, tabla, nota legal
--text-base1rem (16px)Body / lectura larga
--text-lg1.125rem (18px)Body destacado, intro
--text-xl1.375rem (22px)H4 / subtítulo
--text-2xl1.75rem (28px)H3
--text-3xl2.25rem (36px)H2 (tracking −0.015em)
--text-4xl3rem (48px)H1 (tracking −0.02em)
--text-5xl4rem (64px)Hero tipográfico (el wordmark es vector)

Espacio · Radios · Tracking

Espacio (base 4)

--space-10.25rem
--space-20.5rem
--space-30.75rem
--space-41rem
--space-51.5rem
--space-62rem
--space-73rem
--space-84rem
--space-96rem

Radios

--radius-sm · 2px
--radius-md · 4px
--radius-lg · 6px
--radius-card · 4px

2–6px: la marca es sobria, no burbujeante.

Tracking

--tracking-micro · 0.16emEyebrow / microcopy UPPERCASE
--tracking-data · 0.02emDATA/proof — mono, lote/dosis/COA
--tracking-wordmark · 0.04emLockups de exploración (el wordmark es vector)

Motion

TokenValorUso
--duration-instant90msPlano de evidencia — la prueba APARECE (bloque de dato completo)
--duration-fast120msMicro-feedback: hover, focus, link
--duration-base200msTransición de UI: acordeón, tooltip, method card
--duration-slow320msEntrada de sección, route transition, travesía de tapa
--ease-out-quartcubic-bezier(0.25, 1, 0.5, 1)Superficie default
--ease-out-quintcubic-bezier(0.22, 1, 0.36, 1)Superficie de mayor recorrido / travesías
--ease-proofcubic-bezier(0.4, 0, 0.2, 1)SOLO plano de evidencia — simétrica, sin overshoot

La prueba APARECE (instant + ease-proof, sin overshoot) y es visible desde el primer paint — progressive enhancement, nunca opacity:0 dependiente de JS (motion.mdx, Principio 5).