Meta

Meta's design system spans hardware commerce (Quest VR, Ray-Ban Meta AI glasses) and brand surfaces with a confident product-merchandising voice. The system pairs a stark white canvas with full-bleed photographic product cards, a confident Optimistic VF wordmark/headline face, dual-CTA hero patterns (black primary + outlined secondary), and a saturated cobalt blue (#0064E0) for in-product purchase

Homepage Example

Free Shipping · 30-Day Returns
Meta
Sign Up Free Cart (0)

Welcome to Meta

A modern, elegant design system built for the digital age.

Shop Now
$108
$191
$192
$153
© 2026 Meta

Color Palette (27)

primary#0064e0
primary-deep#0457cb
primary-soft#0091ff
on-primary#ffffff
ink-button#000000
on-ink-button#ffffff
fb-blue#1876f2
meta-link#385898
oculus-purple#a121ce
success#31a24c
success-bg#24e400
attention#f2a918
warning#f7b928
warning-bg#ffe200
critical#e41e3f
critical-strong#f0284a
canvas#ffffff
surface-soft#f1f4f7
ink-deep#0a1317
ink#1c1e21
charcoal#444950
slate#4b4c4f
steel#5d6c7b
stone#8595a4
hairline#ced0d4
hairline-soft#dee3e9
disabled-text#bcc0c4

Typography (15)

Meta
hero-display64px · weight 500
Meta
display-lg48px · weight 500
Meta
heading-lg36px · weight 500
Meta
heading-md28px · weight 300
Meta
heading-sm24px · weight 500
Meta
subtitle-lg18px · weight 700
Meta
subtitle-md18px · weight 400
Meta
body-md-bold16px · weight 700
Meta
body-md16px · weight 400
Meta
body-sm-bold14px · weight 700
Meta
body-sm14px · weight 400
Meta
caption-bold12px · weight 700
Meta
caption12px · weight 400
Meta
button-md14px · weight 700
Meta
link-md16px · weight 700

Components (38)

button-primary
button-primary
button-primary-pressed
button-primary-pressed
button-primary-disabled
button-primary-disabled
button-buy-cta
button-buy-cta
button-buy-cta-pressed
button-buy-cta-pressed
button-secondary
button-secondary
button-ghost
button-ghost
button-pill-tab
button-pill-tab
button-pill-tab-active
button-pill-tab-active
button-icon-circular
button-icon-circular
card-product-feature
card-product-feature
card-feature-photo
card-feature-photo
card-promo-strip
card-promo-strip
card-icon-feature
card-icon-feature
card-checkout-summary
card-checkout-summary
product-thumbnail
product-thumbnail
text-input
text-input
text-input-focused
text-input-focused
text-input-error
text-input-error
search-pill
search-pill
radio-option
radio-option
radio-option-selected
radio-option-selected
color-swatch-circle
color-swatch-circle
badge-promo-yellow
badge-promo-yellow
badge-attention
badge-attention
badge-success
badge-success
badge-critical
badge-critical
promo-banner
promo-banner
faq-accordion-item
faq-accordion-item
why-buy-tile
why-buy-tile
warranty-card
warranty-card
footer-region
footer-region
hero-band-marketing
hero-band-marketing
product-gallery-pdp
product-gallery-pdp
color-sku-picker-row
color-sku-picker-row
feature-icon-row
feature-icon-row
tech-specs-table
tech-specs-table
testimonial-customer-card
testimonial-customer-card

Border Radius

xs (2px)
sm (4px)
md (6px)
lg (8px)
xl (16px)
xxl (24px)
xxxl (32px)
feature (40px)
full (100px)
circle (9999px)

Design Philosophy

Overview

Meta's commerce surfaces (homepage, Quest configurator, Ray-Ban product detail, prescription page) read as a confident hardware merchandiser. The brand voice is photography-first: large, full-bleed product imagery dominates above-the-fold real estate, with white space and tight typographic hierarchy carrying the rest. The system has a recognizable dual-CTA pattern — a black pill-shaped primary on marketing surfaces shifting to a saturated cobalt blue ({colors.primary}) inside the buy-now flows, paired with an outlined ghost button for secondary navigation.

Optimistic VF — Meta's variable display face — anchors the entire system, ranging from a 64px hero display down to a 12px caption. The face's `ss01` and `ss02` stylistic sets are switched on across every heading role, contributing to the brand's slightly humanist, friendly geometric character. Below 768px the system collapses cleanly: hero stacks, pill nav becomes a hamburger, three-up feature grids flatten to a single column, and product configurators drop their right-rail summary into a sticky bottom bar.

**Key Characteristics:**

  • Stark white canvas ({colors.canvas}) carrying full-bleed product photography with `{rounded.xxxl}` (32px) corner softening on showcase tiles
  • Two-tier primary button system: marketing CTAs use {colors.ink-button} pills; commerce CTAs use {colors.primary} cobalt pills inside buy-now panels
  • Optimistic VF as the universal display + body face with consistent `ss01, ss02` OpenType features
  • Pill-shaped buttons ({rounded.full}) and `{rounded.xxxl}`/`{rounded.feature}` cards as the dominant geometric signature
  • Saturated promotional banners (yellow {colors.warning}, dark {colors.ink-deep}) used sparingly above the nav for time-bound offers
  • Photographic feature cards with no card chrome (no border, no shadow) — the product imagery IS the surface treatment

Colors

> Source pages: meta.com/ (homepage), /ai-glasses/ray-ban-meta-skyler-gen-2/ (PDP), /quest/quest-3s/buy-now/ (configurator), /ai-glasses/prescription/ (lens upsell). Token coverage was identical across all four pages — the design system is genuinely unified.

