Sección 03 / Color

Paleta
cebada.

Dos capas: seis familias primitivas y siete recetas cerradas que las superficies invocan por nombre. Esta página también consume el sistema directamente — los swatches y las recetas de abajo renderean con los mismos tokens que corren en los decks y las webs.

color.surface · color.text · color.accent · color.emphasis

Charcoal
manda,
Patagonia
acentúa.

El color no se elige: se invoca por su rol. Un layout pide color.surface.canvas, no “charcoal 100”. Cambiar la marca mañana toca un mapping, no 28 archivos.

01 · Arquitectura

Dos capas,
una dirección.

Primitivos abajo, recetas arriba. Una superficie declara data-recipe="canvas-quiet" y consume cinco variables — --recipe-surface, --recipe-ink, --recipe-em, --recipe-accent, --recipe-warn. Los layouts nunca tocan un primitivo. Una surface, una receta — el resto deriva.

01
Capa cruda

Primitives

Los valores hex sin significado, agrupados por familia: charcoal, ivory, patagonia, lemon, red, plasma. Son el inventario, no la combinación.

--chimi-primitives-color-charcoal-100
--chimi-primitives-color-patagonia-base
--chimi-primitives-color-lemon-base
02
Capa de recetas

Recipes

Siete combinaciones cerradas (canvas-quiet, canvas-signal, paper-warm, paper-cool, energy-loud, cool-fresh, critical). Cada una empaqueta cinco roles — surface, ink, em, accent, warn — en una sola unidad invocable por nombre.

--recipe-surface
--recipe-ink
--recipe-em
--recipe-accent
--recipe-warn
02 · Primitivos

Seis familias,
nueve colores.

No es una escala continua 50→900. Cada familia tiene los tintes que el producto realmente usa — ni uno más. Charcoal necesita tres (canvas, raised, muted). Patagonia necesita dos (sobre claro, sobre oscuro). Ivory, lemon, red y plasma viven con uno solo.

Charcoal
Neutro oscuro · 3 tintes
100 · canvas
#1C1C1C
90 · raised
#2A2A2A
70 · muted text
#3D3D3D
Ivory
Neutro claro · 3 tintes
base · paper, ink-on-canvas
#F5EFE0
cream · light canvas
#F7F4EE
raised · light surface raised
#EDE9DC
Patagonia
Acento frío · 2 tintes
base · accent
#02B5B9
soft · sobre dark
#7DD8D2
Lemon
Acento energía · 1 tinte
base · único
#F9D71C
Red
Acento emphasis · 1 tinte
base · único
#A64132
Plasma
Acento crítico · 1 tinte
base · único
#FF2079

Nota: el brand guide original listaba también slate, green, gold, y variantes ivory.light, *.deep. Nada de eso se usa en slides, así que quedó fuera del DS. Si aparecen, entran al JSON primero — ver design-system/docs/gaps.md.

03 · Roles semánticos

El color
tiene trabajo.

Cada rol resuelve a un primitivo, pero las slides no lo saben. Si mañana color.surface.canvas deja de ser charcoal para ser navy, los 28 layouts heredan el cambio sin edición.

Surface

Fondos. Todas las slides declaran una surface; el resto del color del layout se elige en función de ella.

color.surface.canvas
primitives.color.charcoal.100 · default
color.surface.canvas-raised
primitives.color.charcoal.90 · big-stat, kpi
color.surface.paper
primitives.color.ivory.base · quote default
color.surface.card
charcoal.100 (dark) → ivory.cream (light) · kpi cards, raised blocks
color.surface.accent-cool
primitives.color.patagonia.base · divider
color.surface.accent-energy
primitives.color.lemon.base · big-concept
color.surface.accent-critical
primitives.color.plasma.base · disclaimer

Text

El color del texto default depende de la superficie. text.on-canvas es ivory; text.on-paper es charcoal; y así.

color.text.on-canvas
primitives.color.ivory.base
color.text.display
ivory (dark) → charcoal (light) · titulares, hero text
color.text.on-paper
primitives.color.charcoal.100
color.text.on-paper-muted
primitives.color.charcoal.70
color.text.on-accent-cool
primitives.color.charcoal.100
color.text.on-accent-energy
primitives.color.charcoal.100
color.text.on-accent-critical
primitives.color.ivory.base

