Lesson 5

Color Picking Workflow

Match brand palettes, sample colors, and publish design tokens.

Moving color from mockup to production is a workflow, not a one-off eyedropper click.

Step 1: Anchor on brand tokens

Start from the design system’s primary, neutral, and semantic scales—not random hex from a screenshot compression artifact.

If marketing handed you a PNG, confirm the color against the official brand PDF or Figma library before coding.

Step 2: Sample carefully

Browser eyedroppers read one pixel. JPEG banding, subpixel antialiasing, and retina scaling can lie.

Sample a flat fill region, or read values directly from the design file. When sampling a live site, disable zoom and check light/dark mode variants separately.

Step 3: Convert and record all views

Store canonical hex (or OKLCH) in tokens, then derive:

  • RGB for canvas/chart APIs
  • HSL for theme generators
  • Contrast-safe text pairs documented beside backgrounds

A converter keeps the numbers consistent when designers ask for “the same blue in HSL.”

Step 4: Verify contrast and states

For each interactive component, check default, hover, focus, and disabled pairs. Focus rings often need a third color that still passes contrast on both default and hover fills.

Capture failing ratios in the review ticket—not only “looks fine on my laptop.”

Step 5: Ship as CSS variables

:root {
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-on-primary: #ffffff;
}

Components reference semantic names (--color-on-primary), not raw hex sprinkled in modules.

Handoff checklist

ItemDone when
Token name agreedDesign + eng use same --color-*
Contrast documentedAA met for text pairs
Dark modeSeparate table or overrides listed
Non-CSS surfacesEmail/PDF hex exported

Key takeaway

Treat eyedropper tools as measurement instruments in a documented pipeline—sample, convert, verify contrast, publish tokens. That is how teams stop #2563EB from becoming five slightly different blues in production.

When you want to practice, use the related DevCove tool — optional, not part of this lesson.

Open related tool

Back to course overview