Ever wonder why some color combinations feel harmonious while others clash? Color theory provides the science behind aesthetic color choices. Understanding these principles helps you create palettes that work—whether you're designing a website, choosing paint colors, or creating art.
The Color Wheel
The color wheel is the foundation of color theory. It arranges colors in a circle based on their relationships.
Primary Colors
The three colors that can't be created by mixing others:
- Red
- Yellow
- Blue
Secondary Colors
Created by mixing two primary colors:
- Orange = Red + Yellow
- Green = Yellow + Blue
- Purple = Blue + Red
Tertiary Colors
Mixing primary and adjacent secondary colors:
- Red-Orange, Yellow-Orange
- Yellow-Green, Blue-Green
- Blue-Purple, Red-Purple
Color Relationships
Different positions on the color wheel create different harmonies.
Complementary Colors
Colors directly opposite each other on the wheel.
Red ↔ Green
Blue ↔ Orange
Yellow ↔ Purple
Characteristics:
- High contrast
- Vibrant when paired
- Can be jarring in large amounts
- Great for emphasis
Usage tip: Use one as the dominant color and the other as an accent.
:root {
--primary: #3B82F6; /* Blue */
--accent: #F97316; /* Orange (complement) */
}
Analogous Colors
Colors adjacent on the color wheel (typically 3 colors).
Blue → Blue-Green → Green
Red → Red-Orange → Orange
Characteristics:
- Naturally harmonious
- Peaceful, comfortable
- Less contrast
- Easy to work with
Usage tip: Choose one dominant, one supporting, and one accent.
:root {
--dominant: #10B981; /* Green */
--supporting: #06B6D4; /* Cyan */
--accent: #059669; /* Emerald */
}
Triadic Colors
Three colors evenly spaced (120° apart) on the wheel.
Red — Yellow — Blue
Orange — Green — Purple
Characteristics:
- Vibrant even when desaturated
- Balanced visual triangle
- Works well with one dominant color
Usage tip: Use a 60-30-10 ratio for balance.
Split-Complementary
One base color plus the two colors adjacent to its complement.
Blue → Yellow-Orange + Red-Orange
(instead of just Orange)
Characteristics:
- High contrast but less tension
- More sophisticated than complementary
- Harder to mess up
Tetradic (Square/Rectangle)
Four colors forming a rectangle on the wheel.
Square: Red — Yellow — Green — Purple
Rectangle: Blue — Orange — Yellow-Green — Red-Purple
Characteristics:
- Rich, varied palette
- Need careful balancing
- Let one color dominate
HSL: The Designer's Color Model
HSL (Hue, Saturation, Lightness) makes color relationships intuitive:
Hue: Position on the Color Wheel
0° = Red
60° = Yellow
120° = Green
180° = Cyan
240° = Blue
300° = Magenta
360° = Red (back to start)
Creating Harmonies with Hue
:root {
/* Complementary: 180° apart */
--color1: hsl(220, 80%, 50%); /* Blue */
--color2: hsl(40, 80%, 50%); /* Orange (220 + 180 = 400 → 40) */
/* Triadic: 120° apart */
--tri1: hsl(0, 70%, 50%); /* Red */
--tri2: hsl(120, 70%, 50%); /* Green */
--tri3: hsl(240, 70%, 50%); /* Blue */
/* Analogous: 30° apart */
--ana1: hsl(200, 70%, 50%); /* Blue */
--ana2: hsl(230, 70%, 50%); /* Blue-Purple */
--ana3: hsl(260, 70%, 50%); /* Purple */
}
Saturation: Creating Variants
Keep hue constant, vary saturation for subtle variations:
:root {
--brand-vivid: hsl(220, 90%, 50%);
--brand-muted: hsl(220, 40%, 50%);
--brand-subtle: hsl(220, 15%, 50%);
}
Lightness: Creating Shades and Tints
Vary lightness for a cohesive scale:
:root {
--blue-100: hsl(220, 80%, 95%); /* Lightest */
--blue-300: hsl(220, 80%, 75%);
--blue-500: hsl(220, 80%, 50%); /* Base */
--blue-700: hsl(220, 80%, 35%);
--blue-900: hsl(220, 80%, 20%); /* Darkest */
}
Building Practical Palettes
The 60-30-10 Rule
A balanced distribution:
- 60%: Dominant (backgrounds, large areas)
- 30%: Secondary (supporting elements)
- 10%: Accent (calls-to-action, highlights)
Neutrals Are Essential
Every palette needs neutral grays:
:root {
/* Brand colors */
--primary: hsl(220, 80%, 50%);
--secondary: hsl(160, 60%, 45%);
/* Neutrals - slight hue tint from primary */
--gray-50: hsl(220, 10%, 98%);
--gray-100: hsl(220, 10%, 92%);
--gray-200: hsl(220, 10%, 85%);
--gray-300: hsl(220, 8%, 70%);
--gray-400: hsl(220, 8%, 55%);
--gray-500: hsl(220, 6%, 45%);
--gray-600: hsl(220, 6%, 35%);
--gray-700: hsl(220, 8%, 25%);
--gray-800: hsl(220, 10%, 15%);
--gray-900: hsl(220, 10%, 8%);
}
Semantic Colors
Define purpose-driven colors:
:root {
--success: hsl(142, 72%, 45%); /* Green */
--warning: hsl(45, 93%, 47%); /* Yellow/Amber */
--error: hsl(0, 72%, 50%); /* Red */
--info: hsl(200, 80%, 50%); /* Blue */
}
Palette Types by Mood
Professional/Corporate
- Colors: Blues, grays, minimal accents
- Saturation: Low to medium (40-60%)
- Contrast: Moderate
:root {
--primary: #1E3A5F; /* Deep blue */
--secondary: #4A7C9B; /* Muted blue */
--accent: #E74C3C; /* Confident red */
--background: #F8FAFC; /* Near white */
--text: #1E293B; /* Dark slate */
}
Playful/Creative
- Colors: Bright, varied hues
- Saturation: High (70-90%)
- Contrast: High
:root {
--primary: #8B5CF6; /* Vibrant purple */
--secondary: #EC4899; /* Hot pink */
--accent: #F59E0B; /* Bright amber */
--background: #FEFCE8; /* Warm white */
--text: #1F2937; /* Near black */
}
Natural/Organic
- Colors: Greens, browns, earth tones
- Saturation: Low to medium (30-50%)
- Contrast: Low to moderate
:root {
--primary: #4D7C4F; /* Forest green */
--secondary: #8B7355; /* Warm brown */
--accent: #C4A962; /* Golden */
--background: #FAF9F6; /* Cream */
--text: #3D3D3D; /* Charcoal */
}
Minimalist/Modern
- Colors: Monochromatic with single accent
- Saturation: Very low or very high (extremes)
- Contrast: High
:root {
--primary: #000000; /* Pure black */
--secondary: #666666; /* Medium gray */
--accent: #FF3366; /* Pop of color */
--background: #FFFFFF; /* Pure white */
--text: #111111; /* Near black */
}
Color Psychology Quick Reference
| Color | Associations | Best For |
|---|---|---|
| Blue | Trust, calm, professional | Finance, tech, healthcare |
| Green | Nature, growth, money | Environment, health, finance |
| Red | Energy, urgency, passion | Food, entertainment, sales |
| Orange | Friendly, confident, creative | Youth brands, calls-to-action |
| Yellow | Optimism, clarity, warmth | Caution, highlights, children |
| Purple | Luxury, creativity, mystery | Beauty, premium brands |
| Pink | Playful, romantic, gentle | Fashion, cosmetics, youth |
| Brown | Reliable, earthy, rustic | Organic, outdoors, coffee |
| Black | Sophisticated, powerful, elegant | Luxury, fashion, tech |
| White | Clean, simple, pure | Healthcare, minimalist brands |
Testing Your Palette
Accessibility Check
Always verify contrast ratios:
- Text on background: 4.5:1 minimum
- Large text: 3:1 minimum
Context Testing
View your palette in:
- Light and dark modes
- Various screen types
- Print (if applicable)
- Grayscale (for accessibility)
Real Content Test
Don't just look at swatches—see colors with actual content:
- Photos and images
- Charts and graphs
- UI components
- Long text passages
Summary
Great color palettes combine:
- Harmony: Use color wheel relationships
- Balance: Follow the 60-30-10 rule
- Neutrals: Include a gray scale
- Purpose: Define semantic colors
- Accessibility: Ensure contrast ratios
Start with one base color, then use color theory to find its companions.
Need help building your palette? Try our Palette Generator or Color Picker!