Design

Palette Generator

Drop in a base color and instantly generate a full palette for websites, admin dashboards, component libraries, and design systems. The tool outputs a 50 to 950 primary scale, a neutral scale, and four color schemes (monochrome, analogous, complementary, triadic). Every swatch suggests black or white text along with its WCAG contrast ratio, so it is clear when a color belongs on a background versus on text. Results can be copied as CSS variables or JSON and dropped into Tailwind, CSS-in-JS, design tokens, and multi-theme systems. Everything runs locally, so unreleased brand colors and confidential design files stay safe.

  • Generates a complete 50 to 950 scale that covers backgrounds, borders, buttons, links, and emphasis states
  • Supports monochrome, analogous, complementary, and triadic schemes for primary, secondary, accent, and contrast colors
  • OKLCH-based output produces more even lightness steps, well suited for theme scales and dark mode systems
  • Each swatch suggests black or white text with a WCAG ratio so usage is clear at a glance
  • Copy individual swatches, a full CSS variable block, or a JSON palette ready for component libraries and design tokens
tools/Palette Generator
#6366f1
Drop in a brand color or an existing UI value and the tool builds a systematic palette ready for the codebase.
Scales are generated with OKLCH for more uniform lightness, and each swatch suggests black or white text by contrast.
Click a swatch to copy
Primary scale
Color scheme
Interface preview
Palette preview

Preview buttons, links, badges, and cards using the current palette to confirm visual hierarchy.

New
Text link
CSS variables
:root {
  --color-primary-50: #deedff;
  --color-primary-100: #d0dfff;
  --color-primary-200: #b8c7ff;
  --color-primary-300: #9eabff;
  --color-primary-400: #7f89ff;
  --color-primary-500: #6368e6;
  --color-primary-600: #4f51c4;
  --color-primary-700: #3c3ba3;
  --color-primary-800: #2a2583;
  --color-primary-900: #1c1168;
  --color-primary-950: #0e004a;

  --color-primary: #6469e8;
  --color-secondary: #996cc9;
  --color-accent: #509ad6;
  --color-contrast: #806900;

  --color-neutral-50: #ecf6ff;
  --color-neutral-100: #dfe9f4;
  --color-neutral-200: #c8d2dd;
  --color-neutral-500: #737b85;
  --color-neutral-700: #464e57;
  --color-neutral-900: #20272f;
}
JSON
{
  "primary": {
    "50": "#deedff",
    "100": "#d0dfff",
    "200": "#b8c7ff",
    "300": "#9eabff",
    "400": "#7f89ff",
    "500": "#6368e6",
    "600": "#4f51c4",
    "700": "#3c3ba3",
    "800": "#2a2583",
    "900": "#1c1168",
    "950": "#0e004a"
  },
  "scheme": {
    "primary": "#6469e8",
    "secondary": "#996cc9",
    "accent": "#509ad6",
    "contrast": "#806900"
  },
  "neutral": {
    "50": "#ecf6ff",
    "100": "#dfe9f4",
    "200": "#c8d2dd",
    "300": "#afb9c3",
    "400": "#9099a3",
    "500": "#737b85",
    "600": "#5c646d",
    "700": "#464e57",
    "800": "#313941",
    "900": "#20272f",
    "950": "#0b1219"
  }
}
Quick actions

Overview

A single panel turns an isolated brand color into a complete palette that can ship into the codebase. Scale, scheme, neutrals, contrast hints, and export formats all sit together, so no one has to carry color values between separate tools.

  1. 01

    Primary scale generation

    Generates 50, 100, 200, through 950 stops with naming that maps cleanly to Tailwind, design tokens, and CSS variable systems.

  2. 02

    Four color schemes

    Outputs monochrome, analogous, complementary, and triadic schemes side by side, covering tool-style UIs, natural brand extensions, strong emphasis, and richer visual systems.

  3. 03

    OKLCH lightness control

    Uses OKLCH to manage lightness and chroma, producing more visually even steps and fewer of the hue shifts that traditional HSL scales tend to introduce.

  4. 04

    Neutral scale

    Generates a matching neutral scale for backgrounds, borders, muted text, and card surfaces, so the palette is not just a primary color in isolation.

  5. 05

    Text contrast guidance

    Each swatch recommends black or white text with its WCAG ratio, providing a quick readability baseline for buttons, badges, and status colors.

  6. 06

    Interface preview

    Built-in buttons, links, badges, and cards simulate real UI, so the palette is judged in context rather than as isolated swatches.

  7. 07

    CSS and JSON export

    Outputs CSS variables and a JSON palette in one go, ready for global.css, theme files, component library themes, and design token management.

  8. 08

    Presets and randomized start

    Common brand presets shortcut familiar directions, while the randomize action helps explore unexpected combinations early in a project.

How to use

