All designs
Xbox
Gaming. Signature green on carbon, tile grids, hero art from current releases.
extracted from https://www.xbox.com/ on 2026-07-03
XBOX Official Site: PC Game Pass, Games, Apps | XBOX
light-leaning · 10 stylesheets · 91 native variables
fonts Segoe UI · MWF-MDL2 · SegoeUI · Bahnschrift Light · Segoe UI Web (East European) · Bahnschrift · Bahnschrift Bold · MWFMDL2-Xbox
---
name: xbox-com-design-system
source: https://www.xbox.com/
extracted: 2026-07-03
theme: light # measured from neutral usage weight
colors: # roles inferred from usage frequency + luminance; names verified against values
canvas: "#ffffff"
ink: "#333333"
text-muted: "#757575"
surface: "#f2f2f2"
hairline: "#e6e6e6"
accent: "#107c10" # green
accent-2: "#094709" # deep-green
accent-3: "#9bf00b" # lime
fonts:
primary: "Segoe UI" # medium-confidence: usage counts are close
---
# XBOX Official Site: PC Game Pass, Games, Apps | XBOX — Design System
Extracted from **https://www.xbox.com/** on 2026-07-03.
> Play a library of PC games with friends all for one low monthly price.
Every value below is mined from the site's live CSS (91 native custom properties, ranked usage counts). Role assignments are inferred from usage and luminance and marked as such — treat them as a strong starting point, not gospel.
## Overview
The system reads as light: measured neutral usage weighs 1215 light against 332 dark. The palette is chromatic: 12 saturated values against 11 neutrals, led by green (`#107c10`). **Segoe UI** leads the font stack, though usage counts are close — verify against rendered pages before committing. Geometry mixes sharp corners (.125rem) with full pills.
## Usage rules
Derived from the measured usage below — each rule cites its evidence.
- Chromatic color is only 23% of measured color usage. Reserve `accent` (`#107c10`) for primary actions, links, and emphasis — spreading it into body text or large surfaces breaks the ratio that defines this look.
- The theme is light (measured neutral weight 1215:332). Don't flip individual sections to the opposite mode.
- The most-used radius is the full pill (x41); mid-size radii are the exception in this system.
- Shadows stay tight (max 0.03125px blur) — keep elevation subtle if you extend the scale.
## Colors
### Neutrals (light → dark)
| Token | Value | Usage | Inferred role |
| --- | --- | --- | --- |
| `neutral-50` | `#ffffff` | 944 | **canvas** — lightest neutral, matches the measured light-leaning theme |
| `neutral-100` | `#f2f2f2` | 36 | **surface** — neutral closest to canvas luminance |
| `neutral-200` | `#e6e6e6` | 129 | **hairline** — next neutral near canvas, hairline-border weight |
| `neutral-300` | `#cccccc` | 106 | — |
| `neutral-400` | `#acacac` | 24 | — |
| `neutral-500` | `#999999` | 40 | — |
| `neutral-600` | `#757575` | 41 | **text-muted** — most-used mid-luminance neutral |
| `neutral-700` | `#666666` | 34 | — |
| `neutral-800` | `#505050` | 35 | — |
| `neutral-900` | `#404040` | 50 | — |
| `neutral-950` | `#333333` | 44 | **ink** — darkest neutral, highest contrast against canvas |
### Accents
| Token | Value | Usage | Inferred role |
| --- | --- | --- | --- |
| `green` | `#107c10` | 199 | **accent** — most-used chromatic color |
| `deep-green` | `#094709` | 91 | **accent-2** — supporting chromatic color |
| `lime` | `#9bf00b` | 51 | **accent-3** — supporting chromatic color |
| `cyan` | `#0078d4` | 21 | — |
| `lime-2` | `#5dc21e` | 16 | — |
| `orange` | `#d83b01` | 15 | — |
| `cyan-2` | `#106ebe` | 13 | — |
| `deep-green-2` | `#0d630d` | 10 | — |
| `yellow` | `#ffd800` | 10 | — |
| `green-2` | `#007533` | 9 | — |
| `yellow-2` | `#ffb900` | 8 | — |
| `green-3` | `#04ab4f` | 8 | — |
## Typography
**Segoe UI** has the most `font-family` declarations, but the margin over the rest is thin — treat the primary-face call as provisional and verify on rendered pages. Full list by usage:
| Family | Usage |
| --- | --- |
| Segoe UI | 38 |
| MWF-MDL2 | 34 |
| SegoeUI | 12 |
| Bahnschrift Light | 12 |
| Segoe UI Web (East European) | 7 |
| Bahnschrift | 6 |
| Bahnschrift Bold | 5 |
| MWFMDL2-Xbox | 5 |
**Size scale (px):** `11`, `12`, `13`, `14`, `15`, `16`, `18`, `20`, `24`, `28`, `34`, `46`
**Weights in use:** `100` (x12), `200` (x22), `300` (x14), `400` (x104), `600` (x176), `700` (x45)
**Line-heights (unitless):** `1`, `1.15`, `1.2`, `1.3`, `1.35`, `1.4`, `1.5`
**Letter-spacing values:** `-.01em`, `.05em`, `.0625em`, `.075em`, `4px`, `12px`
## Spacing
Most-used values (px): `2`, `4`, `6`, `8`, `10`, `12`, `15`, `16`, `20`, `24`, `36`, `48`
## Border radius
| Token | Value | Usage |
| --- | --- | --- |
| `radius-sm` | `.125rem` | 9 |
| `radius-md` | `.25rem` | 38 |
| `radius-lg` | `6px` | 9 |
| `radius-xl` | `.5rem` | 32 |
| `radius-2xl` | `.9rem` | 3 |
| `radius-3xl` | `1rem` | 5 |
| `radius-full` | `50%` | 41 |
## Shadows (ordered by blur radius)
- `shadow-sm` — `0 2px currentColor` (x56)
- `shadow-md` — `unset` (x14)
- `shadow-lg` — `0 .125rem .25rem 0 rgba(0,0,0,.13),0 0 .0625rem 0 rgba(0,0,0,.11)` (x13)
- `shadow-xl` — `0 3px 0 -1px currentColor` (x6)
- `shadow-2xl` — `0 4px 8px rgba(0,0,0,.2)` (x5)
- `shadow-3xl` — `0 .0625rem .125rem .03125rem rgba(0,0,0,.16)` (x4)
### Focus rings (spread-only box-shadows, kept out of the elevation scale)
- `inset 0 0 0 1px #fff` (x4)
## Breakpoints
`320px`, `339px`, `340px`, `350px`, `360px`, `374px`, `389px`, `390px`
## Starter recipes
Tokens composed into components. The source site's real components were **not** inspected — these are starting points built from the extracted values, with contrast ratios computed rather than assumed.
```css
.button-primary {
background: var(--color-accent); /* #107c10 */
color: var(--color-canvas); /* #ffffff — contrast 5.4:1 */
border-radius: 9999px; /* pill — mined as 50% */
font-weight: 600;
}
.card {
background: var(--color-surface); /* #f2f2f2 */
border: 1px solid var(--color-hairline); /* #e6e6e6 */
border-radius: .25rem; /* most-used finite radius */
box-shadow: var(--shadow-sm);
}
.input {
background: var(--color-canvas); /* #ffffff */
color: var(--color-ink); /* #333333 — contrast 12.6:1 */
border: 1px solid var(--color-hairline); /* #e6e6e6 */
border-radius: .125rem;
/* placeholder color: var(--color-text-muted) #757575 */
}
.nav {
background: var(--color-canvas); /* #ffffff */
border-bottom: 1px solid var(--color-hairline); /* #e6e6e6 */
color: var(--color-ink); /* #333333 */
/* inactive links: var(--color-text-muted) #757575 */
/* active link: var(--color-accent) #107c10 — contrast vs canvas 5.4:1 */
}
.modal {
background: var(--color-surface); /* #f2f2f2 */
border-radius: .25rem;
box-shadow: var(--shadow-3xl); /* largest mined shadow */
}
.modal-backdrop {
background: color-mix(in srgb, var(--color-ink) 55%, transparent); /* scrim from #333333 */
}
.input-error {
border-color: #d83b01; /* mined token: orange */
/* error text: #d83b01 on canvas — contrast 4.6:1 */
}
.input-success {
border-color: #107c10; /* mined token: green */
}
```
## Observations
- 11 of 23 extracted colors are neutrals.
- 6 distinct shadows; the softest reaches 0.03125px blur.
- 8 breakpoints, from 320px to 390px.
## Native CSS custom properties
First 40 of 91:
```css
:root {
--uhf-font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif;
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgba(59,130,246,.5);
--tw-ring-offset-shadow: 0 0 #0000;
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
}
```
## Files
- `tailwind.css` — Tailwind v4 `@theme` block; tokens become utilities (e.g. `bg-neutral-900`, `text-green`).
- `variables.css` — framework-agnostic `:root` variables, same values.
- `tokens.json` — W3C Design Tokens format for Figma plugins, Style Dictionary, etc.
