Colors

Creating Color Palettes: Harmony and Theory

Learn the fundamentals of color theory to create beautiful, harmonious palettes for your designs using color wheel relationships.

HandyUtils December 28, 2025 6 min read

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:

  1. Harmony: Use color wheel relationships
  2. Balance: Follow the 60-30-10 rule
  3. Neutrals: Include a gray scale
  4. Purpose: Define semantic colors
  5. 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!

Related Topics
color palette color theory color wheel complementary analogous triadic design
Share this article

Continue Reading

Colors
Web Colors Explained: HEX, RGB, and HSL

Understanding color formats for web development: when to use HEX vs RGB vs HSL, color spaces, and practical tips for choosing colors.

Colors
Color Accessibility: WCAG Contrast Guidelines

Making your designs accessible: understanding WCAG contrast ratios, testing for accessibility, and designing for color blindness.

Number Systems
Hexadecimal for Developers: Colors, Memory, and More

A practical guide to hexadecimal notation: why developers use hex, reading hex values, and everyday applications from color codes to debugging.