Accent & emphasis

Accents son colores decorativos (bullets, borders, markers). Emphasis es el color del <em> italic editorial. Agrupados por color final — cada primitivo cubre varios roles según la superficie.

Patagonia
Accent cool · 2 roles
  • color.accent.primarybullets, kpi borders, rules
  • color.marker.rulecitation border, section divider
Patagonia soft
Accent cool sobre dark · 1 rol
  • color.accent.primary-softeyebrow / citas sobre canvas
Lemon
Accent energy · 5 roles
  • color.accent.energystat %, highlight, caret
  • color.marker.caretstreaming-text caret
  • color.marker.highlightmarcador fluorescente en quotes
  • color.emphasis.on-canvasem sobre charcoal
Red
Accent emphasis · 3 roles
  • color.accent.emphasisdestaque sobre light/energy
  • color.emphasis.on-paperem sobre ivory
  • color.emphasis.on-accent-energyem sobre lemon
Ivory
Emphasis sobre cool · 1 rol
  • color.emphasis.on-accent-coolem sobre patagonia
Plasma
Accent critical · 1 rol
  • color.accent.criticalvoz plasma sobre canvas oscuro
Charcoal
Em sobre critical · 1 rol
  • color.emphasis.on-accent-criticalem sobre plasma

Variantes — cuándo , cuándo no

Los nombres del sistema (raised, muted, mid) cuentan qué es cada variante, no cuándo usarla. Acá están las reglas prácticas, con las superficies reales lado a lado.

color.surface.canvas-raised

Canvas raised

Un paso más claro que el canvas default, sin romper la unidad cromática. Existe para diferenciar un bloque del fondo sin saltar a otro color.

  • Big-stat, KPI grid, cards dentro de un deck oscuro.
  • Cuando dos bloques conviven y hace falta señalar jerarquía sin acento.
  • Como canvas default — es un beat, no un estado.
  • Encima de otra surface.* decorativa (cool / warm / energy).
color.surface.canvas
Canvas
Default del deck. El 70% del contenido vive acá.
color.surface.canvas-raised
Raised
Mismo tono, un paso arriba. Se lee como “bloque”, no como cambio de escena.
color.text.on-canvas-muted · on-paper-muted

Texto muted

Es el color para información secundaria sobre la misma superficie: fuentes, timestamps, labels auxiliares, caption de una imagen.

  • Metadata y secondary info que debe estar presente pero no competir con el título.
  • Captions debajo de stats, stat-sub después de un número grande.
  • Body text principal — on-paper-muted cansa si se lo usa para un párrafo entero.
  • Como “body gris” default porque queda estético; pensalo en jerarquía.
text.on-paper
Título
Cuerpo con peso normal — lo que el lector lee primero.
caption · text.on-paper-muted
text.on-canvas
Título
Cuerpo default sobre charcoal.
caption · on-canvas-muted (opacity)
color.accent.primary · primary-soft

Accent soft

La versión claro de patagonia. Vive sobre superficies oscuras cuando el accent primario —que asume fondo claro— quedaría débil.

  • Eyebrows, sub-text y citas sobre surface.canvas (ver editorial-dark).
  • Cuando hace falta un patagonia legible sin competir con el texto principal.
  • Como accent en fondos claros — primary-soft desaparece ahí; usá primary.
  • Como bullet marker o border — queda fantasmal; el primary tiene el peso.
accent.primary · sobre paper
Patagonia
eyebrow default
En superficies claras el primary lee con fuerza.
accent.primary-soft · sobre canvas
Patagonia
eyebrow sobre dark
Sobre charcoal, la versión soft respira mejor.
primitives.color.charcoal.70 · .50

Tintes primitivos

