# PlayStation — Style Reference
> A three-surface marketing system organized around alternating black, white, and PlayStation Blue chapters that scroll past the viewer like a console launch trailer. Each section has a single editorial purpose — hero photography, console product render, PS Plus tier callout, news strip — and each owns one of three full-bleed canvas modes. The chrome is unusually quiet for a gaming brand: bright PlayStation Blue (`#0070d1`) carries every primary CTA as a fully-rounded pill, the proprietary SST face renders display copy at a signature weight 300 (light) for an airy, premium feel, and a crisp 8px-radius secondary card system carries product info on either canvas mode. The system never decorates — no gradient backgrounds on chrome, no atmospheric mesh, no drop shadows beyond a faint section-divide. Imagery does all the heavy lifting: console glamour shots, game key art, and PS Plus tier illustrations occupy 60-90% of every section, with copy compressed into a small editorial slot.

**Theme:** light

**Source website:** [https://www.playstation.com/](https://www.playstation.com/)  
Use the live official website to compare and validate this extracted snapshot. The current source website remains authoritative.

## Tokens — Colors

| Name | Value | Token | Role |
|---|---|---|---|
| primary | `#0070d1` | `--color-primary` | primary role extracted from the source design |
| primary pressed | `#0064b7` | `--color-primary-pressed` | primary pressed role extracted from the source design |
| primary active | `#004d8d` | `--color-primary-active` | primary active role extracted from the source design |
| on primary | `#ffffff` | `--color-on-primary` | on primary role extracted from the source design |
| link light | `#0064b7` | `--color-link-light` | link light role extracted from the source design |
| link dark | `#53b1ff` | `--color-link-dark` | link dark role extracted from the source design |
| commerce | `#d53b00` | `--color-commerce` | commerce role extracted from the source design |
| commerce pressed | `#aa2f00` | `--color-commerce-pressed` | commerce pressed role extracted from the source design |
| commerce link base | `#d63d00` | `--color-commerce-link-base` | commerce link base role extracted from the source design |
| on commerce | `#ffffff` | `--color-on-commerce` | on commerce role extracted from the source design |
| ink | `#000000` | `--color-ink` | ink role extracted from the source design |
| ink deep | `#121314` | `--color-ink-deep` | ink deep role extracted from the source design |
| ink elevated | `#181818` | `--color-ink-elevated` | ink elevated role extracted from the source design |
| charcoal | `#1f2024` | `--color-charcoal` | charcoal role extracted from the source design |
| body light | `rgba(0,0,0,0.6)` | `--color-body-light` | body light role extracted from the source design |
| mute light | `#6b6b6b` | `--color-mute-light` | mute light role extracted from the source design |
| ash light | `#cccccc` | `--color-ash-light` | ash light role extracted from the source design |
| body dark | `rgba(255,255,255,0.7)` | `--color-body-dark` | body dark role extracted from the source design |
| mute dark | `rgba(229,229,229,0.55)` | `--color-mute-dark` | mute dark role extracted from the source design |
| ash dark | `rgba(229,229,229,0.2)` | `--color-ash-dark` | ash dark role extracted from the source design |
| canvas light | `#ffffff` | `--color-canvas-light` | canvas light role extracted from the source design |
| surface soft | `#f3f3f3` | `--color-surface-soft` | surface soft role extracted from the source design |
| surface card | `#f5f7fa` | `--color-surface-card` | surface card role extracted from the source design |
| surface filter | `rgba(245,247,250,0.3)` | `--color-surface-filter` | surface filter role extracted from the source design |
| canvas dark | `#000000` | `--color-canvas-dark` | canvas dark role extracted from the source design |
| surface dark elevated | `#121314` | `--color-surface-dark-elevated` | surface dark elevated role extracted from the source design |
| surface dark card | `#181818` | `--color-surface-dark-card` | surface dark card role extracted from the source design |
| hairline light | `#f3f3f3` | `--color-hairline-light` | hairline light role extracted from the source design |
| hairline dark | `rgba(229,229,229,0.2)` | `--color-hairline-dark` | hairline dark role extracted from the source design |
| on dark | `#ffffff` | `--color-on-dark` | on dark role extracted from the source design |
| on dark mute | `#cccccc` | `--color-on-dark-mute` | on dark mute role extracted from the source design |
| warning | `#c81b3a` | `--color-warning` | warning role extracted from the source design |
| ps plus gold start | `#ffce21` | `--color-ps-plus-gold-start` | ps plus gold start role extracted from the source design |
| ps plus gold mid | `#f5a623` | `--color-ps-plus-gold-mid` | ps plus gold mid role extracted from the source design |
| ps plus gold end | `#ee8e00` | `--color-ps-plus-gold-end` | ps plus gold end role extracted from the source design |
| marathon yellow | `#deff20` | `--color-marathon-yellow` | marathon yellow role extracted from the source design |

## Tokens — Typography

### PlayStation SST · `--font-primary`
- **Substitute:** Inter, system-ui, sans-serif
- **Weights:** 300, 600, 400, 500, 700
- **Sizes:** 54px, 44px, 35px, 28px, 22px, 18px, 16px, 14px, 12px
- **Line height:** 1.25, 1, 1.5
- **Letter spacing:** -0.1px, 0.1px, 0, 0.4px, 0.45px, 0.324px
- **Role:** Brand typography family observed across the documented type scale.

### Type Scale

| Role | Size | Line Height | Letter Spacing | Token |
|---|---|---|---|---|
| display-xl | 54px | 1.25 | -0.1px | `--text-display-xl` |
| display-lg | 44px | 1.25 | 0.1px | `--text-display-lg` |
| display-md | 35px | 1.25 | 0 | `--text-display-md` |
| heading-xl | 28px | 1.25 | 0.1px | `--text-heading-xl` |
| heading-lg | 22px | 1.25 | 0.1px | `--text-heading-lg` |
| heading-md | 18px | 1 | 0 | `--text-heading-md` |
| body-md | 18px | 1.5 | 0.1px | `--text-body-md` |
| body-strong | 18px | 1.25 | 0.4px | `--text-body-strong` |
| body-sm | 16px | 1.5 | 0 | `--text-body-sm` |
| caption-md | 14px | 1.5 | 0 | `--text-caption-md` |
| caption-sm | 12px | 1.5 | 0 | `--text-caption-sm` |
| link-md | 18px | 1.5 | 0 | `--text-link-md` |
| button-lg | 18px | 1.25 | 0.45px | `--text-button-lg` |
| button-md | 14px | 1.25 | 0.324px | `--text-button-md` |

## Tokens — Spacing & Shapes

**Density:** comfortable

### Spacing Scale

| Name | Value | Token |
|---|---|---|
| xxs | 4px | `--spacing-xxs` |
| xs | 8px | `--spacing-xs` |
| sm | 12px | `--spacing-sm` |
| md | 16px | `--spacing-md` |
| lg | 24px | `--spacing-lg` |
| xl | 32px | `--spacing-xl` |
| xxl | 48px | `--spacing-xxl` |
| section | 96px | `--spacing-section` |

### Border Radius

| Name | Value | Token |
|---|---|---|
| none | 0px | `--radius-none` |
| sm | 4px | `--radius-sm` |
| md | 8px | `--radius-md` |
| lg | 16px | `--radius-lg` |
| full | 9999px | `--radius-full` |

### Layout

- **Section gap:** 96px
- **Card padding:** 24px
- **Element gap:** 16px
- **Max content width:** 1200px

## Components

### button primary
**Role:** button primary component

- **backgroundColor:** `{colors.primary}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`
- **padding:** `12px 28px`
- **height:** `48px`

### button primary pressed
**Role:** button primary pressed component

- **backgroundColor:** `{colors.primary-pressed}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`

### button commerce
**Role:** button commerce component

- **backgroundColor:** `{colors.commerce}`
- **textColor:** `{colors.on-commerce}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`
- **padding:** `12px 28px`
- **height:** `48px`

### button commerce pressed
**Role:** button commerce pressed component

- **backgroundColor:** `{colors.commerce-pressed}`
- **textColor:** `{colors.on-commerce}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`

### button secondary light
**Role:** button secondary light component

- **backgroundColor:** `transparent`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`
- **padding:** `12px 28px`
- **height:** `48px`

### button secondary dark
**Role:** button secondary dark component

- **backgroundColor:** `transparent`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.button-lg}`
- **rounded:** `{rounded.full}`
- **padding:** `12px 28px`
- **height:** `48px`

### button disabled
**Role:** button disabled component

- **backgroundColor:** `{colors.surface-soft}`
- **textColor:** `{colors.ash-light}`
- **rounded:** `{rounded.full}`

### text input
**Role:** text input component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.sm}`
- **padding:** `12px 16px`
- **height:** `48px`

### text input focused
**Role:** text input focused component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **rounded:** `{rounded.sm}`

### filter pill
**Role:** filter pill component

- **backgroundColor:** `{colors.surface-filter}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.button-md}`
- **rounded:** `{rounded.full}`
- **padding:** `8px 16px`

### filter pill active
**Role:** filter pill active component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.button-md}`
- **rounded:** `{rounded.full}`

