AgentSkillsCN

shadcn-theming

为 shadcn/ui 设计令牌与主题系统。涵盖 CSS 变量、OKLCH 颜色、深浅模式以及 Radix 和 Base UI 原语的主题配置。

SKILL.md
--- frontmatter
name: shadcn-theming
description: Design tokens and theming for shadcn/ui. Covers CSS variables, OKLCH colors, dark/light mode, and theme configuration for both Radix and Base UI primitives.
versions:
  shadcn-ui: "2.x"
  tailwindcss: "4.1"
user-invocable: true
allowed-tools: Read, Write, Edit, Glob, Grep
references: references/theming-guide.md, references/templates/theme-setup.md
related-skills: shadcn-registries, shadcn-components

shadcn Theming

Agent Workflow (MANDATORY)

Before theming work, use TeamCreate:

  1. fuse-ai-pilot:explore-codebase - Find existing theme tokens
  2. fuse-ai-pilot:research-expert - Verify OKLCH patterns via Context7

After: Run fuse-ai-pilot:sniper for validation.

Overview

FeatureDescription
CSS Variables--background, --foreground, --primary
OKLCH ColorsWide-gamut P3 color space
Dark Mode.dark class or prefers-color-scheme
Tailwind v4@theme directive integration

Critical Rules

  1. ALWAYS use OKLCH color space for all tokens
  2. ALWAYS define dark mode overrides for every token
  3. NEVER hard-code hex or rgb in components
  4. USE @theme directive for Tailwind v4 integration
  5. MAP semantic tokens to primitive OKLCH values

Architecture

code
app/
├── globals.css         # :root + .dark token definitions
└── tailwind.config.ts  # Optional (v3) or @theme (v4)

-> See theme-setup.md for complete theme

Token Hierarchy

code
Component: --card, --card-foreground, --button-*
    ↑
Semantic: --primary, --secondary, --accent, --muted
    ↑
Primitive: oklch(55% 0.20 260), oklch(98% 0.01 260)

Validation Checklist

code
[ ] CSS variables defined in :root
[ ] Dark mode overrides in .dark
[ ] OKLCH color space used
[ ] Chart variables (--chart-1 to --chart-5)
[ ] Sidebar variables if applicable
[ ] No hard-coded hex in components

Best Practices

DO

  • Use OKLCH for all colors
  • Define semantic tokens mapped to primitives
  • Provide dark mode overrides for all tokens
  • Use @theme for Tailwind v4 integration

DON'T

  • Hard-code hex or rgb values
  • Skip dark mode definitions
  • Mix color spaces (hex + oklch)
  • Define tokens only in Tailwind config

Reference Guide

Concepts

TopicReferenceWhen to Consult
Theming Guidetheming-guide.mdCSS variables and OKLCH setup

Templates

TemplateWhen to Use
theme-setup.mdComplete theme configuration