Los tintes crudos existen para que el sistema los componga en roles. Desde un layout no se usan nunca — si los ves, es porque no hay un rol que los nombre.

  • Internos al sistema: on-paper-muted resuelve a charcoal.70, canvas-raised a charcoal.90.
  • En una demo que sobre la paleta (esta misma página).
  • Desde un .css de layout — si necesitás ese tono, el rol que falta se agrega al semantic JSON.
  • Como “workaround” para un matiz que el sistema no expone: pedilo formalmente primero.
primitives.color.charcoal.100
100
Base · resuelve a surface.canvas.
primitives.color.charcoal.90
90
Raised · resuelve a surface.canvas-raised.
04 · Recipes · cuándo usar cada una

Siete recetas,
siete trabajos.

Una superficie declara una receta. Cada una tiene un mood, un trabajo, y vecinos con los que no convive. La elección no es estética: la receta nace del rol que esa pieza cumple en el deck o en la web.

01 · canvas-quiet
La receta que no se nota.
Capítulo 03 · Transición
El mate no
se sirve solo.

Ivory sobre charcoal con lemon como em editorial. El default del deck — la receta que sostiene el 70% del contenido.

  • Body extenso, blogs, articles, docs.
  • Slides que abren un deck denso. Nav y header de chimi.pro.
  • Marketing pieces (usar energy-loud).
  • Stats heroicas (usar canvas-signal).
surface charcoal · ink ivory · em lemon · accent patagonia
02 · canvas-signal
Datos. Numerales. Métrica.
Impacto · Q1 2026
92%

de los deploys llegan a producción sin rollback después de adoptar trunk-based. Thunder en lemon como protagonista, eyebrow en patagonia.

  • Slides big-stat, KPI grid, stat cards, dashboards.
  • Thunder en lemon como protagonista — números, no ideas.
  • Body extenso (la lemon cansa).
  • Charlas/talks de ideas (es para datos).
misma paleta que canvas-quiet · em lemon protagonista
03 · paper-warm
Calidez sin saturación.
Ensayo · Refactor
El arte
de escribir
menos.

Ivory como lienzo, charcoal como texto, red como em editorial. La única receta diurna — se usa como beat, no como estado.

  • Quote default, prompt-warm, agenda.
  • Tickets, recibos, flyers print.
  • UI de producto (ivory agota a 60min).
  • Junto a paper-cool en la misma slide (chocan los em).
surface ivory · ink charcoal · em red · accent charcoal (slide) / patagonia (web)
04 · paper-cool
Reflexivo, con peso.
Testimonio · Equipo
Trabajamos
mejor en público.

Gemela fría de paper-warm. Mismo lienzo, distinto registro: el em pasa de red (acalorado) a patagonia (declarativo).

  • Quote-testimonial técnico, no emocional.
  • Resource-cards-team, FAQ informativo.
  • Quote default cálido (esa sigue paper-warm).
  • Junto a paper-warm en la misma slide.
surface ivory · ink charcoal · em patagonia · accent charcoal (slide) / patagonia (web)
05 · energy-loud
El poster. Una por página.
Big-concept · Una idea
Hablamos de esto.

Lemon como fondo, charcoal como texto, red como em. La receta más alta en energía — la regla del 1 es estricta: una sola por página.

  • Posters, IG stat-posts, slides cover de techconf.
  • Big-concept default — una idea, tres palabras.
  • Body de blog, nada de lectura larga.
  • Junto a otra energy-loud o critical (vibran).
surface lemon · ink charcoal · em red · regla del 1: solo una por página
06 · cool-fresh
Cambio. Señal. Divider.
Divider · Sección 04
04de 07

Capítulo en curso · accent en lemon, em en ivory porque la cool ya es cromática y no admite un segundo color saturado.

  • Slide-divider entre bloques temáticos.
  • Banners de feature, open betas, lanzamientos.
  • Lectura larga (la cromaticidad agota).
  • Junto a paper-warm contiguo (chocan en saturación).
surface patagonia · ink charcoal · em ivory · accent lemon
07 · critical · bicara
Crisis. Denuncia. Disclaimer.
◆ Importante
Esto no reemplaza
el asesoramiento legal.