Brand & Accent

  • **Cobalt Primary** ({colors.primary}): The buy-now CTA color. Used on every "Add to cart", "Configure", "Pre-order" button inside the commerce flow and the right-rail purchase panel.
  • **Deep Cobalt** ({colors.primary-deep}): Pressed-state and dark-surface variant of the cobalt primary; also the active link color.
  • **Soft Cobalt** ({colors.primary-soft}): Translucent background tint for informational callouts (`{colors.primary-soft}` at 15% alpha).
  • **Facebook Blue** ({colors.fb-blue}): Selected radio/checkbox state and inline form-control activation color.
  • **Meta Link Blue** ({colors.meta-link}): Reserved for legacy navigation and footer link affordances.
  • **Oculus Purple** ({colors.oculus-purple}): VR product accent — used inside Quest-branded surfaces for category emphasis.

Surface

  • **Canvas White** ({colors.canvas}): Page background and primary card surface.
  • **Soft Cloud** ({colors.surface-soft}): Subtle product-thumbnail and warranty-card background; also the search-pill rest state.
  • **Hairline Gray** ({colors.hairline}): 1px input border and form-control divider.
  • **Hairline Soft** ({colors.hairline-soft}): Quieter divider used on cards, footer separators, and section breaks.

Text

  • **Deep Ink** ({colors.ink-deep}): Primary headline and body text on light surfaces.
  • **Ink** ({colors.ink}): Standard body and secondary headline text.
  • **Charcoal** ({colors.charcoal}): Tertiary body text and form-button labels.
  • **Slate** ({colors.slate}): Section-header copy and supporting microcopy.
  • **Steel** ({colors.steel}): Quieter caption text and footer link hierarchy.
  • **Stone** ({colors.stone}): Disabled or de-emphasized labels.

Semantic

  • **Success** ({colors.success}): "In stock", "Free returns" affirmations.
  • **Attention** ({colors.attention}): Mid-priority alerts and timed callouts.
  • **Warning** ({colors.warning}): Promotional banners ("Get 25% off…") and limited-time tags.
  • **Critical** ({colors.critical}): Validation errors, destructive feedback.
  • **Critical Strong** ({colors.critical-strong}): Form-input error border and inline error labels.

Typography

Font Family

**Optimistic VF** is Meta's proprietary variable display face. Fallbacks: Montserrat, Helvetica, Arial, Noto Sans. The variable axes carry from 300 (light heading-md, used for editorial intro headlines like "Look forward") through 500 (display, hero, heading-sm) up to 700 (subtitle, body emphasis, button labels). Stylistic sets `ss01` and `ss02` are switched on across every heading role — they soften the geometry and give the type a slightly humanist breathing.

A secondary Helvetica fallback chain is used for technical microcopy (12px) inside spec sheets and footer fine print.

Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | OpenType | Use |

|---|---|---|---|---|---|---|

| `{typography.hero-display}` | 64px | 500 | 1.16 | 0 | ss01, ss02 | Homepage hero ("Get 25% off…", category opener) |

| `{typography.display-lg}` | 48px | 500 | 1.17 | 0 | ss01, ss02 | Section-opener display ("Made for prescriptions. Built for comfort.") |

| `{typography.heading-lg}` | 36px | 500 | 1.28 | 0 | ss01, ss02 | Subsection headlines ("Why buy from Meta", "Tech specs") |

| `{typography.heading-md}` | 28px | 300 | 1.21 | 0 | ss01, ss02 | Editorial subheads in lighter weight ("Look forward", "Built for prescriptions") |

| `{typography.heading-sm}` | 24px | 500 | 1.25 | 0 | ss01, ss02 | Card titles, feature-tile headers |

| `{typography.subtitle-lg}` | 18px | 700 | 1.44 | 0 | — | Bold callouts, FAQ question titles |

| `{typography.subtitle-md}` | 18px | 400 | 1.44 | 0 | — | Body lead and longer-line subtitles |

| `{typography.body-md}` | 16px | 400 | 1.50 | -0.16px | — | Primary body text |

| `{typography.body-md-bold}` | 16px | 700 | 1.50 | -0.16px | — | Body emphasis and link-md |

| `{typography.body-sm}` | 14px | 400 | 1.43 | -0.14px | — | Secondary body, helper text |

| `{typography.body-sm-bold}` | 14px | 700 | 1.43 | -0.14px | — | Pill tab labels, footer headings |

| `{typography.caption-bold}` | 12px | 700 | 1.33 | 0 | — | Badge labels, timestamps |

| `{typography.caption}` | 12px | 400 | 1.33 | 0 | — | Footer fine print, legal microcopy |

| `{typography.button-md}` | 14px | 700 | 1.43 | -0.14px | — | Pill button labels |

| `{typography.link-md}` | 16px | 700 | 1.50 | -0.16px | — | Inline navigation links |

Principles

  • Negative letter-spacing on body roles (`-0.14px` to `-0.16px`) tightens the type fractionally — Optimistic VF was designed for this snug-but-not-condensed setting.
  • Editorial subheads use the 300 weight to introduce visual rest between the 500-weight display headlines and the 400-weight body, creating a three-tier visual rhythm.
  • All headings carry `ss01, ss02` stylistic sets together — the design treats them as a paired alternates package, never one without the other.
  • Buttons, pill tabs, and footer headings share `{typography.body-sm-bold}` (14px / 700 / -0.14px), creating a tight visual relationship between interactive elements.

Layout