Move from a single brand color to a reusable palette in just a few steps, and walk away with engineering-ready CSS variables and JSON.

  1. 01

    Paste or pick a base color, for example a brand primary, a legacy product hue, or a screenshot sample.

  2. 02

    Choose a color scheme: monochrome for stable tool UIs, analogous for natural brand extensions, complementary for strong contrast, or triadic for richer systems.

  3. 03

    Choose a style: soft, balanced, vivid, or dark, to dial in the overall saturation and lightness for the product context.

  4. 04

    Review the primary scale, the color scheme, and the interface preview, and confirm that buttons, links, badges, and cards have enough hierarchy.

  5. 05

    Click any swatch to copy its value, or copy the full CSS variables and JSON in one go and bring them back into the project.

Details

The output is not a one-off mood board, it is a palette that can move into engineering, design review, and multi-theme maintenance, and keep performing over time.

  • Primary scale uses 50 to 950 naming for clean mapping to Tailwind, CSS variables, component libraries, and design tokens
  • CSS output exposes primary, scheme, and neutral variables in one block, ready for global.css, theme.css, or a design system config
  • JSON output keeps the primary, scheme, and neutral structure intact for config files, token pipelines, and theme generation tooling
  • Every swatch is clickable for quick copying during development debugging, design walk-throughs, and ad hoc UI experiments
  • Each swatch shows a recommended text color and contrast ratio as a readability cue for buttons, badges, and status indicators
  • The randomize action accelerates early brand exploration, and the presets jumpstart common brand directions
  • The interface preview shows primary buttons, secondary buttons, links, badges, and card backgrounds in one view to catch palette issues early
  • Dark style lowers lightness and chroma together, providing a starting point for dark mode rather than a naive inversion of the light palette
  • Analogous and triadic schemes adjust secondary and accent angles by scheme so the palette feels like a system rather than a stack of unrelated colors
  • All generation happens locally in the browser, suitable for unreleased brand colors, internal assets, and confidential design files

Use cases

The value of a generated palette is turning an isolated brand color into a maintainable system, so themes, component states, surface levels, and brand extensions can all grow along the same set of steps.

  1. Product theme color design

    Expand a single brand primary into a full scale for buttons, links, backgrounds, borders, and emphasis, so home pages and inner views share the same language.

  2. Component library color spec

    Set up shared scales and state colors for Button, Badge, Alert, Tabs, Input, and similar components, so each component does not maintain its own local color values.

  3. Dark mode preparation

    Generate a dark-style primary and neutral scale as a starting point for dark themes, then refine backgrounds, borders, text, and accents on top.

  4. Design token rollout

    Export the palette as CSS variables and JSON and sync it to frontend themes, documentation sites, design system libraries, and multi-platform theme pipelines.

  5. Brand color extension

    Turn one brand color into a usable combination of light surfaces, primary, dark accent, and readable text, so the brand color survives different UI densities.

  6. Data visualization supporting colors

    Use analogous, complementary, or triadic schemes as a starting point for chart category colors, then verify legibility with a contrast checker.

  7. Landing pages and campaigns

    Quickly produce a coordinated set of hero, CTA, badge, and card colors that gives short-lived campaign pages a stable visual baseline.

  8. Admin dashboard themes

    Keep sidebars, table states, filters, dashboard cards, and notifications aligned to the same palette baseline so each module does not drift on its own.

  9. Multi-brand and white-label products

    Prepare separate palettes per brand or customer and feed them into the same token template, making theme switching predictable and maintainable.

  10. Illustration and icon coloring

    Provide matching color scales for illustrations, icon sets, and brand assets so flat artwork stays in the same language as the interface.

See also

When the base color comes from a design file, screenshot, or legacy CSS in mixed formats, normalize it with Color Converter first and then come back to generate the scale. Before the palette ships into body copy, buttons, and status labels, sample the real foreground and background pair in Contrast Checker ; when the scale flows into hero backgrounds, soft accents, or campaign visuals, hand the transition off to Gradient Generator so the palette and the gradients share one visual language instead of diverging.

Color terms explained

These terms shape how a palette is used in product UI, brand visuals, and multi-theme systems. Sharing definitions across the team avoids the recurring debate about which step the brand color should land on.

  1. Primary color

    The most central color in a brand or product, applied to main buttons, links, selected states, and key emphasis. A well-built palette usually has only one true primary.

  2. Scale

    A series of values at the same hue across different lightness steps. Frontend systems often use 50 to 950 to map from light backgrounds through to deep emphasis.

  3. Monochrome

    Adjusts lightness and chroma around a single hue. It suits stable, restrained, tool-oriented interfaces and information-dense pages.

  4. Analogous

    Picks neighbors on the color wheel, producing a natural and harmonious palette that fits most product UIs and brand extensions.

  5. Complementary

    Uses colors opposite each other on the wheel for stronger contrast. Useful for primary actions, warnings, and marketing visuals that need to stand out.

  6. Triadic

    Selects three colors roughly 120 degrees apart. It enables richer visual systems but needs careful control of saturation and area to stay coherent.

  7. OKLCH

    A color space that tracks human perception more closely than HSL, useful for building even color scales and accessible dark mode palettes.

  8. Design tokens

    Storing colors as named variables or structured data so they can be reused across design files, CSS, component libraries, and multi-theme systems instead of being scattered as literal values.

