Listicon.ai — Palette Rule Reference

Colour token → UI component mapping rules · Generated November 11, 2026

1 · Palette Token Overview

TokenExample (Spectrum Realty)Primary Role
C1 — Darkest#231F20Navbar bg, section headers, primary button bg, active tabs, headings text
C2 — Accent / Mid#E6412DButton highlights, icon color, inactive tab text, muted text, links, progress bar fill
C3 — Lightest tintLight red tintChip/tag bg, nav active bg, border colors, progress track, card hover border, skeleton shimmer
C4 — Always White#FFFFFFPage bg, card bg, tab bar bg, input bg, dropdown menus — never changes

2 · Component-by-Component Rules

ComponentBackgroundTextBorder / Accent
Sticky NavbarC1White (auto-contrast)C2 bottom 2px
Section HeadersC1 (dark)White (auto-contrast)—
Primary ButtonC1White—
Secondary ButtonC4 (white)C1C1
Ghost ButtonTransparentC2C2 (faint)
Active TabC4C1C1 (bottom underline)
Inactive TabC4C2Transparent
Selected Pill / Nav itemC1White—
Unselected PillWhiteC2C3
Chip / Feature TagC3C1C3 slightly darker
Stat PillsWhiteC1 (value) · C2 (label)C3
Input FieldsC4C1C3 → C1 on focus
Input Focus Ring——C1 + 20% opacity glow
CardsWhiteC1 (heading) · C2 (body)C3
Progress Bar TrackC3——
Progress Bar FillC2——
Dropdown MenusC4C1C3
Skeleton ShimmerC4 → C3 → C4 gradient——
FooterWhiteC1 (name) · C3 (muted)C2 top 3px
Score / Rating BarsC3 (track)Semantic color—

3 · Key Invariants (Never Break These)

#Rule
1C4 is always white — large surfaces (pages, cards, modals) never take brand colors.
2Text on C1 is always white, or auto-contrasted via bestTextColor() for accessibility.
3Text on C3 is always C1 (dark on light) — never C2 on C3 which may fail WCAG.
4Semantic error colors are never overridden by the palette — errors stay red (#FCEBEB / #791F1F).
5C3 is the "safe fill" — any background that needs to feel branded-but-not-heavy uses C3.
6Brand color type hints (dark, accent, light) directly map to C1, C2, C3 — no guessing.
7White (#FFFFFF) from the brand lookup is assigned to C4 only — never to C1/C2/C3.

4 · Brand Color API → Palette Mapping

Brand color typeMaps toFallback if missing
"dark" / "darkVibrant"C1Darkest hex by luminance
"accent" / "vibrant"C2Second hex by luminance
"light" / "lightVibrant" / "muted"C3 (if luminance > 0.50)lightenHex(C2, 70%)
"light" with luminance < 0.50Ignored → C3 auto-generatedlightenHex(C2, 75%)
"light" = #FFFFFF (white)Assigned to C4 slot onlyC4 always = white
Listicon.ai · Palette Rule ReferenceConfidential · Internal use only

Use your browser's "Save as PDF" option in the print dialog.