Spacing System

  • **Base unit**: 4px increment with 8px as the dominant primary step.
  • **Tokens**: `{spacing.xxs}` (4px) · `{spacing.xs}` (8px) · `{spacing.sm}` (10px) · `{spacing.md}` (12px) · `{spacing.base}` (16px) · `{spacing.lg}` (20px) · `{spacing.xl}` (24px) · `{spacing.xxl}` (32px) · `{spacing.xxxl}` (40px) · `{spacing.section-sm}` (48px) · `{spacing.section}` (64px) · `{spacing.section-lg}` (80px) · `{spacing.hero}` (120px).
  • **Section rhythm**: Marketing sections separate at `{spacing.section-lg}` (80px); product detail sections compress to `{spacing.section}` (64px); FAQ stacks tighten further to `{spacing.xxl}` (32px).
  • **Card internal padding**: Standard `{spacing.xxl}` (32px); icon-feature tiles compress to `{spacing.xl}` (24px); promo-strip cards expand to `{spacing.section}` (64px) for hero presence.

Grid & Container

  • Marketing page max-width sits around 1280px with 32–48px gutters.
  • The PDP layout uses a 2-column split: hero gallery (~58% width) + sticky purchase rail (~42%, with `max-width: 380px` on the rail).
  • Three-up feature grids ("Why buy from Meta") use a 24px column gap; six-up product thumbnail rows (color/SKU pickers) use a 12px gap.

Whitespace Philosophy

Whitespace is product-photography-first. Hero sections give product imagery 50–70% of the viewport height; copy is given oxygen to breathe in `{spacing.xxl}` to `{spacing.xxxl}` blocks above and below. Inside the configurator, whitespace tightens — the buy-now panel is information-dense, with `{spacing.base}` to `{spacing.lg}` rhythm between option groups.

Elevation & Depth

The system runs predominantly flat. Elevation is reserved for two interaction layers:

| Level | Treatment | Use |

|---|---|---|

| 0 (flat) | No shadow; `{rounded.xxxl}` rounding + `{colors.hairline-soft}` border | Default product cards, why-buy tiles |

| 1 (subtle) | `rgba(0, 0, 0, 0.2) 1px 1px 0px 0px` | Pill-tab activation indicator |

| 2 (sticky panel) | `rgba(20, 22, 26, 0.3) 0px 1px 4px 0px` | PDP right-rail purchase summary, sticky mobile checkout bar |

Decorative Depth

  • Photography-as-depth: full-bleed product imagery on `{rounded.xxxl}` cards creates atmospheric layering without shadows.
  • Translucent overlays (`rgba(255, 255, 255, 0.1)` to `rgba(10, 19, 23, 0.12)`) cover dark hero photography to lift legibility of overlaid text.
  • Decorative pastel tints inside accessory cards — soft pink, ice-blue, mint — appear briefly behind product cutouts but are NOT formalized as system tokens (treated as photographic content).

Shapes

Border Radius Scale

| Token | Value | Use |

|---|---|---|

| `{rounded.xs}` | 2px | Inline checkbox marks, fine UI corners |

| `{rounded.sm}` | 4px | Tags, micro-controls |

| `{rounded.md}` | 6px | Square thumbnail rounding |

| `{rounded.lg}` | 8px | Form inputs, radio-option containers |

| `{rounded.xl}` | 16px | Standard feature cards, FAQ accordion items |

| `{rounded.xxl}` | 24px | Warranty / accessory tiles, ghost-style action cards |

| `{rounded.xxxl}` | 32px | Photographic feature cards, big promo strips |

| `{rounded.feature}` | 40px | Accessory hero panels, "Built for prescriptions" cards |

| `{rounded.full}` | 100px | Pill buttons, tab chips, badges |

| `{rounded.circle}` | 50% | Color swatches, circular icon buttons |

Photography Geometry

  • Product hero photography sits in `{rounded.xxxl}` (32px) frames more often than rectangles.
  • Color/material swatches are perfect circles (`{rounded.circle}`, 32px diameter, 2px white border ring when selected).
  • Square product thumbnails (`aspect-ratio: 1/1`) use `{rounded.xl}` rounding.
  • Six-up "color & SKU" picker rows use 1:1 aspect tiles with `{rounded.lg}` (8px) corners — tighter than the hero photography frames to differentiate selection-grid context from showcase context.

Components

> Per the no-hover policy, hover states are NOT documented for any component below. Default and pressed/active states only.

Buttons

**`button-primary`** — Black pill primary CTA for marketing surfaces ("Shop", "Pre-order").

  • Background `{colors.ink-button}`, text `{colors.on-ink-button}`, typography `{typography.button-md}`, padding `14px 30px`, rounded `{rounded.full}`.
  • Pressed state `button-primary-pressed` flips background to `{colors.charcoal}`.
  • Disabled state `button-primary-disabled` uses `{colors.disabled-text}` background.

**`button-buy-cta`** — Cobalt pill primary CTA for commerce flows ("Add to cart", "Configure", "Continue").

  • Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `14px 30px`, rounded `{rounded.full}`.
  • Pressed state `button-buy-cta-pressed` deepens background to `{colors.primary-deep}`.
  • This variant ONLY appears inside the buy-now configurator and PDP purchase rail. Marketing surfaces use `button-primary` instead.

**`button-secondary`** — Outlined ghost CTA, often paired with primary in dual-CTA hero patterns.

  • Background transparent, text `{colors.ink-deep}`, border `2px solid {colors.ink-deep}`, typography `{typography.button-md}`, padding `12px 28px`, rounded `{rounded.full}`.

