The grid is the design. Achromatic ground, one accent, hairline or no separator, sharp corners, left-aligned.
Reach for it when the grid should carry the design and the chrome should get out of the way.
A family is a set of token names plus structural rules. A variant is one set of values poured into them. Every variant below satisfies this contract, so swapping between them is a palette change, not a rewrite.
| border-radius | 0 in the classic and trophy-wall variants |
| gap | 0 in trophy-wall; the hairline between cells is the only separator |
| max-colors-per-composition | 3 |
| text-alignment | left |
Same contract, different values. Click a swatch to copy it.
Black, white, red. Mathematical spacing on an 8px grid.
/* Swiss International */
:root {
/* colors */
--bg: #ffffff;
--bg-secondary: #f8f9fa;
--bg-dark: #000000;
--text: #000000;
--muted: #666666;
--text-light: #ffffff;
--accent: #ff0000;
--accent-dark: #cc0000;
--line: #e0e0e0;
--line-dark: #333333;
--gray-100: #f8f9fa;
--gray-200: #e9ecef;
--gray-400: #ced4da;
--gray-600: #6c757d;
--gray-800: #343a40;
--gray-900: #212529;
}
Light, quiet, listing-first. The chrome disappears and the items are the page.
source: https://lukesteuber.com/downloads/
| color-scheme | light |
Five tokens for a whole public download index. The restraint is the point: nothing here needs a sixth.
/* Catalog */
:root {
/* colors */
--bg: #f7f7f5;
--text: #171717;
--muted: #666666;
--line: #d8d8d3;
--link: #174ea6;
/* structure */
--color-scheme: light;
}
Zero-gutter poster grid on near-black. The images tile edge to edge and the seam between them is the only line.
source: https://lukesteuber.com/downloads/grid/
| gap | 0 |
| grid | repeat(3, minmax(0, 1fr)) to 640px, then 3, 4 at 960px, 5 at 1280px |
| aspect-ratio | 1080 / 1596 |
| width | min(calc(100% - 2rem), 1200px) on the header, 100% on the wall |
| focus | outline: 3px solid #60a5fa; outline-offset: -3px; z-index: 1 |
The inset focus ring is deliberate: with gap 0 an outset ring would be clipped by the neighbouring cell.
/* Trophy Wall */
:root {
/* colors */
--bg: #0a0a0a;
--text: #f5f5f5;
--muted: #999999;
--muted-dim: #888888;
--line: #222222;
--tile-bg: #000000;
--focus: #60a5fa;
/* structure */
--gap: 0;
--grid: repeat(3, minmax(0, 1fr)) to 640px, then 3, 4 at 960px, 5 at 1280px;
--aspect-ratio: 1080 / 1596;
--width: min(calc(100% - 2rem), 1200px) on the header, 100% on the wall;
--focus: outline: 3px solid #60a5fa; outline-offset: -3px; z-index: 1;
}
| font-ui | Helvetica Neue, Helvetica, Arial, sans-serif |
| font-data | Consolas, 'Courier New', monospace |
Base unit 8px. Every gap, pad and margin is a multiple of it.
Generated from
themes/tokens.json v2.0.0 by
build-themes.py. Values were read from the live surfaces
on 2026-09-09. Edit the tokens, not this page.