XDHD.OS · DESIGN SYSTEM · v0.1 · DRAFT WORKING DOCUMENT

XDHD.OS Design System

Brand, foundations, profiles and plan for the production operating system — and the HAUX family built on the same kit.

The operating system manages computers. XDHD.OS manages productions.

XDHD.UIUX Canonical Surfaces and Viewport Spec v0.1 · 2026-10-01
domain colour-codes
canonical viewports
interaction profiles
screens indexed

Generated 2026-10-05 · tokens ab176b73 · 481 renders indexed

DESKTOP.XDHD — XDHD stream, landscape
XDHD.OS desktop — the original lookXDHD · DESKTOP.XDHD · L · v01
01

Overview

This is a single reference for how XDHD.OS looks, behaves and is built — and where it is going. It covers the brand, the visual foundations, the interaction profiles (desktop, portrait, touch, iPad), the family of operating environments that share one kit, and the plan.

One platform, several flavours. HAUX.OS is the templateable base UI operating system. XDHD.OS (the modern TechPro interface), SRZA.OS (our audio apps) and BLNK.OS (the blank template) are flavours of it. Tables throughout this document show the same colour, component or screen in each.

It is generated from the same tokens.json files the prototype kit builds from. Colour values, contrast ratios, render counts, coverage and the audit of the running shell are computed at build time, so they cannot drift from the kit. The prose and the status flags are written by hand and live in src/content.py.

BUILTExists and is verified in the kit or shell.
PARTIALExists, with named gaps.
PLANNEDDecided or documented direction; not yet built.
OPENA question or conflict that needs a decision.

Design principles

01

One environment, one graph

Switching surface is not switching context. TLJ, JANK, HERO and selection persist across every surface. Surfaces are windows into one production, not separate apps.

↗ XDHD-UIUX-Canonical-Surfaces-and-Viewport-Spec-v0.1.md
02

Two canonical viewports

1920×1080 and 1080×1920, exactly. No responsive breakpoints; any other size scales uniformly and letterboxes. Portrait is a recomposed control surface, not a reduced desktop.

↗ XDHD-UIUX-Canonical-Surfaces-and-Viewport-Spec-v0.1.md
03

Colour is information

A surface takes its domain's accent, and the accent drives the dock highlight, LEDs, pads, knobs, LCDs and meters. Nothing is coloured for decoration.

↗ README.md
04

Tactile and dark-first

Hardware vocabulary — pads, knobs, LCDs, LEDs — on flat, utilitarian surfaces with hairlines. White is the main highlight with a soft glow; orange is a rare accent.

↗ README.md
05

A flavour is a configuration, not a fork

XDHD.OS, SRZA.OS and BLNK.OS differ in domain, dock, chips and vocabulary. Tokens, components, geometry and motion preparation stay shared.

↗ README.md
06

Touch is a profile, not a fork

One kit builds desktop, touch and iPad. Tokens, domains, components, data and naming are shared; only the interaction profile differs.

↗ XDHD.TOUCH.OS.md
07

Honest states

Active, selected, focused and ready / hold / error are different things with different looks. The UI never implies a host connection or a state it has not observed.

↗ XDHD-UIUX-Canonical-Surfaces-and-Viewport-Spec-v0.1.md
08

Motion-ready by construction

Every SVG carries stable names and ids so it can become After Effects layers without a cleanup pass. Text is never outlined.

↗ NAMING-RULES.md
09

Two layers of control

Touch is the fast control layer. Keyboard and Magic Trackpad remain the precision and text layer.

↗ XDHD.OS.HAUX.UIUX-TOUCH-RULES.md

The system at a glance

Read top to bottom: each layer depends only on the ones above it.

Authority
XDHD.CORE · Pr0j.COREOwn data, commands and meaning. Surfaces read them; they never read surfaces.
BUILT
Design foundation
HAUX.CORETokens, components, interaction states, navigation and context continuity. Extraction still to do.
PLANNED
The platform
HAUX.OSThe templateable, customisable base UI OS: tokens, components, shell geometry and the flavour switch.
BUILT
Flavours
XDHD.OS · SRZA.OS · BLNK.OSConfigurations of HAUX.OS. XDHD.OS and SRZA.OS render today; BLNK.OS is the template and has no palette of its own yet.
PARTIAL
Profiles
Desktop · Portrait · Touch · iPadThe same product on a different interaction profile.
BUILT
Surfaces
BASE · FLOW · AEXL · AEXD · …Apps, windows and views inside the environment.
BUILT
02

Brand PARTIAL

How the system presents itself.

There is no ratified brand guide yet. This section records the brand as it is observed across the kit, the specs and the shell, so it can be reviewed and promoted deliberately. Items marked proposed are inferred from consistent usage, not from a written rule.

Name architecture

DeviceRuleExamples
.OSAn operating environment over a shared graph. HAUX.OS is the platform; the others are its flavours.HAUX.OS · XDHD.OS · SRZA.OS · BLNK.OS
.COREA stable contract with its own semantics and consumers — not every product or screen.XDHD.CORE · HAUX.CORE · Pr0j.CORE
0 for O, 1 for IA deliberate numeric substitution. Established codes keep their spelling.PR0J · PR0D · AE0N · M0SH · C00K · F0NT · S0NA · PERF0RMANCE · M1ND · 1CQX
Dot addressA readable path to any object, shown with a scheme prefix.xdhd://KACE.BRND.MAIN.LAUNCH · pr0j:// · m0sh:// · wwww://
Stream file namesStream, screen, orientation, version. Earlier versions are kept, never overwritten.OS.HAUX.PADS.L.v02.svg

Mark system — the tile

  1. Two lines, two letters each, always mono 800.
  2. Idle: near-black tile, white glyph, hairline frame.
  3. Active: white fill, ink glyph, soft glow.
  4. A pixel mark at the bottom-right identifies the group.
  5. The same tile scales from 16 to 120 px; the mark hides below 36 px.
XD
HD
AE
XL
AE
XD
AE
0N
IM
G_
WA
V_
M0
SH
1C
QX

live specimens, drawn from the rules at left

Scale ladder · px

XD
HD
16
XD
HD
24
XD
HD
32
XD
HD
44
XD
HD
64
XD
HD
96

States

WA
V_
IDLE
WA
V_
ACTIVE
ICONS — XDHD stream, landscape
The XDHD.Bar icon system — 25 tools in 7 groupsXDHD · ICONS · L · v01

Typeface

The probe re-runs the measurement in your browser, so this warning clears by itself once the full licence is installed.

All text — interface and mono — is specified as MonoTrial, with JetBrains Mono as the fallback. Interface type is therefore monospaced throughout: labels are uppercase and tracked, readouts use 7-segment LCD numerals, and tile glyphs are mono 800.

MonoTrial / JetBrains Mono
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789 · LABELS · TRACKING
HAUX.Clock BPMtimecode

The trial cut — measured

The installed MonoTrial files are the trial cut, and they are not usable for running copy. Measured in a browser, the characters below all draw as one identical dot, and 0 and O are the same glyph. Letters, digits other than zero, comma, period, hyphen, slash and the middle dot · are fine.

! " # $ % & ' ( ) * + : ; < = > ? @ [ \ ] ^ _ ` { | } ~ — – × ≥ ≈ “ ” ‘ … °

MonoTrial — installed cut
PR0J · AE0N · M0SH
xdhd://KACE.BRND.MAIN.LAUNCH
(desktop); [iPad]: 1+1=2?
Fallback — what this document uses
PR0J · AE0N · M0SH
xdhd://KACE.BRND.MAIN.LAUNCH
(desktop); [iPad]: 1+1=2?
Live probeChecking your installed MonoTrial…
  • The brand's zero-for-O device is invisible: PR0J and PROJ look identical.
  • A dot address loses its colon: xdhd:// draws as a dot followed by two slashes.
  • Parentheses, colons, semicolons, quotes, +, =, _, ? and ! are all unusable.
  • This document therefore sets body text in the fallback and keeps MonoTrial for labels and display.

Voice and copy — proposed

GuidelineDoDon'tWhy
State a verifiable factSIDECAR LOADED · LOCAL EDITS“All synced!”The shell shows two states and means exactly them.
Say what is not knownunobserved · simulation · FPO“Offline” when the state is simply not observedUnknown host state is labelled unobserved rather than guessed.
Address firstxdhd://KACE.BRND.MAIN.LAUNCH“Open the launch spot brand file”The address is the identity; prose is a gloss on it.
Use hardware verbsARM · IDLE · HOLD · PUSH · SCAN · OPEN IN“Click here to start”Short, uppercase, tracked micro-labels; the interface is an instrument.
Never imply a connectionNo AE or RT host connection is implied.A control that looks live but is a mockupMockup and simulation are labelled as such wherever they appear.