**`button-ghost`** — Quieter outlined variant used for tertiary CTAs.

  • Background transparent, text `{colors.ink-deep}`, border `2px solid rgba(10, 19, 23, 0.12)`, typography `{typography.button-md}`, padding `10px 22px`, rounded `{rounded.full}`.

**`button-pill-tab`** + **`button-pill-tab-active`** — Top-of-page category navigation pills ("Glasses / Quest / Apps").

  • Inactive: background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline}`, padding `8px 16px`, rounded `{rounded.full}`.
  • Active: background `{colors.ink-deep}`, text `{colors.canvas}`. No border in active state — the dark fill replaces it.

**`button-icon-circular`** — 40×40px circular utility buttons (carousel arrows, share, favorite).

  • Background `{colors.canvas}`, icon color `{colors.ink}`, rounded `{rounded.circle}`.

Cards & Containers

**`card-product-feature`** — White feature card with product photography and copy (homepage "Designed for sport", "Advanced. Inside and out.").

  • Background `{colors.canvas}`, rounded `{rounded.xxxl}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`.

**`card-feature-photo`** — Edge-to-edge photographic showcase tile with NO chrome (homepage "Built for prescriptions" full-bleed glasses card).

  • Background `{colors.canvas}` (visible only at the corners), rounded `{rounded.xxxl}`, no padding, no border. The image fills the card; copy is overlaid bottom-left in white.

**`card-promo-strip`** — Dark full-width promo card with embedded copy + CTAs (homepage "Meta Quest brings the magic of virtual reality" wide strip).

  • Background `{colors.ink-deep}`, text `{colors.canvas}`, rounded `{rounded.xxxl}`, padding `{spacing.section}`.

**`card-icon-feature`** — Three-up feature tile with line icon, headline, and short copy ("Free 2-day delivery", "Free 30-day returns", "Worry-free warranty", "Buy now, pay later").

  • Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`.

**`card-checkout-summary`** — PDP right-rail sticky summary with title, price, color picker, "Add to cart" button.

  • Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`, shadow `rgba(20, 22, 26, 0.3) 0px 1px 4px 0px`.

**`product-thumbnail`** — Square product image cell used in color/SKU pickers and "People also bought" rows.

  • Background `{colors.surface-soft}`, rounded `{rounded.xl}`, padding `{spacing.base}`, aspect-ratio `1 / 1`.

**`warranty-card`** — Promo callout for warranty + finance offers ("1y Warranty", "Meta Horizon+").

  • Background `{colors.surface-soft}`, rounded `{rounded.xxl}`, padding `{spacing.xxl}`. Uses pastel-tinted variants for additional perks.

**`why-buy-tile`** — 4-up reassurance tile row in the lower marketing zone.

  • Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xxl} {spacing.xl}`, border `1px solid {colors.hairline-soft}`. Heading in `{typography.subtitle-lg}`, body in `{typography.body-sm}`.

Inputs & Forms

**`text-input`** — Standard form field (footer email subscribe, support form).

  • Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline}`, rounded `{rounded.lg}`, padding `{spacing.md}`, height 44px.

**`text-input-focused`** — Activated state.

  • Border switches to `2px solid {colors.fb-blue}`.

**`text-input-error`** — Validation error state.

  • Border switches to `1px solid {colors.critical-strong}`; error label below in `{colors.critical-strong}` `{typography.body-sm}`.

**`search-pill`** — Top-nav search field.

  • Background `{colors.surface-soft}`, text `{colors.steel}`, typography `{typography.body-sm}`, rounded `{rounded.full}`, height 40px.

**`radio-option`** + **`radio-option-selected`** — Configurator option cards (storage, color variant, shipping option).

  • Inactive: background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}`, border `1px solid rgba(10, 19, 23, 0.12)`.
  • Selected: border switches to `2px solid #0143b5` (deep cobalt) — the cobalt theme persists into form-control selection signaling.

**`color-swatch-circle`** — Round color/material picker (Ray-Ban frame finishes, glass colors).

  • 32px diameter, `{rounded.circle}`, `2px solid {colors.canvas}` ring on selection over the swatch's own fill color.

Badges & Status

**`badge-promo-yellow`** — Limited-time offer chip ("Limited time", "Sale").

  • Background `{colors.warning}`, text `{colors.ink-deep}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`badge-attention`** — Mid-priority status indicator ("Almost gone", "Selling fast").

  • Background `{colors.attention}`, text `{colors.canvas}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`badge-success`** — Affirmative status ("In stock", "Verified", "Free shipping").

  • Background `{colors.success}`, text `{colors.canvas}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`badge-critical`** — Urgent/destructive label ("Out of stock", "Discontinued", error chips).

  • Background `{colors.critical}`, text `{colors.canvas}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`promo-banner`** — Sticky full-width promotional strip ABOVE the top nav ("Get 25% off the #1 selling AI glasses").

  • Background `{colors.ink-deep}` (or `{colors.warning}` for yellow promo variants), text `{colors.canvas}` (or `{colors.ink-deep}` on yellow), typography `{typography.body-sm-bold}`, padding `{spacing.md} {spacing.xl}`. Carries one-line offer copy plus an inline CTA link.

Navigation

**Top Navigation (Desktop)** — Sticky white bar with category pill tabs, search, account, cart.

  • Background `{colors.canvas}`, height ~64px with bottom `1px solid {colors.hairline-soft}`.
  • Left: Meta wordmark logo (61×14px). Center: pill-tab category nav. Right: search-pill + circular icon buttons (account, cart).

**Top Navigation (Mobile)** — Compressed to logo + hamburger + cart icon. Pill-tab nav slides into a full-screen drawer below 768px.

