azdocs · Design language Desktop-only cool-grey-to-Azure atmosphere — IBM Plex, editorial structure, saturated colour reserved for data, signals and actions. Tokens: desktop/src/styles.css · prose: design.md

Palette

two modes, one structure — every light token has exactly one dark counterpart
Light · default
paper#f1f5f8cool-grey ground
surface#fbfdffraised panels, grids
evidence#e4edf5JSON blocks, selection fill
ink#162636headings and high-contrast anchors
body#33495drunning text
muted#41596dsecondary text
hairline-strong#c5d3dfpanel borders
hairline#dbe5edrow separators
accent#0067b8links, selection, single-hue charts
coral#a8321dhigh severity, risk
amber#765900medium severity, warnings
green#0b6b43healthy, resolved, complete
Dark · night reading
paper#101820charcoal ground
surface#172634raised panels, grids
evidence#112c42JSON blocks, selection fill
ink#eef6fccool white headings and anchors
body#cad8e4running text
muted#a8bac9secondary text
hairline-strong#365069panel borders
hairline#233a4erow separators
accent#69b9f4links, selection, single-hue charts
coral#ff8f7ahigh severity, risk
amber#e6bf61medium severity, warnings
green#72d0a4healthy, resolved, complete
Atmosphere · gradients carry large regions, never data values
app ground + chrome
panels + controls
selected evidence
primary action
app ground + chrome
panels + controls
selected evidence
primary action
Chart categories · CVD-validated both modes
computenetworkstorage*databaseapp svcother
Fixed order, never cycled — the top slots of the app's category_color() set. Charts fold the tail into Other; type dots elsewhere may use the full set. *storage deepens to #a98a00 in dark. Bars are always direct-labelled.
Severity · status, never decorative
Highcoral · always with the word, never colour alone
Mediumamber
Lowneutral
Infoaccent
Footnote daggers () mark rows referenced by open findings, in every table of the app.

Mark

a rounded topology A — three nodes and the connectors between them
Mark
Mark24px tall
Reversed
Reversed24px tall
Mono ink
Mono inkone colour
App icon
App icon32px square
Lockup
Lockup140px wide
Lockup reversed
Lockup reversed140px wide
The node diameter is the clear-space unit x — keep at least one x clear on every side. Never crop the mark; only the supplied background motifs crop it, deliberately. Full rules: marks/USAGE.md. Native app icons are derived from the light app icon by pnpm run icons, not drawn by hand.

Type

IBM Plex — the family the PDF already vendors
Display 30Plex Serif 600 · view titles, hero numerals
Chapter 19Plex Serif 600 · section & panel headings
Body 14 — descriptions, ledes and supporting evidence read at this size.Plex Sans 400
Table 12.5 — ledger rows, inspector detailPlex Sans 400/600
Label 11 · capsPlex Sans 600 · column heads, metadata
evidence-12 · /subscriptions/…/rg-prod-dataPlex Mono · ARM ids, tags, deltas
Nothing below 11px — the old app's 6–10px floor is retired. Serif carries identity; sans does the work; mono marks machine-shaped values.

Structure

rules over boxes, tone over shadow
2px ink rule — reserved for high-value summary anchors
1px strong hairline — shell rails, record headers, panel edges
1px hairline — sections, table rows, list separators
Spacing rhythm: 4 · 8 · 12 · 20 · 32 · 56 (56 = page margin)
Radii: 3px controls & tag chips · 6px panels · fully rounded summary capsules — one purposeful exception to the near-square evidence workspace language
One working surface per route. Resource records use compact header facts and a full evidence sheet with inline context, property rows, and collection tables — never a fixed detail sidebar. Findings use an on-demand drawer; Relationships navigates directly from groups to maps and resources to records.
Subscriptions and resource groups disclose independently from selection; Azure entities use the vendored Azure artwork at every depth.
Large collections use labelled selectors and honest progressive batches. Figures end with a caption; no numbering, anywhere.

Components

same anatomy in both modes
Primary action Quiet action Active tab · 12 Tab · 8 environment=prod LOCATIONUK South Search evidence… ⌘K
Primary action Quiet action Active tab · 12 Tab · 8 environment=prod LOCATIONUK South Search evidence… ⌘K
Summary capsules hold two to six short, read-only orientation facts in spare header or toolbar space. They wrap together, colour only signal values, and never replace controls, primary metrics, long evidence, tables, or ledgers. Theme is a tri-state in Settings — System (default, follows the OS) · Light · Dark. The primary button keeps a higher-contrast Azure wash in both modes; category and severity colours are re-validated per surface, never auto-flipped. Selection anywhere is a quiet --evidence fill — never a coloured bar.