Vorinda

Brand Color Kit

Build a complete brand color system with semantic roles and 50–950 ramps — export CSS variables, Tailwind theme and design tokens.

Color settings

Saturation76%
Brightness97%

Color palette

50
LIGHT#F0F6FE

Global surface

App backgroundsHover overlays
On white 1.09:1On black 19.32:1
100
LIGHT#D8E6FD

Global surface

App backgroundsShadows
On white 1.26:1On black 16.66:1
200
LIGHT#ACCAFC

Subtle component

Subtle badgesInput hover
On white 1.67:1On black 12.61:1
300
LIGHT#76A8F9

Border & divider

Inactive statesCard borders
On white 2.4:1On black 8.74:1
400
BASE#4086F7

Muted content

Secondary iconsPlaceholders
On white 3.52:1On black 5.97:1
500
BASE#0A64F5

Primary branding

Action buttonsActive links
On white 5.06:1On black 4.15:1
600
BASE#0854CE

Emphasized color

Button hoverFocus rings
On white 6.63:1On black 3.17:1
700
DARK#0744A7

Deep brand color

Main headingsBanners
On white 8.77:1On black 2.39:1
800
DARK#053684

Heading & text

Heavy body textIcons
On white 11.25:1On black 1.87:1
900
DARK#04265D

Strong accent

App barsStrong overlays
On white 14.58:1On black 1.44:1

Harmonious schemes

Analogous

Complementary

Triadic

Split complementary

Monochromatic

Semantic tokens

primary

#0A64F5

primary-hover

#0854CE

primary-active

#0744A7

secondary

#F59B0A

accent

#513BF7

success

#16A34A

warning

#F59E0B

error

#DC2626

info

#2563EB

surface

#FFFFFF

background

#F8FAFC

text-primary

#111827

text-secondary

#6B7280

text-disabled

#9CA3AF

border

#ACCAFC

Accessibility matrix

ShadeOn whiteOn blackStatus
501.09:1 FAIL19.32:1 AAAAccessible
1001.26:1 FAIL16.66:1 AAAAccessible
2001.67:1 FAIL12.61:1 AAAAccessible
3002.4:1 FAIL8.74:1 AAAAccessible
4003.52:1 FAIL5.97:1 AAAccessible
5005.06:1 AA4.15:1 FAILAccessible
6006.63:1 AA3.17:1 FAILAccessible
7008.77:1 AAA2.39:1 FAILAccessible
80011.25:1 AAA1.87:1 FAILAccessible
90014.58:1 AAA1.44:1 FAILAccessible

Live preview

brandLaunch app

Build better with brand

Accessible color systems for modern teams.

Get startedDocs

Dynamic styles

Scales across your brand.

Adaptive UI

Real-time visualization.

Accessible shades

100%

Avg contrast (on white)

5.6

Tokenized colors

15

Export

:root {
  --brand-50: #f0f6fe;
  --brand-100: #d8e6fd;
  --brand-200: #accafc;
  --brand-300: #76a8f9;
  --brand-400: #4086f7;
  --brand-500: #0a64f5;
  --brand-600: #0854ce;
  --brand-700: #0744a7;
  --brand-800: #053684;
  --brand-900: #04265d;
  --color-primary: #0a64f5;
  --color-primary-hover: #0854ce;
  --color-primary-active: #0744a7;
  --color-secondary: #f59b0a;
  --color-accent: #513bf7;
  --color-success: #16a34a;
  --color-warning: #f59e0b;
  --color-error: #dc2626;
  --color-info: #2563eb;
  --color-surface: #ffffff;
  --color-background: #f8fafc;
  --color-text-primary: #111827;
  --color-text-secondary: #6b7280;
  --color-text-disabled: #9ca3af;
  --color-border: #accafc;
}

Guide

Palette vs color system: why roles beat raw swatches

A palette is a bag of pretty swatches. A color systemis a set of decisions: which color means “primary action,” which means “something went wrong,” and which quiet grays carry your body text. The difference matters the moment more than one person touches the product. With a raw palette, every developer reaches for #3B82F6by eye and hopes it's the right blue. With a system, they reach for --color-primary-500 and the meaning travels with the value.

That is the whole job of this tool. You give it one brand color and it builds a complete, role-based system: a brand primary, a brand-tinted neutral family, and the four semantic roles every interface needs — success, warning, error and info. Each role is a full 50–950 ramp, and the whole thing exports as CSS variables, a Tailwind theme object, or design tokens. You stop shipping swatches and start shipping a contract.

