Mercurial
diff design_system/COLORS.md @ 254:2b6e732087ff
[ui] Add complete native component catalog
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 04 Aug 2026 15:12:09 -0700 |
| parents | |
| children | 60a876c4587a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/design_system/COLORS.md Tue Aug 04 15:12:09 2026 -0700 @@ -0,0 +1,86 @@ +# Zenbu UI color + +The Zenbu palette is warm, quiet, and material-oriented. Paper neutrals carry +most surfaces; restrained natural colors provide emphasis without making the +interface feel synthetic or overly saturated. + +## Primitive ramps + +Each family has `50`, `100`, `200`, `300`, `400`, `500`, `600`, `700`, `800`, +`900`, and `950` steps: + +- `--zen-color-neutral-*`: warm paper, linen, charcoal, and ink; +- `--zen-color-red-*`: brick and iron oxide; +- `--zen-color-orange-*`: persimmon; +- `--zen-color-amber-*`: straw and ochre; +- `--zen-color-green-*`: matcha and moss; +- `--zen-color-teal-*`: aged copper and patina; +- `--zen-color-blue-*`: faded workwear and indigo; +- `--zen-color-violet-*`: muted plum; +- `--zen-color-rose-*`: clay and dusty rose; +- `--zen-color-brown-*`: kraft paper and wood. + +Use a primitive when an application needs a precise ramp step. Primitive values +do not change between light and dark themes. + +## Material aliases + +Material aliases make one-off composition readable: + +```css +var(--zen-color-paper) +var(--zen-color-washi) +var(--zen-color-linen) +var(--zen-color-sumi) +var(--zen-color-brick) +var(--zen-color-persimmon) +var(--zen-color-ochre) +var(--zen-color-moss) +var(--zen-color-patina) +var(--zen-color-indigo) +var(--zen-color-plum) +var(--zen-color-clay) +var(--zen-color-wood) +``` + +## Semantic aliases + +Components should prefer semantic tokens because these adapt to the current +theme: + +- surfaces: `canvas`, `surface`, `surface-raised`, `surface-muted`, + `surface-sunken`, and `surface-overlay`; +- text: `text`, `text-muted`, `text-subtle`, and `text-inverse`; +- borders: `border`, `border-muted`, and `border-strong`; +- action: `accent`, `accent-hover`, `accent-muted`, `focus`, `disabled`, and + `selection`; +- status: `info`, `success`, `warning`, `danger`, their `on-*` foregrounds, + and their `*-muted` surfaces. + +All names use the `--zen-color-` prefix. + +Component and catalog styles may not contain raw color literals. Add or reuse a +token in `tokens.css`, then reference it with `var()`. The Bazel target +`//design_system/test:design_system_policy_test` rejects hex, functional, or +named colors anywhere else in the design-system source. + +## Data colors + +`--zen-color-data-1` through `--zen-color-data-10` form a categorical palette. +They deliberately vary in both hue and lightness. Keep adjacent series in +numerical order and provide labels or patterns; color alone must never carry +meaning. + +## Usage + +```css +.repository-summary { + border: 1px solid var(--zen-color-border-muted); + background: var(--zen-color-surface-muted); + color: var(--zen-color-text); +} + +.repository-summary strong { + color: var(--zen-color-indigo); +} +```