WeekndLabs Design
One grammar, three faces.
Omni, Bubo and weekndlabs.com share a spacing scale, a type scale and a set of semantic roles. Each fills those roles with its own values. Below is the same card rendered in all three themes at once.
night-dark
Omni
Noise-canceling context for AI agents.
$ omni --pre-hook
saved 4.2k tokensink 15.81:1
night-light
Omni
Noise-canceling context for AI agents.
$ omni --pre-hook
saved 4.2k tokensink 15.63:1
receipt
Omni
Noise-canceling context for AI agents.
$ omni --pre-hook
saved 4.2k tokensink 14.13:1
night-dark
| Role | Value | Hex | On | Ratio |
|---|---|---|---|---|
| surface | #12141F | surface | surface, exempt | |
| surface-panel | #1E2333 | surface | surface, exempt | |
| surface-sunk | #1A1D2B | surface | surface, exempt | |
| ink | #ECEEF5 | surface | 15.81:1 | |
| ink-soft | #8A90A6 | surface | 5.78:1 | |
| rule | #2A3048 | surface | border, exempt | |
| rule-soft | #21273A | surface | border, exempt | |
| rule-strong | #3A4166 | surface | border, exempt | |
| accent | #F5B841 | surface | 10.31:1 | |
| accent-strong | #FCD670 | surface | 13.09:1 | |
| inset | #0B0B0C | surface | surface, exempt | |
| inset-ink | #FFB000 | inset | 10.74:1 | |
| inset-ink-dim | #A87400 | inset | 4.84:1 | |
| positive | #6BCC8F | surface | 9.30:1 | |
| negative | #E0776F | surface | 6.14:1 |
night-light
| Role | Value | Hex | On | Ratio |
|---|---|---|---|---|
| surface | #FAF8F3 | surface | surface, exempt | |
| surface-panel | #F4F0E7 | surface | surface, exempt | |
| surface-sunk | #F0ECE2 | surface | surface, exempt | |
| ink | #1C1E28 | surface | 15.63:1 | |
| ink-soft | #5A5F70 | surface | 5.99:1 | |
| rule | #D8D1C0 | surface | border, exempt | |
| rule-soft | #E4DECF | surface | border, exempt | |
| rule-strong | #C4BCA6 | surface | border, exempt | |
| accent | #9C6100 | surface | 4.80:1 | |
| accent-strong | #7A4E00 | surface | 6.78:1 | |
| inset | #0B0B0C | surface | surface, exempt | |
| inset-ink | #FFB000 | inset | 10.74:1 | |
| inset-ink-dim | #A87400 | inset | 4.84:1 | |
| positive | #2A6B41 | surface | 6.04:1 | |
| negative | #9B3E37 | surface | 6.31:1 |
receipt
| Role | Value | Hex | On | Ratio |
|---|---|---|---|---|
| surface | #E3E4E0 | surface | surface, exempt | |
| surface-panel | #DBDCD6 | surface | surface, exempt | |
| surface-sunk | #D3D5CD | surface | surface, exempt | |
| ink | #16161A | surface | 14.13:1 | |
| ink-soft | #56585A | surface | 5.59:1 | |
| rule | #C6C8C1 | surface | border, exempt | |
| rule-soft | #D6D8D1 | surface | border, exempt | |
| rule-strong | #A9ABA3 | surface | border, exempt | |
| accent | #7A4E00 | surface | 5.64:1 | |
| accent-strong | #5F3D00 | surface | 7.63:1 | |
| inset | #0B0B0C | surface | surface, exempt | |
| inset-ink | #FFB000 | inset | 10.74:1 | |
| inset-ink-dim | #A87400 | inset | 4.84:1 | |
| positive | #2A6B41 | surface | 5.02:1 | |
| negative | #9B3E37 | surface | 5.24:1 |
scale
Shared by all three themes. Space, radius and measure are pixels; the type scale is the one from Omni, which was the most developed of the three.
| Variable | Value |
|---|---|
| --wl-space-0 | 2px |
| --wl-space-1 | 4px |
| --wl-space-2 | 8px |
| --wl-space-3 | 12px |
| --wl-space-4 | 16px |
| --wl-space-5 | 24px |
| --wl-space-6 | 32px |
| --wl-space-7 | 48px |
| --wl-space-8 | 64px |
| --wl-space-9 | 96px |
| --wl-radius-sm | 2px |
| --wl-radius-base | 3px |
| --wl-radius-md | 4px |
| --wl-radius-lg | 5px |
| --wl-radius-full | 9999px |
| --wl-measure-page | 1180px |
| --wl-measure-doc | 900px |
| --wl-measure-article | 748px |
| --wl-measure-text | 660px |
| --wl-font-night-display | Bricolage Grotesque, system-ui, sans-serif |
| --wl-font-night-body | Inter, system-ui, sans-serif |
| --wl-font-night-mono | JetBrains Mono, ui-monospace, monospace |
| --wl-font-receipt-display | IBM Plex Sans Condensed, IBM Plex Sans, system-ui, sans-serif |
| --wl-font-receipt-body | IBM Plex Sans, system-ui, sans-serif |
| --wl-font-receipt-mono | IBM Plex Mono, ui-monospace, monospace |
| --wl-text-display | clamp(2.1rem, 5.2vw, 3.9rem) |
| --wl-text-section | clamp(1.55rem, 3vw, 2.3rem) |
| --wl-text-lede | 1.12rem |
| --wl-text-body | 1rem |
| --wl-text-fine | 0.86rem |
| --wl-text-eyebrow | 0.72rem |
| --wl-tracking-display | -0.03em |
| --wl-tracking-section | -0.015em |
| --wl-tracking-eyebrow | 0.14em |