Avoid

  • Colour used for decoration rather than domain.
  • Hover-only reveals — nothing may depend on hover on a touch profile.
  • Hidden scrollbars on any region that scrolls.
  • Outlined text in anything headed for After Effects.
  • Overwriting a version instead of adding the next one.
03

Flavours and the family PARTIAL

One platform, configured three ways.

HAUX.OS and its flavours

The platform diagram is drawn from the tokens and the kit's dock sets, not typed.

HAUX.OS is the product; the flavours are how we show it. HAUX.OS is a templateable, customisable base UI operating system. XDHD.OS, SRZA.OS and BLNK.OS are our own flavours of it — the personal surface customisations we use to illustrate what the system can do.

A flavour is a short list of choices, not a fork. It decides where a surface starts, what it carries and what it is called. Everything else — tokens, components, shell geometry, motion preparation and the touch profiles — is shared, which is why the same artifact can be shown in every flavour below.

A fourth, MESH, is an exploration at the other end of the range: where XDHD.OS is dark and technical, MESH is light, warm and rounded, built for families and everyday life.

HAUX.OStemplateable base UI operating system
TokensComponentsShell geometryMotion preparationTouch and iPad profilesFlavour switch
BLNK.OStemplate

The blank starting point

starts in XDHD · HOME + 15 dock
XDHD.OSTechPro

Modern production interface

starts in XDHD · HOME + 15 dock
SRZA.OSaudio

Our audio apps

starts in AUDIO · HOME + 8 dock
MESHeveryday life · exploration

Family, calendars, shared homes

own light palette · golden-grid navigation
What a flavour decidesDetailWhere it lives
Domain and accentWhich of the nine colour-codes a surface takes, and whether its content is soft or chamfered.tokens.json › domains · set_screen(domain)
EcoThe kit's switch between the XDHD and audio sets: dock keys, HOME mark, top-bar chips and address.set_screen(eco) in core.py
DockWhich surfaces get a key, in what order, coloured by which domain.DOCK_X · HAUX_SURF · dockDomain
Top-bar chipsThe context shown beside the address: TLJ and JANK, or project and the HAUX.Clock BPM.topbar in core.py
Address prefixxdhd://, pr0j://, wwww:// by domain; the audio eco always shows m0sh://.PROTO · jank_addr()
`.HAUX` flavour keyA second key under the corner mark that says which flavour you are in.flavour() in core.py
↗ core.py

Members

Pr0j classification: project TYPE 0S__, production TYPE UIUX. Live rollout of the four OS entries is pending.

HAUX.COREFoundation library
PLANNED

The shared design overlap of HAUX.OS and its flavours: tokens, components, interaction states, navigation and context continuity, extracted into one verified library.

Look
—
Chrome
—

Design direction recorded 2026-10-02. Extraction has not started; existing shared UI files stay in place until consumers can use a verified library.

↗ README.md
HAUX.OSThe platform
BUILT

The templateable, customisable base UI operating system we are building. It owns the tokens, the components, the shell geometry and the flavour switch. Every flavour below is a configuration of it, not a fork.

Look
_src.HAUX · base look v02 onward
Chrome
HOME + 15 dock, a .HAUX flavour key, one top bar

The current working kit; renders in OS.HAUX, OS.TOUCH and OS.IPAD.

↗ README.md
BLNK.OSFlavour · the template
PARTIAL

The blank, generic template: HAUX.OS in its default state, with no flavour opinions. The starting point for a new flavour, and the baseline the others are read against.

Look
HAUX base look, default white domain
Chrome
BLNK and BLNK.SRZA chrome exports

Structurally blank, not yet unstyled: it still wears the HAUX chamfer and typeface, and its components are identical to the XDHD flavour's. A neutral token set is planned.

↗ README.md
XDHD.OSFlavour · TechPro
BUILT

Our modern, technical production interface: TLJ and JANK context, the full dock of fifteen apps, soft white, blue and orange domains for production surfaces and chamfered ones for motion and live.

Look
_src.XDHD original (soft, pill) — and the HAUX look from v02
Chrome
HOME + 15 dock · TLJ and JANK chips · address prefix by domain

The web shell hosts the canonical surfaces over one isolated demo cartridge.

↗ XDHD-OS-Unified-Surfaces-Architecture-and-Migration-v0.1.md
SRZA.OSFlavour · audio apps
PARTIAL

Our audio-apps surface: four tracks plus master, loops, scenes and a monitor, with the HAUX.Clock BPM. The music domain's mint accent colours the whole screen.

Look
HAUX base look, music domain (mint, chamfered); the V1 mint-only look is archived
Chrome
HOME + 8 audio dock · project and HAUX.Clock chips · m0sh://

Formerly SRZA.HAUX.OS. Seven of the eight dock keys have renders; VST is not mocked. Renders live in OS.HAUX — OS.SRZA/ is still empty.

↗ README.md
MESHFlavour · everyday life · exploration
PARTIAL

The family and everyday-life flavour: calendars, bookings, shared homes and co-ownership, for digital nomads and families. Deliberately the opposite look — light, warm and rounded — to show how far the platform stretches.

Look
Its own light palette, set in build_mesh.py, with an Inter text face
Chrome
No dock yet — navigation is the recursive golden grid: Trail · Pinned · Search or jump · Recent

Ten v01 renders in OS.G0LD.OS/MESH: three golden-grid screens and the seven-screen events flow. The mesh:// prefix is an assumption and the flavour is not named in the plan.

↗ README.md

Flavours side by side

Where each flavour starts and what its dock holds are read from the tokens and the kit source.

AxisBLNK.OSXDHD.OSSRZA.OSMESH
Starts inXDHD #F4F5F1 softXDHD #F4F5F1 softAUDIO #64E5B5 chamferOwn palette #FF6B5B light
DockHOME + 15 dock
HOMEDESKFLOWTIMEXTXTBASEPR0JPERFAEXLAEXDAE0NHAUXPRXDDASHDDDDKEEP
HOME + 15 dock
HOMEDESKFLOWTIMEXTXTBASEPR0JPERFAEXLAEXDAE0NHAUXPRXDDASHDDDDKEEP
HOME + 8 dock
HOMETRKMIXSTYLLOOPSCENMONVSTCQX
No dock
navigation is the golden grid
RoleThe templateProduction — modern TechPro interfaceAudio appsFamily and everyday life
Kit ecoxdhdxdhdhauxnone — a generator on the kit
Top-bar chipsTLJ and JANKTLJ and JANKProject and the HAUX.Clock BPMHAUX.Clock kept; a time-zone clock is suggested
Address prefixBy domainBy domain — xdhd:// pr0j:// wwww://m0sh://, fixedmesh://, assumed
VocabularyThe default set — XDHD's, todayTLJ · JANK · HERO · BRND / FACET / MEDIUM · PRODUCTIONTracks and master · STYL · loops · scenes · monitorTrail · Pinned · Search or jump · Recent
Chrome exportsBLNKXDHD, HAUXSRZA.HAUX (V1), BLNK.SRZAnone
Surface renders innone of its ownOS.XDHD, OS.HAUX, OS.TOUCH, OS.IPADOS.HAUX, OS.TOUCHOS.G0LD.OS/MESH — ten v01 screens

What is shared. Tokens, the component library, naming and motion preparation, dot-addressed JANK and the interaction profiles are common to every flavour. What differs is the domain, the dock, the chips and the vocabulary — not the foundation.

A fourth flavour is already in the code. The .HAUX key can read SRZA · AE0N · XDHD. AE0N appears when the motion domain runs the AE0N app. It is not named as an OS in the plan — worth deciding whether it should be.

The same chrome in each flavour

Empty canvases with only the shell, cropped to the top-left where the mark, top bar and dock sit. Click one for the full canvas.