### product card
**Role:** product card component

- **backgroundColor:** `{colors.surface-card}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.md}`
- **padding:** `24px`

### product card dark
**Role:** product card dark component

- **backgroundColor:** `{colors.surface-dark-card}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.md}`
- **padding:** `24px`

### game tile
**Role:** game tile component

- **backgroundColor:** `{colors.surface-dark-elevated}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.body-sm}`
- **rounded:** `{rounded.md}`
- **padding:** `0px`

### feature card
**Role:** feature card component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.md}`
- **padding:** `32px`

### hero band blue
**Role:** hero band blue component

- **backgroundColor:** `{colors.primary}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.display-md}`
- **rounded:** `{rounded.none}`
- **padding:** `96px 48px`

### hero band dark
**Role:** hero band dark component

- **backgroundColor:** `{colors.canvas-dark}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.display-xl}`
- **rounded:** `{rounded.none}`
- **padding:** `96px 48px`

### hero band light
**Role:** hero band light component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.display-xl}`
- **rounded:** `{rounded.none}`
- **padding:** `96px 48px`

### ps plus banner
**Role:** ps plus banner component

- **backgroundColor:** `{colors.surface-dark-elevated}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.heading-xl}`
- **rounded:** `{rounded.md}`
- **padding:** `48px 32px`