**Promo Banner** — Full-width strip ABOVE the nav for time-bound offers.

  • Background `{colors.ink-deep}` or `{colors.warning}` (yellow), text `{colors.canvas}` or `{colors.ink-deep}`, typography `{typography.body-sm-bold}`, padding `{spacing.md} {spacing.xl}`. Carries one-line offer copy + inline link.

**Breadcrumb (PDP)** — Inline path above the product hero ("Glasses › Ray-Ban Meta › Skyler (Gen 2)").

  • Typography `{typography.body-sm}`, separator dot in `{colors.stone}`, active leaf in `{colors.ink}`, parent links in `{colors.steel}`.

Signature Components

**`hero-band-marketing`** — Full-bleed photographic hero with overlaid copy + dual-CTA pair.

  • Edge-to-edge product photography on a dark or photographic background. Overlay copy in `{typography.hero-display}` white. Below the title: 1-line subtitle in `{typography.subtitle-md}` then `button-primary` + `button-secondary` pair.

**`product-gallery-pdp`** — Product detail page main hero: 4-up vertical thumbnail strip on the left, large product image center, sticky purchase rail right.

  • Thumbnails: 80×80px, `{rounded.lg}`, `{colors.surface-soft}` background, 1px `{colors.hairline-soft}` border (active border switches to `{colors.ink-deep}`).
  • Main image area: ~720×720px on desktop, `{rounded.xxxl}` rounding, photographic surface.
  • Sticky rail uses `card-checkout-summary`.

**`color-sku-picker-row`** — Six-up grid of square product variants with name + price below each.

  • Tile background `{colors.surface-soft}`, rounded `{rounded.lg}`, image padded `{spacing.base}`. Active tile border switches to `2px solid {colors.ink-deep}`. Below the tile: variant name in `{typography.body-sm-bold}` and price in `{typography.body-sm}`.

**`feature-icon-row`** — Four reassurance benefits ("Free 2-day delivery", "Free 30-day returns", "Worry-free warranty", "Buy now, pay later").

  • 4-column grid, each cell uses `card-icon-feature` chrome with a 32px line icon at top, headline `{typography.subtitle-lg}`, body `{typography.body-sm}`.

**`faq-accordion`** — Vertical stack of expandable Q&A items.

  • Each item uses `faq-accordion-item` chrome. Question in `{typography.subtitle-lg}` left, chevron icon (`{colors.steel}`, 20px) right. Expanded answer drops in `{typography.body-md}` text below with `{spacing.base}` top padding.

**`tech-specs-table`** — Two-column key/value table for product specifications.

  • Row layout: spec label (`{typography.body-sm-bold}` `{colors.ink}`) left, spec value (`{typography.body-sm}` `{colors.charcoal}`) right. Row separator `1px solid {colors.hairline-soft}`. Section headers in `{typography.heading-sm}` above each spec group.

**`testimonial-customer-card`** — Small editorial card with author + quote + photo.

  • Background `{colors.canvas}`, rounded `{rounded.xl}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`. Avatar circle 40px, byline in `{typography.body-sm-bold}`, quote in `{typography.body-md}`.

**`footer-region`** — Dense multi-column site footer.

  • Background `{colors.canvas}`, top border `1px solid {colors.hairline-soft}`, padding `{spacing.section} {spacing.xxl}`. Six column groups with section headings in `{typography.body-sm-bold}` `{colors.ink}` and link lists in `{typography.body-sm}` `{colors.steel}`. Bottom row contains language picker, region selector, legal links in `{typography.caption}` `{colors.stone}`.

Do's and Don'ts

Do

  • Reserve `{colors.primary}` (cobalt) for buy-now CTAs only — its visual weight is meaningful precisely because it doesn't appear on marketing pages.
  • Use `{colors.ink-button}` (black) for marketing-surface primary CTAs. Pair with `{colors.button-secondary}` ghost outline for the secondary action.
  • Apply `{rounded.full}` to every button, every category pill, every badge, every chip — buttons are NEVER squared in Meta's system.
  • Apply `{rounded.xxxl}` to photographic product cards and `{rounded.xl}` to icon-feature tiles to maintain the visible card-hierarchy contrast.
  • Switch on `ss01, ss02` together for any Optimistic VF heading. Never one stylistic set without the other.
  • Use the 300-weight `{typography.heading-md}` for editorial subheads — it creates the brand's signature visual rhythm against the 500-weight displays.

Don't

  • Don't use `{colors.primary}` (cobalt) for marketing-surface primary buttons — it conflicts with Meta's brand-history positioning of black-CTA-on-white-canvas marketing.
  • Don't introduce additional accent colors beyond cobalt + Oculus purple. The hardware brand is deliberately monochromatic outside its product photography.
  • Don't soften the corners of pill buttons below `{rounded.full}`. The pill is a brand signature.
  • Don't run feature cards without rounding — `{rounded.xxxl}` is the minimum for any photographic surface.
  • Don't reduce `{typography.body-md}` line-height below 1.50 — the negative letter-spacing already tightens the metric and any further compression breaks legibility.
  • Don't apply heavy shadows to marketing cards. Elevation is a commerce-flow signal, not a marketing flourish.

Responsive Behavior

Breakpoints

| Name | Width | Key Changes |

|---|---|---|

| Mobile (small) | < 480px | Single column. Hero text drops to `{typography.display-lg}` or smaller. Pill tabs collapse into hamburger drawer. PDP gallery stacks above purchase rail; rail becomes sticky bottom bar. |

| Mobile (large) | 480 – 767px | Same as small but feature tiles render two-up. |

