A whole system from a single hue
A color system is more than one brand color — it’s a coordinated set of roles: primary, secondary, accent, a neutral ramp, and semantic colors for success, warning, error and info. The Full Color System Generator derives all of them from one seed hue so the result feels intentional, then exports the tokens as CSS variables or JSON ready for a design-token pipeline.
How it works
Everything is computed in HSL. The seed hue becomes the primary color. The secondary and accent hues are rotated from the primary by the harmony angle you pick: complementary rotates by 180 degrees, analogous by roughly 30 degrees, and triadic by 120 degrees. Each role also gets light and dark variants by adjusting lightness while holding hue and saturation.
The neutral ramp reuses the primary hue at a very low saturation (around 8 percent) and steps lightness from near-white to near-black, so the greys carry a subtle brand tint. The semantic tokens — success, warning, error, info — are anchored to conventional hues (green, amber, red, blue) because their meaning is learned, with only lightness tuned to match the system. Every HSL value is converted to a hex string for output.
How to read the output
The generated system includes five groups. Understanding what each group is for helps you deploy it correctly:
| Group | Purpose | Example token |
|---|---|---|
| Primary | Main brand interactions — buttons, links, active states | --color-primary |
| Secondary | Supporting accent in illustrations and highlights | --color-secondary |
| Accent | Tertiary emphasis, callouts, badges | --color-accent |
| Neutral ramp | Text, borders, surfaces, backgrounds | --color-neutral-100 through --color-neutral-900 |
| Semantic | Status communication — success, warning, error, info | --color-success, --color-error |
Practical tips
- Start with complementary harmony for high contrast between primary and accent; choose analogous for a calmer, more unified feel.
- Use the neutral ramp for text and surfaces and reserve the brand hues for interactive and emphasis elements.
- Keep the semantic colors close to their conventions — users rely on red meaning error and green meaning success.
- Paste the CSS block into
:rootand reference tokens likevar(--color-primary); or feed the JSON into Style Dictionary or a similar build step.
Common mistake to avoid
Designers sometimes use the primary brand color for body text to reinforce the brand. Avoid this. The neutral ramp exists precisely for text — it’s near-black at the dark end and near-white at the light end, tinted with the brand hue so it still feels on-brand without competing with interactive elements. Reserve the primary hue for things users should click or act on.
When to choose each harmony
Complementary (180-degree rotation) gives the most visual tension between primary and accent. It works well when you need interactive elements to stand out clearly from the rest of the UI, which is good for task-focused tools and dashboards.
Analogous (roughly 30-degree rotation) keeps colors in the same neighborhood of the color wheel. The result feels cohesive and gentle, suitable for editorial, wellness, and lifestyle products where calm is part of the brand.
Triadic (120-degree rotation) introduces a third distinct hue into the system. It is the most complex to balance but gives designers the most flexibility for illustrations, data visualizations, and products with multiple categories to distinguish.