figma guide

Designing size guides and size selector UI in Figma: charts, fit hints, and handoff

Design size charts, fit recommendation copy, and size selector components in Figma with validation states, modal layouts, and Dev Mode specs for fashion and footwear PDP.

Published
Updated
Jun 24, 2026
Read time
6 min
Level
Beginner

Quick answer

Size selector UI is a variant picker with explicit validation—not a generic dropdown. Model sizes as SizeChip or SizeButton variants with states for default, selected, unavailable, and low_stock; pair every selector with a Size guide link that opens a modal containing measurement tables, fit notes, and optional unit toggle (in/cm). On PDP, block Add to cart until a size is chosen and show inline error copy below the chip row. Reuse the same component on PLP quick views and cart line items as read-only size labels. Start from the Figma guides hub.


Who this is for

  • Product designers shipping apparel, footwear, and gear where wrong-size returns dominate support tickets.
  • Design system teams aligning size pickers across PDP, bundles, and marketplace seller listings.
  • Engineers wiring variant inventory, size-chart CMS content, fit algorithms, and return-policy deep links.

Size selector surfaces

SurfaceGoalKey components
PDP buy boxChoose variant before ATCSizeSelector, SizeGuideLink
Size guide modalReduce returns with measurementsSizeChartTable, FitNote
PLP cardShow available size rangeSizeRangeLabel (optional)
Cart lineConfirm chosen sizeSizeLabel (read-only)
Compare tableCross-product sizingSizeColumn per product
Returns flowExplain exchange sizingLink from returns UI

Verdict: one SizeSelector component set per category (apparel alpha, numeric waist, shoe EU/US/UK)—do not fork a new picker for every product line.


SizeSelector variants

StateVisualInteraction
defaultNeutral borderClick selects
selectedFilled primaryATC enabled
unavailableStrikethrough + mutedDisabled; optional notify on click
low_stockWarning dot or badgeSelectable; show “Only 2 left”
errorRed border on rowNo selection on ATC attempt
SizeSelector
├── Property: category=apparel_alpha | numeric | shoe | ring
├── Property: layout=chip_row | dropdown | split_chest_waist
├── Variant: hasSelection=true | false
├── Variant: validation=none | error
└── Layers:
    ├── LabelRow ("Size" + SizeGuideLink)
    ├── SizeChip[] (component instances)
    ├── FitHint (optional: "Runs small")
    └── InlineError (hidden until validation)

Use interactive components for hover on available chips and tooltips on unavailable sizes explaining OOS or notify option.


Size guide modal layout

SectionContentNotes
HeaderProduct name + “Size guide”Close button top-right
Unit togglein / cm segmented controlPersist user preference
Measurement diagramSilhouette with calloutsOptional illustration layer
Chart tableRows = sizes, cols = chest/waist/hip/lengthSticky header on scroll
Fit note”Runs small—order one size up”Merchandising-controlled copy
How to measureAccordion stepsLink to video optional
Footer CTA”Back to product”Returns focus to PDP

Build the table with Figma tables and data UI patterns—use column components so merchandising can swap headers per category without redrawing the modal shell.


Fit recommendation patterns

PatternWhen to useUI element
Static fit noteConsistent brand sizingText under selector
Review-derived hint”88% say true to size”Secondary line + link to reviews
Body measurement quizHigh return categories”Find my size” link → short form
Model infoFashion PDP”Model is 6’1”, wearing M” near gallery

Do not promise algorithmic fit unless engineering ships it—design the empty and loading states for quiz results anyway.


Category-specific selector layouts

CategoryControl patternSize guide columns
Tops / dressesAlpha chips XS–XXLChest, waist, length
BottomsWaist × inseam matrix or dual dropdownsWaist, hip, inseam
ShoesNumeric row + region toggle EU/US/UKFoot length cm/in
RingsNumeric chipsInner diameter mm
KidsAge + height range tableHeight, chest

For matrices (waist × length), use a grid of cells rather than two independent dropdowns that can combine into invalid SKUs—gray out non-existent combinations.


Validation and ATC gating

User actionSystem responseFigma state to show
ATC with no sizeInline errorvalidation=error on selector
Select unavailable sizeNo selection + tooltipShake animation optional in prototype
Change size after selectionUpdate price if tieredShow price delta near pricing
Size OOS mid-sessionToast + refresh chipsPair with back-in-stock

Recommended copy: “Please select a size”—not “Error” or “Required field” alone.


Handoff checklist

ItemDev Mode annotation
SKU mappingEach chip maps to variantId
Size chart sourceCMS field vs static PDF
Unit preferencelocalStorage key
Invalid combinationsMatrix disabled cells
Notify on OOS sizeSame API as variant notify
Analyticssize_selected, size_guide_open, size_guide_unit_toggle
Accessibilityaria-pressed on chips, table headers scoped
MobileChip wrap vs horizontal scroll

Use Dev Mode checklist and mobile frame presets for narrow viewports.


Common mistakes

MistakeWhy it hurtsFix
Dropdown-only on mobileHard to scan 15 sizesHorizontal chip scroller
Size guide opens new tabBreaks purchase flowModal or drawer
Same chart for all productsWrong measurementsCategory templates
Hiding OOS sizes entirelyUser thinks product discontinuedShow with strikethrough + notify
No unit toggleInternational returnsin/cm at top of chart
Tiny tap targetsMobile mis-tapsMin 44px chip height
Mixing alpha and numeric on one rowConfusing inventoryOne scheme per selector instance

  1. Audit categories — list selector types needed (alpha, numeric, matrix).
  2. Build SizeChip with four states and component properties for size label text.
  3. Compose SizeSelector with label row, guide link, and validation variant.
  4. Design SizeGuideModal with table components and unit toggle.
  5. Wire PDP buy box — selector above primary ATC; gate until selected.
  6. Add fit hint variants — static, review-based, and quiz entry (optional).
  7. Prototype select → open guide → return → ATC success path.
  8. Spec analytics and CMS fields for chart rows in Dev Mode.

FAQ

Use text link (“Size guide”) next to the label for accessibility; optional ruler icon as decorative prefix. Do not rely on icon-only affordance.

For long numeric runs (shoes), use searchable combobox pattern from combobox UI guide or grouped dropdown sections—not 30 chips in one row.

True to size from reviews?

Display aggregate copy only when product has enough reviews—design empty state when count is below threshold.

International sizing?

Show regional labels on chips (EU 42 / US 9) via component property; chart modal includes conversion row or toggle—not separate pages per region.


Next steps

Share on X

§ Keep reading

Related guides.