The 60-30-10 UI Color Rule: How to Design Balanced, WCAG-Compliant Color Palettes for Web Apps
One of the most frequent challenges frontend developers and UI designers face when building web applications is choosing a cohesive color palette. Novice interfaces often suffer from either being visually monotonous (all grayscale with zero emotional hierarchy) or overwhelming (competing rainbow buttons where everything screams for attention).
The timeless interior design principle known as the 60-30-10 Rule provides the foundational framework for building balanced, modern, and accessible software interfaces.
In this guide, we break down how to apply the 60-30-10 rule to modern UI/UX design, evaluate color harmonies, ensure strict WCAG 2.1 AA/AAA accessibility compliance, and export production-ready CSS and Tailwind tokens.
1. Breaking Down the 60-30-10 Visual Hierarchy
The 60-30-10 rule states that a visual space should balance color distribution according to three distinct proportions:
- 60% Dominant Base (Canvas & Neutral Surfaces):
This serves as the visual anchor of your application. In light mode, this consists of off-white, light slate, or soft zinc backgrounds (
#F8FAFC,#FAFAFA). In dark mode, it represents rich deep charcoal or obsidian surfaces (#09090B,#0F172A). It accounts for the vast majority of visual canvas space, preventing eye fatigue. - 30% Secondary Structure (Cards, Borders, Sidebars & Typography): This builds functional structure and visual grouping. It includes card background fills, subtle border dividers, navigation rails, dropdown menus, and primary body text. It supports the dominant color without competing for primary focus.
- 10% Accent Power (Calls-to-Action & Interactive States): This is your high-energy brand color—such as vibrant electric indigo, vivid emerald green, or solar amber. It should be reserved strictly for primary buttons, active tab indicators, notification badges, conversion links, and important status indicators.
| Color Role | Typical Percentage | UI Element Application | Recommended Mood |
|---|---|---|---|
| Dominant (Base) | ~60% | App background, page canvas, section spacing | Neutral, subtle, non-distracting |
| Secondary (Structure) | ~30% | Navigation bars, cards, table rows, secondary text | Grounded, organized, readable |
| Accent (Focal Point) | ~10% | Primary CTAs, active toggles, alerts, progress bars | High contrast, vibrant, intentional |
When an interface adheres to this ratio, a user's eye naturally gravitates toward the 10% accent color, guiding them effortlessly toward key conversion goals and core workflows.
2. The 4 Fundamental Color Harmonies
When selecting colors for your design system, mathematical relationships across the 360-degree color wheel ensure visual harmony:
- Monochromatic: Variations of a single hue modified by adjusting saturation and lightness. Ideal for minimalist dashboards, data-dense financial applications, and developer tools.
- Analogous: Three hues situated directly adjacent to one another on the color wheel (e.g., blue, blue-green, and cyan). Creates calm, organic, cohesive themes with gentle transitions.
- Complementary: Two colors situated directly opposite each other on the color wheel (e.g., deep blue and warm amber, or emerald green and crimson). Delivers maximum visual tension and instant CTA prominence.
- Triadic: Three colors positioned equidistant at 120-degree intervals (e.g., violet, amber, and teal). Offers dynamic, playful, and energetic palettes suitable for creative suites and consumer apps.
3. WCAG 2.1 Accessibility & Contrast Math
A beautiful color palette is useless if visually impaired or color-blind users cannot comfortably read your interface.
The Web Content Accessibility Guidelines (WCAG) 2.1 establish rigorous contrast ratios based on relative luminance:
The contrast ratio between text color and background surface is calculated as:
Mandatory Compliance Benchmarks:
- WCAG Level AA (Standard):
- Normal text (under 18pt / 24px): Minimum 4.5:1 contrast ratio.
- Large text (18pt+ regular or 14pt+ bold): Minimum 3.0:1 contrast ratio.
- WCAG Level AAA (Enhanced):
- Normal text: Minimum 7.0:1 contrast ratio.
- Large text: Minimum 4.5:1 contrast ratio.
Always test your 10% accent color against both light and dark backgrounds to ensure button labels and icons remain crystal clear.
4. Structuring CSS Variables and Tailwind Tokens
Translate your 60-30-10 palette into reusable design tokens rather than scattering hardcoded hex values across components:
:root {
/* 60% Dominant Neutral */
--color-canvas: #f8fafc;
--color-canvas-subtle: #f1f5f9;
/* 30% Structural Secondary */
--color-surface: #ffffff;
--color-border: #e2e8f0;
--color-text-primary: #0f172a;
--color-text-muted: #64748b;
/* 10% High-Impact Accent */
--color-accent: #3b82f6;
--color-accent-hover: #2563eb;
--color-accent-foreground: #ffffff;
}
5. Step-by-Step: Extracting Palettes with Utilify
- Launch the Tool: Open the Color Palette Generator.
- Generate or Extract:
- Hit the spacebar or generate button to explore harmonious palettes algorithmically.
- Or upload your brand logo or photography to extract the dominant dominant, secondary, and accent colors via Canvas color sampling.
- Verify Contrast: Review real-time WCAG contrast badges to confirm compliance before shipping.
- 1-Click Export: Copy the entire palette formatted as CSS custom properties, Tailwind v4 tokens, or raw HEX values.
Related Design & Frontend Utilities
- Scalable Responsive Typography: Convert pixel mockups into fluid typography with PX to REM Converter.
- Clean Graphic Cutouts: Remove distracting photo backdrops with sub-pixel precision using AI Background Remover.
- Inspect Code and Config Differences: Compare CSS stylesheets and token files side-by-side using Diff Checker.
Related Guides in Design
Written & Reviewed by The Utilify Editorial Team
Our guides, formulas, and tutorials are written and maintained by software engineers committed to building privacy-first web utilities and open-access productivity solutions.