Skill
meridian-theme
Apply or re-skin the Meridian theme — CSS tokens, brand accent, paper, radius, light/dark. Use when changing colors, theming a product, or teaching an AI how Meridian theme knobs work.
skills.shmeridian-theme
Meridian theme
Meridian’s product is the theme. Components come from shadcn; personality comes from tokens.
Source of truth
- Contract:
design.md→ “Theme knobs” + Accessibility - Tokens:
app/globals.css— strict OKLCH (:root+.dark+[data-tone="theater"]) - Contrast:
lib/design/contrast.ts·npm run check:contrast - Live proof:
/theme
Knobs (safe to override)
--brand
--brand-foreground
--brand-muted
--background
--foreground
--radius
Primary, ring, selected (bg-brand/10), chart-1, and success follow --brand.
Do not override into decoration
--destructive/--warningkeep fixed meaning--activity-*encode agent steps only--chart-2…5stay a data ramp, not accents
Workflow (preferred — law book + gates)
- Read
contracts/meridian/DESIGN.mdtheme knobs + Accessibility. - Pick closed presets on
/meridian/theme(brand · radius · paper) or name ids fromlib/design/knobs.ts. - Apply via CSS / prefs file — do not invent OKLCH outside presets.
- Layout / animations are not prefs — use recipes +
motionLaws. - Run
npm run check:contrast+check:design. Confirm light/dark still read as one system. - Optional: MCP
apply_prefs/validate_uiwhen tool-wired.
Workflow (this repo / manual)
- Read current tokens in
app/globals.css+ Meridian skin inapp/contract-skins.css. - Change knobs only via preset values from
lib/design/knobs.ts. - Verify light and dark.
- Confirm
/meridian/themestill reads as one system. - If documenting a new knob, update
design.md+docs/prefs.mdin the same change.
Anti-patterns
- Hex in components
- Second accent “for marketing”
- Warm cream paper defaults
- Brand-tinting danger/warning