Semantic color roles explained

Semantic roles name a color by its job, not its hue. That indirection is what lets you re-theme an app without a find-and-replace across thousands of lines.

  • Primary — your core brand color. Buttons, links, active tabs, focus rings and selection states all pull from this ramp.
  • Neutral — grays that carry the bulk of the UI: text, borders, dividers, cards and backgrounds. Here they keep a hint of the brand hue so they never look dead next to your primary.
  • Success, warning, error and info— the feedback colors. These stay anchored to conventional hues (green, amber, red, blue) on purpose: users have learned that red means danger, and a clever “on-brand” error color only adds risk.

Because the names are stable, a redesign becomes a re-mapping. Point primary at a new hue and every button, link and focus ring moves with it — no hunting for stray hex codes.

The 50–950 token scale & how it maps to UI

Each role is expressed as eleven steps — 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950 — walking from near-white to near-black while holding the hue steady. This is the same scale popularized by Tailwind and Radix, and it exists so that “a bit lighter” is a number, not a guess. The 500 step is the canonical mid-tone you'd name the color by.

StepsTypical use
50–100Page and surface tints, subtle hover fills, selected-row backgrounds
200–300Borders, dividers, disabled fills, faint badges
400–600The color “proper” — buttons, links, icons, charts
700–950Hover/pressed states, headings on tint, dark-mode surfaces, text

Mapping components to step numbers instead of raw values keeps a product consistent: a primary button is always primary-600, its hover is always primary-700, and that rule reads the same in code, in Figma and in a code review.

Design tokens & handoff (CSS vars, Tailwind, JSON, Figma)

Design tokens are the platform-agnostic source of truth for these decisions — a flat list of name/value pairs that every tool can read. The emerging standard is the W3C Design Tokens Community Group format, where each token carries a $value and a $type. Export that JSON once and a build step can fan it out into every platform you ship to.

This tool gives you three ready-made handoffs. The CSS variables block drops straight into a :root rule. The Tailwind theme object slots into theme.extend.colors per the Tailwind color docs, so utilities like bg-primary-600 and text-neutral-700 just work. And the design-tokens JSON is what you hand to a design-tool importer or a token pipeline like Style Dictionary, keeping designers and engineers reading from the same file.

Keeping it accessible

A pretty ramp is useless if no one can read text on it. The relationship that matters is contrast: the WCAG 2.1 guidelines ask for a ratio of at least 4.5:1 between normal text and its background (3:1 for large text). The 50–950 structure makes this easy to reason about — light steps (50–300) want dark text from the 700–950 range, and dark steps (700–950) want light text. As a rule of thumb, a step and its “mirror” (100 against 800, 200 against 900) clear AA comfortably, while neighbours rarely do.

  • Test the pairs you actually ship — primary-600 on white, white on primary-600 — rather than assuming the ramp guarantees it.
  • Don't lean on hue alone. Pair your error red with an icon or label so color-blind users get the message too.
  • Re-check in dark mode. Swapping surfaces to the 900–950 end flips which text steps pass, so verify both themes.

Learn more

For the formal token spec, read the W3C Design Tokens Format Module, and for theming utilities see the Tailwind CSS color documentation. For the contrast math behind the accessibility notes above, the WCAG contrast guidance is the canonical reference.

Frequently asked questions

What is a brand color kit?
It's a complete color system built from your brand color — semantic roles (primary, neutral, success, warning, error, info), each as a full 50–950 ramp, plus ready-to-use exports for code and design tools.
What are semantic color roles?
Roles describe what a color is for, not just what it looks like: primary for key actions, neutral for surfaces and text, and success/warning/error/info for status. Designing around roles keeps a product consistent as it grows.
What is the 50–950 token scale?
Each role is expanded into 11 lightness steps (50 lightest → 950 darkest). The steps map to UI jobs — backgrounds, borders, fills, hover states and text — so the whole team uses the same tokens.
How do I export design tokens?
Copy the generated output as CSS variables, a Tailwind theme object, or design-tokens JSON. Paste it into your codebase or import it into your design tool for a single source of truth.
Does it handle dark mode?
The 50–950 ramps give you both ends of the lightness range, so you can map light-mode and dark-mode tokens from the same system.
Is it free? Do I need to sign up?
Yes, it's free with no signup — everything is generated in your browser.

Related tools