BLNK — CHROME stream, landscape
BLNK — the templateCHROME · BLNK · L · v01
BLNK.SRZA — CHROME stream, landscape
BLNK.SRZA — the template, SRZA flavourCHROME · BLNK.SRZA · L · v01
XDHD — CHROME stream, landscape
XDHD — the original XDHD shellCHROME · XDHD · L · v01
SRZA.HAUX — CHROME stream, landscape
SRZA.HAUX — the V1 audio shell, archivedCHROME · SRZA.HAUX · L · v01
HAUX — CHROME stream, landscape
HAUX — base look, before the 16-key shellCHROME · HAUX · L · v01
NameWhat it isSource
XDHDOriginal XDHD.OS shell_src.XDHD
SRZA.HAUXOriginal V1 shell — 8-key audio dock_archive/HAUX.OS.V1.kit
HAUXHAUX base look, before the HOME + 15 dock and unified-bar changes_src.HAUX
BLNKCurrent hybrid: HOME + 15 dock, .HAUX key, one top bar_src.HAUX
BLNK.SRZABLNK inside the HAUX audio ecosystem_src.HAUX

One navigation, two flavours

The recursive golden-grid navigation is shared; the look, the wording and the palette are the flavour.

MESH events flow

Seven v01 screens. Click any to open it full size.

One flow, two companions. An event moves Hub → Plan → Page → RSVPs → Album. The trip and meal planners sit beside it and link in: an event's menu comes from a meal plan, and a trip's stays come from your homes. All seven screens use the same golden-grid navigation and the MESH skin, with placeholder data, and are generated by build_mesh_events.py.

Events hub in MESH
Events hub

Upcoming events, templates to start from, a live RSVP count and the shared albums.

Plan an event in MESH
Plan an event

Title, date and place with an availability check, a cover, a note, and the guest list, linked menu and budget beside it.

Event page in MESH
Event page

What a guest sees: cover, date, a one-tap RSVP, the schedule, who is coming and what to bring.

RSVP management in MESH
RSVP management

Every response with plus-ones and dietary needs, headcount against capacity, a waitlist and scheduled nudges.

Photo albums in MESH
Photo albums

A shared album for the event, the other albums, faces matched on device, and an upload tray.

Trip planner in MESH
Trip planner

A day-by-day itinerary, the route, stays tied to your homes, a packing list and the split budget.

Meal planner in MESH
Meal planner

The week's meals with who cooks, a shopping list with buyers and costs, and a diet matrix.

The SRZA audio set

Each key of the SRZA dock, the screen behind it and the profiles it has been drawn for.

Dock keyScreenRoleProfilesHAUX render
TRKTRACKSTrack viewHAUXTOUCHIPADTRACKS in the SRZA flavour
MIXMIXERFour tracks plus masterHAUXTOUCHIPADMIXER in the SRZA flavour
STYLSTYLSTYL view — not described in the kit docsHAUXTOUCHIPADSTYL in the SRZA flavour
LOOPLOOPFINDERLoop findingHAUXTOUCHIPADLOOPFINDER in the SRZA flavour
SCENSCENESScene viewHAUXTOUCHIPADSCENES in the SRZA flavour
MONMONITORMonitor viewHAUXTOUCHIPADMONITOR in the SRZA flavour
VST—Plug-in host — not mockedHAUXTOUCHIPADno render
CQX1CQXSpaces and chat — shared with the XDHD flavourHAUXTOUCHIPAD1CQX in the SRZA flavour

Dock keys by domain

Computed from the tokens' dockDomain map. Each key carries its surface's domain colour.

XDHDsoft
#F4F5F1
DESKXTXTBASEDASHKEEPCQXHOMEFLOWTIME
PR0Jsoft
#7CC8FF
PR0JPROXPRXD
AUDIOchamfer
#64E5B5
HAUXTRKMIXSTYLLOOPSCENMONVST
MOTIONchamfer
#8F7CFF
AEXLAEXDAE0N
M0SH LIVEchamfer
#2BFF5A
no dock keys — reached through screens
PRE-FORMchamfer
#FF3DDC
no dock keys — reached through screens
PER-FORMchamfer
#C6FF3D
PERF
DDDDsoft
#4D9BFF
DDDD
.STUDIOsoft
#FF7A45
STUD

Explorations on the base

Built on the HAUX kit but not flavours: studies of how the whole OS could navigate.

ExplorationWhat it isSource
OS.FNDRFile and folder navigator: columns, grid, triage, dual pane and a golden-grid treemap. Every item has an address, a view and a location.↗ README.md
OS.G0LD.OSAn entire UI built from nested golden-grid panels, where depth is zoom and the address is the path. Its MESH variant is the everyday-life flavour above.↗ README.md
04

Foundations BUILT

Colour, type, form, layout and state.

Colour principles

  • One domain per surface. The domain sets the accent, and the accent colours the dock key, LEDs, pads, knobs, LCDs and meters on that surface.
  • White is the default. It is the XDHD domain accent, shown with a soft glow rather than saturated.
  • Orange is rare. pop is reserved for the occasional accent, never a second highlight.
  • Shell chrome is always chamfered. soft domains keep pill-style content; hardware-like domains chamfer their content as well.

Neutrals

The current HAUX look beside the original XDHD look. Left swatches respond to the Token Lab.

HAUX look — current

Backgroundbg#0C0E0F
Panelpanel#16191B
Panel, raisedpanelHi#1D2124
Window headhead#1F2427
Inset wellinset#08090A
Buttonbtn#262B2E
Button, raisedbtnHi#30363A

XDHD look — original

Backgroundbg#141517
Panelpanel#212225
Panel, raisedpanelHi#26272B
Window headhead#2A2B30
Inset wellinset#0F1012
Buttonbtn#34353A
Button, raisedbtnHi#3C3D43

The palette across looks

The same token in each look the kit has produced. SRZA V1 is the archived audio look, MESH is read from its generator, and BLNK has no token set yet.

TokenXDHD originalHAUX baseSRZA V1MESH v01BLNK
Backgroundbg#141517Δ 3#0C0E0Fbase#0C0E0Fsame#F4F1EAΔ 91not defined
Panelpanel#212225Δ 5#16191Bbase#16191Bsame#FFFFFFΔ 91not defined
Window headhead#2A2B30Δ 4#1F2427base#1F2427samenot definednot defined
Inset wellinset#0F1012Δ 2#08090Abase#08090Asamenot definednot defined
Buttonbtn#34353AΔ 6#262B2Ebase#262B2Esamenot definednot defined
Primary texttx#E6E7EAΔ 6#F4F5F1base#F4F5F1same#1F2A2EΔ 80not defined
Secondary texttx2#9A9CA4Δ 6#9AA19Fbase#9AA19Fsame#5D6A6EΔ 22not defined
Tertiary texttx3#62646CΔ 7#5D6563base#5D6563same#97A1A4Δ 24not defined
Main highlightacc#FFFFFFΔ 4#F4F5F1base#64E5B5Δ 49#FF6B5BΔ 74not defined
Ink on highlightaccInk#101113Δ 4#06100Cbase#04201AΔ 11not definednot defined
Poppop#FF9F1AΔ 31#F1BB67base#F1BB67samenot definednot defined
Readyok#3DDC84Δ 24#64E5B5base#64E5B5samenot definednot defined
Errorerr#FF5A4DΔ 21#FF7D78base#FF7D78samenot definednot defined

Δ is the CIE76 colour distance from the HAUX base: under 2 is imperceptible, over 10 is clearly different.

TokenXDHD originalHAUX baseSRZA V1MESH v01BLNK
Formsoft (pills, no chamfer)chamfer · cut 8pxcut 8pxrounded · r 18 / 10 · soft shadownot defined
Glow3.0 · α 0.653.5 · α 0.753.5 · α 0.75nonenot defined
Text faceMonoTrial → InterMonoTrial → JetBrains MonoMonoTrial → JetBrains MonoInter → SF Pro Textnot defined
Primary text on background14.78:1 · AAA17.67:1 · AAA17.67:1 · AAA13.03:1 · AAAnot defined
Tertiary text on panel2.70:1 · FAIL2.95:1 · FAIL2.95:1 · FAIL2.64:1 · FAILnot defined
Highlight on background18.27:1 · AAA17.67:1 · AAA12.36:1 · AAA2.48:1 · FAILnot defined
  • SRZA V1 and the HAUX base share every neutral. Their backgrounds, panels, text and strokes are identical to the digit; only the accent family differs. The HAUX base took the V1 palette and made the accent depend on the domain — and V1's mint is now the music domain's accent.
  • The XDHD original is a different palette, not a variation. Cooler, lighter greys, a brighter orange and green, soft content with no chamfer, and a sans fallback face.
  • MESH is the far end of the range. A light, warm page with white cards, a coral highlight and a real sans, set in its generator rather than in a token file. Its tertiary text is faint on white too.
  • BLNK has no palette of its own yet, which is why its column says so.

Text tiers