| Tablet | 768 – 1023px | Two-column feature grids. Pill-tab nav returns. PDP gallery + purchase rail render side-by-side at compressed proportions (~60/40). |

| Desktop | 1024 – 1359px | Full three- and four-up feature grids; full pill-tab category nav; PDP at standard 58/42 split. |

| Wide Desktop | ≥ 1360px | Same as desktop with wider hero gutters and larger product photography. |

Touch Targets

  • Pill buttons render at 40–44px effective height (with the 14px button text + `14px 30px` padding). Above the WCAG AAA 44px floor.
  • Circular icon buttons are 40×40px — at the AA floor; bumps to 44×44px on mobile via override.
  • Color swatch circles are 32×32px. To hit AAA, the swatch carries a 12px clear hit zone around it (effective hit target ~56px).
  • Form inputs render at 44px height to align with primary button height.

Collapsing Strategy

  • **Promo banner** stays full-width on all breakpoints; truncates with ellipsis on small mobile, retains the inline link affordance.
  • **Pill-tab nav** below 768px collapses into a hamburger drawer; the active tab is rendered as a label inside the closed nav.
  • **PDP layout**: gallery stacks above the purchase summary at < 1024px; the summary becomes a sticky bottom bar with price + "Add to cart" button at < 768px. The full summary remains scrollable above the sticky bar.
  • **Feature grids** (3-up, 4-up) collapse to 2-up at 768–1023px and 1-up at < 768px. Card padding compresses from `{spacing.xxl}` to `{spacing.xl}` at the 1-up breakpoint.
  • **Hero typography**: `{typography.hero-display}` (64px) drops to `{typography.heading-lg}` (36px) at < 768px and `{typography.heading-sm}` (24px) at < 480px.
  • **Footer**: 6-column desktop layout reflows to 2-column at tablet and accordion-collapsed groups at mobile.

Image Behavior

  • Product photography uses 1:1 (thumbnails, color pickers), 4:3 (PDP gallery), and 16:9 (homepage promo strips) ratios.
  • Hero photography is full-bleed with `{rounded.xxxl}` corners; lazy-loaded below the fold.
  • Product variant images preserve their `{rounded.lg}` thumbnails across all breakpoints — they never go full-width on mobile.

Iteration Guide

1. Focus on ONE component at a time. The system has high internal consistency — small precision wins compound.

2. Reference component names and tokens directly (`{colors.primary}`, `{component-name}-pressed`, `{rounded.full}`) — do not paraphrase.

3. Run `npx @google/design.md lint DESIGN.md` after edits to catch broken refs, contrast issues, orphaned tokens.

4. Add new variants as separate `components:` entries (`-pressed`, `-disabled`, `-focused`) — do not bury them inside prose.

5. Default to `{typography.body-md}` for body and `{typography.subtitle-lg}` for emphasis. Headlines step down through `hero-display → display-lg → heading-lg → heading-md → heading-sm`.

6. Keep `{colors.primary}` (cobalt) scarce. If it appears outside the buy-now flow on a viewport, ask whether the surface really needs to look like a checkout panel.

7. Pill-shaped buttons (`{rounded.full}`) always; squared buttons signal "third-party widget" in this design language and should be filtered out of any work surface.

Known Gaps

  • Selected/checked states for non-button form controls (toggle, multi-select) were not visible on the captured surfaces — implement following the cobalt-on-white pattern from `radio-option-selected`.
  • Animation/transition timings are not extracted; recommend 150–250ms ease-out for primary surface transitions and 300ms ease-in-out for accordion expand/collapse.
  • Specific dark-mode token values for canvas, surface, ink, and hairline are not defined; the brand has not surfaced a published dark-mode token set on these commerce pages.
  • Pastel decorative tints inside accessory cards (soft pink, ice blue, mint) appear visually but are not formalized — treat them as photographic content, not as system colors.

개요

Meta의 커머스 표면(홈페이지, Quest 구성기, Ray-Ban 제품 세부 정보, 처방전 페이지)은 자신감 있는 하드웨어 머천다이저처럼 읽혀집니다. 브랜드 목소리는 사진 우선입니다. 크고 완전한 제품 이미지가 스크롤 없이 볼 수 있는 공간을 지배하고 나머지 공간은 공백과 타이트한 인쇄 계층 구조로 구성됩니다. 시스템에는 인식 가능한 듀얼 CTA 패턴이 있습니다. 즉, 마케팅 표면의 검정색 알약 모양의 기본이 지금 구매 흐름 내에서 포화 코발트 블루({colors.primary})로 바뀌고 보조 탐색을 위한 윤곽선 고스트 버튼과 쌍을 이룹니다.

Optimistic VF(Meta의 가변 디스플레이 화면)는 64px 히어로 디스플레이부터 12px 캡션까지 전체 시스템을 고정합니다. 얼굴의 'ss01' 및 'ss02' 스타일 세트는 모든 제목 역할에 걸쳐 활성화되어 브랜드의 약간 인본주의적이고 친근한 기하학적 특성에 기여합니다. 768px 미만에서는 시스템이 깔끔하게 붕괴됩니다. 영웅 스택, 알약 탐색이 햄버거가 되고, 3개 기능 그리드가 단일 열로 편평화되고, 제품 구성자가 오른쪽 레일 요약을 끈끈한 하단 막대에 놓습니다.

