← tasteMarkdown

Color

Condensed from: Taste Skill (https://github.com/Leonxlnx/taste-skill), Open Design (https://github.com/nexu-io/open-design), UI UX Pro Max (https://github.com/nextlevelbuilder/ui-ux-pro-max-skill), Hallmark (https://github.com/Nutlope/hallmark)

Hex values and ratios below are computed from the OKLCH shown (WCAG 2.x, vs white unless stated).

Plan four layers before any CSS

Layer Share of pixels Tokens
Neutrals 70-90% --bg --surface --surface-2 --ink --muted --border --rule
Accent (one) under 5% of any screen, max 2 visible uses --accent --accent-ink --focus
Semantic 0-5% --positive --negative --warning --info + pill pairs
Effects under 1% scrims, one chart fade

Neutrals with a tint

Tint every grey toward one anchor hue, chroma 0.004-0.015. Example ramp, hue 250:

Role OKLCH Hex Note
--bg oklch(98.5% .004 250) #f8fafd Light ground L 97-98.5
--surface oklch(100% 0 0) or oklch(96% .006 250) #fff 2-6 L points from ground
--border oklch(92% .006 250) #e2e5e8 ~1.2:1, card edges
--control oklch(88% .008 250) #d4d8dd Input borders, one step stronger
--muted oklch(54% .012 250) #6a6f76 5.05:1 on white, 4.84:1 on ground
--ink oklch(21% .012 250) #14191e 17.7:1

The one accent

Postures (declare one)

Contrast gates

Pair Minimum
Body and UI text 4.5:1 (target 7:1 for ink on ground)
Large text (≥24px regular or ≥18.5px bold; 18px regular is NOT large) 3:1
Icons, input borders, focus rings, chart marks 3:1
Placeholders, disabled labels that carry meaning 4.5:1 (house rule)

Semantic colours

Role Text-safe value Pill (bg / text)
Positive oklch(52% .12 150) #287c42 5.2:1 #dcfae5 / #04250e
Negative oklch(55% .19 27) #c9302d 5.3:1 #ffedea / #831c1e
Warning oklch(50% .11 60) #905211 6.2:1 #fffbeb, border #fde68a / #92400e
Info oklch(52% .14 250) #116bb5 5.5:1 tint of the same hue

Banned families (generated look)

Gradients that don't look generated

Default: none. Study: gradient fills on 22% of top sites vs 52% of weak; gradient text 2% vs 13%. Allowed:

Surfaces

Dark palette (summary; full rules in dark-mode-dataviz.md)

Re-derive, never invert. Ground oklch(16-18% .008-.012 h) (#0f1215), +3% L per elevation level, ink L 93-95% (#e7ecf0), muted L 65-75%, borders L 27-32% or rgba(255,255,255,.08), accent chroma -0.02 to -0.04 and L +5 to +10 (oklch(70% .14 255) #5fa1f3, 7.3:1 on that ground). Hue never moves. color-scheme: dark.

Token block

:root{
  --bg: oklch(98.5% .004 250); --surface: oklch(100% 0 0);
  --border: oklch(92% .006 250); --control: oklch(88% .008 250);
  --ink: oklch(21% .012 250); --muted: oklch(54% .012 250);
  --accent: oklch(55% .18 255); --accent-ink: oklch(99% 0 0);
  --focus: oklch(57% .18 255);
  --positive: oklch(52% .12 150); --negative: oklch(55% .19 27);
}

Read by your agent through get_guide("color") in the taste MCP.