Generate complete, accessible color palettes from a single brand hex. Creates 11-shade scale (50-950), semantic tokens (background, foreground, card, muted), and dark mode variants. Includes WCAG contrast checking for text accessibility. Use when: setting up design system, creating Tailwind theme, building brand colors from single hex, converting designs to code, checking color accessibility.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/jezweb/claude-skills/blob/main/skills/color-palette/SKILL.md -a claude-code --skill color-paletteInstallation paths:
.claude/skills/color-palette/# Color Palette Generation **Status**: Production Ready ✅ **Last Updated**: 2026-01-14 **Standard**: Tailwind v4 @theme syntax --- ## Quick Start Generate complete palette from brand hex: ```javascript // Input: Brand hex const brandColor = "#0D9488" // Teal-600 // Output: 11-shade scale + semantic tokens + dark mode primary-50: #F0FDFA (lightest) primary-500: #14B8A6 (brand) primary-950: #042F2E (darkest) background: #FFFFFF foreground: #0F172A primary: #14B8A6 ``` Use the reference files to generate shades, map semantics, and check contrast. --- ## Color Scale Overview ### Standard 11-Shade Scale | Shade | Lightness | Use Case | |-------|-----------|----------| | 50 | 97% | Subtle backgrounds | | 100 | 94% | Hover states | | 200 | 87% | Borders, dividers | | 300 | 75% | Disabled states | | 400 | 62% | Placeholder text | | 500 | 48% | **Brand color** | | 600 | 40% | Primary actions | | 700 | 33% | Hover on primary | | 800 | 27% | Active states | | 900 | 20% | Text on light bg | | 950 | 10% | Darkest accents | **Key principle**: Shade 500 represents your brand color. Other shades maintain hue/saturation while varying lightness. --- ## Hex to HSL Conversion Convert brand hex to HSL for shade generation: ```javascript // Example: #0D9488 → hsl(174, 84%, 29%) // H (Hue): 174deg // S (Saturation): 84% // L (Lightness): 29% ``` Generate shades by keeping hue constant, adjusting lightness: - Lighter shades (50-400): Reduce saturation slightly - Mid shades (500-600): Full saturation - Darker shades (700-950): Full saturation See `references/shade-generation.md` for conversion formula. --- ## Semantic Token Mapping Map shade scale to semantic tokens for components: ### Light Mode ```css --background: white --foreground: primary-950 --card: white --card-foreground: primary-900 --muted: primary-50 --muted-foreground: primary-600 --border: primary-200 --primary: primary-600 --primary-foreground: white ``` ### Dark Mode ```css --background: primary-950