**주요 특징:**

  • 쇼케이스 타일에 '{rounded.xxxl}'(32px) 코너 소프트닝을 적용한 풀 블리드 제품 사진을 담은 순백색 캔버스({colors.canvas})
  • 2단계 기본 버튼 시스템: 마케팅 CTA는 {colors.ink-button} 알약을 사용합니다. 상거래 CTA는 지금 구매 패널 내에 {colors.primary} 코발트 알약을 사용합니다.
  • 일관된 `ss01, ss02` OpenType 기능을 갖춘 범용 디스플레이 + 본체 페이스로서 낙관적인 VF
  • 알약 모양의 버튼({rounded.full}) 및 `{rounded.xxxl}`/`{rounded.feature}` 카드가 지배적인 기하학적 서명입니다.
  • 시간 제한이 있는 제안을 위해 탐색 위에 드물게 사용되는 포화된 홍보 배너(노란색 {colors.warning}, 어두운 {colors.ink-deep})
  • 카드 크롬이 없는 사진 기능 카드(경계 없음, 그림자 없음) — 제품 이미지는 표면 처리입니다.

색상

> 소스 페이지: Meta.com/(홈페이지), /ai-glasses/ray-ban-meta-skyler-gen-2/(PDP), /quest/quest-3s/buy-now/(구성자), /ai-glasses/prescription/(렌즈 상향 판매). 토큰 적용 범위는 4개 페이지 모두에서 동일했습니다. 즉, 디자인 시스템이 완전히 통합되었습니다.

브랜드 및 액센트

  • **코발트 프라이머리** ({colors.primary}): 즉시 구매 가능한 CTA 색상입니다. 상거래 흐름 및 오른쪽 구매 패널 내부의 모든 "장바구니에 추가", "구성", "선주문" 버튼에 사용됩니다.
  • **깊은 코발트** ({colors.primary-deep}): 코발트 원색의 압착 상태 및 어두운 표면 변형; 활성 링크 색상도 마찬가지입니다.
  • **소프트 코발트**({colors.primary-soft}): 정보 설명선을 위한 반투명 배경 색조(15% 알파에서 `{colors.primary-soft}`).
  • **Facebook Blue** ({colors.fb-blue}): 선택된 라디오/체크박스 상태 및 인라인 양식 컨트롤 활성화 색상입니다.
  • **Meta Link Blue** ({colors.meta-link}): 레거시 탐색 및 바닥글 링크 어포던스용으로 예약되어 있습니다.
  • **Oculus Purple** ({colors.oculus-purple}): VR 제품 강조 — 카테고리 강조를 위해 Quest 브랜드 표면 내부에 사용됩니다.

표면

  • **캔버스 흰색**({colors.canvas}): 페이지 배경 및 기본 카드 표면.
  • **소프트 클라우드**({colors.surface-soft}): 미묘한 제품 썸네일 및 보증 카드 배경; 또한 검색 알약 휴식 상태.
  • **헤어라인 그레이** ({colors.hairline}): 1px 입력 테두리 및 양식 제어 구분선.
  • **Hairline Soft** ({colors.hairline-soft}): 카드, 바닥글 구분 기호 및 섹션 나누기에 사용되는 조용한 구분선입니다.

텍스트

  • **Deep Ink** ({colors.ink-deep}): 밝은 표면의 기본 헤드라인 및 본문 텍스트입니다.
  • **잉크**({colors.ink}): 표준 본문 및 보조 헤드라인 텍스트입니다.
  • **Charcoal** ({colors.charcoal}): 3차 본문 텍스트 및 양식 버튼 라벨입니다.
  • **Slate** ({colors.slate}): 섹션 헤더 사본 및 지원 마이크로카피.
  • **Steel** ({colors.steel}): 캡션 텍스트 및 바닥글 링크 계층 구조가 더 조용해졌습니다.
  • **Stone** ({colors.stone}): 비활성화되거나 강조되지 않은 라벨입니다.

의미론

  • **성공** ({colors.success}): "재고 있음", "무료 반품" 확인.
  • **주의**({colors.attention}): 우선순위가 중간인 알림 및 시간 제한 콜아웃입니다.
  • **경고**({colors.warning}): 프로모션 배너("25% 할인 받기…") 및 기간 한정 태그.
  • **Critical** ({colors.tical}): 유효성 검사 오류, 파괴적인 피드백.
  • **Critical Strong** ({colors.tical-strong}): 양식 입력 오류 테두리 및 인라인 오류 레이블입니다.

타이포그래피

글꼴 계열

**Optimistic VF**는 메타의 독자적인 가변 디스플레이 페이스입니다. 폴백: Montserrat, Helvetica, Arial, Noto Sans. 가변 축은 300("앞으로 보기"와 같은 편집 소개 헤드라인에 사용되는 가벼운 제목-md)부터 500(표시, 영웅, 제목-SM), 최대 700(자막, 본문 강조, 버튼 레이블)까지 전달됩니다. 스타일 세트 `ss01` 및 `ss02`는 모든 제목 역할에 걸쳐 활성화됩니다. 이는 기하학적 구조를 부드럽게 하고 문자에 약간 휴머니즘적인 호흡을 부여합니다.

보조 Helvetica 폴백 체인은 사양 시트 및 바닥글 핀 내부의 기술 마이크로카피(12px)에 사용됩니다.

概要

Meta のコマース画面 (ホームページ、クエスト コンフィギュレーター、レイバン製品の詳細、処方箋ページ) は、自信に満ちたハードウェア マーチャンダイザーであることがわかります。ブランドの主張は写真第一です。大きく、フルブリードの製品画像がアバブザフォールドの領域を占め、空白スペースとタイトなタイポグラフィーの階層が残りを担っています。このシステムには、認識可能なデュアル CTA パターンがあり、マーケティング画面上の黒い錠剤の形のプライマリが、購入フロー内で飽和したコバルト ブルー ({colors.primary}) に変化し、セカンダリ ナビゲーション用の輪郭を描かれたゴースト ボタンと組み合わされています。

