Apple

A photography-first interface that turns marketing into a museum gallery. Edge-to-edge product tiles alternate light and dark canvases, framed by SF Pro Display headlines with negative letter-spacing and a single Action Blue (#0066cc) interactive color. UI chrome recedes so the product can speak — no decorative gradients, no shadows on chrome, only the one signature drop-shadow under product image

Homepage Example

Apple
LatestTechCulture
Spotlight

Apple: The Future of Design

Read more

Article A
Read more
Article B
Read more
Article C
Read more
Article D
Read more
© 2026 Apple

Color Palette (21)

primary#0066cc
primary-focus#0071e3
primary-on-dark#2997ff
ink#1d1d1f
body#1d1d1f
body-on-dark#ffffff
body-muted#cccccc
ink-muted-80#333333
ink-muted-48#7a7a7a
divider-soft#f0f0f0
hairline#e0e0e0
canvas#ffffff
canvas-parchment#f5f5f7
surface-pearl#fafafc
surface-tile-1#272729
surface-tile-2#2a2a2c
surface-tile-3#252527
surface-black#000000
surface-chip-translucent#d2d2d7
on-primary#ffffff
on-dark#ffffff

Typography (16)

Apple
hero-display56px · weight 600
Apple
display-lg40px · weight 600
Apple
display-md34px · weight 600
Apple
lead28px · weight 400
Apple
lead-airy24px · weight 300
Apple
tagline21px · weight 600
Apple
body-strong17px · weight 600
Apple
body17px · weight 400
Apple
dense-link17px · weight 400
Apple
caption14px · weight 400
Apple
caption-strong14px · weight 600
Apple
button-large18px · weight 300
Apple
button-utility14px · weight 400
Apple
fine-print12px · weight 400
Apple
micro-legal10px · weight 400
Apple
nav-link12px · weight 400

Components (24)

button-primary
button-primary
button-primary-focus
button-primary-focus
button-primary-active
button-primary-active
button-secondary-pill
button-secondary-pill
button-dark-utility
button-dark-utility
button-pearl-capsule
button-pearl-capsule
button-store-hero
button-store-hero
button-icon-circular
button-icon-circular
text-link
text-link
text-link-on-dark
text-link-on-dark
global-nav
global-nav
sub-nav-frosted
sub-nav-frosted
product-tile-light
product-tile-light
product-tile-parchment
product-tile-parchment
product-tile-dark
product-tile-dark
product-tile-dark-2
product-tile-dark-2
product-tile-dark-3
product-tile-dark-3
store-utility-card
store-utility-card
configurator-option-chip
configurator-option-chip
configurator-option-chip-selected
configurator-option-chip-selected
search-input
search-input
floating-sticky-bar
floating-sticky-bar
environment-quote-card
environment-quote-card
footer
footer

Border Radius

none (0px)
xs (5px)
sm (8px)
md (11px)
lg (18px)
pill (9999px)
full (9999px)

Design Philosophy

Overview

Apple's web presence is a masterclass in **reverent product photography framed by near-invisible UI**. Every page is a stack of edge-to-edge product "tiles" — alternating light and dark canvases, each centered on a hero headline, a one-line tagline, two tiny blue pill CTAs, and an impossibly crisp product render. Nothing competes with the product. Typography is confident but quiet; color is either pure white, an off-white parchment, or a near-black tile; interactive elements are a single, quiet blue.

Density is unusually low even by contemporary SaaS standards. Each tile occupies roughly one viewport, and there is no decorative chrome — no borders, no gradients, no decorative frames, no shadows on headlines. Elevation appears only when a product image rests on a surface (a single soft `rgba(0, 0, 0, 0.22) 3px 5px 30px` drop for visual weight). The result is a catalog that feels more like a museum gallery: the wall disappears and the artifact takes over.

Store and shop surfaces retain the same chassis but switch modes. The product configurator (iPhone 17 Pro, accessories grid) introduces a tight grid of white utility cards at `{rounded.lg}` (18px) radius with a thin border, paired with a persistent thin sub-nav strip. The environment page leans darker and more editorial. Across all five surfaces the typographic system, spacing rhythm, and the single blue accent are consistent — this is one design language expressed at different volumes.

**Key Characteristics:**

  • Photography-first presentation; UI recedes so the product can speak.
  • Alternating full-bleed tile sections: white/parchment ↔ near-black, with the color change itself acting as the section divider.
  • Single blue accent (`{colors.primary}` — #0066cc) carries every interactive element. No second brand color exists.
  • Two button grammars: tiny blue pill CTAs (`{rounded.pill}`) and compact utility rects (`{rounded.sm}`).
  • SF Pro Display + SF Pro Text — negative letter-spacing at display sizes for the signature "Apple tight" headline feel.
  • Whisper-soft elevation used only when a product image needs to breathe — exactly one drop-shadow in the entire system.
  • Tight two-row nav: slim `{component.global-nav}` + product-specific `{component.sub-nav-frosted}` with persistent right-aligned primary CTA.
  • Section rhythm across multiple pages: light hero → dark product tile → light utility tile → dark tile → parchment footer — a predictable pulse.

Colors

> **Source pages analyzed:** homepage, environment, store, iPhone 17 Pro buy page, accessories index. The color system is identical across all five surfaces; only the surface-mode mix differs.

Brand & Accent

  • **Action Blue** (`{colors.primary}` — #0066cc): The single brand-level interactive color. All text links, all blue pill CTAs ("Learn more", "Buy"), and the focus ring root. This is Apple's quiet but universal "click me" signal. Press state shifts to a slightly darker variant via the active scale transform rather than a hex change.
  • **Focus Blue** (`{colors.primary-focus}` — #0071e3): A marginally brighter sibling of Action Blue, reserved for the keyboard focus ring on buttons (`outline: 2px solid`).
  • **Sky Link Blue** (`{colors.primary-on-dark}` — #2997ff): A brighter blue used on dark surfaces for in-copy links and inline callouts, where Action Blue would disappear against the tile background.

Surface

  • **Pure White** (`{colors.canvas}` — #ffffff): The dominant canvas. Content, utility cards, store tiles, configurator grids.
  • **Parchment** (`{colors.canvas-parchment}` — #f5f5f7): The signature Apple off-white. Used for alternating light tiles, footer region, and the default page canvas in store utility sections. Just different enough from white to create rhythm.
  • **Pearl Button** (`{colors.surface-pearl}` — #fafafc): A near-white used as the fill for secondary "ghost" buttons — lighter than the parchment canvas so the button still reads as a button against `{colors.canvas-parchment}`.
  • **Near-Black Tile 1** (`{colors.surface-tile-1}` — #272729): The primary dark-tile surface on the homepage product grid.
  • **Near-Black Tile 2** (`{colors.surface-tile-2}` — #2a2a2c): A micro-step lighter — used where a dark tile sits directly above or below Tile 1 to create the faintest separation.
  • **Near-Black Tile 3** (`{colors.surface-tile-3}` — #252527): A micro-step darker — used at the bottom of the stack and in embedded video/player frames.
  • **Pure Black** (`{colors.surface-black}` — #000000): Reserved for true void — video player backgrounds, edge-to-edge photographic overlays, the global nav bar background.
  • **Translucent Chip Gray** (`{colors.surface-chip-translucent}` — #d2d2d7): The base hex of the translucent gray chip used over photography for circular control buttons. In production, applied at ~64% alpha as `rgba(210, 210, 215, 0.64)`.

Text

  • **Near-Black Ink** (`{colors.ink}` — #1d1d1f): The voice of every headline, every body paragraph, and the dark utility button's fill. Chosen instead of pure black to keep the page feeling photographic rather than printed.
  • **Body** (`{colors.body}` — #1d1d1f): Same hex as ink — Apple uses one near-black tone for all text on light surfaces.
  • **Body On Dark** (`{colors.body-on-dark}` — #ffffff): All text on dark tiles and on the global nav bar.
  • **Body Muted** (`{colors.body-muted}` — #cccccc): Secondary copy on dark tiles where pure white would be too loud.
  • **Ink Muted 80** (`{colors.ink-muted-80}` — #333333): Body text on the white Pearl Button surface — slightly softer than pure black.
  • **Ink Muted 48** (`{colors.ink-muted-48}` — #7a7a7a): Disabled button text and legal fine-print.

Hairlines & Borders

  • **Divider Soft** (`{colors.divider-soft}` — #f0f0f0): The "border" tone on secondary buttons — functions as a ring shadow rather than a hard line. In production, often applied as `rgba(0, 0, 0, 0.04)`.
  • **Hairline** (`{colors.hairline}` — #e0e0e0): The 1px hairline border on store utility cards and configurator chips.

Brand Gradient

**No decorative gradients.** Atmospheric depth on product photography (the iPhone 17 Pro camera plate, the Apple Watch bands, AirPods reflections) is inherent to the imagery, not a CSS gradient overlay. The environment page's hero uses photographic atmosphere (mountain vista at dawn) but no gradient tokens are defined. Apple is the rare luxury-brand site with zero gradient-based design tokens.

Typography

Font Family

  • **Display**: `SF Pro Display, system-ui, -apple-system, sans-serif` — Apple's proprietary display face, optimized for sizes ≥ 19px. Defines the voice of every headline.
  • **Body / UI**: `SF Pro Text, system-ui, -apple-system, sans-serif` — the text-optimized variant used for body copy, captions, buttons, and links below 20px.
  • **OpenType features**: `font-variant-numeric: numerator` is enabled on numeric links (pricing tables, spec sheets). Display sizes rely on tight tracking rather than contextual ligatures.

Hierarchy

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

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

| `{typography.hero-display}` | 56px | 600 | 1.07 | -0.28px | Hero headline; the signature "Apple tight" tracking |

| `{typography.display-lg}` | 40px | 600 | 1.10 | 0 | Tile headlines atop every product tile |

| `{typography.display-md}` | 34px | 600 | 1.47 | -0.374px | Section heads (SF Pro Text at display proportions) |

| `{typography.lead}` | 28px | 400 | 1.14 | 0.196px | Product tile subcopy |

| `{typography.lead-airy}` | 24px | 300 | 1.5 | 0 | Environment-page lead paragraphs (the rare weight 300) |

| `{typography.tagline}` | 21px | 600 | 1.19 | 0.231px | Sub-tile tagline; sub-nav category name |

| `{typography.body-strong}` | 17px | 600 | 1.24 | -0.374px | Inline strong emphasis |

| `{typography.body}` | 17px | 400 | 1.47 | -0.374px | Default paragraph |

| `{typography.dense-link}` | 17px | 400 | 2.41 | 0 | Footer / store utility link lists (relaxed leading) |

| `{typography.caption}` | 14px | 400 | 1.43 | -0.224px | Secondary captions, button text |

| `{typography.caption-strong}` | 14px | 600 | 1.29 | -0.224px | Emphasized captions |

| `{typography.button-large}` | 18px | 300 | 1.0 | 0 | Store hero CTAs (the rare weight 300) |

| `{typography.button-utility}` | 14px | 400 | 1.29 | -0.224px | Utility/nav button labels |

| `{typography.fine-print}` | 12px | 400 | 1.0 | -0.12px | Fine-print, footer body |

| `{typography.micro-legal}` | 10px | 400 | 1.3 | -0.08px | Micro legal disclaimers |

| `{typography.nav-link}` | 12px | 400 | 1.0 | -0.12px | Global nav menu items |

Principles

  • **Negative letter-spacing at display sizes.** Every headline at 17px and up carries a slight tracking tighten (`-0.12 → -0.374px`). This produces the iconic "Apple tight" headline cadence. Never used at 12px or below.
  • **Body copy at 17px, not 16px.** Apple breaks the SaaS convention and runs paragraph text at 17px. The extra pixel gives the page an unmistakable "reading, not scanning" pace.
  • **Weight 300 is real and rare.** Used deliberately on a handful of large-size reads (`{typography.button-large}` at 18px/300 and `{typography.lead-airy}` at 24px/300). It's not an accident — it's a light-atmosphere cue reserved for moments where the content should feel airy.
  • **Weight 600, not 700, for headlines.** Apple's headlines sit at weight 600. Weight 700 is used sparingly for `{typography.tagline}` (21px) when a touch more assertion is needed.
  • **Line-height is context-specific.** Display sizes use 1.07–1.19 (tight). Body uses 1.47. Utility link stacks in the footer/store use an unusually relaxed 2.41 (`{typography.dense-link}`). The 2.41 is not a bug — it's how the footer's dense link columns breathe.
  • **Weight 500 is deliberately absent.** The ladder is 300 / 400 / 600 / 700. Mid-weight readings always use 600.

Note on Font Substitutes

SF Pro is Apple's proprietary system font. When building off-system:

  • Use `system-ui, -apple-system, BlinkMacSystemFont` as the first stack entry — on macOS/iOS/Safari this resolves to the real SF Pro.
  • For non-Apple platforms, **Inter** (Google Fonts, variable) is the closest open-source equivalent. Inter at weight 600 with `font-feature-settings: "ss03"` approximates SF Pro's rounded "a" character.
  • Nudge `letter-spacing` down by `-0.01em` on display sizes to re-create the Apple tight feel; Inter's default tracking runs slightly wider than SF Pro.
  • For body text, tighten line-height by `0.03` (from 1.47 → 1.44) when substituting Inter — Inter's taller x-height needs less leading.

Layout

Spacing System

  • **Base unit:** 8px. Sub-base values (2, 4, 5, 6, 7) are used for tight typographic adjustments; structural layout snaps to 8/12/16/20/24.
  • **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 17px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 80px.
  • **Section vertical padding:** `{spacing.section}` (80px) inside a product tile; tiles stack edge-to-edge with 0 gap (the color change provides the break).
  • **Card padding:** `{spacing.lg}` (24px) inside utility grid cards.
  • **Button padding:** 8–11px vertical, 15–22px horizontal.
  • **Universal rhythm constants:** the 17px body line-height multiplier (~25px line) and 21px tagline size show up on every analyzed page.

Grid & Container

  • **Max content width:** ~980px on text-heavy sections (environment), ~1440px on product grids (store, accessories), full-bleed for product tiles (homepage).
  • **Column patterns:** 3 to 5 column utility card grid on store/accessories; 2-column side-by-side tiles on homepage occasional sections; single-column centered stack on product tile heroes.
  • **Gutters:** 20–24px between cards in a utility grid.

Whitespace Philosophy

Apple's whitespace is the product's pedestal. Every tile begins with at least 64px of air above its headline and 48–64px below. Product renders are never crowded; the nearest content to a product image is at least 40px away. The footer is the only area that breaks this — there, Apple goes deliberately dense to make the full information architecture visible at a glance.

Elevation & Depth

| Level | Treatment | Use |

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

| Flat | No shadow, no border | Full-bleed tiles, global nav, footer, body sections |

| Soft hairline | 1px `rgba(0, 0, 0, 0.08)` border | Utility cards, sub-nav frosted-glass separator |

| Backdrop blur | `backdrop-filter: blur(N)` on Parchment 80% | Sub-nav and the iPhone buy floating sticky bar |

| Product shadow | `rgba(0, 0, 0, 0.22) 3px 5px 30px 0` | Product renders resting on a surface (the only true "shadow" in the system) |

**Shadow philosophy.** Apple uses **exactly one** drop-shadow, and it is applied to photographic product imagery — never to cards, never to buttons, never to text. Elevation in the UI comes from (a) surface-color change (light tile ↔ dark tile) and (b) backdrop-blur on sticky bars. The single shadow is about giving the product weight, not about UI hierarchy.

Decorative Depth

  • **Atmospheric imagery** on the environment page (photographic vista) supplies mood; no CSS gradient involved.
  • **Edge-to-edge tile alternation** creates rhythm without borders or shadows — the color change itself is the divider.
  • **Backdrop-filter blur** on `{component.sub-nav-frosted}` and `{component.floating-sticky-bar}` creates a "floating over content" effect that's functional, not decorative.

Shapes

Border Radius Scale

| Token | Value | Use |

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

| `{rounded.none}` | 0px | Full-bleed product tiles (no corner rounding) |

| `{rounded.xs}` | 5px | Inline links when styled as subtle chips (rare) |

| `{rounded.sm}` | 8px | Dark utility buttons (Sign In, Bag), inline card imagery |

| `{rounded.md}` | 11px | White Pearl Button capsules |

| `{rounded.lg}` | 18px | Store utility cards, accessories grid cards |

| `{rounded.pill}` | 9999px | Primary blue pill CTAs, sub-nav buy button, configurator option chips, search input — the signature Apple pill |

| `{rounded.full}` | 9999px / 50% | Circular control chips floating over photography |

Photography Geometry

  • **Hero imagery**: full-bleed, 21:9 or taller on the homepage; 16:9 on environment and shop pages. Product renders are photographic-realistic, often shot on a tinted surface that becomes the tile background.
  • **Product renders**: PNG/WebP with transparency; rest on a surface tile and pick up the system shadow.
  • **Accessory grid**: square 1:1 crops at `{rounded.lg}` (18px) radius, light neutral backgrounds, product centered with 20–40px internal padding.
  • **No rounded imagery in hero tiles** — images are full-bleed rectangular. Rounding (`{rounded.sm}`, `{rounded.lg}`) appears only on inline card imagery.
  • Lazy-loading via responsive `srcset` and `sizes` across all breakpoints; CDN-optimized WebP.

Components

Top Navigation

**`global-nav`** — Persistent, ultra-thin black nav bar pinned to the top of every page. Background `{colors.surface-black}`, height 44px, text `{colors.on-dark}` in `{typography.nav-link}` (12px / 400 / -0.12px tracking). Links are quiet, spaced ~20px apart, running edge-to-edge across the top. Right-aligned cluster: Search, Bag icons — always visible. On mobile, collapses to hamburger at ~834px and the Apple logo centers.

**`sub-nav-frosted`** — Surface-specific nav that sticks below the global nav. Background `{colors.canvas-parchment}` at 80% opacity with backdrop-filter blur, creating a frosted-glass effect. Height 52px. Content on left: product category name ("iPhone", "Store", "Accessories") in `{typography.tagline}` (21px / 600). Content right: inline nav links in `{typography.button-utility}` (14px), ending in a persistent `{component.button-primary}` ("Buy") or a utility link.

Buttons

**`button-primary`** — The signature Apple action. Background `{colors.primary}` (Action Blue #0066cc), text `{colors.on-primary}` in `{typography.body}` (SF Pro Text 17px / 400), rounded `{rounded.pill}` (full pill — capsule-shaped), padding 11px × 22px. The full-pill radius IS the brand action signal.

  • Active state: `{component.button-primary-active}` — `transform: scale(0.95)` (the system-wide micro-interaction).
  • Focus state: `{component.button-primary-focus}` — 2px solid `{colors.primary-focus}` outline.

**`button-secondary-pill`** — Used as the second CTA when two blue pills appear together ("Learn more" / "Buy"). Background transparent, text `{colors.primary}`, 1px solid `{colors.primary}` border, rounded `{rounded.pill}`, padding 11px × 22px. Reads as a "ghost pill."

**`button-dark-utility`** — Global nav actions (Sign In, Bag, language selector). Background `{colors.ink}` (#1d1d1f), text `{colors.on-dark}` in `{typography.button-utility}` (14px / 400 / -0.224px tracking), rounded `{rounded.sm}` (8px), padding 8px × 15px. Active state shrinks via `transform: scale(0.95)`.

**`button-pearl-capsule`** — Product-card secondary button. Background `{colors.surface-pearl}` (#fafafc), text `{colors.ink-muted-80}` in `{typography.caption}` (14px), 3px solid `{colors.divider-soft}` border (functions as a soft ring rather than a visible line), rounded `{rounded.md}` (11px), padding 8px × 14px.

**`button-store-hero`** — A larger primary CTA used on store hero surfaces. Same Action Blue + Paper White as `{component.button-primary}`, but with `{typography.button-large}` (18px / 300 — note the rare weight 300) and slightly more padding (14px × 28px). Used sparingly on the store landing.

**`button-icon-circular`** — Floats over photography. 44 × 44px, background `{colors.surface-chip-translucent}` at ~64% alpha, icon in `{colors.ink}`, rounded `{rounded.full}`. Used for carousel controls, close buttons, and in-image controls (product image thumbnails on the iPhone buy page).

**`text-link`** — Inline body links in `{colors.primary}` (Action Blue). Underlined or non-underlined per context.

**`text-link-on-dark`** — Inline body links on dark tiles in `{colors.primary-on-dark}` (Sky Link Blue #2997ff) — Action Blue would disappear against `{colors.surface-tile-1}`.

Cards & Containers

**`product-tile-light`** — Full-bleed light tile. Background `{colors.canvas}` (white), text `{colors.ink}`, rounded `{rounded.none}` (0 — tiles touch edges), vertical padding `{spacing.section}` (80px). Centered stack: product name in `{typography.display-lg}` (40px / 600) → one-line tagline in `{typography.lead}` (28px / 400) → two `{component.button-primary}` CTAs ("Learn more" / "Buy") → product render resting on the surface with the system shadow.

**`product-tile-parchment`** — Same as `{component.product-tile-light}` but on `{colors.canvas-parchment}` (#f5f5f7). Used to break two consecutive white tiles.

**`product-tile-dark`** — Full-bleed dark tile. Background `{colors.surface-tile-1}` (#272729), text `{colors.on-dark}`, rounded `{rounded.none}`, vertical padding `{spacing.section}` (80px). Same content stack as the light tile but with `{component.text-link-on-dark}` for inline copy and `{component.button-primary}` (Action Blue still works on the dark surface). Used on the homepage product grid as the alternating dark band.

**`product-tile-dark-2`** — Variant on `{colors.surface-tile-2}` (#2a2a2c). Used where a dark tile sits directly above or below `{component.product-tile-dark}` to create the faintest separation through micro-step lightness change.

**`product-tile-dark-3`** — Variant on `{colors.surface-tile-3}` (#252527). Used at the bottom of the stack and in embedded video/player frames.

**`store-utility-card`** — Used in store grid and accessories grid. Background `{colors.canvas}` (white), 1px solid `{colors.hairline}` border, rounded `{rounded.lg}` (18px), padding `{spacing.lg}` (24px). Top: product image (1:1 crop with `{rounded.sm}` (8px) inner image radius). Below: product name in `{typography.body-strong}` (17px / 600), price in `{typography.body}` (17px / 400), and a `{component.text-link}` ("Buy" or "Learn more"). No shadow by default; product render itself carries the system product-shadow.

**`configurator-option-chip`** — Pill-shaped tappable cell used in the iPhone 17 Pro buy page. Background `{colors.canvas}`, text `{colors.ink}` in `{typography.caption}`, rounded `{rounded.pill}`, padding 12px × 16px. Contains a small product thumbnail + label + price delta. Arranged in a grid of 4–5 options per row.

**`configurator-option-chip-selected`** — Selected state. Border upgrades to 2px solid `{colors.primary-focus}`. Same shape, same content.

**`environment-quote-card`** — A photographic-canvas hero specific to the environment page. Dark photographic backdrop (mountain vista at dawn) with `{colors.surface-tile-1}` as the fallback color, centered white-text headline in `{typography.display-lg}` (40px), small green "Apple 2030" pictographic logo above the headline, single `{component.button-primary}` below. Padding `{spacing.section}` (80px).

**`floating-sticky-bar`** — Floats at the bottom of the viewport on the iPhone 17 Pro buy page during scroll. Background `{colors.canvas-parchment}` at 80% opacity with `backdrop-filter: blur(N)`, height 64px, padding 12px × 32px. Left: running price total in `{typography.body}`. Right: `{component.button-primary}` ("Add to Bag").

Inputs & Forms

**`search-input`** — The accessories search input. Background `{colors.canvas}`, text `{colors.ink}` in `{typography.body}` (17px), 1px solid `rgba(0, 0, 0, 0.08)` border, rounded `{rounded.pill}` (full pill — search is also pill-shaped, matching the CTA grammar), padding 12px × 20px, height 44px. Leading icon: search glyph at 14px, muted tint.

Error and validation states were not surfaced in the analyzed pages.

Footer

**`footer`** — Background `{colors.canvas-parchment}` (#f5f5f7), text `{colors.ink-muted-80}`. Link columns in `{typography.dense-link}` (17px / 400 / 2.41 line-height — the relaxed leading is what makes the dense columns scannable). Column headings in `{typography.caption-strong}` (14px / 600). Legal row at the very bottom in `{typography.fine-print}` (12px / 400) with `{colors.ink-muted-48}` text. Vertical padding 64px.

Do's and Don'ts

Do

  • Use `{colors.primary}` (Action Blue #0066cc) for every interactive element — links, pill CTAs, focus signals — and nothing else. The single accent is non-negotiable.
  • Set headlines in `{typography.hero-display}` or `{typography.display-lg}` with negative letter-spacing (`-0.28 → -0.374px`) to get the signature "Apple tight" cadence.
  • Run body copy at `{typography.body}` (17px / 400 / 1.47 / -0.374px) — not 16px. The extra pixel defines the brand's reading pace.
  • Alternate `{component.product-tile-light}` (or parchment) and `{component.product-tile-dark}` for full-bleed section rhythm. The color change IS the divider.
  • Reserve `{rounded.pill}` for the primary blue CTA and any other element that should read as an "action" (configurator chips, search input, sticky bar CTA).
  • Apply the single product-shadow (`rgba(0, 0, 0, 0.22) 3px 5px 30px`) only to product renders resting on a surface — never on cards, buttons, or text.
  • Use `transform: scale(0.95)` as the active/press state on every button — it's the system-wide micro-interaction.
  • Keep the global nav `{colors.surface-black}` (true black) — it's the only place pure black appears on most pages.

Don't

  • Don't introduce a second accent color; every "click me" signal is `{colors.primary}` (Action Blue).
  • Don't add shadows to cards, buttons, or text — shadow is reserved for product imagery.
  • Don't use gradients as decorative backgrounds; atmosphere comes from photography.
  • Don't set body copy at weight 500 — Apple's ladder is 300 / 400 / 600 / 700, with 500 deliberately absent. Body is always 400; strong inline is 600; display is 600.
  • Don't round full-bleed tiles — tiles are rectangular and edge-to-edge; the color change is the divider.
  • Don't tighten line-height below 1.47 for body copy — the editorial leading is part of the brand.
  • Don't mix radii grammars — use `{rounded.sm}` for compact utility, `{rounded.lg}` for utility cards, `{rounded.pill}` for pills, and nothing in between (except the rare `{rounded.md}` Pearl Button).
  • Don't use `{colors.primary-on-dark}` (Sky Link Blue) on light surfaces — it's the dark-tile-only variant. Action Blue is for light surfaces.

Responsive Behavior

Breakpoints

| Name | Width | Key Changes |

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

| Small phone | ≤ 419px | Single-column tiles; sub-nav collapses to category name + primary CTA only; hero typography drops to 28px |

| Phone | 420–640px | Single-column stack; product renders scale to 80% of tile width; hero h1 drops to 34px |

| Large phone | 641–735px | Tiles transition to tighter padding (48px vertical vs 80px); fine-print wraps |

| Tablet portrait | 736–833px | Global nav collapses to hamburger; sub-nav hides category chips, keeps primary CTA |

| Tablet landscape | 834–1023px | Global nav returns fully expanded; 3-column utility grids become 2-column |

| Small desktop | 1024–1068px | Product tiles use 2/3 width with margin gutters; hero h1 stays at 40px |

| Desktop | 1069–1440px | Full layout; 4–5 column store grids; 1440px content max |

| Wide desktop | ≥ 1441px | Content locks at 1440px, margins absorb extra width |

The structural breakpoints that matter for agents: 1440px (content lock), 1068px (small-desktop), 833px (tablet landscape switch), 734px (tablet portrait), 640px (phone), 480px (small phone).

Touch Targets

  • Minimum 44 × 44px. `{component.button-primary}` lands at ~44 × 100px (with the full-pill radius making the visible hit area more generous than the label suggests).
  • `{component.button-icon-circular}` is exactly 44 × 44px.
  • Global nav utility links are smaller (~32 × 80px) — they deliberately sit at a tighter target because they're precision desktop actions, and the mobile hamburger replaces them at ≤ 833px.

Collapsing Strategy

  • **Global nav**: full horizontal link row on desktop → collapses to Apple logo + hamburger + bag icon at 834px and below.
  • **Sub-nav**: category name + inline links + primary CTA → category name + primary CTA only at mobile; inline links move into a hamburger tray.
  • **Product tiles**: stack from 2-column to 1-column at 834px; vertical padding tightens from 80px → 48px at small-phone.
  • **Utility grids** (store, accessories): 5-col → 4-col (1440px) → 3-col (1068px) → 2-col (834px) → 1-col (640px).
  • **Hero typography**: `{typography.hero-display}` (56px) → `{typography.display-lg}` (40px) at 1068px → 34px at 640px → 28px at 419px.

Image Behavior

  • All product imagery uses responsive `srcset` with breakpoint-matched crops.
  • Hero photography may switch art direction at mobile (e.g., the environment page's vista crops to a taller aspect ratio on mobile, framing the subject differently).
  • Product renders maintain their 1:1 or 4:3 aspect ratios across breakpoints; only scale changes.
  • Lazy-loading is default; the above-fold hero loads eagerly.

Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.product-tile-dark}`, `{component.search-input}`).

2. Variants of an existing component (`-active`, `-focus`, `-2`, `-3`) live as separate entries in `components:`.

3. Use `{token.refs}` everywhere — never inline hex.

4. Never document hover. Default and Active/Pressed states only.

5. Display headlines stay SF Pro Display 600 with negative letter-spacing. Body stays SF Pro Text 400 at 17px. The boundary is unbreakable.

6. The single drop-shadow (`rgba(0, 0, 0, 0.22) 3px 5px 30px`) is reserved for product photography only.

7. When in doubt about emphasis: alternate surface (light → dark tile) before adding chrome.

Known Gaps

  • Form validation and error states were not surfaced on the analyzed pages; only the neutral search input is documented.
  • The homepage's embedded video/player frame uses `{colors.surface-black}`; interior player controls are not documented (they're a platform widget, not a web-design token).
  • Some component imagery is dynamic (rotating product hero) and its specific copy varies per surface — component specs name the structure, not the rotating content.
  • Dark-mode counterparts for store and accessories utility cards were not surfaced on the analyzed pages; the system documented is the daytime/light-dominant variant Apple ships by default.
  • Atmospheric photography (environment page mountain vista) is a content asset, not a design token; the documented `{component.environment-quote-card}` describes the structural surface only.
  • The exact backdrop-filter blur radius on `{component.sub-nav-frosted}` and `{component.floating-sticky-bar}` is platform-dependent; production CSS uses `saturate(180%) blur(20px)` as a typical baseline but the value isn't formalized as a token.

개요

Apple의 웹 존재는 **거의 보이지 않는 UI로 구성된 경건한 제품 사진**의 마스터클래스입니다. 모든 페이지는 전체 제품 "타일"의 스택입니다. 밝은 캔버스와 어두운 캔버스가 번갈아 가며 각 캔버스는 주요 헤드라인, 한 줄짜리 태그라인, 두 개의 작은 파란색 알약 CTA 및 엄청나게 선명한 제품 렌더링을 중심으로 합니다. 제품과 경쟁하는 것은 없습니다. 타이포그래피는 자신감이 있지만 조용합니다. 색상은 순백색, 회백색 양피지 또는 검정색에 가까운 타일입니다. 상호작용 요소는 하나의 조용한 파란색입니다.

밀도는 최신 SaaS 표준에서도 비정상적으로 낮습니다. 각 타일은 대략 하나의 뷰포트를 차지하며 장식용 크롬이 없습니다. 즉, 테두리, 그라데이션, 장식 프레임, 헤드라인에 그림자가 없습니다. 고도는 제품 이미지가 표면(시각적 무게를 위한 단일 소프트 `rgba(0, 0, 0, 0.22) 3px 5px 30px` 드롭)에 있는 경우에만 나타납니다. 그 결과 박물관 갤러리처럼 느껴지는 카탈로그가 탄생했습니다. 벽이 사라지고 유물이 대신하게 됩니다.

상점과 상점 표면은 동일한 섀시를 유지하지만 모드를 전환합니다. 제품 구성자(iPhone 17 Pro, 액세서리 그리드)는 '{rounded.lg}'(18px) 반경에 얇은 테두리가 있고 지속적으로 얇은 하위 탐색 스트립과 쌍을 이루는 흰색 유틸리티 카드의 촘촘한 그리드를 도입합니다. 환경 페이지는 더 어둡고 사설적인 성향을 띠고 있습니다. 다섯 가지 표면 모두에서 타이포그래피 시스템, 간격 리듬 및 단일 파란색 액센트가 일관됩니다. 이는 서로 다른 볼륨으로 표현된 하나의 디자인 언어입니다.

**주요 특징:**

  • 사진 우선 프레젠테이션 제품이 말할 수 있도록 UI가 뒤로 물러납니다.
  • 교체되는 풀 블리드 타일 섹션: 흰색/양피지 ⇔ 검정색에 가까운 색상 변경 자체가 섹션 구분선 역할을 합니다.
  • 단일 파란색 액센트(`{colors.primary}` — #0066cc)는 모든 대화형 요소를 포함합니다. 두 번째 브랜드 색상이 없습니다.
  • 두 개의 버튼 문법: 작은 파란색 알약 CTA(`{rounded.pill}`)와 컴팩트 유틸리티 직사각형(`{rounded.sm}`).
  • SF Pro 디스플레이 + SF Pro 텍스트 — 시그니처 "Apple Tight" 헤드라인 느낌을 위해 디스플레이 크기에 음수 문자 간격을 적용했습니다.
  • 제품 이미지가 숨 쉬어야 할 때만 속삭이는 부드러운 높이가 사용됩니다. 전체 시스템에서 정확히 하나의 그림자입니다.
  • 촘촘한 2행 탐색: 슬림한 `{comComponent.global-nav}` + 제품별 `{comComponent.sub-nav-frosted}`(지속적인 오른쪽 정렬 기본 CTA 포함).
  • 여러 페이지에 걸친 섹션 리듬: 밝은 영웅 → 어두운 제품 타일 → 밝은 유틸리티 타일 → 어두운 타일 → 양피지 바닥글 - 예측 가능한 펄스입니다.

색상

> **분석된 소스 페이지:** 홈페이지, 환경, 매장, iPhone 17 Pro 구매 페이지, 액세서리 지수. 색상 시스템은 5개 표면 모두에서 동일합니다. 표면 모드 믹스만 다릅니다.

브랜드 및 액센트

  • **Action Blue** (`{colors.primary}` — #0066cc): 단일 브랜드 수준의 대화형 색상입니다. 모든 텍스트 링크, 모든 파란색 알약 CTA("자세히 알아보기", "구매") 및 포커스 링 루트. 이것은 Apple의 조용하지만 보편적인 "click me" 신호입니다. 누르기 상태는 16진수 변경이 아닌 활성 배율 변환을 통해 약간 더 어두운 변형으로 전환됩니다.
  • **포커스 블루** (`{colors.primary-focus}` — #0071e3): Action Blue보다 조금 더 밝은 형제로, 버튼의 키보드 포커스 링용으로 예약되어 있습니다(`윤곽선: 2px solid`).
  • **스카이 링크 블루**(`{colors.primary-on-dark}` — #2997ff): 복사 내 링크 및 인라인 설명선을 위해 어두운 표면에 사용되는 더 밝은 파란색입니다. 여기서 Action Blue는 타일 배경에서 사라집니다.

표면

  • **순백색** (`{colors.canvas}` — #ffffff): 주요 캔버스. 콘텐츠, 유틸리티 카드, 상점 타일, 구성 그리드.
  • **Parchment** (`{colors.canvas-parchment}` — #f5f5f7): 시그니처 Apple 오프화이트. 상점 유틸리티 섹션의 조명 타일, 바닥글 영역 및 기본 페이지 캔버스를 대체하는 데 사용됩니다. 흰색과 리듬을 만들기에 충분할 정도로 다릅니다.
  • **진주 버튼**(`{colors.surface-pearl}` — #fafafc): 보조 "고스트" 버튼의 채우기로 사용되는 거의 흰색입니다. 양피지 캔버스보다 가벼우므로 버튼은 여전히 ​​`{colors.canvas-parchment}`에 대한 버튼으로 읽혀집니다.
  • **검은색에 가까운 타일 1** (`{colors.surface-tile-1}` — #272729): 홈페이지 제품 그리드의 기본 어두운 타일 표면입니다.
  • **검은색에 가까운 타일 2**(`{colors.surface-tile-2}` — #2a2a2c): 마이크로 스텝 라이터 — 어두운 타일이 타일 1 바로 위나 아래에 위치하여 가장 희미한 분리를 만드는 데 사용됩니다.
  • **검은색에 가까운 타일 3** (`{colors.surface-tile-3}` — #252527): 마이크로 스텝 더 어두워짐 — 스택 하단과 내장된 비디오/플레이어 프레임에 사용됩니다.
  • **퓨어 블랙**(`{colors.surface-black}` — #000000): 진정한 공백을 위해 예약되어 있습니다 — 비디오 플레이어 배경, 가장자리 간 사진 오버레이, 전역 탐색 모음 배경.
  • **반투명 칩 회색** (`{colors.surface-chip-translucent}` — #d2d2d7): 사진 촬영 시 원형 제어 버튼에 사용되는 반투명 회색 칩의 기본 16진수입니다. 프로덕션에서는 'rgba(210, 210, 215, 0.64)'로 ~64% 알파로 적용됩니다.

텍스트

  • **검은색에 가까운 잉크**

概要

Apple の Web プレゼンスは、*ほとんど目に見えない UI で囲まれた敬虔な製品写真**のマスタークラスです。すべてのページは、製品の端から端までの「タイル」のスタックです。明るいキャンバスと暗いキャンバスが交互に配置され、それぞれの中心にヒーローの見出し、一行のキャッチフレーズ、2 つの小さな青い錠剤 CTA、そして信じられないほど鮮明な製品レンダリングが配置されています。製品と競合するものはありません。タイポグラフィーは自信に満ちていますが、静かです。色は純白、オフホワイトの羊皮紙、または黒に近いタイルのいずれかです。インタラクティブな要素は単一の静かな青です。

密度は、現代の SaaS 基準から見ても異常に低いです。各タイルはおよそ 1 つのビューポートを占め、装飾的なクロムはありません。境界線、グラデーション、装飾フレーム、見出しの影はありません。高度は、製品画像が表面上にある場合にのみ表示されます (視覚的な重み付けのため、単一のソフト `rgba(0, 0, 0, 0.22) 3px 5px 30px` ドロップ)。その結果、壁が消えて芸術品が引き継がれる、博物館のギャラリーのように感じられるカタログが完成しました。

店舗および店舗の表面は同じシャーシを保持しますが、モードが切り替わります。製品コンフィギュレーター (iPhone 17 Pro、アクセサリ グリッド) では、半径 `{rounded.lg}` (18px) に細い境界線を持つ白いユーティリティ カードのタイトなグリッドが導入され、永続的な薄いサブナビゲーション ストリップと組み合わせられています。環境ページはより暗く、より編集的なものになっています。 5 つの表面すべてにわたって、タイポグラフィ システム、間隔のリズム、および単一の青色のアクセントが一貫しています。これは、さまざまなボリュームで表現された 1 つのデザイン言語です。

**主な特徴:**

  • 写真優先のプレゼンテーション。 UI が引っ込み、製品が話すことができるようになります。
  • 交互のフルブリード タイル セクション: 白/パーチメント ↔ ほぼ黒。色の変更自体がセクションの区切りとして機能します。
  • 単一の青いアクセント (`{colors.primary}` — #0066cc) にはすべてのインタラクティブな要素が含まれます。セカンドブランドカラーは存在しません。
  • 2 つのボタン文法: 小さな青い錠剤 CTA (`{rounded.pill}`) とコンパクトなユーティリティ四角形 (`{rounded.sm}`)。
  • SF Pro Display + SF Pro Text — 特徴的な「Apple タイト」な見出し感を実現するために、ディスプレイ サイズで負の文字間隔を設定します。
  • 製品画像が呼吸する必要がある場合にのみ使用されるささやきのようなソフトなエレベーション、つまりシステム全体で 1 つのドロップシャドウだけです。
  • タイトな 2 行ナビゲーション: スリムな `{component.global-nav}` + 製品固有の `{component.sub-nav-frosted}` と永続的な右揃えのプライマリ CTA。
  • 複数ページにわたるセクションのリズム: 明るいヒーロー → 暗い製品タイル → 明るいユーティリティ タイル → 暗いタイル → 羊皮紙のフッター — 予測可能なパルス。

> **分析されたソースページ:** ホームページ、環境、ストア、iPhone 17 Pro 購入ページ、アクセサリのインデックス。カラー システムは 5 つのサーフェスすべてで同一です。表面モードの組み合わせのみが異なります。

ブランドとアクセント

  • **アクション ブルー** (`{colors.primary}` — #0066cc): 単一のブランド レベルのインタラクティブ カラー。すべてのテキスト リンク、すべての青い錠剤 CTA (「詳細を確認」、「購入」)、およびフォーカス リングのルート。これは Apple の静かだが普遍的な「クリックしてください」信号です。プレス状態は、16 進数の変更ではなく、アクティブなスケール変換を介してわずかに暗いバリアントに移行します。
  • **フォーカス ブルー** (`{colors.primary-focus}` — #0071e3): アクション ブルーのわずかに明るい兄弟で、ボタンのキーボード フォーカス リング用に予約されています (`アウトライン: 2px 実線`)。
  • **スカイ リンク ブルー** (`{colors.primary-on-dark}` — #2997ff): コピー内リンクとインライン コールアウトの暗い表面で使用される明るい青。タイルの背景に対してアクション ブルーが消えます。

表面

  • **ピュア ホワイト** (`{colors.canvas}` — #ffffff): 主要なキャンバス。コンテンツ、ユーティリティ カード、ストア タイル、コンフィギュレーター グリッド。
  • **パーチメント** (`{colors.canvas-parchment}` — #f5f5f7): Apple の特徴であるオフホワイト。ストア ユーティリティ セクションのライト タイル、フッター領域、およびデフォルトのページ キャンバスを交互に表示するために使用されます。白とは違うだけでリズムが生まれます。
  • **パール ボタン** (`{colors.surface-pearl}` — #fafafc): 二次「ゴースト」ボタンの塗りつぶしとして使用されるほぼ白。羊皮紙のキャンバスよりも明るいため、ボタンは依然として `{colors.canvas-parchment}` に対するボタンとして読み取れます。
  • **ニアブラック タイル 1** (`{colors.surface-tile-1}` — #272729): ホームページの製品グリッド上のプライマリの暗いタイル サーフェス。
  • **ニアブラック タイル 2** (`{colors.surface-tile-2}` — #2a2a2c): マイクロステップ ライター — 暗いタイルがタイル 1 の真上または真下にある場合に使用され、最もかすかな分離を作成します。
  • **ニアブラック タイル 3** (`{colors.surface-tile-3}` — #252527): マイクロステップで暗くなります — スタックの一番下および埋め込みビデオ/プレーヤー フレームで使用されます。
  • **ピュア ブラック** (`{colors.surface-black}` — #000000): 真の無効用に予約されています — ビデオ プレーヤーの背景、端から端までの写真オーバーレイ、グローバル ナビゲーション バーの背景。
  • **半透明チップ グレー** (`{colors.surface-chip-translucent}` — #d2d2d7): 円形のコントロール ボタンの写真上に使用される半透明グレー チップの基本ヘクス。運用環境では、約 64% のアルファで「rgba(210, 210, 215, 0.64)」として適用されます。

テキスト

  • **黒に近いインク**