Best practices

A palette that lasts has to balance brand recognition, information hierarchy, readability, and engineering maintainability. Capturing these practices in a design system keeps the palette stable across themes and product lines.

  • Define the role of the base color first: brand recognition, primary action, link color, chart color, or status indicator. Each role calls for a different scale intensity
  • Do not use the 500 step for everything. Light backgrounds, borders, hover states, and dark emphasis each need their own step so the palette stays differentiated
  • For body text and helper text, do not rely on visual instinct alone. Pair the palette with contrast checks, especially on buttons and badges
  • Dark mode is not a simple inversion of the light palette. Check backgrounds, borders, text, and accents separately, and consider shipping a dedicated dark token set
  • Promote the final palette into tokens so the same color does not exist as several near-duplicate literals scattered across files
  • When a brand color is too bright or too dark, prefer adjusting lightness and chroma over changing the hue; keep the palette tied to brand identity
  • Manage chart colors and UI action colors separately, so a single "brand color" does not blur the semantic boundaries between data, status, and actions
  • Before launch, validate buttons, links, form states, warnings, and disabled states in real pages, not just in isolated previews

Limitations

Automatic palette generation accelerates the starting point, but it does not replace full brand review, design walk-through, or accessibility testing. Knowing the limits helps you place the tool where it actually adds value.

  • Generated scales come from an algorithmic baseline; whether they truly fit the brand still requires human judgement from design and brand teams
  • Recommended black or white text is computed from the swatch alone. Complex backgrounds, images, gradients, and layered surfaces need a dedicated contrast check
  • OKLCH is increasingly common in modern browsers and design systems, but some legacy toolchains still need values converted to HEX or RGB first
  • Triadic and complementary schemes can create strong visual conflict, so control swatch area, saturation, and context when applying them
  • The tool produces palettes and variables only; it does not modify your Tailwind config, CSS files, or design files automatically
  • For accessibility-sensitive surfaces, validate each foreground and background pair with a contrast checker. The in-tool recommendation is a hint, not a verdict
  • A clean palette does not guarantee strong visual hierarchy. Important pages still need design and product review before launch

FAQ

Questions teams ask most often when using a palette generator to build product themes, component systems, and multi-theme designs.

Where does a palette generator fit best?

It is most useful when starting from a single base color and quickly generating product themes, component scales, brand extensions, a dark mode baseline, and exportable frontend tokens.

Why use OKLCH for scales?

OKLCH lightness tracks perception more closely than HSL, so the lighter and darker steps stay more even and the hue does not drift as the lightness changes.

How should the 50 to 950 steps be used?

Steps 50 to 100 are common for backgrounds and subtle surfaces, 400 to 600 for primary buttons and links, and 700 to 950 for dark emphasis, dark mode backgrounds, or text colors.

How do I choose between monochrome, analogous, complementary, and triadic?

Monochrome fits tool-like interfaces, analogous suits natural brand harmony, complementary is good for strong emphasis, and triadic is useful for richer visual systems when saturation and area are controlled.

Can I use the CSS variables directly?

Yes. Copy them into a global stylesheet, theme file, or component library config, and adjust the variable name prefixes to match the project conventions.

What is the JSON output useful for?

It fits configuration files, design token scripts, theme generation pipelines, and documentation data sources, and makes it easier to share the same palette across platforms.

Does the recommended black or white text guarantee accessibility?

It is a quick suggestion based on the swatch alone. For production use, validate the actual text size, weight, background, and state with a dedicated contrast checker.

Can I use this for a Tailwind palette?

Yes. The 50 to 950 scale structure is close to Tailwind conventions, so it maps cleanly into theme.extend.colors or a custom namespace.

Is dark style the same as dark mode?

Not exactly. Dark style is a starting point for dark themes, but a complete dark mode still needs separate work on backgrounds, borders, text, and state colors with proper contrast checks.

Is any color data uploaded?

No. Parsing, scale generation, previews, and export all run locally in the browser, so unreleased brand colors and confidential design files stay private.

Why does the same base color look different under each style?

Style controls overall saturation and lightness. Soft lowers chroma, vivid pushes it up, and dark drops the lightness, so the resulting scale shifts even though the hue stays the same.

What if the brand color is too bright to be a primary?

Try vivid or dark style to get a stronger 500 to 700 step, or treat the brand color as an accent and choose a more legible color as the primary, while keeping the brand color for emphasis.

Related tools

Palette generation is one stage in a larger color workflow. Combine it with color conversion, contrast checking, and gradient generation to move from normalized values to a complete, accessible visual system.