Primary texttx#F4F5F1
Secondary texttx2#9AA19F
Tertiary texttx3#5D6563
Primary texttx#E6E7EA
Secondary texttx2#9A9CA4
Tertiary texttx3#62646C

Accent and semantic

Main highlightacc#F4F5F1
Ink on highlightaccInk#06100C
Deep tonedeep#2A2E2C
Pop — rarepop#F1BB67
Violetvio#B79BF0
Infoinfo#8FB8D0
Readyok#64E5B5
Errorerr#FF7D78
Main highlightacc#FFFFFF
Ink on highlightaccInk#101113
Pop — rarepop#FF9F1A
Infoinfo#8FB8D0
Readyok#3DDC84
Errorerr#FF5A4D

Domain colour-code

DomainAccentInkDeepFormAccent on bgInk on accent
XDHD#F4F5F1#0C0E0F#2A2E2Csoft17.67:1 · AAA17.67:1 · AAA
PR0J#7CC8FF#06141F#17394Fsoft10.65:1 · AAA10.25:1 · AAA
AUDIO#64E5B5#04201A#164D40chamfer12.36:1 · AAA10.94:1 · AAA
MOTION#8F7CFF#0B0720#2B2466chamfer5.98:1 · AA6.10:1 · AA
M0SH LIVE#2BFF5A#02140A#0E5A24chamfer14.33:1 · AAA14.05:1 · AAA
PRE-FORM#FF3DDC#1C0318#6A1560chamfer6.41:1 · AA6.46:1 · AA
PER-FORM#C6FF3D#121C02#4A6A0Echamfer16.38:1 · AAA14.90:1 · AAA
DDDD#4D9BFF#04101F#173A66soft6.86:1 · AA6.78:1 · AA
.STUDIO#FF7A45#210A00#5A2A12soft7.48:1 · AAA7.33:1 · AAA
COLOURCODE — HAUX stream, landscape
The colour-code legend sheetHAUX · COLOURCODE · L · v02

The legend sheet renders eight domains; the tokens define nine (`.STUDIO` is the addition).

Contrast

PairRatio · WCAG
tx on bg17.67:1 · AAA
tx on panel16.13:1 · AAA
tx on inset18.20:1 · AAA
tx2 on bg7.35:1 · AAA
tx2 on panel6.71:1 · AA
tx2 on inset7.57:1 · AAA
tx3 on bg3.23:1 · AA-large
tx3 on panel2.95:1 · FAIL
tx3 on inset3.33:1 · AA-large

All domain accents pass AA on the background. Tertiary text is the exception — see the Plan.

Typography

RoleDesktopTouchiPadNote
Micro label7–9 px exist in the kitfloor 10.5 pxfloor 10 ptUppercase, tracked
Interfaceas designed12–17 px targets—MonoTrial
Readout7-segment LCD7-segment LCD7-segment LCDClocks, BPM, timecode, values
Tile glyphmono 800mono 800mono 800Two lines, two letters

Form language

PUSH
Softpill pads — xdhd · pr0j · dddd · studio
PUSH
Chamfercut 8 px — music · motion · live · preform · perform, and all shell chrome
ON
Activewhite fill, ink glyph, soft glow 3.5 px at 0.75

Dimensions and tokens

TokenValueUsed for
Chamfer cut8 pxShell chrome and hardware-like domains
Hairline#ffffff14Panel and row boundaries
Hairline, strong#ffffff2aFocused or raised boundaries
Glow3.5 px at 0.75The active highlight
Desktop top bar56 pxMenus, address pill, context chips
Desktop dock72 px16 keys, domain-coloured
Desktop status bar16 pxCarries the OS version
Touch top bar72 pxLarge buttons, sheet pickers
Touch dock88 pxPinned apps plus an ALL APPS grid
Touch status bar20 px
Portrait bottom bar104 pxTouch portrait
Spacing scale4 · 8 · 12 · 16 · 24 · 32The shell's shared stylesheet

Canonical viewports

LANDSCAPE_10801920×1080
  • Global menu
  • Launcher
  • Persistent context
  • Surface workspace with Hero and Inspector panes
PORTRAIT_10801080×1920
  • Global menu and context
  • Hero canvas
  • Active controls
  • Pads and matrix
  • Inspector as a bottom drawer

This is an intentional product decision, supporting dedicated 1080p and USB-C displays, iPad portrait dashboards, predictable spatial memory and hardware-style interaction. Shell, FLOW, DASH and PERF0RMANCE recompose for portrait; AEXL, AEXD, XTXT and BASE keep their legacy internal layouts until migrated.

State grammar

StateMeaningLook
ActiveThe current surface.Dock key: white fill, ink glyph, soft glow.
SelectedA graph object.Shared across every surface; changing surface does not change it.
FocusedThe keyboard target.A focus ring, independent of selection.
ReadyOperational and healthy.LED in the ok colour.
HoldWaiting or held.LED in the pop colour.
ErrorFailed or blocked.LED in the err colour.
ReadyHoldError

Identity and motion naming

IdentityExampleNotes
Local ida2ffAssigned once and persisted per stream, screen, orientation and address.
Canonical production idpendingNot yet bound — PR0J / PR0D binding is provisional.
Human addressHAUX.OS.BASE.L.Shell.Topbar.Button.DESKDot-separated roles.
Display nameButton.DESK {a2ff}The After Effects compatible form.
XML idn-a2ffStable across rebuilds.
RoleApplied to
precompViewport regions, BASE cells, knobs and sections.
layerButtons, chips, labels, surfaces and needles.
groupDecorative elements such as texture and ticks.

Roles are proposed attributes (data-aexd-role) and are not yet read by the AEXD importer. Text is never outlined; font stacks are preserved byte for byte.

↗ NAMING-RULES.md
05

Shell and chrome BUILT

The parts the operating system owns, so surfaces do not.

Anatomy

RegionSizeContents
Top bar56 pxMark and home, global menus, the dot-address pill, context chips and the HAUX.Clock BPM.
Launcher dock72 pxSixteen keys, each in its surface's domain colour. The active key is lit; SET sits below.
Context strip—TLJ · JANK · BRND-FACET-MEDIUM · PRODUCTION · HERO · HIST. Persists across surfaces.
Workspace—The active surface, with shell-owned Hero and Inspector panes.
Status bar16 pxOS version, graph health with node and edge counts, the active viewport profile.
DESK.FLOW — HAUX stream, landscape
The .DESK / FLOW surface in the HAUX look: top bar, dock, context, Hero and InspectorHAUX · DESK.FLOW · L · v02

The top bar carries the domain

Four of the 56 px top bars, one per domain, from the extracted component set.

Operating-system services

OS serviceStatusNotes
Global menu and chromeBUILTThe shell owns it; surfaces do not draw their own.
LauncherBUILTSwitches surface and retains context.
Persistent contextBUILTTLJ, selected JANK, axes, stage, HERO and pinned output survive a surface change.
Shared Hero canvasBUILTMounted once in the shell: selection or the TLJ's HERO, pin, versions, fit and fill, fullscreen, external display.
Shared InspectorBUILTContainment path, relations and title or summary edits through the common store.
Navigation historyPLANNEDNamed as a next architecture requirement; not yet shared.
Clipboard and DispatchPLANNEDNamed as a next architecture requirement; Dispatch is FPO.
Window managerPLANNEDCurrent windows are panel motifs; a full window manager is deferred.

Chrome explorations

Four alternative interpretations of the shell, kept for a decision.

  • PUSH — Hardware instrument: green-phosphor LCD, eight encoders, a rubber-pad dock, amber clock LCD.
  • TABS — Open apps as tabs, an omnibox address bar with context chips, a slim icon rail.
  • ROSTER — Full-height labelled sidebar grouped WORK / PRODUCE / OPERATE, command-palette top bar.
  • HUD — No bars: floating glass capsules for app, address, clock and dock over the canvas.
PUSH — CHROME stream, landscape
PUSHCHROME · PUSH · L · v02
TABS — CHROME stream, landscape
TABSCHROME · TABS · L · v02
ROSTER — CHROME stream, landscape
ROSTERCHROME · ROSTER · L · v02
HUD — CHROME stream, landscape
HUDCHROME · HUD · L · v02
DESK.FLOW — HAUX stream, portrait
The same surface recomposed for the portrait viewportHAUX · DESK.FLOW · P · v02
06

Components BUILT

The shared library the surfaces are assembled from.

The kit has 236 unique component names. The groups below are the ones documented here; the full list is at the foot of the section.

Vocabulary

Shell