Plasma como fondo, ivory como texto, em en charcoal. Para alertas de scope, disclaimers legales, “esto duele” — máximo 2 por deck. Si aparece más, deja de funcionar como alerta.

  • Modo bg — disclaimer slides (1–2 por deck max), banner “esto duele”.
  • Modo fg — clase critical-fg-stat / quote / marker overridea em a plasma sobre otra receta.
  • Marketing (usar energy-loud).
  • Slides contiguas a energy-loud o cool-fresh (saturaciones que pelean).
surface plasma · ink ivory · em charcoal · max 2 por deck
05 · Light theme

La misma receta,
otra luz.

En light theme las recetas canvas-* flipean a paper: surface pasa de charcoal a ivory.cream, ink de ivory a charcoal, em de lemon a red. Las recetas paper-* ya viven en ivory — no cambian. Es el mismo contrato visto desde el otro lado del día.

canvas-quiet · dark
Cebada caliente.

El default del deck. Charcoal de fondo, ivory para el texto, lemon para el em editorial.

surface charcoal.100 · ink ivory.base · em lemon
canvas-quiet · light flip
Cebada fría.

En modo claro, el canvas se vuelve ivory.cream para evitar el sesgo amarillo en lecturas largas. El em pasa a red.

surface ivory.cream · ink charcoal.100 · em red

Implementación en web.css — un solo bloque :root[data-theme="light"] remapea --recipe-surface y --recipe-ink a las variantes de paper-warm. Las hairlines y muted bajan también su alpha porque charcoal sobre ivory lee más pesado que ivory sobre charcoal al mismo porcentaje.

06 · Webs vs slides

Mismo lenguaje,
distinto público.

En slides, las recetas paper-* usan charcoal como accent — la lectura editorial larga no quiere un CTA cromático. En webs, esa misma receta necesita un color de marca para que nav, links y botones se separen del body. Por eso en web --recipe-accent se remapea a patagonia solo sobre paper, dejando em/warn/ink/surface intactos.

paper-warm · slide
Quote default

En el deck, el accent colapsa en charcoal. La lectura es lo que manda — no hace falta gritar “acá hacé click” en una slide.

Siguiente
accent charcoal
paper-warm · web
Blog post

En la web, el accent vuelve a patagonia para que nav, links y botones tengan presencia. Body y links de párrafo siguen en charcoal con underline (AA).

Leer artículo
accent patagonia (override en web.css)
07 · Reglas de uso

Lo que el
sistema espera.

Como en tipografía: el contrato que mantiene la coherencia. Romperlas es legítimo, pero con razón.

Invocar por rol

Siempre color.surface.canvas, nunca primitives.color.charcoal.100. El primitivo es inventario; el rol es intención.

Si no hay rol, agregalo al semantic JSON.

NO

Inventar tintes

No hay patagonia 300 ni lemon 700. Los que existen son los que el producto usa — ni uno más.

Así queda si inventás tintes
patagonia.soft ✓ existe
patagonia.300 ✗ inventado
patagonia.base ✓ existe

El tinte del medio se parece — pero nadie lo revisó, nadie lo validó, nadie garantiza su contraste.

Emphasis cambia con la superficie

El color del <em> lo decide el surface, no un default global. emphasis.on-canvas es lemon; on-paper es red.

Mirar la receta antes de elegir el em.

NO

Lemon + Patagonia como protagonistas

Los dos acentos principales peleando por atención se cancelan. Uno guía, el otro acompaña.

Así queda con dos acentos peleando
DEPLOY
REVIEW

Ninguna de las dos palabras gana: cada mitad pelea con la otra por la misma cantidad de atención.

Charcoal es el default

El deck vive mayoritariamente sobre surface.canvas. Light y accents son beats puntuales.

Cambiar a paper/lemon/patagonia es una decisión, no un rellleno.

NO

Contrast ratios por debajo de AA

Texto cuerpo ≥ 4.5:1, display grande ≥ 3:1. La receta lo garantiza; no re-tematizar afuera del sistema.

Así queda con bajo contraste
Texto gris sobre charcoal raised. Técnicamente existe, visualmente desaparece en el proyector. charcoal.70 × charcoal.90 · 1.4 : 1 · fail

Lo que se lee acá, desde la fila 12 del auditorio es invisible.