Product Design

Product Design Language

The practical English of product design — annotating designs for developers, discussing design system components, giving and receiving design critique, and communicating about accessibility and responsiveness. 7 practice sets.

Quick reference

Design system anatomy

  • Design token: a named variable storing a single design decision (colour, spacing, type)
  • Primitive: a raw, unstyled building block (Box, Text)
  • Semantic component: a primitive wrapped with meaning (ErrorMessage, PriceTag)
  • Variant: a deliberate visual/purpose version of a component (primary, ghost)
  • State: a temporary condition (hover, focus, disabled, error)
  • Slot: a placeholder area accepting custom content

Figma & handoff terms

  • Auto layout: Figma's flex-like resizing/spacing container
  • Fixed / Fill / Hug: sizing behaviour vocabulary (width/height rules)
  • Constraints: how a layer scales relative to its parent frame
  • Redlines / specs: exact measurements handed off to developers
  • Dev Mode: Figma's read-only inspection view with code snippets
  • Detach: breaking an instance's link to its main component (avoid it)

Feedback & accessibility

  • Specific, evidence-based feedback: cite the metric, not "looks bad"
  • Feedback sandwich: genuine positive → concern → confidence close
  • Contrast ratio: WCAG AA = 4.5:1 text, 3:1 large text/UI
  • Focus indicator: visible outline for keyboard/switch users
  • Touch target: minimum 44×44pt (Apple) / 48×48dp (Material)
  • Cognitive load: mental effort to understand and act on an interface

Frequently Asked Questions

What is "design system vocabulary" and why does it matter for developers?

Design system vocabulary covers the shared terms designers and engineers use to talk about reusable UI: design tokens (named values like colours and spacing), primitives vs. semantic components, variants, states, and slots. Sharing this vocabulary precisely prevents miscommunication — "make it a variant" and "make it a new component" mean very different implementation work, and a team that uses the terms consistently ships faster with fewer handoff mistakes.

What is Figma annotation language?

Figma annotation language is the precise English used in developer handoff notes: spacing values ("8px gap"), sizing behaviour ("fill container" vs. "hug contents"), constraints ("scales with parent"), and responsive breakpoints ("collapses to 1 column below 768px"). Clear, numeric, unambiguous annotations — rather than vague descriptions — are what let an engineer build a screen without guessing or requesting clarification.

How do I give design feedback that doesn't sound harsh or vague?

Use the pattern: specific observation + why it matters + a suggestion phrased as a question. Instead of "this looks bad," say "the contrast ratio here is 2.8:1, below the WCAG AA 4.5:1 requirement — could we darken the text?" Cite metrics and standards rather than opinions, and use collaborative openers like "I'd like to explore an alternative approach to…" or "my concern is that…" rather than declarative judgments.

What English terms should designers know for accessibility (WCAG)?

Key terms: WCAG conformance levels (A, AA, AAA), contrast ratio (4.5:1 for normal text at AA), focus indicator (visible outline for keyboard users), touch target size (44×44pt minimum), alt text (when to write it vs. leave it empty for decorative images), and cognitive load (mental effort to use an interface). Citing the exact WCAG success criterion number (e.g., "2.4.7 Focus Visible") in a review makes the requirement checkable, not just a matter of opinion.

What is the difference between a design token, a variant, and a state?

A design token is a named variable storing one raw design decision (a colour, a spacing value). A variant is a deliberate, chosen version of a component (primary vs. secondary button) selected by whoever places it. A state is a temporary condition triggered by interaction or system status (hover, focus, disabled, loading, error) — the same variant moves through many states without becoming a different variant.

What does "fixed", "fill container", and "hug contents" mean in Figma?

These describe how a frame resizes: "fixed" means the dimension never changes; "fill container" means it stretches to occupy all available space in its parent (like CSS `width: 100%`); "hug contents" means it shrinks or grows to exactly match its content (like CSS `fit-content`). Annotating a component with these terms tells the developer exactly which CSS sizing strategy to implement.

What is a design token tier (primitive, semantic, component)?

Primitive tokens store raw values with no meaning (`$blue-600 = #2563eb`). Semantic tokens map a primitive to a meaning (`$color-text-error = $red-600`) and are what change between light and dark themes. Component tokens map a semantic token to one component's specific use (`$button-background-primary`). This three-tier model lets a rebrand or theme change propagate everywhere automatically instead of requiring hundreds of manual edits.

How should responsive breakpoints be described in a design spec?

State the exact pixel value and which side of it each layout applies to: "above 768px, 2 columns; at or below 768px, 1 column" — not "it changes around tablet size." Precise breakpoint language prevents bugs at the boundary value and lets engineers implement the exact media query (`min-width` or `max-width`) intended.

What is the correct way to communicate an intentional design deviation to engineers?

Name the deviation explicitly, state the reason, and scope it: "the design deviates from the component library here because this screen needs a wider card to fit the chart legend — treat it as a one-off, not a new variant." Without this, engineers either "fix" intentional exceptions back to the standard, or turn every deviation into an unnecessary new permanent variant.

Where can I practise this vocabulary alongside real design workflows?

Start with Design System Vocabulary for foundational terms, then move to Figma Annotation Language and Design Handoff Communication for practical handoff writing. Related topics live in UI/UX Designer and CSS & Frontend Vocabulary.