Color
Estable11 rampas de 12 pasos importadas de Figma, capa semántica y verificación de contraste en vivo.
El color de Polen son 11 rampas de 12 pasos más un trío Base, importadas
tal cual de la colección Primitives del archivo 🌻 FDS Design Tokens. Cada
variable trae su valor de light y dark desde diseño: acá no hay ningún paso
interpolado ni inventado.
Las rampas siguen la convención de Radix Colors,
que le da un significado fijo a cada paso: 1–2 fondos de app, 3–5 fondos
de componentes, 6–8 bordes, 9–10 fondos sólidos y 11–12 texto. Por eso
Primary/9 y Danger/9 se pueden intercambiar sin rehacer el diseño — ocupan el
mismo lugar en su escala.
Primary es el verde de la marca, anclado en Primary/9 = #00922e, el único
paso que vale igual en light y en dark. Grey es la rampa neutra del sistema
—un gris frío— y de ella sale todo el chrome del sitio vía la capa semántica.
Verificador de contraste
Antes de elegir un par de colores, comprobá que se puedan leer. Elegí texto y fondo de cualquier rampa y validá WCAG en vivo. Regla práctica: texto normal necesita AA (4.5:1); texto grande o UI, AA Large (3:1).
Escalas
Mostrando el tema light — cambialo con el toggle del header y las 11 rampas se recalculan.
Marca
El verde de Polen. Acciones, enlaces y acentos.
Primary
Verde de marca. Acciones, enlaces y acentos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Neutral
El chrome del producto: fondos, bordes y texto.
Grey
Fondos, bordes y texto. El chrome del producto.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Semánticas
Feedback de estado. Su significado es fijo.
Success
Confirmación, estados válidos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Yellow
Advertencia, atención requerida.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Danger
Error, destrucción, bloqueo.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Extendidas
Paleta de apoyo para categorías, datos y material de marca.
Orange
Categorías y visualización de datos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Green
Categorías y visualización de datos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Pink
Categorías y visualización de datos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Blue
Categorías y visualización de datos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Violet
Categorías y visualización de datos.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Neon
Acentos de alta energía. Usar con moderación.
Pasá el cursor por un paso para ver su valor — click para copiarlo.
Roles semánticos
Nunca uses una primitiva directo en un componente: usá el rol. El rol resuelve
a la primitiva correcta en cada tema, así que un componente escrito contra
--bg y --fg funciona en light y dark sin una sola condicional.
| Rol | Apunta a | Estado |
|---|---|---|
--bg | grey-1 | Oficial |
--bg-subtle | grey-2 | Oficial |
--surface | grey-3 | Oficial |
--border | grey-6 | Oficial |
--border-strong | grey-8 | Oficial |
--fg | grey-12 | Oficial |
--fg-muted | grey-11 | Oficial |
--fg-subtle | grey-10 | Oficial |
--primary | primary-9 | Oficial |
--primary-hover | primary-10 | Oficial |
--primary-active | primary-11 | Oficial |
--primary-faint | primary-2 | Oficial |
--primary-subtle | primary-3 | Oficial |
--primary-subtle-hover | primary-4 | Oficial |
--primary-subtle-active | primary-5 | Oficial |
--primary-border | primary-6 | Oficial |
--primary-fg | base-on-primary | Oficial |
--focus-ring | primary-8 | Oficial |
--success | success-9 | Oficial |
--success-faint | success-2 | Oficial |
--success-subtle | success-3 | Oficial |
--success-border | success-6 | Oficial |
--warning | yellow-9 | Oficial |
--warning-faint | yellow-2 | Oficial |
--warning-subtle | yellow-3 | Oficial |
--warning-border | yellow-6 | Oficial |
--danger | danger-9 | Oficial |
--danger-faint | danger-2 | Oficial |
--danger-subtle | danger-3 | Oficial |
--danger-border | danger-6 | Oficial |
Convención de estados
Los estados interactivos siguen la progresión de la escala:
- Sólido: fondo
9, hover10, pressed11 - Tonal: fondo
3, hover4, pressed5, borde6 - Focus ring:
Primary/8
Cuándo usar cada familia
- Marca (Primary) — acciones primarias, enlaces, selección, acentos.
- Neutral (Grey, Base) — todo lo estructural: superficies, bordes, tipografía.
- Semánticas (Success, Yellow, Danger) — solo feedback de estado. Su significado es fijo: no uses Danger porque queda lindo en rojo.
- Extendidas (Orange, Green, Pink, Blue, Violet, Neon) — categorías, visualización de datos, ilustración y material de marca. No las metas en controles de UI: para eso están las semánticas.