Skip to content
Back to Blog
DesignDevelopmentColor Models

From Figma Color Decisions to Tested CSS Tokens

Carry values, profiles, opacity and semantic roles from design to code, then inspect the rendered component.

March 30, 2026· 2 min read·Color Match

Updated : Rechecked technical claims, replaced unsupported generalizations, and added reproducible examples and source links.

A useful handoff contains more than a HEX list. Record the file color profile, layer opacity, intended background, token role and component state. Color Match works with opaque 8-bit sRGB values, so treat a Display P3 or translucent design as a conversion decision before using its HEX checker.

Record the profile and composition

Figma supports sRGB and Display P3 file profiles. Agree which profile the web implementation targets and inspect any conversion. A sampled screenshot can include shadows, transparency, image content and antialiasing; prefer the original fill and opacity information when available.

Map design roles to CSS roles

:root {
  --surface-default: #FFFFFF;
  --text-default: #111827;
  --action-default: #1D4ED8;
  --text-on-action: #FFFFFF;
}
.card { background: var(--surface-default); color: var(--text-default); }
.card button { background: var(--action-default); color: var(--text-on-action); }

Use a handoff row for each alias: design variable, CSS variable, light-mode value, dark-mode value, and intended partner. Two roles may share a HEX today and need to diverge later. Keeping their role names separate makes that change explicit.

Verify the actual browser result

A reproducible text and background example.

Same pair, larger text.

##111827 / ##FFFFFF

Body text and default surface in the handoff.

1.000000:1 WCAG contrast; 0.0000 Lc APCA.

Normal-text AA: Fail. Large-text AA: Fail. Labels apply to text contrast only.

Reproduce this pair and try a fix

A reproducible text and background example.

Same pair, larger text.

##FFFFFF / ##1D4ED8

Action label and button surface in the handoff.

1.000000:1 WCAG contrast; 0.0000 Lc APCA.

Normal-text AA: Fail. Large-text AA: Fail. Labels apply to text contrast only.

Reproduce this pair and try a fix

Use browser computed styles to check that the winning declarations match the handoff. If the label inherits opacity from a parent, these opaque checks no longer describe the composed result. Inspect narrow layouts and keyboard focus; a correct color value does not fix an obscured label.

Close the handoff loop

Open the handoff palette in Studio and export CSS as a starting point. Rename or alias the generated values to the agreed roles, then send the component URL and recorded pairs back for review. No direct Figma account connection is needed for this manual workflow.

Sources and further reading

Editorial and correction policy

Try it yourself

Turn these roles into code

Name your roles, open Export, and select CSS or DTCG. Check the emitted pairs before applying the tokens.

Open Studio to export tokens

Color Match

Color Match publishes and maintains practical color guides alongside its tools. Check the sources and revision notes on each updated guide, and report reproducible issues through our contact page.

More about Color Match

Related Articles