Optimistic VF (Meta の可変表示面) は、64 ピクセルのヒーロー ディスプレイから 12 ピクセルのキャプションに至るまで、システム全体を固定します。顔の「ss01」と「ss02」のスタイル セットは、すべての見出しの役割にわたってオンになっており、ブランドの少しヒューマニストで親しみやすい幾何学的な特徴に貢献しています。 768 ピクセル未満では、システムはきれいに崩壊します。ヒーローはスタックされ、ピル ナビゲーションはハンバーガーになり、スリーアップ フィーチャー グリッドは 1 つの列に平坦になり、製品コンフィギュレーターは右側のレールの概要を粘着性のある下部バーにドロップします。

**主な特徴:**

  • 真っ白なキャンバス ({colors.canvas}) にフルブリードの製品写真を掲載し、ショーケースのタイル上で `{rounded.xxxl}` (32px) コーナーを柔らかくします。
  • 2 層のプライマリ ボタン システム: マーケティング CTA は {colors.ink-button} 錠剤を使用します。コマース CTA は、今すぐ購入パネル内で {colors.primary} コバルト錠剤を使用します
  • ユニバーサルディスプレイとしてのオプティミスティック VF + 一貫した `ss01、ss02` OpenType 機能を備えたボディフェイス
  • 錠剤の形のボタン ({rounded.full}) と `{rounded.xxxl}`/`{rounded.feature}` カードが主要な幾何学的特徴として使用されます
  • 飽和したプロモーション バナー (黄色の {colors.warning}、濃い色の {colors.ink-deep}) は、時間制限付きのオファーのためにナビゲーションの上に控えめに使用されます
  • カードクロームなしの写真機能カード(境界線なし、影なし) - 製品画像は表面処理です

> ソース ページ:meta.com/ (ホームページ)、/ai-glasses/ray-ban-meta-skyler-gen-2/ (PDP)、/quest/quest-3s/buy-now/ (コンフィギュレーター)、/ai-glasses/prescription/ (レンズのアップセル)。トークンの適用範囲は 4 ページすべてで同一であり、デザイン システムは完全に統一されています。

ブランドとアクセント

  • **Cobalt Primary** ({colors.primary}): 今すぐ購入できる CTA カラー。コマース フロー内のすべての「カートに追加」、「構成」、「予約注文」ボタンと右側のレールの購入パネルで使用されます。
  • **ディープ コバルト** ({colors.primary-deep}): コバルト プライマリのプレス状態および暗い表面のバリアント。アクティブなリンクの色でもあります。
  • **ソフト コバルト** ({colors.primary-soft}): 情報コールアウト用の半透明の背景の色合い (15% アルファの `{colors.primary-soft}`)。
  • **Facebook ブルー** ({colors.fb-blue}): 選択されたラジオ/チェックボックスの状態とインライン フォーム コントロールのアクティブ化の色。
  • **メタ リンク ブルー** ({colors.meta-link}): 従来のナビゲーションとフッター リンク アフォーダンス用に予約されています。
  • **Oculus Purple** ({colors.oculus-purple}): VR 製品のアクセント — カテゴリを強調するために Quest ブランドの表面内で使用されます。

表面

  • **キャンバス ホワイト** ({colors.canvas}): ページの背景と主要なカード表面。
  • **ソフト クラウド** ({colors.surface-soft}): 微妙な製品サムネイルと保証カードの背景。探索薬の休息状態も。
  • **ヘアライン グレー** ({colors.hairline}): 1 ピクセルの入力境界線とフォーム コントロールの分割線。
  • **Hairline Soft** ({colors.hairline-soft}): カード、フッター区切り、セクション区切りで使用される静かな分割線。

テキスト

  • **ディープ インク** ({colors.ink-deep}): 明るい表面上の主要な見出しと本文のテキスト。
  • **インク** ({colors.ink}): 標準の本文および二次見出しテキスト。
  • **Charcoal** ({colors.charcoal}): 三次本文テキストとフォームボタンラベル。
  • **スレート** ({colors.slate}): セクションヘッダーのコピーとサポートするマイクロコピー。
  • **Steel** ({colors.steel}): キャプション テキストとフッター リンクの階層が静かになりました。
  • **Stone** ({colors.stone}): ラベルが無効または強調されません。

セマンティック

  • **成功** ({colors.success}): 「在庫あり」、「返品無料」の確認。
  • **注意** ({colors.attention}): 中優先度のアラートと時間指定のコールアウト。
  • **警告** ({colors.warning}): プロモーション バナー (「25% オフ…」) および期間限定タグ。
  • **重大** ({colors.critical}): 検証エラー、破壊的なフィードバック。
  • **Critical Strong** ({colors.critical-strong}): フォーム入力エラー境界線とインライン エラー ラベル。

タイポグラフィー

フォントファミリー

**オプティミスティック VF** はメタ社独自の可変表示面です。フォールバック: Montserrat、Helvetica、Arial、Noto Sans。変数軸は、300 (明るい見出し-md、「楽しみにしてください」などの編集上のイントロ見出しに使用) から 500 (表示、ヒーロー、見出し-sm) まで、最大 700 (字幕、本文強調、ボタン ラベル) まで続きます。文体セット `ss01` と `ss02` は、すべての見出しの役割にわたってオンになっています。これらは、幾何学模様を柔らかくし、活字にわずかに人間味のある息づかいを与えます。

セカンダリ Helvetica フォールバック チェーンは、スペック シートとフッター フィン内のテクニカル マイクロコピー (12px) に使用されます。