Color in UI Design — Professional Color Strategy
How professional designers use color systematically in interfaces — not just aesthetically.
Color Is a System, Not a Choice
In interface design, color is not a creative choice made in isolation — it's a system that serves specific functions. Every color in a well-designed UI has a role: primary action, secondary text, error state, hover feedback, disabled state. When colors are chosen ad hoc, the UI becomes inconsistent and confusing.
Professional UI color systems define:
- A small set of colors, each with a defined purpose
- Every necessary state (hover, active, focus, disabled)
- Consistent application across all components
- Accessible contrast at every usage
The Semantic Color Model
Modern UI design uses semantic color naming — colors are named by their purpose, not their appearance:
- Primary — main brand color, used for primary actions and brand identity
- Secondary — supporting color for less important elements
- Success — positive feedback, completed actions
- Warning — cautionary states, potential issues
- Danger/Error — destructive actions, errors, critical states
- Info — informational messages, neutral notifications
- Surface — cards, panels, elevated backgrounds
- Background — page background
- Border — dividers, outlines
- Text — body and heading text
- Muted text — secondary and helper text
Semantic naming lets you swap actual colors without changing component code — essential for dark mode, white-labeling and theming.
State Colors
Every interactive element needs multiple states. Each state should be visually distinguishable but related to the base color:
Default
The base state — the color of the element when it's not being interacted with.
Hover
Usually 10% darker than the base. Provides immediate feedback that the element is clickable. On dark mode, hover can be 10% lighter instead.
Active/Pressed
Usually 20% darker than the base. Confirms that the user has initiated an interaction.
Focus
A ring or outline that appears when the element is focused via keyboard. Must meet 3:1 contrast against the adjacent background. Cannot rely on color alone — should be distinguishable in shape too.
Disabled
Reduced saturation and opacity (usually 40-50%). Must still meet 3:1 contrast for essential text (WCAG doesn't exempt disabled states, though many implementations use lower standards).
Color and Hierarchy
Color establishes hierarchy through contrast:
- Primary actions: Saturated primary color, high contrast
- Secondary actions: Outline or lower saturation
- Tertiary actions: Text-only, minimal color
A common mistake: making every button look equally important. If everything is a primary button, nothing is primary.
Color and Accessibility
UI colors must meet WCAG 2.2 AA at minimum:
- Body text: 4.5:1 contrast against background
- Large text: 3:1 contrast
- UI components (icons, borders): 3:1 contrast
- Focus indicators: 3:1 contrast
Test every color combination with a contrast checker before shipping.
Building a UI Color System
Here's a practical process:
Step 1: Choose a Brand Color
This becomes your primary. Test it for WCAG AA against white and dark backgrounds.
Step 2: Generate a Color Scale
Use our UI Palette Generator to create a 50-900 scale from your brand color. This provides every shade you need for different states and surfaces.
Step 3: Define Semantic Tokens
Map scale values to semantic roles: primary = 500, hover = 600, active = 700, light background = 50, subtle border = 200, text = 900.
Step 4: Add Semantic Colors
Choose distinct colors for success (green), warning (amber), error (red), info (blue). Each should also have a scale if possible.
Step 5: Define Neutrals
Neutrals make up the majority of most UIs — backgrounds, text, borders. Define a neutral scale from 50 (near-white) to 900 (near-black).
Step 6: Test Everything
Test every combination of colors, states and components. Verify WCAG contrast. Test dark mode if you support it.
Common UI Color Mistakes
- Too many colors: Most professional UIs use 3-5 brand colors plus neutrals. Beyond that, the interface becomes noisy.
- Inconsistent colors: Different blues for different elements that should be the same.
- Ignoring states: No hover, focus or disabled states.
- Color as the only signal: Relying solely on color to communicate meaning (fails for color-blind users).
- Ignoring dark mode: Colors that work in light mode often fail in dark mode.