topbarmenubardockstatusbarbottombartoolbarctxstripdraweros_windowtool_bartool_headtool_bodytools_page

Controls

touchstripopeninpadbrowserpush_sidetransportprxd_transportprxd_bar

Data

aexl_tableaexl_treepropsrelationsjank_filesnodes_cardsbase_navbase_recentdispatch_logreps

Time and audio

ae_tlae_propstl_laneshx_trackshx_markershx_clockhx_mixerhx_inspectormon_cachelive_out

Preview and chat

hero_thumbhero_monitorprxd_stagecqx_chatcqx_liststudio_dashprox2_railnest_sidexdmd_props
All 236 component names
ae_characterae_effectsae_graphae_infoae_layersae_presetsae_previewae_projectae_propsae_timelineae_tlae_toolsae_vieweraexl_tableaexl_treebar_tabsbase_ladderbase_matrixbase_navbase_recentbase_teachbottombarbrndstyl_pagec00l_filesc00l_loopc00l_procc00l_selviewc00l_spectralc00l_wavecase_contentscase_listcase_viewcell_viewcolbgcqx_chatcqx_listcqx_menuletcqx_minicqx_popovercqx_railcqx_sidectxstripdash_herodddd_lanesdddd_stagesdesk_surfacedispatch_logdockdomain_sheetdrawereco_pageeq_pluginflow_canvasfndr_actionsfndr_barfndr_columnsfndr_gridfndr_panefndr_previewfndr_sidefndr_stratafndr_treefndr_triagefont_editorfont_exportfont_gridfont_headfont_listfont_rigfont_specimenfx_blurfx_echofx_glitchfx_glowfx_kaleidofx_kitfx_rgbfx_tintfx_wallfx_warpgold_bargold_drillgold_findgold_gapsgold_herogold_hero_169gold_hero_v02gold_pivotgold_sortgold_zoom0gold_zoom1gold_zoom2graph_nethaux_looperhaux_mixerhaux_trackshero_monitorhero_thumbhx_bushx_clockhx_inspectorhx_markershx_masterhx_mixerhx_ribbonhx_tracksicon_sheetidentity_paneljank_filesjank_resolvejank_treekeep_idkpislabel_panellauncherlive_decklive_matrixlive_outlive_takeloc_planloginloop_candidatesloop_ctrlloop_ssmmenubarmon_cachemon_pipelinemon_playermon_strategymove_queuemp_bottommp_canvasmp_devicesmp_fxlistmp_gensmp_layerrackmp_toolbarmp_transportnav_anatomynav_l0nav_l1nav_l2nav_l3nav_mapnest_framesnest_sidenest_stairsnest_stratanest_treemapnode_canvasnodes_cardsopeninos_taskbaros_windowpadbrowserplugin_suitepr0j_gridpr0j_profileprint_sheetpro_launchpropsprox2_bottomprox2_frameprox2_railprox2_topprox_compareprox_fidelityprox_headprox_modesprox_specsprox_viewerprxd_barprxd_stageprxd_transportpush_bannerpush_bottompush_depthpush_heropush_padspush_sidepush_toprackrelationsrepssamplerscen_ctrlscen_noveltyscen_sectionssettings_navsettings_panesettings_previewshelf_unitsona_pagesource_blockspecs_pagestage_canvasstage_encodersstage_fxstage_masterstage_matrixstage_modesstatusbarstudio_dashstudio_launcherstyl_atlasstyl_kitsstyl_padsstyl_remapsys_statusthroughputtl_covertl_lanestl_overviewtl_scaletool_bartool_bodytool_headtoolbartools_activitytools_bannertools_bottomtools_padstools_pagetools_sidetools_toptopbartouch_spectouchstriptransporttrax_miniwallpaperxbarxdhdio_pagexdmd_editorxdmd_previewxdmd_props

One component, three treatments

The same component file in the original XDHD look and in the HAUX look under two flavours. The XDHD-flavour column is also what BLNK renders today — it has no components of its own.

ComponentXDHD original lookHAUX look · XDHD flavourHAUX look · SRZA flavour
Spaces list250x750Spaces list — XDHD original lookSpaces list — HAUX look · XDHD flavourSpaces list — HAUX look · SRZA flavour
Chat panel570x750Chat panel — XDHD original lookChat panel — HAUX look · XDHD flavourChat panel — HAUX look · SRZA flavour
Menu bar 1920x32 · left edge, actual size
XDHD original lookMenu bar — XDHD original look
HAUX look · XDHD flavourMenu bar — HAUX look · XDHD flavour
HAUX look · SRZA flavourMenu bar — HAUX look · SRZA flavour
Context strip 1920x44 · left edge, actual size
XDHD original lookContext strip — XDHD original look
HAUX look · XDHD flavourContext strip — HAUX look · XDHD flavour
HAUX look · SRZA flavourContext strip — HAUX look · SRZA flavour
Status bar 1920x32 · left edge, actual size
XDHD original lookStatus bar — XDHD original look
HAUX look · XDHD flavourStatus bar — HAUX look · XDHD flavour
HAUX look · SRZA flavourStatus bar — HAUX look · SRZA flavour
Taskbar 1920x64 · left edge, actual size
XDHD original lookTaskbar — XDHD original look
HAUX look · XDHD flavourTaskbar — HAUX look · XDHD flavour
HAUX look · SRZA flavourTaskbar — HAUX look · SRZA flavour

Specimens — BASE Q-LINK knobs

Extracted from the motion-prepared component set. Needle pivots are stored as data-pivot.

BASE — HAUX stream, landscape
BASE in the HAUX look: matrix of cells with the Q-LINK knobs at the rightHAUX · BASE · L · v04
PADS — HAUX stream, landscape
PADS: sixteen visual pads with AE-style panelsHAUX · PADS · L · v04
07

Profiles PARTIAL

The same product on different input and display.

Four profiles, one kit

_src.HAUX builds desktop by default, --profile touch for touch and --profile ipad for iPad. There is no code fork.

DesktopTouchiPad
InputKeyboard + Magic TrackpadSingle tap only — no scroll, pinch or swipeMulti-touch
Canvas1920×1080 · 1080×19201920×1080 · 1080×19201024×768 · 768×1024 pt (4:3)
Target sizeDesktop scale≥ 56 px (shell keys 64–80); XDHD.Pro surfaces 44≥ 44 pt (dock 52)
Type floor7–9 px labels exist10.5 px10 pt
ScrollingNative, invisibleTouch strips on every scrolling regionNative — strips not used
Hover, right-click, modifiers, drag and dropAllowedBannedAllowed
Undo⌘ZPersistent UNDO / REDOSystem
Top bar / dock / status56 / 72 / 16 px72 / 88 / 20 pxTop bar 44 pt, dock keys 52 pt

Desktop and portrait

The desktop profile stays traditional — keyboard and trackpad, dense, hover and modifier friendly — and keeps developing independently. Portrait is the same 1080 canvas turned through 90°, recomposed rather than reduced.

DESK.FLOW — HAUX stream, landscape
Desktop — dense, hover and modifier friendlyHAUX · DESK.FLOW · L · v02

Touch

Test hardware is a portable ~15 in 1080p touchscreen at about 141 ppi (1 mm ≈ 5.6 px) that delivers a single tap or click only. Scrolling is therefore the one thing the interface must always show.

The eight rules

1

No hidden-scroll dependency

Any scrollable region has a persistent, chunky touch affordance.

2

Touch strips

Vertical or horizontal scrub bars wherever scrolling matters. The strip is the scroll bar.

3

Pages over scroll

Prefer page and section switching to long free-scrolling screens.

4

Generous targets

Minimum 56×56 px (about 10 mm), comfortable 64 px, gap at least 8 px.

5

No hover-only states

Nothing is revealed by hover; every function is reachable with one tap.

6

Draggable looks draggable

Grips have ridges and end chevrons.

7

Precision is a big secondary control

Steppers, page buttons, nudge and a zoom pad — never a tiny scrollbar.

8

Two layers

Touch is fast control; keyboard and trackpad stay the precision and text layer.

TOUCH.RULES — TOUCH stream, landscape
The touch-first rules sheet, with strip anatomyTOUCH · TOUCH.RULES · L · v01

Touch strip

Every button is as thick as the strip. States: idle, dragging (filled with glow), at-end (step button dims).

PartDoes
SIZECap that cycles S 44 · M 56 · L 72 px.
PAGE ▲▲Jump a page.
STEP ▲Nudge one row.
GRIPRidges and chevrons; drag.
TRACKTicks mark pages.
n / NPage counter.

