Back to Skills

color-palette

majiayu000
Updated Today
1 views
58
9
58
View on GitHub
Metaaidesign

About

This Claude Skill generates complete, accessible color systems from a single brand hex, creating 11-shade scales, semantic tokens, and dark mode variants. It includes WCAG contrast checking for accessibility compliance. Use it when setting up design systems, creating Tailwind themes, or converting brand colors to production-ready code.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/majiayu000/claude-skill-registry
Git CloneAlternative
git clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/color-palette

Copy and paste this command in Claude Code to install this skill

Documentation

Color Palette Generation

Status: Production Ready ✅ Last Updated: 2026-01-14 Standard: Tailwind v4 @theme syntax


Quick Start

Generate complete palette from brand hex:

// 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

ShadeLightnessUse Case
5097%Subtle backgrounds
10094%Hover states
20087%Borders, dividers
30075%Disabled states
40062%Placeholder text
50048%Brand color
60040%Primary actions
70033%Hover on primary
80027%Active states
90020%Text on light bg
95010%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:

// 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

--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

--background: primary-950
--foreground: primary-50
--card: primary-900
--card-foreground: primary-50
--muted: primary-800
--muted-foreground: primary-400
--border: primary-800
--primary: primary-500
--primary-foreground: white

Pattern: Invert lightness while preserving relationships. See references/semantic-mapping.md.


Dark Mode Pattern

Swap light and dark shades:

Light ModeDark Mode
50 (97% L)950 (10% L)
100 (94% L)900 (20% L)
200 (87% L)800 (27% L)
500 (brand)500 (brand, slightly brighter)

Preserve brand identity: Keep hue/saturation consistent, only invert lightness.

CSS pattern:

:root {
  --background: white;
  --foreground: hsl(var(--primary-950));
}

.dark {
  --background: hsl(var(--primary-950));
  --foreground: hsl(var(--primary-50));
}

Contrast Checking

WCAG minimum ratios:

  • Text (AA): 4.5:1 normal, 3:1 large (18px+)
  • UI Elements: 3:1 (buttons, borders)

Quick check pairs:

  • primary-600 text on white background
  • white text on primary-600 background
  • primary-900 text on primary-50 background

Formula:

contrast = (lighter + 0.05) / (darker + 0.05)
// Where lighter/darker are relative luminance values

See references/contrast-checking.md for full formula and fix patterns.


Quick Reference

Generate Complete Palette

  1. Convert brand hex to HSL
  2. Generate 11 shades (50-950) by varying lightness
  3. Map shades to semantic tokens
  4. Create dark mode variants (invert lightness)
  5. Check contrast for text pairs

Tailwind v4 Output

Use @theme directive:

@theme {
  --color-primary-50: #F0FDFA;
  --color-primary-500: #14B8A6;
  --color-primary-950: #042F2E;

  --color-background: #FFFFFF;
  --color-foreground: var(--color-primary-950);
}

Common Adjustments

  • Too vibrant at light shades: Reduce saturation by 10-20%
  • Poor contrast on primary: Use shade 700+ for text
  • Dark mode too dark: Use shade 900 instead of 950 for backgrounds
  • Brand color too light/dark: Adjust to shade 500-600 range

Resources

FilePurpose
references/shade-generation.mdHex→HSL conversion, lightness values
references/semantic-mapping.mdToken mapping for light/dark modes
references/dark-mode-palette.mdInversion patterns, shade swapping
references/contrast-checking.mdWCAG formulas, quick check table
templates/tailwind-colors.cssComplete CSS output template
rules/color-palette.mdCommon mistakes and corrections

Token Efficiency

Without skill: ~8-12k tokens trial-and-error for palette generation With skill: ~3-4k tokens using references Savings: ~65%

Errors prevented:

  • Poor contrast ratios (accessibility violations)
  • Inconsistent shade scales
  • Broken dark mode (wrong lightness values)
  • Raw Tailwind colors instead of semantic tokens
  • Missing foreground pairs for backgrounds

Examples

Brand Color: Teal (#0D9488)

@theme {
  /* Shade scale */
  --color-primary-50: #F0FDFA;
  --color-primary-100: #CCFBF1;
  --color-primary-200: #99F6E4;
  --color-primary-300: #5EEAD4;
  --color-primary-400: #2DD4BF;
  --color-primary-500: #14B8A6;
  --color-primary-600: #0D9488;
  --color-primary-700: #0F766E;
  --color-primary-800: #115E59;
  --color-primary-900: #134E4A;
  --color-primary-950: #042F2E;

  /* Light mode semantics */
  --color-background: #FFFFFF;
  --color-foreground: var(--color-primary-950);
  --color-primary: var(--color-primary-600);
  --color-primary-foreground: #FFFFFF;
}

.dark {
  /* Dark mode overrides */
  --color-background: var(--color-primary-950);
  --color-foreground: var(--color-primary-50);
  --color-primary: var(--color-primary-500);
}

Brand Color: Purple (#7C3AED)

@theme {
  --color-primary-50: #FAF5FF;
  --color-primary-500: #A855F7;
  --color-primary-950: #3B0764;

  --color-background: #FFFFFF;
  --color-foreground: var(--color-primary-950);
  --color-primary: var(--color-primary-600);
}

Next Steps: Use references/shade-generation.md to convert your brand hex to HSL and generate the 11-shade scale.

GitHub Repository

majiayu000/claude-skill-registry
Path: skills/color-palette

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

creating-opencode-plugins

Meta

This skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill

evaluating-llms-harness

Testing

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

View skill