Skip to content
Frames For Figma

Color Palette

Color Palette

Build the ACSS color palette in Figma, with ten color families and their shades created as native color variables.

The Color Palette screen of the ACSS plugin for Figma builds your whole color system: ten color families, each with a full set of shades from ultra-light to ultra-dark. You pick one brand color and a hue for each other family, and the plugin works out the rest. Every color becomes a Figma variable that the other screens and your designs can use.

The Color Palette screen with the Main Colors, Semantic Colors and Shades sections

Color Palette doesn’t depend on any other screen, so it’s a good place to start. Most other screens pick their colors from this palette: Typography, Borders, Shadows, Backgrounds & Text, Buttons & Links and Forms.

The plugin makes its colors for your Figma file’s color profile, sRGB or Display P3. If you plan to switch the file to Display P3, do that before you rely on the colors. See Display P3 and sRGB.

In ACSS (Automatic CSS), every color comes with a set of shades, so you rarely pick a light or dark version of a color by hand. The plugin follows the same idea, and it uses OKLCH, the color format of ACSS 4. Each color is described by its lightness, chroma (how vivid it is) and hue.

The screen lists the families in two sections. You can’t turn families off: all ten are always created.

Family Section Default hue Use it for
Primary Main Colors 260° (blue) Your main brand color. It sets the lightness and chroma of the whole palette.
Secondary Main Colors 300° (purple) A second brand color.
Tertiary Main Colors 165° (green) A third brand color.
Accent Main Colors 70° (amber) Highlights that need to stand out from the brand colors.
Base Main Colors 250° (blue) A supporting color, often used for text and dark backgrounds in ACSS.
Neutral Main Colors Gray Grays for text, borders and backgrounds.
Success Semantic Colors 150° (green) Confirmations and positive states.
Info Semantic Colors 240° (blue) Neutral messages and tips.
Warning Semantic Colors 75° (amber) Cautions.
Danger Semantic Colors 25° (red) Errors and destructive actions.

Primary starts at Lightness 55 %, Chroma 0.22 and Hue 260°. Every other family copies Primary’s lightness and chroma and only picks its own hue, so the whole palette changes together when you change Primary. Neutral copies the lightness but has no chroma, which makes it gray. Read more in Primary sets the tone.

Every family has the same eight shades. Their lightness comes from one shared table, so a family’s Light shade is as light as every other family’s Light shade.

Shade Default lightness
Ultra-light 0.9
Light 0.8
Semi-light 0.65
Main The family’s own (55 % by default)
Hover Main + 0.05
Semi-dark 0.35
Dark 0.2
Ultra-dark 0.1

Lightness runs from 0 (black) to 1 (white), so 0.9 is very light. The Shades section at the bottom of the screen holds these values in Global Lightness Values.

Click a family to open it. A strip at the top previews its shades, from Ultra-light to Ultra-dark, with Hover last. Hover over a swatch to see its name. The family’s Main color is the swatch in its header.

Primary has a color picker, Lightness, Chroma and Hue sliders and a Hex field. Every other family has only a Hue slider and a Manual controls switch, which adds the other controls when you need them. Every family has a Transparencies row.

To… Read
Pick your brand color and understand lightness, chroma and hue Primary sets the tone
Give one family its own lightness, chroma or exact hex color Manual controls
Make the light or dark shades lighter or darker in every family Global lightness and hover
Add see-through versions of a shade, like Primary at 50 % Transparencies

When you’re done, click Save. See Saving and auto-save for what Save does.

Everything goes into the Color Palette collection. It has one mode: there are no light and dark modes. Families from the Main Colors section are in a Main Colors group and the four status colors are in a Semantic Colors group. Inside, each family has its own group with its eight shades.

Variable Code syntax What it’s for
Main Colors/Primary/Main var(--primary) Primary’s main color.
Main Colors/Primary/Ultra-Light … Ultra-Dark var(--primary-ultra-light) … var(--primary-ultra-dark) Primary’s shades: Ultra-Light, Light, Semi-Light, Semi-Dark, Dark, Ultra-Dark.
Main Colors/Primary/Hover var(--primary-hover) The hover state of the main color, for buttons and links.
Main Colors/Secondary/Main … Semantic Colors/Danger/Hover var(--secondary) … var(--danger-hover) The same eight shades for every other family.
White var(--white) Pure white.
Black var(--black) Pure black.
Transparent none A fully transparent color, for a fill or stroke that should show nothing.
Main Colors/Primary/Transparent/Main 50 color-mix(in oklch, var(--primary) 50%, transparent) Only if you add transparencies.

That’s 80 shade variables plus White, Black and Transparent.

Each shade variable’s description holds its exact OKLCH value, for example oklch(0.55 0.22 260), so developers can copy it. If you write your own description on a variable, the plugin keeps it.

The shade variables can be used for fills, strokes and effect colors such as shadows. White, Black and Transparent are limited to fills and strokes.

  1. Select a layer.
  2. In the right sidebar, hover over the Fill or Stroke and click the variable icon.
  3. Open the Color Palette collection and pick a color, for example Main Colors › Primary › Main.

In Dev Mode, developers see the code syntax, for example var(--primary), instead of a raw color value.

Other screens build on this palette. Their color variables point to a Color Palette variable, so when you change a color here and click Save, every layer that uses it updates, directly or through those screens. For text and background colors, it’s often easier to pick the ready-made variables from Backgrounds & Text.

When you export to WordPress, your palette becomes the ACSS 4 color settings, written in OKLCH. For every family, the export includes the main color as a hex value and the lightness, chroma and hue of the main color and every shade, so the site uses the colors you see in Figma. It also switches every family on in ACSS.

The plugin has no separate dark palette, so the export copies your palette into ACSS’s alternate color scheme as well. Primary’s lightness becomes ACSS’s unified lightness: see Primary sets the tone. Transparencies aren’t exported.

Learn more in the ACSS color docs.

  • Changing a color does nothing in Figma until you click Save. Save updates the existing variables, so layers that use them stay linked and change color.
  • If you rename, move or delete a color variable in Figma, the next Save creates a new one with the original name, and a renamed one stops updating. Keep the plugin’s names.
  • The plugin never deletes color variables, except transparency variables you removed in the plugin.
  • The Figma canvas color isn’t set here. You’ll find it on the Settings screen.
  • Coming from an older version of the plugin? Your palette is converted when you open it. See Upgrading.