How much is left

Desktop kit
98%4,033 of 4,115 below 56 px
Touch kit
46%2,201 of 4,705 below 56 px

Share of tap-target-like widgets under 56 px — auto-generated by the touch audit. 67 of 189 screens carry at least one strip (118 strips in total).

Sheets replace gestures

TOUCH.VALUE — TOUCH stream, landscape
VALUE sheet — replaces dragging knobsTOUCH · TOUCH.VALUE · L · v01
TOUCH.PICKER — TOUCH stream, landscape
PICKER — 56 px rowsTOUCH · TOUCH.PICKER · L · v01
TOUCH.ACTIONS — TOUCH stream, landscape
ACTIONS — selection bar; delete needs two tapsTOUCH · TOUCH.ACTIONS · L · v01
TOUCH.APPS — TOUCH stream, landscape
ALL APPS gridTOUCH · TOUCH.APPS · L · v01

Edge-handle motif — a study

Screens 50–55. Whether drag events reach the app on the panel is the first thing to test.

A handle sits on every edge — ridges, a chevron and a label; tap to toggle. Windows float freely with no grid, carry a visible move grip, 44 px window buttons and a resize corner, so interfaces can later be remixed from tools and windows.

DrawerHolds
MENU · topSystem: address, TLJ, context, JUMP, open-window switcher, layouts, quick toggles.
APPS & TOOLS · leftApps and the XDHD.Pro tool tiles.
INSPECT · rightProperties, open-in, TLJ pads.
TOOLS · TIME · WINDOWS · bottomTransport, undo and redo, scrub strip, tool tray, minimised windows.
EDGE.HOME — TOUCH stream, landscape
HOME — four free windowsTOUCH · EDGE.HOME · L · v01
EDGE.TOP — TOUCH stream, landscape
TOP · MENUTOUCH · EDGE.TOP · L · v01
EDGE.LEFT — TOUCH stream, landscape
LEFT · APPS & TOOLSTOUCH · EDGE.LEFT · L · v01
EDGE.RIGHT — TOUCH stream, landscape
RIGHT · INSPECTTOUCH · EDGE.RIGHT · L · v01
EDGE.BOTTOM — TOUCH stream, landscape
BOTTOM · TOOLS · TIMETOUCH · EDGE.BOTTOM · L · v01
EDGE.REMIX — TOUCH stream, landscape
REMIX — drawers pinned openTOUCH · EDGE.REMIX · L · v01

iPad

The touch profile re-targeted at an iPad mini 2: 1024×768 pt landscape and 768×1024 pt portrait (2048×1536 at @2x, 326 ppi). Apple's 44 pt minimum applies everywhere; type floor 10 pt. Multi-touch exists, so touch strips are not used.

HOME — IPAD stream, landscape
HOME — edge handles with floating windowsIPAD · HOME · L · v01
AEXD — IPAD stream, landscape
AEXD — document graph, canvas, AE planIPAD · AEXD · L · v01

Hardware

BASE is a fixed hardware matrix, and the canonical viewports are chosen to suit dedicated 1080p and USB-C displays and instrument-style control. Hardware drawings live in OS.HARDWARE as an Illustrator file and are not yet part of this document.

08

Surfaces BUILT

The apps and views inside the environment.

Each card lists the profiles the surface has been drawn for and whether it is mounted in the running shell. Both are computed from the kit and the shell source at build time.

Canonical surfacesThe eight roles named in the Canonical Surfaces spec.

.DESK / FLOW
.DESK / FLOW

Spatial desktop and graph workspace tying contexts together.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
BASE
BASE

Fixed matrix, teaching and navigation.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
PR0JECTOR
PR0JECTOR

Multidimensional projection and browser.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
AEXL
AEXL

Dense operational data editor.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
AEXD
AEXD

Visual design and materialisation.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
XTXT
XTXT

Text authoring, control and capture.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
PERF0RMANCE
PERF0RMANCE

Live and instrument control; pr0d.mode and m0sh.mode.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD
DASH
DASH

Status, cockpit and launcher.

MOUNTED IN SHELLXDHDHAUXTOUCHIPAD

MotionAfter Effects-side work in the XDHD.OS look.

AE0N
AE0N

After Effects-faithful layout in the XDHD.OS look.

MOCKUP ONLYXDHDHAUXTOUCHIPAD

HAUX audio appsThe music and audio-production flavour.

C00LEditPro
C00LEditPro

Waveform editor.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
HAUX
HAUX

Tracks, mixer, STYL, loops, scenes and monitor.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
MIXER
MIXERSRZA DOCK

Four tracks plus master.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
TRACKS
TRACKSSRZA DOCK

The HAUX track view.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
LOOPFINDER
LOOPFINDERSRZA DOCK

Loop finding.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
SCENES
SCENESSRZA DOCK

Scene view.

MOCKUP ONLYXDHDHAUXTOUCHIPAD

M0SHLive and pre-form performance.

M0SH.LIVE
M0SH.LIVE

Live performance output.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
M0SH.PRO
M0SH.PRO

Pre-form: preparing and building looks.

MOCKUP ONLYXDHDHAUXTOUCHIPAD

Other surfacesPresent in the kit; roles beyond the name are not yet documented.

1CQX
1CQXSRZA DOCK

Spaces and chat over the shared graph, with JANK cards and slash commands.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
DDDD
DDDD

Delegate · Dispatch · Disperse · Decide.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
KEEP
KEEP

Case, cell and shelf views. Role not yet written up.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
.STUDIO
.STUDIO

Studio dashboard.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
PRXD.Explorer
PRXD.Explorer

Explorer with a 16:9 Hero viewer.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
F0NT
F0NT

Glyph editor.

MOCKUP ONLYXDHDHAUXTOUCHIPAD
XDHD.Pro tools
XDHD.Pro tools

The XDHD.Pro tool launcher.

MOCKUP ONLYXDHDHAUXTOUCHIPAD

The same screen in two looks

37 screens exist in both streams; six are shown.

ScreenXDHD original look · OS.XDHDHAUX base look · OS.HAUX
BASEFixed matrix, teaching and navigation.BASE — XDHD original lookBASE — HAUX base look
DASHStatus, cockpit and launcher.DASH — XDHD original lookDASH — HAUX base look
PADSSixteen visual pads.PADS — XDHD original lookPADS — HAUX base look
AEXLDense operational data editor.AEXL — XDHD original lookAEXL — HAUX base look
DDDDDelegate · Dispatch · Disperse · Decide.DDDD — XDHD original lookDDDD — HAUX base look
1CQXSpaces and chat over the shared graph.1CQX — XDHD original look1CQX — HAUX base look

Streams are looks, not flavours. OS.XDHD is the original look. OS.HAUX is the base look and carries both the XDHD and the SRZA flavours, so a screen's stream does not say which flavour it belongs to. The SRZA audio set is the HAUX screens named in the table under Flavours.

What exists, per profile

Latest version of every screen, by stream and orientation. A dot means no render.

