Mar 13, 2025
Articles
A Semantic Color Naming System to Align the Team
James Franklin

Color is a crucial part of any design system, but without a clear naming convention, managing colors across a team can quickly become chaotic. Instead of relying on abstract or arbitrary names like blue-500 or red-light, a semantic color naming system aligns designers and developers by tying colors to their intent and purpose.
In this article, we’ll explore the benefits of a semantic approach, best practices for structuring your color system, and how to implement it effectively.
1. Why Use a Semantic Color Naming System?
A well-defined naming system offers several advantages:
- Clarity & Consistency – Everyone knows what colors to use for specific purposes. 
- Scalability – Easily adapt new colors without breaking the system. 
- Easier Handoff – Developers can match design tokens without confusion. 
- Improved Accessibility – Ensures colors are used appropriately for contrast and readability. 
2. Structuring a Semantic Color System
Instead of naming colors based on hue (blue-500), use functional names that describe their role.
Primary Colors (Brand & UI Colors)
These define the brand’s core color palette:
- primary– The main brand color (e.g., for buttons, links, accents).
- background– The default background color.
- foreground– The default text color.
Feedback & State Colors
Used for communicating status in UI components:
- success– Used for confirmations, positive actions (e.g., green).
- attention– Indicates caution (e.g., yellow or orange).
- danger– Represents errors or destructive actions (e.g., red).
- info– Used for informational messages (e.g., blue).
Neutral & Background Colors
Essential for structure and readability:
- accent– Used for cards or panels.
- border– Color for dividers and outlines.
- text-primary– Main text color.
- text-muted-foreground– Used for subtitles or less prominent text.
3. Implementing in Design & Code
In Figma:
- Create color styles with semantic names. 
- Use variants for light/dark mode. 
- Group colors into categories (Brand, UI, Feedback, Neutral). 
Color is a crucial part of any design system, but without a clear naming convention, managing colors across a team can quickly become chaotic. Instead of relying on abstract or arbitrary names like blue-500 or red-light, a semantic color naming system aligns designers and developers by tying colors to their intent and purpose.
In this article, we’ll explore the benefits of a semantic approach, best practices for structuring your color system, and how to implement it effectively.
1. Why Use a Semantic Color Naming System?
A well-defined naming system offers several advantages:
- Clarity & Consistency – Everyone knows what colors to use for specific purposes. 
- Scalability – Easily adapt new colors without breaking the system. 
- Easier Handoff – Developers can match design tokens without confusion. 
- Improved Accessibility – Ensures colors are used appropriately for contrast and readability. 
2. Structuring a Semantic Color System
Instead of naming colors based on hue (blue-500), use functional names that describe their role.
Primary Colors (Brand & UI Colors)
These define the brand’s core color palette:
- primary– The main brand color (e.g., for buttons, links, accents).
- background– The default background color.
- foreground– The default text color.
Feedback & State Colors
Used for communicating status in UI components:
- success– Used for confirmations, positive actions (e.g., green).
- attention– Indicates caution (e.g., yellow or orange).
- danger– Represents errors or destructive actions (e.g., red).
- info– Used for informational messages (e.g., blue).
Neutral & Background Colors
Essential for structure and readability:
- accent– Used for cards or panels.
- border– Color for dividers and outlines.
- text-primary– Main text color.
- text-muted-foreground– Used for subtitles or less prominent text.
3. Implementing in Design & Code
In Figma:
- Create color styles with semantic names. 
- Use variants for light/dark mode. 
- Group colors into categories (Brand, UI, Feedback, Neutral). 
Color is a crucial part of any design system, but without a clear naming convention, managing colors across a team can quickly become chaotic. Instead of relying on abstract or arbitrary names like blue-500 or red-light, a semantic color naming system aligns designers and developers by tying colors to their intent and purpose.
In this article, we’ll explore the benefits of a semantic approach, best practices for structuring your color system, and how to implement it effectively.
1. Why Use a Semantic Color Naming System?
A well-defined naming system offers several advantages:
- Clarity & Consistency – Everyone knows what colors to use for specific purposes. 
- Scalability – Easily adapt new colors without breaking the system. 
- Easier Handoff – Developers can match design tokens without confusion. 
- Improved Accessibility – Ensures colors are used appropriately for contrast and readability. 
2. Structuring a Semantic Color System
Instead of naming colors based on hue (blue-500), use functional names that describe their role.
Primary Colors (Brand & UI Colors)
These define the brand’s core color palette:
- primary– The main brand color (e.g., for buttons, links, accents).
- background– The default background color.
- foreground– The default text color.
Feedback & State Colors
Used for communicating status in UI components:
- success– Used for confirmations, positive actions (e.g., green).
- attention– Indicates caution (e.g., yellow or orange).
- danger– Represents errors or destructive actions (e.g., red).
- info– Used for informational messages (e.g., blue).
Neutral & Background Colors
Essential for structure and readability:
- accent– Used for cards or panels.
- border– Color for dividers and outlines.
- text-primary– Main text color.
- text-muted-foreground– Used for subtitles or less prominent text.
3. Implementing in Design & Code
In Figma:
- Create color styles with semantic names. 
- Use variants for light/dark mode. 
- Group colors into categories (Brand, UI, Feedback, Neutral).