Mercurial
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 253:fdf3816959cb | 254:2b6e732087ff |
|---|---|
| 1 # Zenbu UI color | |
| 2 | |
| 3 The Zenbu palette is warm, quiet, and material-oriented. Paper neutrals carry | |
| 4 most surfaces; restrained natural colors provide emphasis without making the | |
| 5 interface feel synthetic or overly saturated. | |
| 6 | |
| 7 ## Primitive ramps | |
| 8 | |
| 9 Each family has `50`, `100`, `200`, `300`, `400`, `500`, `600`, `700`, `800`, | |
| 10 `900`, and `950` steps: | |
| 11 | |
| 12 - `--zen-color-neutral-*`: warm paper, linen, charcoal, and ink; | |
| 13 - `--zen-color-red-*`: brick and iron oxide; | |
| 14 - `--zen-color-orange-*`: persimmon; | |
| 15 - `--zen-color-amber-*`: straw and ochre; | |
| 16 - `--zen-color-green-*`: matcha and moss; | |
| 17 - `--zen-color-teal-*`: aged copper and patina; | |
| 18 - `--zen-color-blue-*`: faded workwear and indigo; | |
| 19 - `--zen-color-violet-*`: muted plum; | |
| 20 - `--zen-color-rose-*`: clay and dusty rose; | |
| 21 - `--zen-color-brown-*`: kraft paper and wood. | |
| 22 | |
| 23 Use a primitive when an application needs a precise ramp step. Primitive values | |
| 24 do not change between light and dark themes. | |
| 25 | |
| 26 ## Material aliases | |
| 27 | |
| 28 Material aliases make one-off composition readable: | |
| 29 | |
| 30 ```css | |
| 31 var(--zen-color-paper) | |
| 32 var(--zen-color-washi) | |
| 33 var(--zen-color-linen) | |
| 34 var(--zen-color-sumi) | |
| 35 var(--zen-color-brick) | |
| 36 var(--zen-color-persimmon) | |
| 37 var(--zen-color-ochre) | |
| 38 var(--zen-color-moss) | |
| 39 var(--zen-color-patina) | |
| 40 var(--zen-color-indigo) | |
| 41 var(--zen-color-plum) | |
| 42 var(--zen-color-clay) | |
| 43 var(--zen-color-wood) | |
| 44 ``` | |
| 45 | |
| 46 ## Semantic aliases | |
| 47 | |
| 48 Components should prefer semantic tokens because these adapt to the current | |
| 49 theme: | |
| 50 | |
| 51 - surfaces: `canvas`, `surface`, `surface-raised`, `surface-muted`, | |
| 52 `surface-sunken`, and `surface-overlay`; | |
| 53 - text: `text`, `text-muted`, `text-subtle`, and `text-inverse`; | |
| 54 - borders: `border`, `border-muted`, and `border-strong`; | |
| 55 - action: `accent`, `accent-hover`, `accent-muted`, `focus`, `disabled`, and | |
| 56 `selection`; | |
| 57 - status: `info`, `success`, `warning`, `danger`, their `on-*` foregrounds, | |
| 58 and their `*-muted` surfaces. | |
| 59 | |
| 60 All names use the `--zen-color-` prefix. | |
| 61 | |
| 62 Component and catalog styles may not contain raw color literals. Add or reuse a | |
| 63 token in `tokens.css`, then reference it with `var()`. The Bazel target | |
| 64 `//design_system/test:design_system_policy_test` rejects hex, functional, or | |
| 65 named colors anywhere else in the design-system source. | |
| 66 | |
| 67 ## Data colors | |
| 68 | |
| 69 `--zen-color-data-1` through `--zen-color-data-10` form a categorical palette. | |
| 70 They deliberately vary in both hue and lightness. Keep adjacent series in | |
| 71 numerical order and provide labels or patterns; color alone must never carry | |
| 72 meaning. | |
| 73 | |
| 74 ## Usage | |
| 75 | |
| 76 ```css | |
| 77 .repository-summary { | |
| 78 border: 1px solid var(--zen-color-border-muted); | |
| 79 background: var(--zen-color-surface-muted); | |
| 80 color: var(--zen-color-text); | |
| 81 } | |
| 82 | |
| 83 .repository-summary strong { | |
| 84 color: var(--zen-color-indigo); | |
| 85 } | |
| 86 ``` |