skills/frontend-design/color-system/SKILL.md
Master color design with color theory, accessibility, theming, and dark mode. Create harmonious color systems that work across contexts, support accessibility standards, and enable flexible theming. Includes color psychology, contrast ratios, and color-blind friendly palettes.
npx skillsauth add sanky369/vibe-building-skills color-systemInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Color is one of the most powerful tools in design. It communicates emotion, establishes brand identity, guides attention, and conveys meaning. Yet color is also one of the most misused design elements.
This skill teaches you to think about color systematically: choosing colors with intention, ensuring accessibility, supporting theming and dark mode, and using color to guide users without overwhelming them.
Rather than choosing colors randomly, use color theory to create harmonious palettes that feel intentional and professional.
1. Monochromatic Use different tints, shades, and tones of a single hue.
Primary: #3B82F6
Tints (lighter): #93C5FD, #DBEAFE, #EFF6FF
Shades (darker): #1D4ED8, #1E40AF, #0C2340
Use Case: Minimalist, sophisticated designs. Good for focusing attention.
2. Analogous Use colors that are adjacent on the color wheel (30-60 degrees apart).
Primary: #3B82F6 (blue)
Secondary: #8B5CF6 (purple) - 60° away
Tertiary: #06B6D4 (cyan) - 60° away
Use Case: Harmonious, pleasing designs. Good for creating unity.
3. Complementary Use colors that are opposite on the color wheel (180 degrees apart).
Primary: #3B82F6 (blue)
Complementary: #F59E0B (amber)
Use Case: High contrast, energetic designs. Use sparingly to avoid visual chaos.
4. Triadic Use three colors evenly spaced on the color wheel (120 degrees apart).
Primary: #3B82F6 (blue)
Secondary: #F59E0B (amber)
Tertiary: #10B981 (green)
Use Case: Vibrant, balanced designs. Good for applications with multiple categories.
Your primary color is the foundation of your color system. Choose it based on:
Color Psychology:
Define your base colors:
module.exports = {
theme: {
colors: {
// Primary color with full spectrum
primary: {
50: '#EFF6FF',
100: '#DBEAFE',
200: '#BFDBFE',
300: '#93C5FD',
400: '#60A5FA',
500: '#3B82F6', // Base
600: '#2563EB',
700: '#1D4ED8',
800: '#1E40AF',
900: '#1E3A8A',
950: '#0C2340',
},
// Secondary color
secondary: {
50: '#F3E8FF',
500: '#8B5CF6',
950: '#2E1065',
},
// Semantic colors
success: '#10B981',
warning: '#F59E0B',
error: '#EF4444',
info: '#06B6D4',
// Neutral colors (grayscale)
neutral: {
50: '#F9FAFB',
100: '#F3F4F6',
200: '#E5E7EB',
300: '#D1D5DB',
400: '#9CA3AF',
500: '#6B7280',
600: '#4B5563',
700: '#374151',
800: '#1F2937',
900: '#111827',
950: '#030712',
},
},
},
};
Assign meaning to global colors based on context:
module.exports = {
theme: {
colors: {
// Semantic colors (light mode)
'bg-primary': 'var(--color-bg-primary)', // {neutral.50}
'bg-secondary': 'var(--color-bg-secondary)', // {neutral.100}
'bg-tertiary': 'var(--color-bg-tertiary)', // {neutral.200}
'text-primary': 'var(--color-text-primary)', // {neutral.950}
'text-secondary': 'var(--color-text-secondary)', // {neutral.600}
'text-tertiary': 'var(--color-text-tertiary)', // {neutral.500}
'text-inverse': 'var(--color-text-inverse)', // {neutral.50}
'border-primary': 'var(--color-border-primary)', // {neutral.200}
'border-secondary': 'var(--color-border-secondary)', // {neutral.300}
'interactive-primary': 'var(--color-interactive-primary)', // {primary.500}
'interactive-hover': 'var(--color-interactive-hover)', // {primary.600}
'interactive-active': 'var(--color-interactive-active)', // {primary.700}
'interactive-disabled': 'var(--color-interactive-disabled)', // {neutral.300}
},
},
};
Define colors for specific components:
module.exports = {
theme: {
colors: {
// Button colors
'button-primary-bg': 'var(--color-interactive-primary)',
'button-primary-text': 'var(--color-text-inverse)',
'button-secondary-bg': 'var(--color-bg-secondary)',
'button-secondary-text': 'var(--color-text-primary)',
// Card colors
'card-bg': 'var(--color-bg-primary)',
'card-border': 'var(--color-border-primary)',
// Input colors
'input-bg': 'var(--color-bg-primary)',
'input-border': 'var(--color-border-primary)',
'input-text': 'var(--color-text-primary)',
},
},
};
| Level | Normal Text | Large Text | Graphics | | :--- | :--- | :--- | :--- | | AA | 4.5:1 | 3:1 | 3:1 | | AAA | 7:1 | 4.5:1 | 3:1 |
Large text is defined as 18px+ (or 14px+ if bold).
Use tools like WebAIM Contrast Checker or Polished to verify contrast:
// Using Polished library
import { readableColor } from 'polished';
const backgroundColor = '#3B82F6';
const textColor = readableColor(backgroundColor); // Returns #FFFFFF or #000000
Design for color-blind users by:
Color-Blind Friendly Palette:
Primary: #0173B2 (blue, visible to all)
Secondary: #DE8F05 (orange, visible to all)
Accent: #CC78BC (purple, visible to most)
Neutral: #CA9161 (brown, visible to all)
Define semantic colors that change based on color scheme:
/* Light mode (default) */
:root {
--color-bg-primary: #F9FAFB;
--color-bg-secondary: #F3F4F6;
--color-text-primary: #030712;
--color-text-secondary: #4B5563;
--color-border-primary: #E5E7EB;
}
/* Dark mode */
@media (prefers-color-scheme: dark) {
:root {
--color-bg-primary: #030712;
--color-bg-secondary: #111827;
--color-text-primary: #F9FAFB;
--color-text-secondary: #D1D5DB;
--color-border-primary: #374151;
}
}
prefers-color-scheme media querycolors: {
'status-success': '#10B981',
'status-warning': '#F59E0B',
'status-error': '#EF4444',
'status-info': '#06B6D4',
}
colors: {
'interactive-default': '#3B82F6',
'interactive-hover': '#2563EB',
'interactive-active': '#1D4ED8',
'interactive-disabled': '#D1D5DB',
'interactive-focus': '#3B82F6', // with outline
}
colors: {
'elevation-1': '#FFFFFF', // Highest
'elevation-2': '#F9FAFB',
'elevation-3': '#F3F4F6',
'elevation-4': '#E5E7EB', // Lowest
}
"I'm using the color-system skill. Can you create a color system for me?
- Primary color: #3B82F6 (blue)
- Brand personality: Modern, professional, trustworthy
- Include: primary, secondary, semantic, and component colors
- Ensure WCAG AA contrast compliance
- Support both light and dark modes
- Provide Tailwind config"
"Can you audit my current color system?
- Are my colors harmonious?
- Do all text/background combinations meet WCAG AA?
- Are my colors used consistently?
- Is my dark mode accessible?
- Are my colors color-blind friendly?
- What improvements would you suggest?"
"Can you create a color-blind friendly palette?
- Primary color: blue
- Secondary color: orange
- Accent color: purple
- Ensure all combinations are visible to color-blind users
- Provide contrast ratios for verification"
"Can you help me implement dark mode?
- Define semantic color tokens for light and dark modes
- Ensure contrast is sufficient in both modes
- Provide CSS variables and Tailwind config
- Test readability in both modes"
Claude Code can critique your colors:
"Can you evaluate my color system?
- Are my colors harmonious?
- Do they support my brand personality?
- Are all contrast ratios sufficient?
- Is my dark mode accessible?
- Are my colors color-blind friendly?
- What's one thing I could improve immediately?"
1. Color Harmony Matters Use color theory to create palettes that feel intentional and professional.
2. Accessibility is Non-Negotiable All text/background combinations must meet WCAG AA contrast requirements.
3. Semantic Colors Enable Flexibility By separating global, semantic, and component colors, you can support theming and dark mode.
4. Consistency Builds Trust Use colors consistently across your product to build trust and reduce cognitive load.
5. Color-Blind Friendly Design Benefits Everyone Designing for color-blind users results in better designs for everyone.
A well-designed color system is both beautiful and functional. Make it count.
testing
Diagnose your marketing situation and sequence all 9 other skills strategically. Use when starting a new marketing initiative, auditing your current system, or optimizing your marketing strategy.
development
Use when creating an original visual design language, identity, or art direction for any artifact — infographics, video storyboards, websites, or mobile app UI/UX — or when a design feels generic, derivative, "AI-default," or inconsistent and needs one unifying idea. Triggers on "design language", "art direction", "make it original", "visual identity", "looks generic", "design a world".
development
Write viral, persuasive, engaging tweets and threads. Uses web research to find viral examples in your niche, then models writing based on proven formulas and X algorithm optimization. Use when creating tweets, threads, or X content strategy.
development
Complete DIY SEO strategy based on agency secrets. Covers winnable keyword research, programmatic content at scale, link building, technical SEO, and 90-day action plans. Reference the Complete_SEO_Playbook.md in references folder for deep dives.