Coverage matrix — 110 screens
37XDHD
93HAUX
101TOUCH
11IPAD
distinct screens per stream
ScreenXDHD
L
XDHD
P
HAUX
L
HAUX
P
TOUCH
L
TOUCH
P
IPAD
L
IPAD
P
1CQXv01v01v02v02v01v01··
1CQX.COLLAPSEDv01v01v02v02v01v01··
AE0Nv01v01v02v02v01v01v01v01
AEXD······v01v01
AEXLv01v01v02v02v01v01v01v01
BASEv01v01v04v04v03v03v01v01
BRND.STYLv01v01v02v02v01v01··
C00LEDITPROv01v01v02v02v01v01··
COLOURCODE··v02v02v01v01··
DASHv01v01v02v02v01v01··
DDDDv01v01v02v02v01v01··
DESK··v02v02v01v01··
DESK.FLOWv01v01v02v02v01v01··
DESKTOP··v01v01····
DESKTOP.XDHDv01v01v02v02v01v01··
ECOSYSTEMv01v01v02v02v01v01··
EDGE.BOTTOM····v01v01··
EDGE.HOME····v01v01··
EDGE.LEFT····v01v01··
EDGE.REMIX····v01v01··
EDGE.RIGHT····v01v01··
EDGE.TOP····v01v01··
F0NT··v02v02v01v01v01v01
FLOW··v02v02v01v01··
GRAPH··v02v02v01v01··
HAUXv01v01v02v02v01v01··
HAUX.DESKTOP··v02v02v01v01··
HOME······v01v01
HYBRID.AEXL.BARv01v01v02v02v01v01··
ICONSv01·v02·v01···
JANKv01v01v02v02v01v01··
KEEP.CASEv01v01v02v02v01v01··
KEEP.CELLv01v01v02v02v01v01··
KEEP.SHELFv01v01v02v02v01v01··
LAUNCHER··v02v02v01v01··
LOGINv01v01v02v02v01v01··
LOOPFINDER··v02v02v01v01··
M0SH.FXUI··v02v02v01v01··
M0SH.LIVEv01v01v02v02v01v01··
M0SH.PROv01v01v02v02v01v01··
M0SH.PRO.APPv01v01v02v02v01v01··
M0SH.STAGE··v02v02v01v01··
MIXER··v02v02v01v01··
MONITOR··v02v02v01v01··
NEST.FRAMESv01v01v02v02v01v01··
NEST.STRATAv01v01v02v02v01v01··
NEST.TREEMAPv01v01v02v02v01v01··
NODES··v02v02v01v01··
PADSv03v03v04v04v03v03··
PR0JECTSv01v01v02v02v01v01··
PRO.LAUNCH··v02v02v01v01··
PROXv02v02v03v03v02v02··
PRXD······v01v01
PRXD.1UP.ASCR··v02v02v01v01··
PRXD.1UP.STILL··v02v02v01v01··
PRXD.1UP.SVG··v02v02v01v01··
PRXD.2UP.ALPHAQC··v02v02v01v01··
PRXD.2UP.MATTE··v02v02v01v01··
PRXD.2UP.MP4··v02v02v01v01··
PRXD.3UP.PROXY··v02v02v01v01··
PRXD.4UP.GIF··v02v02v01v01··
SCENES··v02v02v01v01··
SETTINGSv01v01v02v02v01v01··
SHELL··v01v01····
SONA.PROFILEv01v01v02v02v01v01··
SPECSv01v01v02v02v01v01··
STAGE······v01v01
STUDIO··v02v02v01v01··
STYL··v02v02v01v01··
TIMELINE··v02v02v01v01··
TOOL······v01v01
TOOL.AEPROC··v02v02v01v01··
TOOL.BATCHFOLDERS··v02v02v01v01··
TOOL.C00K··v02v02v01v01··
TOOL.CLIPGRAB··v02v02v01v01··
TOOL.DEUX··v02v02v01v01··
TOOL.EPSSVG··v02v02v01v01··
TOOL.FOLDERSNAP··v02v02v01v01··
TOOL.GIFMAKER··v02v02v01v01··
TOOL.HEROSTILLS··v02v02v01v01··
TOOL.JANKBROWSER··v02v02v01v01··
TOOL.M0SHPERF··v02v02v01v01··
TOOL.MAKEDOSSIER··v02v02v01v01··
TOOL.MAKEWAV··v02v02v01v01··
TOOL.MASTERING··v02v02v01v01··
TOOL.MRKT··v02v02v01v01··
TOOL.PR0JEDITOR··v02v02v01v01··
TOOL.PRORES··v02v02v01v01··
TOOL.QUICKFILES··v03v03v02v02··
TOOL.SCENEDETECT··v02v02v01v01··
TOOL.SCRNJACK··v02v02v01v01··
TOOL.SOUNDGRAB··v02v02v01v01··
TOOL.STITCH··v02v02v01v01··
TOOL.T1ME··v02v02v01v01··
TOOL.WAVJACK··v02v02v01v01··
TOOL.WEBMP4··v02v02v01v01··
TOOL.WHITEBOARD··v02v02v01v01··
TOOLSv01v01v03v03v02v02··
TOOLS.2v01v01v02v02v01v01··
TOOLS.3v01v01v02v02v01v01··
TOUCH.ACTIONS····v01v01··
TOUCH.APPS····v01v01··
TOUCH.PICKER····v01v01··
TOUCH.RULES··v02v02v01v01··
TOUCH.VALUE····v01v01··
TRACKS··v02v02v01v01··
TRAX······v01v01
WAVE······v01v01
XDHDIO.PRODUCTv01v01v02v02v01v01··
XTXT.TRIPANELv01v01v02v02v01v01··
09

Plan and status

What is built, what is next, and what is unresolved.

Status board

BUILT9

  • HAUX.OS base look v02Chamfered shell with domain colour-coding across XDHD and HAUX surfaces.↗ README.md
  • Nine domain colour-codes in the tokensEach with accent, ink, deep tone and form style.↗ tokens.json
  • Touch profile — P0Profile switch, touch shell and toolbar, type floor, strips, and touch-only screens 45–49.↗ XDHD.TOUCH.OS.md
  • Touch edge-motif studyPull-handles on all four edges with free-floating windows (screens 50–55).↗ XDHD.TOUCH.OS.md
  • iPad first batchHOME, BASE, STAGE, PRXD, F0NT, TOOL, AE0N, AEXD, AEXL, WAVE, TRAX.↗ README.md
  • Motion preparation308 SVGs prepared for After Effects with 16,288 named nodes and stable ids.↗ STATUS.md
  • Flavour switch in the kitset_screen(domain, eco) drives dock, mark, chips and address; the .HAUX key shows the flavour.↗ core.py
  • Web shell over one graphEight surfaces mounted with persistent context and shell-owned Hero and Inspector.↗ XDHD-OS-Unified-Surfaces-Architecture-and-Migration-v0.1.md
  • Dial engine and rigEight dials, mirrored in Python and JavaScript, rendered through the kit's own build on a temporary copy.↗ core.py

PARTIAL8

  • Touch target coverageUnder half of tap-target-like widgets still fall below 56 px.↗ touch-coverage.md
  • Portrait recompositionShell, FLOW, DASH and PERF0RMANCE recompose; AEXL, AEXD, XTXT and BASE keep legacy layouts.↗ XDHD-UIUX-Canonical-Surfaces-and-Viewport-Spec-v0.1.md
  • iPad density passReused desktop controls keep small targets; no drawers or sheets yet.↗ README.md
  • SRZA.OS audio setTracks, mixer, STYL, loops, scenes and monitor render in the HAUX look and in touch; VST is not mocked and there is no iPad audio set beyond WAVE and TRAX.↗ README.md
  • MESH events flowHub, plan, event page, RSVPs, albums, trip planner and meal planner: seven v01 screens. Placeholder data; not yet in the prototype HTML.↗ README.md
  • MESH flavourA light, rounded everyday-life look on the same golden-grid navigation: ten v01 screens, palette in its generator, no dock or chrome.↗ README.md
  • BLNK.OS templateChrome exists in two flavours; no neutral token set, and its components match the XDHD flavour.↗ README.md
  • Chrome decisionBLNK is current; PUSH, TABS, ROSTER and HUD are explorations awaiting a decision.↗ README.md

PLANNED11

  • HAUX.CORE extractionPull tokens, components, states and navigation into a verified library.↗ README.md
  • Radius and stroke weight as tokensRadii and stroke widths are literals in the generators today, so those two dials rewrite the SVG primitives.↗ core.py
  • Neutral BLNK token setGreys and one accent, no domain colours and no brand typeface: the baseline every other flavour is diffed against.↗ README.md
  • Flavour as one manifestDeclare a flavour in a single file — starting domain, dock, chips, prefix, vocabulary — instead of constants in core.py and a build parameter.↗ core.py
  • Touch P1 — shared primitivesRaise pad, chip, tag, field and knob hit areas to ≥ 56 px in the touch profile.↗ XDHD.TOUCH.OS.md
  • Touch P2 — interaction componentsValue sheet, picker, action bar, zoom pad, scrub strip, context sheet, global undo and redo.↗ XDHD.TOUCH.OS.md
  • Touch P3 — per-app layoutsRethink BASE, M0SH.STAGE, AEXL, PRXD and tools around 56 px targets.↗ XDHD.TOUCH.OS.md
  • Touch P4 — prototypeHotspot overlay for sub-56 px targets and a drag-versus-scroll test on the real panel.↗ XDHD.TOUCH.OS.md
  • Shared OS servicesNavigation history, clipboard and Dispatch, and a window manager.↗ XDHD-UIUX-Canonical-Surfaces-and-Viewport-Spec-v0.1.md
  • Host assembly for motionProbe native After Effects SVG import; assemble the Navigator window from its transfer manifest.↗ STATUS.md
  • Align the shell to the kitAdopt the kit tokens in the running shell — see the parity audit below.↗ uiux.css