### carousel paddle
**Role:** carousel paddle component

- **backgroundColor:** `rgba(255,255,255,0.16)`
- **textColor:** `{colors.on-dark}`
- **rounded:** `{rounded.full}`
- **size:** `48px`

### pagination dot
**Role:** pagination dot component

- **backgroundColor:** `{colors.ash-dark}`
- **rounded:** `{rounded.full}`
- **size:** `8px`

### pagination dot active
**Role:** pagination dot active component

- **backgroundColor:** `{colors.on-dark}`
- **rounded:** `{rounded.full}`
- **size:** `8px`

### badge info
**Role:** badge info component

- **backgroundColor:** `{colors.primary}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.caption-sm}`
- **rounded:** `{rounded.full}`
- **padding:** `4px 10px`

### primary nav
**Role:** primary nav component

- **backgroundColor:** `{colors.canvas-dark}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.body-strong}`
- **rounded:** `{rounded.none}`
- **height:** `48px`

### sub nav
**Role:** sub nav component

- **backgroundColor:** `{colors.canvas-dark}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.caption-md}`
- **rounded:** `{rounded.none}`
- **height:** `40px`

### footer section
**Role:** footer section component

- **backgroundColor:** `{colors.primary}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.caption-md}`
- **rounded:** `{rounded.none}`
- **padding:** `48px 32px`

### support search bar
**Role:** support search bar component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.full}`
- **padding:** `12px 24px`
- **height:** `56px`

### support row
**Role:** support row component

- **backgroundColor:** `{colors.canvas-light}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.none}`
- **padding:** `16px 0px`

### link inline
**Role:** link inline component

- **textColor:** `{colors.link-light}`
- **typography:** `{typography.link-md}`

## Do's and Don'ts

### Do

- Use `--color-primary` for the brand's primary interaction treatment.
- Keep page surfaces anchored to `--color-canvas-light`.
- Preserve every typography style's documented size, line height, and letter spacing.
- Compare major implementation decisions against [the live PlayStation website](https://www.playstation.com/).

### Don't

- Do not introduce colors outside the documented color token set.
- Do not replace `--color-link-light` with an arbitrary neutral.
- Do not flatten documented component states or spacing relationships.
- Do not treat this extracted snapshot as newer than the live source website.

## Layout

Use the documented spacing scale and component geometry as the implementation baseline. Validate responsive composition and current page rhythm against [the live source](https://www.playstation.com/).
