XD
HD
DESIGN DASHBOARDHAUX.OS · DEFAULTS AND DIALS
← back to the document

One page for the defaults of every style, and the dials that move them. Pick a style, turn a dial, and the specimens, the palette and the fingerprint follow. Export the result as dials.json, then render real screens with it using dial_rig.py.

The specimens are an HTML approximation of each style. The renders further down are the real generator output, produced by the same rig, so they show what a dial does to an actual screen.

01 Fingerprint across styles

The same axes the dials move, measured on every style. The last column is the selected style after the dials.

AxisXDHD originalHAUX baseSRZA V1MESH v01Dialled
Surface depth · ΔE panel from background6.54.84.86.1—
Hairline strength · ΔE of the divider16.718.618.66.8—
Warmth · red minus blue of the background-0.012-0.012-0.0120.039—
Primary text on panel12.86:116.13:116.13:114.7:1—
Secondary text on panel5.81:16.71:16.71:15.6:1—
Tertiary text on panel2.7:12.95:12.95:12.64:1—
Highlight on background18.27:117.67:112.36:12.48:1—
Glow radius3.03.53.5——
Chamfer cut (px)—88——
Formsoftchamferchamferrounded—

02 Defaults of the selected style

Each swatch shows the default on the left and the dialled value on the right.

03 Specimens

A miniature of the style, restyled live. An HTML approximation: the real generator output is below.

Window

MIXER· 4 TRACKS + MASTER
Primary text
Secondary text
Tertiary text
Master-6.0 dB

Controls

Render Cancel Disabled
A1A2 A3A4
READY HOLD ERROR LIVE

List and card

Sunset dinner14 going
Co-working day6 going
Kai's farewell11 going
Casa AzulLisbon · 4 co-owners · free 14–21 Mar

04 Real renders from the rig

The same screen drawn by the kit's own generators with each preset applied, through dial_rig.py. Click to enlarge.

HAUX base — 03-BASE-L, cropped to the pad matrix

HAUX base — 03-BASE-L, cropped to the pad matrix, Default preset
Defaultno dials
HAUX base — 03-BASE-L, cropped to the pad matrix, Softer preset
Softerradius 1.5, hairline 0.6, depth 0.75, glow 0.7
HAUX base — 03-BASE-L, cropped to the pad matrix, Crisp preset
Crispradius 0.35, stroke 1.4, hairline 1.5, depth 1.3, cut 12
HAUX base — 03-BASE-L, cropped to the pad matrix, Legible preset
LegibletextLift 0.27

MESH — EVENT.PAGE, cropped to the cover and RSVP

MESH — EVENT.PAGE, cropped to the cover and RSVP, Default preset
Defaultno dials
MESH — EVENT.PAGE, cropped to the cover and RSVP, Softer preset
Softerradius 1.5, hairline 0.6, depth 0.75
MESH — EVENT.PAGE, cropped to the cover and RSVP, Crisp preset
Crispradius 0.35, stroke 1.4, hairline 1.5, depth 1.3
MESH — EVENT.PAGE, cropped to the cover and RSVP, Legible preset
LegibletextLift 0.55

05 What the dials can reach

Measured from the generators' source, and the reach of each dial.

3,554token reads across 33 tokens in 52 HAUX generator files — against 1,564 hard-coded hex colours. About 69 % of colour choices go through a token.
tx3868acc567tx492line403tx2312btn140accInk123inset105
4 · 1reads of cut and glow. Both are single points of control, so those dials are exact: one value, one place.
558references to MESH’s named colour constants, against 53 inline hex colours. The most common inline ones are paper tones the dials map: #fbf9f4×13 #efe9dc×7 #ffd9a0×3 #e8a24a×3.
DialMechanismHAUX kitXDHD originalMESHNotes
Surface depthtokenyesyesyes — also card shadowsInterpolates panels, wells and headers against the background.
Hairline strengthtokenyesyesyesScales the alpha of hair / hair2; MESH moves its line colour.
WarmthtokenyesyesyesAt most 8 % toward warm or cool.
Text lifttokenyesyesyesBlends secondary and tertiary text toward primary.
Glowtokenyesyesno — MESH has no glowScales glow and glowAlpha.
Chamfer cuttokenyesno — soft, no cutno — roundedSets cut.
Corner radiusprimitiveyesyesyesRadii are literals, so the rig rewrites rect. A token would be cleaner.
Stroke weightprimitiveyesyesyesStroke widths are literals too; the rig rewrites the primitives.
  • Most of the kit is already dial-able. The generators read tokens thousands of times and write far fewer colours inline, so a token change reaches nearly everything. Hard-coded values are the exception, not the rule.
  • tx3 is the most-read token — and the one that fails contrast. One value reaches every place it is used, which is why the Legible preset and the AA fix are a single dial.
  • Radius and stroke are the gap. Neither is a token, so they are dialled by rewriting the SVG primitives. Promoting radius and strokeWeight to tokens would make them first-class and remove the rewrite.
  • MESH is dialled by its constants, not a token file. A dial reaches it because its colours are named constants and its few inline paper tones are mapped; adding a tokens.json for it would be cleaner.

Generated 2026-10-05 from tokens ab176b73. Dial arithmetic is mirrored in src/dials.py and src/dials.js; a test runs both and compares.