OPEN8

  • Do drag events reach the app on the touch panel?Test first; the edge motif depends on it.↗ XDHD.TOUCH.OS.md
  • Drawer persistenceAuto-close or pin.↗ XDHD.TOUCH.OS.md
  • Window count before the top drawer needs pagingUndecided.↗ XDHD.TOUCH.OS.md
  • Do edge handles hide during playback?They must stay discoverable.↗ XDHD.TOUCH.OS.md
  • Is MESH a named OS?It has ten v01 renders and generators but no token file, no dock and an assumed mesh:// prefix.↗ README.md
  • Does AE0N become a named flavour?The .HAUX key already reads AE0N; the plan names only XDHD, SRZA and BLNK.↗ core.py
  • Name the render streams by look, or by flavour?OS.XDHD and OS.HAUX are looks; OS.SRZA is empty and the audio surfaces sit in OS.HAUX.↗ README.md
  • Production bindingPR0J and PR0D binding is provisional before any registration.↗ STATUS.md

Token parity — the kit against the running shell

The running web shell and the prototype kit are two implementations of one design. Of 9 mapped colour roles, 3 differ clearly, and type and form differ as well. ΔE is CIE76 colour distance: under 2 matches, under 10 is near.

RoleKitShellDistanceVerdict
bg → --ui-bg
page background
#0C0E0F#0E1013ΔE 1match
panel → --panel
panel surface
#16191B#191D22ΔE 3near
head → --chrome
window / title chrome
#1F2427#30343AΔE 8near
tx → --text
primary text
#F4F5F1#E6E9E2ΔE 5near
tx2 → --muted
secondary text
#9AA19F#A4AFA0ΔE 9near
acc → --accent
main highlight
#F4F5F1#DCFF65ΔE 73differs
ok → --led-ready
ready LED
#64E5B5#B7EF72ΔE 43differs
pop → --led-hold
hold LED
#F1BB67#FFD17CΔE 8near
err → --led-error
error LED
#FF7D78#FF937EΔE 12differs
OtherKitShell
UI typefaceMonoTrial, 'JetBrains Mono', Menlo, monospacesystem-ui,sans-serif
Mono typefaceMonoTrial, 'JetBrains Mono', Menlo, monospaceui-monospace,monospace
Corner formchamfer cut 8px (soft domains: pill)radius 6px

The pairing of kit token to shell variable is a judgement made in kit.py. A wrong pairing is a correction there. Download the kit as CSS variables to align the shell.

Known issues and drift

The running shell has drifted from the kit

The web shell uses a lime accent, system fonts and 6 px radii; the kit specifies a white accent, MonoTrial and chamfer.

Action Adopt the generated token CSS in the shell, or record the shell as a deliberate fork.

SRZA is a flavour, but the kit still reserves it as non-HAUX

The kit README reserves OS.SRZA/ for non-HAUX work and it is empty, while the audio surfaces render under OS.HAUX. Streams are named by look, so a flavour cannot be filtered on its own.

Action Decide whether renders are named by look or by flavour, then move or tag the audio set.

BLNK is a template in name only

Its chrome is the current shell in the default white domain, wearing the HAUX chamfer and typeface; its components are the same files as the XDHD flavour's. There is no neutral palette to be blank with.

Action Define the neutral BLNK token set, then re-render the chrome and a component set from it.

MESH's highlight and tertiary text are faint on its light page

Its coral highlight is about 2.5:1 on the page and its tertiary text about 2.6:1 on white — both below 3:1, the floor for interface graphics and large text.

Action Darken the coral for text and rings, or pair it with a stronger outline, before MESH leaves exploration.

The HAUX README is stale

It lists eight domains with DDDD as yellow; the tokens define nine, with DDDD blue and .STUDIO added. The rendered legend shows eight.

Action Update the README and add .STUDIO to the colour-code sheet.

Tertiary text fails contrast

tx3 is 2.95:1 on panels — below even the 3:1 large-text floor — and it is used for the smallest labels.

Action Lift tx3, or restrict it to non-essential decoration. Try it in the Token Lab.

Computed The smallest lift that passes AA on every surface is #7B8381 (4.55:1 worst case), still dimmer than secondary text.

The brand typeface is a trial cut

In the installed files about 38 punctuation characters draw as one dot and 0 and O are identical — so the zero-for-O device and the colon in every dot address are unreadable. Licensing for production and for embedding also needs checking.

Action Buy and install the full licence before shipping, embedding or publishing. Until then, run copy in the fallback and keep MonoTrial for labels.

Desktop labels sit below the touch floor

Desktop type goes down to 7–9 px; the touch floor is 10.5 px.

Action Intended while the profiles are separate; keep the floor enforced in the touch profile.

The AEXD importer does not read the motion attributes

data-xdhd-address and data-aexd-role are proposed attributes; they are written but not consumed.

Action Teach the AEXD importer to read them, then verify against a real After Effects import.

Motion host assembly is untested

Nothing has been run through After Effects, AE0N or AEXD yet — files are prepared, host unverified.

Action Probe a single BASE cell and knob first.

Four HAUX v01 files reference a missing `#hero` fill

A defect in the V1 source, preserved rather than silently fixed.

Action Leave as history; do not carry into new versions.

10

Token Lab

Edit the system, see it everywhere, hand the result to the kit.

Change any colour and this whole page restyles, with contrast recomputed live. Nothing is saved here — export the result as a tokens.json and apply it to the kit with the safe apply script. The kit then rebuilds every screen from the new values.

  1. Edit values below. Watch the page and the contrast table respond.
  2. Download tokens.json — the full HAUX token file with your edits merged in.
  3. Preview the change: python3 apply_tokens.py ~/Downloads/tokens.edited.json
  4. Apply it (backs up the original first): add --yes.
  5. Rebuild the kit: cd _src.HAUX && python3 build.py, then cd .. && python3 export.py.
  6. Rebuild this document: python3 build.py.
Neutrals
Text
Accent and semantic
Domains
XDHD
PR0J
AUDIO
MOTION
M0SH LIVE
PRE-FORM
PER-FORM
DDDD
.STUDIO
Form
11

Working with the system

How to change it, and how this document stays in step.

Where things live

LayerPath
Tokens — current look60-EXPERIMENTS/XDHD.OS.HAUX.Prototypes/_src.HAUX/tokens.json
Tokens — original look60-EXPERIMENTS/XDHD.OS.HAUX.Prototypes/_src.XDHD/tokens.json
Kit builders…/_src.HAUX/{build.py, lib/, screens/, screens-touch/, screens-ipad/}
Exports…/XDHD.OS.HAUX.Prototypes/OS.{XDHD,HAUX,TOUCH,IPAD,CHROME,MOTION}
Running shell10-PRODUCTS/XDHD.io/XDHD.HAUX.OS (HTML V0.01 demo) (shell.mjs, shared/uiux.css)
SpecsXDHD.HAUX.OS (HTML V0.01 demo)/*.md · docs/ · XDHD.TOUCH.OS.md · OS.IPAD/README.md
This document10-PRODUCTS/XDHD.io/XDHD.HAUX.OS (HTML V0.01 demo)/design-system

Commands

Change the lookedit _src.HAUX/tokens.json
Build desktopcd _src.HAUX && python3 build.py
Build touchpython3 build.py --profile touch
Build iPadpython3 build.py --profile ipad
Export every screencd .. && python3 export.py
Prepare for After Effectspython3 OS.MOTION/_tools/prep.py
Rebuild this documentcd design-system && python3 build.py

Checklists

Adding a token

  • Add it to tokens.json, not to a component.
  • Check contrast against bg, panel and inset.
  • Rebuild the kit, then this document.

Adding a component

  • Register it in the kit's component library.
  • If it scrolls, add it to touchrules.SCROLL so it gains a strip.
  • Meet the 56 px target floor in the touch profile.
  • Name it so the motion prep can address it.

Adding a surface

  • Assign exactly one domain.
  • Add the next -vNN version — never overwrite.
  • Provide L and P, and say which profiles it exists in.
  • Mount it through the shell's surface adapter so context persists.

Changing a screen

  • Add a new manifest with the next -vNN id.
  • Keep earlier versions.
  • Run the touch audit and the motion prep.

Versioning

Never overwrite. A new riff on a screen is a new manifest with the next -vNN id; earlier versions are kept. Unversioned screens export as v01. Files are SVG only; PNG sidecars are optional.

Keeping this document true

Measured content — tokens, contrast, counts, coverage, parity — is recomputed on every build. Prose and status flags are edited in src/content.py. Re-run python3 build.py after any change to the kit, and python3 tests/test_build.py to check the result.