Upload COLOR-SYSTEM.md with huggingface_hub
Browse files- COLOR-SYSTEM.md +137 -0
COLOR-SYSTEM.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Verdigris & Ember color system
|
| 2 |
+
|
| 3 |
+
Revision 2.0 supersedes the prior Earthy Oasis / Nocturnal Oasis mappings.
|
| 4 |
+
Reference mood: deep ink-teal foundations, oxidized verdigris interaction,
|
| 5 |
+
metered brass warmth, kiln-ember danger, and cool porcelain neutrals.
|
| 6 |
+
|
| 7 |
+
This is a purely chromatic migration. Layout, spacing, typography, structure,
|
| 8 |
+
copy, imagery, motion, interaction patterns, dimensions, breakpoints, and
|
| 9 |
+
stacking order remain unchanged.
|
| 10 |
+
|
| 11 |
+
## 1. Primitive palette
|
| 12 |
+
|
| 13 |
+
The complete 9-step scales live in `src/index.css`. Existing compatibility
|
| 14 |
+
aliases are retained so component APIs and utility names do not change.
|
| 15 |
+
|
| 16 |
+
| Family | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 |
|
| 17 |
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
| 18 |
+
| Deep Ink | `#060a0c` | `#0c1518` | `#142126` | `#1e3036` | `#2b434b` | `#47646b` | `#6f8a8e` | `#9db4b4` | `#cfdedd` |
|
| 19 |
+
| Verdigris | `#05130e` | `#0c2a20` | `#124433` | `#1a5f47` | `#257d68` | `#3f9c84` | `#6fbca4` | `#a2d8c5` | `#d4efe4` |
|
| 20 |
+
| Molten Brass | `#171104` | `#322609` | `#523f10` | `#745a19` | `#a8842c` | `#c2a04a` | `#d8bc72` | `#ecd8a4` | `#f8eecb` |
|
| 21 |
+
| Porcelain | `#1e231e` | `#3d463d` | `#616c61` | `#8a968a` | `#b4bfae` | `#c9d2c3` | `#dde3d8` | `#ecf0e8` | `#f6f8f2` |
|
| 22 |
+
| Kiln Ember | `#200e07` | `#421d0f` | `#662e18` | `#8b4123` | `#b25731` | `#cb7550` | `#dd9a78` | `#ecc2ab` | `#f8e5d9` |
|
| 23 |
+
|
| 24 |
+
## 2. Semantic aliases
|
| 25 |
+
|
| 26 |
+
| Token | Source | Usage |
|
| 27 |
+
| --- | --- | --- |
|
| 28 |
+
| `--bg-canvas` / `--nt-bg-root` | Deep Ink 200 `#0c1518` | Page canvas |
|
| 29 |
+
| `--bg-surface` / `--nt-bg-surface` | Deep Ink 300 `#142126` | Cards and panels |
|
| 30 |
+
| `--bg-sunken` / `--nt-bg-sunken` | Deep Ink 200 `#0c1518` | Inputs and nested surfaces |
|
| 31 |
+
| `--bg-deep` / `--nt-bg-app` | Deep Ink 100 `#060a0c` | Headers, footers, modal chrome |
|
| 32 |
+
| `--text-primary` / `--nt-text-primary` | Porcelain 800 `#ecf0e8` | Headings |
|
| 33 |
+
| `--text-secondary` / `--nt-text-body` | Porcelain 600 `#c9d2c3` | Body text |
|
| 34 |
+
| `--text-muted` / `--nt-text-muted` | Porcelain 400 `#8a968a` | Captions and placeholders |
|
| 35 |
+
| `--accent-primary` / `--nt-accent` | Verdigris 500 `#257d68` | Buttons, links, active states |
|
| 36 |
+
| `--accent-hover` / `--nt-accent-hover` | Verdigris 600 `#3f9c84` | Hover states |
|
| 37 |
+
| `--accent-warm` | Molten Brass 500 `#a8842c` | Warm CTA, warning, labels |
|
| 38 |
+
| `--border-default` / `--nt-border-default` | Deep Ink 600 `#47646b` | Standard borders |
|
| 39 |
+
| `--border-focus` / `--nt-focus-ring` | Verdigris 500 `#257d68` | Focus and selection |
|
| 40 |
+
| `--shadow-color` / `--nt-shadow-color` | `rgba(6,10,12,.50)` | Elevation shadows |
|
| 41 |
+
|
| 42 |
+
## 3. Component application matrix
|
| 43 |
+
|
| 44 |
+
| Component | Surface | Text / icons | States |
|
| 45 |
+
| --- | --- | --- | --- |
|
| 46 |
+
| Header / top bar | Deep Ink 100β200 | Porcelain 500 / 400 | Verdigris active, Ember alert |
|
| 47 |
+
| Navigation | Deep Ink 100β200 | Porcelain 500 / 400 | Verdigris hover and active |
|
| 48 |
+
| Page lead-ins | Deep Ink 200 β 100 | Porcelain 800 / 600 | Verdigris and Brass accents |
|
| 49 |
+
| Primary buttons | Verdigris 500 | Porcelain 900 | Verdigris 600 hover, 400 active |
|
| 50 |
+
| Secondary buttons | Deep Ink 400 | Porcelain 600 | Deep Ink 300 hover |
|
| 51 |
+
| Inputs / forms | Deep Ink 200 | Porcelain 800 / 600 | Verdigris focus, Ember error |
|
| 52 |
+
| Cards / panels | Deep Ink 300 | Porcelain 800 / 600 | Verdigris highlights, Ink borders |
|
| 53 |
+
| Tables | Deep Ink 300β400 | Porcelain 800 / 600 | Verdigris selection, Ink dividers |
|
| 54 |
+
| Tabs | Transparent / Deep Ink | Porcelain 400 / Verdigris active | Verdigris indicator |
|
| 55 |
+
| Badges | Ink / Verdigris low tints | Porcelain / Verdigris 700 | Brass warning, Ember danger |
|
| 56 |
+
| Alerts / toasts | Ink / warm tint | Porcelain / Porcelain 600 | Teal info/success, Brass warning, Ember error |
|
| 57 |
+
| Modals / drawers | Deep Ink 100β200 | Porcelain 800 / 600 | Ink overlay, Verdigris actions |
|
| 58 |
+
| Charts | Deep Ink surfaces | Verdigris, Brass, Ember | Same palette in legends/tooltips |
|
| 59 |
+
| Scrollbar | Deep Ink 200 track | Deep Ink 600 thumb | Ink 700 hover, Verdigris active |
|
| 60 |
+
| Footer | Not present in the app | β | β |
|
| 61 |
+
|
| 62 |
+
## 4. Old β new mapping
|
| 63 |
+
|
| 64 |
+
| Previous role | Verdigris & Ember token | Value |
|
| 65 |
+
| --- | --- | --- |
|
| 66 |
+
| Nocturnal page canvas | `--nt-bg-root` | `#0c1518` |
|
| 67 |
+
| Nocturnal app shell | `--nt-bg-app` | `#060a0c` |
|
| 68 |
+
| Nocturnal panel surface | `--nt-bg-surface` | `#142126` |
|
| 69 |
+
| Nocturnal raised surface | `--nt-bg-surface-raised` | `#1e3036` |
|
| 70 |
+
| Nocturnal primary text | `--nt-text-primary` | `#ecf0e8` |
|
| 71 |
+
| Nocturnal body text | `--nt-text-body` | `#c9d2c3` |
|
| 72 |
+
| Nocturnal muted text | `--nt-text-muted` | `#8a968a` |
|
| 73 |
+
| Nocturnal teal links | `--nt-text-link` | `#3f9c84` |
|
| 74 |
+
| Nocturnal teal primary action | `--nt-btn-primary-bg` | `#257d68` |
|
| 75 |
+
| Nocturnal success | `--nt-success` | `#3f9c84` |
|
| 76 |
+
| Nocturnal warning | `--nt-warning` | `#c2a04a` |
|
| 77 |
+
| Nocturnal danger | `--nt-danger` | `#cb7550` |
|
| 78 |
+
| Nocturnal shadows | `--nt-shadow-color` | `#060a0c` |
|
| 79 |
+
| Chart accent | chart tokens | Verdigris / Brass / Ember |
|
| 80 |
+
| Pure black | Deep Ink 100 | `#060a0c` |
|
| 81 |
+
| Pure white | Porcelain 900 | `#f6f8f2` |
|
| 82 |
+
|
| 83 |
+
Warning and error remain distinct: warning uses Molten Brass; danger/error uses
|
| 84 |
+
Kiln Ember. No red, purple, or leftover blue hues remain.
|
| 85 |
+
|
| 86 |
+
## 5. Contrast adjustments
|
| 87 |
+
|
| 88 |
+
The specified pairs were checked against actual luminance values:
|
| 89 |
+
|
| 90 |
+
- Porcelain 600 on Deep Ink 200: **11.92:1** (AAA body text).
|
| 91 |
+
- Porcelain 800 on Deep Ink 200: **16.1:1** (AAA headings).
|
| 92 |
+
- Verdigris 600 on Deep Ink 200: **5.57:1** (AA links/status text).
|
| 93 |
+
- Porcelain 400 on Deep Ink 300: **5.34:1** (AA muted text).
|
| 94 |
+
- Porcelain 900 on Verdigris 500: **4.66:1** (AA button labels).
|
| 95 |
+
- Deep Ink 100 on Molten Brass 500: **5.68:1** (AA warm button labels).
|
| 96 |
+
- Ember 600 on Deep Ink 200: **5.48:1** (AA error text).
|
| 97 |
+
- Brass 600 on Deep Ink 200: **7.45:1** (AAA labels/overlines).
|
| 98 |
+
|
| 99 |
+
Muted and body text use the supplied lighter Porcelain stops rather than the
|
| 100 |
+
darker neutral stops where required for AA. Link text uses Verdigris 600;
|
| 101 |
+
Verdigris 500 remains the interactive fill and focus color.
|
| 102 |
+
|
| 103 |
+
## 6. Files touched and known leftovers
|
| 104 |
+
|
| 105 |
+
Color-bearing files:
|
| 106 |
+
|
| 107 |
+
- `src/index.css` β primitive scales, semantic aliases, utility remapping,
|
| 108 |
+
focus, selection, caret, disabled states, and scrollbar colors
|
| 109 |
+
- `src/App.tsx` β semantic toast colors
|
| 110 |
+
- `src/components/AnimatedLogo.tsx` β SVG gradients
|
| 111 |
+
- `src/components/GeometricBackground.tsx` β grid and mask colors
|
| 112 |
+
- `src/components/GlassCard.tsx`, `Sidebar.tsx`, `StatCard.tsx`,
|
| 113 |
+
`StatusBadge.tsx`, `TopBar.tsx` β surfaces, borders, states, shadows
|
| 114 |
+
- `src/pages/Analytics.tsx`, `CampaignDetail.tsx`, `Campaigns.tsx`,
|
| 115 |
+
`Dashboard.tsx`, `Leads.tsx` β charts, gradients, controls, glows
|
| 116 |
+
- `COLOR-SYSTEM.md` β this mapping record
|
| 117 |
+
|
| 118 |
+
No raster assets, separate design-token file, Tailwind config, SCSS theme, or
|
| 119 |
+
light-mode theme is present. Existing utility names remain in place and are
|
| 120 |
+
remapped through `@theme`. The unused `GlassCard` file retains its pre-existing
|
| 121 |
+
missing non-color `../lib/utils` import and was not changed under this protocol.
|
| 122 |
+
|
| 123 |
+
## 7. Maintainer rules
|
| 124 |
+
|
| 125 |
+
- Add future colors only through `--nt-*` or the protocol aliases.
|
| 126 |
+
- Use only the five supplied Verdigris & Ember families and listed stops.
|
| 127 |
+
- Preserve existing opacity, blur, spread, radius, spacing, and dimensions.
|
| 128 |
+
- Check WCAG contrast before adding text/background or UI-border pairs.
|
| 129 |
+
- Keep success/info = Verdigris, warning = Molten Brass, danger/error = Kiln Ember.
|
| 130 |
+
- Shadows use Deep Ink 100 as their base; warm glows use Brass only where specified.
|
| 131 |
+
- Do not add light/dark switching unless it already exists.
|
| 132 |
+
|
| 133 |
+
## Explicit scope confirmation
|
| 134 |
+
|
| 135 |
+
Only color values and color-bearing token references were changed. Layout,
|
| 136 |
+
spacing, typography, copy, imagery, structure, API behavior, interaction
|
| 137 |
+
patterns, animation timing, and motion remain unchanged.
|