Brand Hue Required
Brand color systems must derive their primary ramp from a single OKLCH hue (one --hue variable feeding 9–12 lightness stops at calibrated chroma).…
$ prime install @community/constraint-brand-hue-required Projection
Always in _index.xml · the agent never has to ask for this.
BrandHueRequired [constraint] v1.0.0
Brand color systems must derive their primary ramp from a single OKLCH hue (one --hue variable feeding 9–12 lightness stops at calibrated chroma). Multi-hue ad-hoc palettes assembled from picked hex values are forbidden for new design systems.
Loaded when retrieval picks the atom as adjacent / supporting.
BrandHueRequired [constraint] v1.0.0
Brand color systems must derive their primary ramp from a single OKLCH hue (one --hue variable feeding 9–12 lightness stops at calibrated chroma). Multi-hue ad-hoc palettes assembled from picked hex values are forbidden for new design systems.
Target
- brand color system
- primary palette ramp
- design-token color scaffolding
Severity
high
Values
- Required: single --hue:
CSS custom property feeding all primary ramp stops
- Required: single --hue:
- Required: ramp generated by holding chroma constant or following a documented chroma curve while varying L
- Forbidden: ad-hoc hex picks per ramp stop with no shared hue anchor
Exceptions
- Multi-brand products where each tenant supplies a hue (each tenant ramp must still be single-hue).
- Categorical chart palettes (qualitative encoding requires multiple hues — see @community/category-data-viz).
- Legacy products mid-migration (hex-based) — flagged but not blocked.
Approved Alternatives
- @impeccable/template-oklch-palette — 12-stop scaffold parameterised by --hue
- Radix Colors (12-step OKLCH-derived ramps per hue)
- Tailwind v4 OKLCH palette (per-hue, perceptually balanced)
Enforcement
Design-token review: every primary ramp token must reference --hue (or a hue-derived token); CI lint rejects literal H values inside oklch() calls in primary ramps unless they equal var(--hue).
Loaded when retrieval picks the atom as a focal / direct hit.
BrandHueRequired [constraint] v1.0.0
Brand color systems must derive their primary ramp from a single OKLCH hue (one --hue variable feeding 9–12 lightness stops at calibrated chroma). Multi-hue ad-hoc palettes assembled from picked hex values are forbidden for new design systems.
Target
- brand color system
- primary palette ramp
- design-token color scaffolding
Severity
high
Values
- Required: single --hue:
CSS custom property feeding all primary ramp stops
- Required: single --hue:
- Required: ramp generated by holding chroma constant or following a documented chroma curve while varying L
- Forbidden: ad-hoc hex picks per ramp stop with no shared hue anchor
Exceptions
- Multi-brand products where each tenant supplies a hue (each tenant ramp must still be single-hue).
- Categorical chart palettes (qualitative encoding requires multiple hues — see @community/category-data-viz).
- Legacy products mid-migration (hex-based) — flagged but not blocked.
Approved Alternatives
- @impeccable/template-oklch-palette — 12-stop scaffold parameterised by --hue
- Radix Colors (12-step OKLCH-derived ramps per hue)
- Tailwind v4 OKLCH palette (per-hue, perceptually balanced)
Enforcement
Design-token review: every primary ramp token must reference --hue (or a hue-derived token); CI lint rejects literal H values inside oklch() calls in primary ramps unless they equal var(--hue).
Rationale
OKLCH-derived single-hue ramps produce perceptually uniform lightness progressions and trivially mirrorable dark-mode tokens. Ad-hoc hex ramps drift in hue across stops (the 100 stop reads warm, the 700 stop reads cool), break dark-mode parity, and require manual contrast tuning at every stop. The constraint also enforces brand discipline — one hue is the brand.
Source
prime-system/examples/frontend-design/primes/compiled/@community/constraint-brand-hue-required/atom.yaml