Skip to the first exhibit
6.0.0

30 destinations available.

Exhibits

Kits

Technical Reference

Exhibit 01 / DRIFT-derived

Dither
Signal Trace

Texture gives a strengthening rate signal weight. The line, domain, gaps, and exact values remain the truth.

Illustrative sample · not live

107Lane index
W9 / +16 points from W1
Domain 86 to 108
Selected lane indexIllustrative sample · not live

The selected lane strengthens late in the period while the basket median rises steadily.

Exact values. Domain 86 to 108. W4 is missing.
PeriodLane indexBasket median
W19188
W29489
W39288
W4Missing90
W59891
W610192
W79993
W810495
W910797

Problem

Make force visible without making texture the data.

Show one selected quantitative trend with texture density while preserving exact domains, context lines, and missing-data gaps.

When to use

Choose it for a communication job.

Use Dither when momentum, density, or force materially strengthens the exact trend. Keep the context line lighter, preserve W4 as a gap, and choose Clean when texture adds no meaning.

Illustrative DRIFT-derived rate-index pattern approved for the public SUDX reference.

Kit / choose by communication job

One signal, three legitimate treatments.

Expressive

Expressive treatmentIllustrative sample · not live

Use the exact selected line and context line, then add ordered Dither density where late momentum gains force.

Exact values. Domain 86 to 108. W4 is missing.
PeriodLane indexBasket median
W19188
W29489
W39288
W4Missing90
W59891
W610192
W79993
W810495
W910797

Compact

Compact treatmentIllustrative sample · not live

Keep the exact sparkline primary and add a restrained Dither field only when density helps the small signal read.

Exact values. Domain 86 to 108. W4 is missing.
PeriodLane indexBasket median
W19188
W29489
W39288
W4Missing90
W59891
W610192
W79993
W810495
W910797

Clean

Clean treatmentIllustrative sample · not live

Use the exact line without texture when Dither adds no meaning. Preserve the domain, gap, context, summary, and table.

Exact values. Domain 86 to 108. W4 is missing.
PeriodLane indexBasket median
W19188
W29489
W39288
W4Missing90
W59891
W610192
W79993
W810495
W910797

Use

Use Expressive when force is part of the message. Use Compact when a value leads in a dense operational row. Use Clean when the exact trend already says enough.

Avoid

Do not use Dither as decoration, behind text, across several competing series, or where density implies confidence that the data does not have.

Provenance

DRIFT dither chart proven and ratified into SUDX. Illustrative sample · not live.

Technical Reference

Implementation detail, when you need it.

Tokens, laws, recipes, compatibility guidance, ownership, and provenance stay searchable without leading the experience.

Current distribution

6.0.0 stable

Copy current files locally and record their manifest digests. SUDX stays framework-neutral, with shadcn as the preferred base for reusable interface components.

Documents

  • foundation.md

    Principles, colour, type, spacing, and how the two themes resolve.

  • brand-law.md

    The canonical mark, its construction and clearspace, and what may never be redrawn.

  • motion-law.md

    What motion has to communicate, and when it is not allowed to exist at all.

  • chart-law.md

    The data language: dither fields, gaps, context lines, and the rules a chart follows.

  • adoption-guide.md

    How a product proves the need, takes the system, and reports improvements back.

  • agent-guide.md

    The agent rules and curated visual decision index for copying current assets into a product.

  • changelog.md

    What changed in the design system, and the reason it changed.

Compatibility

  • shadcn.json

    The required foundation, optional behavior families, role mappings, and product-owned boundary.

  • shadcn.css

    Generated SUDX aliases for shadcn semantic roles and Tailwind v4 utilities.

  • shadcn-evidence.json

    Non-copyable attestation for exact consumer commits, verification, and local divergence.

/design/assets/manifest.json

Identity / Technical reference

Canonical X

Essential brand geometry remains available as implementation reference.
Open technical record

Purpose

Provide one exact, recognizable SUDX X for chrome, favicon, motion, and distributed assets.

Rules

Do
  • Use the exact path geometry, with the Clay route broken where the Ink route crosses.
Do not
  • Typeset, trace, tile, or redraw the X.

States

  • Light
  • Dark
  • Compact
  • Favicon
  • Radar center

Tokens and dependencies

  • Ink routeThe route that passes over, in text ink so the mark themes with the page.
  • Clay routeThe route that passes under, broken where the Ink route crosses. The only accent in the mark.
  • 100 by 100 viewBoxThe mark's coordinate space. The geometry is fixed and is never redrawn or traced.

Semantic recipe

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" role="img" aria-labelledby="title">
  <title id="title">SUDX mark</title>
  <path fill="currentColor" d="M21.3 10.7L89.3 78.7A7.5 7.5 0 0 1 78.7 89.3L10.7 21.3A7.5 7.5 0 0 1 21.3 10.7Z"/>
  <path fill="#C56A4A" d="M55.66 33.74L78.7 10.7A7.5 7.5 0 0 1 89.3 21.3L66.26 44.34ZM33.74 55.66L10.7 78.7A7.5 7.5 0 0 0 21.3 89.3L44.34 66.26Z"/>
</svg>

Accessibility

  • Use empty alt text when the adjacent wordmark already names SUDX.
  • Keep meaningful standalone marks named SUDX.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, All future SUDX surfaces
Provenance
Lanes study chosen by Nico on 14 October 2026

Identity / Technical reference

Lockups and applications

Brand arrangement rules remain useful when implementing SUDX identity.
Open technical record

Purpose

Define compact and formal identity arrangements across navigation, documents, icons, and operational surfaces.

Rules

Do
  • Use the compact mark when the formal lockup would fall below 24px.
Do not
  • Duplicate the X as an unrelated text glyph.

States

  • Formal
  • Compact
  • Light
  • Dark
  • Operational surface

Tokens and dependencies

  • sudx-x.svgThe mark on its own.
  • sudx-lockup.svgThe wordmark and mark locked together at their approved relationship.
  • hairline dividerThe rule that separates the lockup from adjacent content when they must sit together.

Semantic recipe

<svg class="sudx-lockup" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 112" role="img" aria-labelledby="title">
  <title id="title">SUDX formal lockup</title>
  <g transform="translate(8 12) scale(.88)">
    <path fill="currentColor" d="M21.3 10.7L89.3 78.7A7.5 7.5 0 0 1 78.7 89.3L10.7 21.3A7.5 7.5 0 0 1 21.3 10.7Z"/>
    <path fill="#C56A4A" d="M55.66 33.74L78.7 10.7A7.5 7.5 0 0 1 89.3 21.3L66.26 44.34ZM33.74 55.66L10.7 78.7A7.5 7.5 0 0 0 21.3 89.3L44.34 66.26Z"/>
  </g>
  <path d="M116 18V94" stroke="currentColor" stroke-opacity=".22"/>
  <g transform="translate(140 21)" fill="none" stroke="currentColor" stroke-width="9" stroke-linecap="square" stroke-linejoin="miter">
    <path d="M48 4H0V31H48V58H0"/>
    <path d="M69 4V58H119V4"/>
    <path d="M143 4V58H174C194 58 204 46 204 31S194 4 174 4Z"/>
  </g>
  <g transform="translate(355 14) scale(.76)">
    <path fill="currentColor" d="M21.3 10.7L89.3 78.7A7.5 7.5 0 0 1 78.7 89.3L10.7 21.3A7.5 7.5 0 0 1 21.3 10.7Z"/>
    <path fill="#C56A4A" d="M55.66 33.74L78.7 10.7A7.5 7.5 0 0 1 89.3 21.3L66.26 44.34ZM33.74 55.66L10.7 78.7A7.5 7.5 0 0 0 21.3 89.3L44.34 66.26Z"/>
  </g>
  <path d="M140 96H425" stroke="currentColor" stroke-opacity=".16"/>
</svg>

Accessibility

  • Give one accessible name to the complete lockup.
  • Do not announce decorative metadata.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, Release consumers
Provenance
Recovered formal SUDX identity rules

Identity / Technical reference

Construction and clearspace

Construction measurements remain useful for exact brand production.
Open technical record

Purpose

Lock the mark geometry, 1X clearspace, minimum sizes, and selective technical-document grammar.

Rules

Do
  • Measure 1X as the width of one route.
Do not
  • Use the retired quadrant X or registration ticks without orientation value.

States

  • Construction grid
  • Clearspace
  • Desktop
  • Mobile
  • Favicon

Tokens and dependencies

  • 1X clearspaceClear space around the mark or lockup equal to the width of one route. Nothing enters it.
  • 64pxThe lockup's comfortable minimum width.
  • 40pxThe superseded minimum target, still carried by surfaces that predate 3.4.2.
  • 24pxThe wordmark's minimum legible height.
  • 16pxThe mark's minimum legible size on its own.

Semantic recipe

<figure><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" role="img" aria-labelledby="title">
  <title id="title">SUDX mark</title>
  <path fill="currentColor" d="M21.3 10.7L89.3 78.7A7.5 7.5 0 0 1 78.7 89.3L10.7 21.3A7.5 7.5 0 0 1 21.3 10.7Z"/>
  <path fill="#C56A4A" d="M55.66 33.74L78.7 10.7A7.5 7.5 0 0 1 89.3 21.3L66.26 44.34ZM33.74 55.66L10.7 78.7A7.5 7.5 0 0 0 21.3 89.3L44.34 66.26Z"/>
</svg><figcaption>1X clearspace · 16px minimum</figcaption></figure>

Accessibility

  • Keep construction annotations readable as text.
  • Do not rely on diagram labels alone.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
Design Portal, Brand asset producers
Provenance
Recovered SUDX identity sheet ratified for V3

Motion / Technical reference

Radar sweep

The motion contract remains useful for the existing SUDX landing field.
Open technical record

Purpose

Express continuous route awareness with a clean sweep and a short dithered memory.

Rules

Do
  • Use a crisp 1.5px Clay core and short fading Bayer tail.
  • Size the field from the drawn ring so the arm crosses it by a fixed margin.
  • Take the tail's step count from the arc it covers, never a fixed number of rays.
Do not
  • Apply the full CMA chart halo to the radar arm.
  • Caption the sweep as though it carried position, count, or identity.

States

  • Static
  • Running
  • Hidden document
  • Reduced motion

Tokens and dependencies

  • 1.5px coreThe radar sweep's leading edge. Clean, never dithered.
  • Bayer 4 by 4The ordered dither matrix. The one approved way to render partial coverage.
  • short tailThe sweep's dithered memory. Short enough to read as decay, not as a smear.
  • prefers-reduced-motionThe setting that replaces every animation with its static end state.

Semantic recipe

<canvas data-sudx-radar aria-hidden="true"></canvas>

Accessibility

  • Treat the sweep as decorative enhancement.
  • Provide the route-awareness meaning in nearby text.
  • Render the static fallback at the resting bearing.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website (landing field), SUDX Design Portal (specimen only)
Provenance
Recovered SUDX motion refined with CMA dither law

Motion / Technical reference

Rotating headline

The motion and reduced-motion rules remain useful implementation reference.
Open technical record

Purpose

Expand the shipping-intelligence remit without shifting the hero layout.

Rules

Do
  • Rotate only shipping, trade, freight, ports, and cargo in a fixed-width slot.
Do not
  • Trigger layout reflow or hide the complete static heading.

States

  • Shipping fallback
  • Typing out
  • Typing in
  • Reduced motion

Tokens and dependencies

  • shippingA term in the rotating headline's approved remit.
  • tradeA term in the rotating headline's approved remit.
  • freightA term in the rotating headline's approved remit.
  • portsA term in the rotating headline's approved remit.
  • cargoA term in the rotating headline's approved remit.

Semantic recipe

<span data-sudx-rotating-word>shipping</span>

Accessibility

  • Keep the changing word aria-hidden when the full static meaning is nearby.
  • Remove automatic typing under reduced motion.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website
Provenance
Recovered SUDX typed headline

Foundation / Technical reference

Color and themes

Canonical color and theme behavior remain essential implementation reference.
Open technical record

Purpose

Provide one warm light theme, one true-black dark theme with white type and the Clay accent, and semantic colors with fixed jobs.

Rules

Do
  • Use Clay as the single shared brand accent and semantic colors only for their named meaning.
Do not
  • Use CMA heatmap bands or direction colors as generic decoration.

States

  • System default
  • Explicit light
  • Explicit dark
  • Storage unavailable

Tokens and dependencies

  • --sudx-backgroundThe page ground. Everything else is drawn on it, and nothing else may claim it.
  • --sudx-surfaceA raised reading surface: cards, panels, popovers. Carries no resting shadow.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-border-strongThe heavier hairline, reserved for a dashed or emphasised edge around unproven or empty work.
  • --sudx-textPrimary reading text.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-accent-wellThe tinted accent ground behind a notice, an arrival ribbon, or an applied filter. Background only.

Semantic recipe

<script src="/assets/theme.js"></script><link rel="stylesheet" href="/assets/sudx-tokens.css">

Accessibility

  • Meaningful text must meet WCAG AA.
  • Pair semantic colors with a glyph or text label.

Deviations

  • Warning on paper: --sudx-warning-light measured 3.44:1 on the paper ground, below AA for small text, while cost-up and cost-down both sat near 5.26:1. Warning was the one semantic colour the system shipped without a legible step. (resolved)

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
DRIFT and CMA migration evidence ratified by SUDX

Foundation / Technical reference

Typography

Canonical type roles remain essential implementation reference.
Open technical record

Purpose

Assign a clear font role to identity, interface, data, and editorial narrative.

Rules

Do
  • Use Geist Mono with tabular numerals for every value, date, percentage, and unit-bearing label.
Do not
  • Use Source Serif 4 in navigation, controls, tables, or data.

States

  • Web font loaded
  • System fallback
  • Narrow viewport
  • Long numeric value

Tokens and dependencies

  • --sudx-font-wordmarkSpace Grotesk. The SUDX wordmark and rare display headings, nothing else.
  • --sudx-font-sansGeist. All interface text: headings, controls, navigation, body.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-font-serifSource Serif 4. Editorial and analytical prose only, never controls, tables, or data.

Semantic recipe

<h2>Interface heading</h2><data value="1840">USD 1,840</data><p class="editorial">Analysis</p>

Accessibility

  • Preserve hierarchy under fallback fonts.
  • Do not rely on letter spacing alone to distinguish labels.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
SUDX 1.0 type-role decision

Foundation / Technical reference

Spacing, grid, and radius

Canonical layout values remain essential implementation reference.
Open technical record

Purpose

Create dense but legible layouts with a 4px/8px rhythm, flat surfaces, and restrained rounding.

Rules

Do
  • Use sections, hairlines, or one tonal inset to express hierarchy.
  • Reserve the hairline control shadow for pressable controls, and drop it on press.
Do not
  • Nest cards or give a surface a resting shadow.

States

  • Dense desktop
  • Comfortable mobile
  • One tonal inset
  • Control elevation
  • Popover elevation

Tokens and dependencies

  • --sudx-space-1 through --sudx-space-8The whole spacing scale: 4, 8, 12, 16, 24, 32, 48, 64px. No value between steps.
  • --sudx-radiusThe surface radius. Cards, panels, and buttons.
  • --sudx-radius-chipThe tighter radius for chips and badges, so a small inline marker does not carry the corner of the card it sits on.
  • --sudx-shadow-activeThe single-pixel lift on a pressable control. Dropped while the control is active.
  • --sudx-shadow-popoverThe only shadow permitted on a floating surface. Resting panels carry none.

Semantic recipe

<section class="sudx-panel"><header>Section</header><div>Content</div></section>

Accessibility

  • Keep mobile actions at least 44px.
  • Let text reflow without clipping at 200% zoom.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Shared DRIFT/CMA density and surface evidence

Foundation / Technical reference

Motion and accessibility

Shared motion and accessibility constraints remain essential implementation reference.
Open technical record

Purpose

Make interaction perceivable and predictable for keyboard, touch, motion-sensitive, and screen-reader users.

Rules

Do
  • Keep keyboard order aligned with visual order and restore focus after a drawer closes.
Do not
  • Use glow, unrelated animation, or layout-shifting hover labels.

States

  • Rest
  • Hover
  • Focus visible
  • Active
  • Disabled
  • Reduced motion

Tokens and dependencies

  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • prefers-reduced-motionThe setting that replaces every animation with its static end state.

Semantic recipe

<button type="button">Action</button><style>button:focus-visible{outline:2px solid var(--sudx-accent);outline-offset:2px}</style>

Accessibility

  • Verify keyboard traversal and visible focus.
  • Collapse non-essential motion when reduced motion is requested.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
SUDX focus, motion, and target contract

Foundation / Technical reference

Voice and data formatting

Shared language and data-formatting rules remain essential implementation reference.
Open technical record

Purpose

Keep interface copy factual, domain-specific, concise, and explicit about units, time, source, and uncertainty.

Rules

Do
  • Write direct labels and attach unit, date or range, provenance, and estimate state.
Do not
  • Invent marketing claims or hide missing data behind smooth copy.

States

  • Measured
  • Projected
  • Missing
  • Stale
  • Illustrative

Tokens and dependencies

  • --sudx-font-sansGeist. All interface text: headings, controls, navigation, body.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-projectedA value that was estimated rather than observed. Always carries its word label too.

Semantic recipe

<p><data value="1840">USD 1,840 / FEU</data> <time datetime="2026-W29">W29</time> <small>Source: carrier sheet</small></p>

Accessibility

  • Expand uncommon abbreviations on first use.
  • Use text in addition to punctuation or color for estimates and stale data.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Shipping workflow and public-site copy review

Foundation / Technical reference

Compatibility profile

Framework-neutral shadcn compatibility remains a technical adoption contract.
Open technical record

Purpose

Publish a universal SUDX base that products adopt selectively while keeping framework source and product expression local.

Rules

Do
  • Copy the required foundation locally, adopt only needed family contracts, and verify each adopted family in the consumer runtime.
  • Keep additions and accepted deviations in consumer-owned records.
Do not
  • Treat the profile as a React kit, product template, runtime dependency, or proof that an unverified product is compatible.
  • Move product density, domain semantics, navigation structure, or product-specific data presentation into the shared base.

States

  • Pending evidence
  • Candidate proved
  • Named release
  • Pinned older release

Tokens and dependencies

  • --sudx-backgroundThe page ground. Everything else is drawn on it, and nothing else may claim it.
  • --sudx-textPrimary reading text.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.

Semantic recipe

<link rel="stylesheet" href="./sudx/tokens.css"><link rel="stylesheet" href="./sudx/shadcn.css">

Accessibility

  • Preserve SUDX focus, contrast, semantic-color, data-presentation, target-size, and reduced-motion law.
  • Verify applicable states, light and dark themes, keyboard behavior, and reduced motion in the consumer runtime.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
Selective shadcn and Tailwind v4 adopters
Provenance
Canonical shadcn compatibility profile and consumer evidence record

Ownership and evidence

PENDING

0 proof consumers · 0 verified families · 0 local additions · 0 local deviations

Three ownership layers

  1. Required foundation Tokens, theme activation, accessibility, semantic color, data, and motion law. required · sudx owned
  2. Optional behavior families Copyable behavior contracts that a consumer adopts only when the family is used. optional-default · sudx owned
  3. Product-owned expression Component source, composition, density, domain semantics, navigation structure, data presentation, additions, and deviations. product-owned · consumer owned

Required foundation

sudx-tokens.css · shadcn.json · shadcn.css

  • Resolve shared semantics through --sudx-* variables.
  • Expose the shadcn --radius variable through --sudx-radius.
  • Use data-theme for explicit light and dark activation.
  • Preserve SUDX focus, contrast, semantic-color, data-presentation, target-size, and reduced-motion law.
  • Keep copied component source and runtime dependencies in the consumer.

Optional behavior families

  • Button Verification status · Pending Local divergence status · No consumer evidence recorded
    • Keep primary action Ink-led; Brand remains a separate SUDX extension.
    • Preserve a visible focus ring, 44px minimum target, disabled semantics, and busy announcement when loading.
  • Form Field Verification status · Pending Local divergence status · No consumer evidence recorded
    • Keep a visible label and associate help or corrective text with the control.
    • Use aria-invalid only while invalid and never communicate an error by color alone.
  • Panel/Card Verification status · Pending Local divergence status · No consumer evidence recorded
    • Use a SUDX surface and boundary without prescribing product composition or density.
    • Interactive-card behavior is a consumer decision and must retain keyboard equivalence.
  • Alert Verification status · Pending Local divergence status · No consumer evidence recorded
    • Use role=status for non-blocking updates and role=alert only for urgent errors.
    • Pair status color with a label or mark; destructive color remains unmapped until SUDX approves that semantic.
  • Navigation Verification status · Pending Local divergence status · No consumer evidence recorded
    • Expose current location semantically and preserve keyboard order and focus visibility.
    • Navigation structure, information architecture, density, and responsive composition remain product-owned.
  • Theme Toggle Verification status · Pending Local divergence status · No consumer evidence recorded
    • Expose the resolved theme through data-theme and communicate the control state with aria-pressed.
    • The icon communicates the theme the next press delivers; reduced motion removes its sweep without hiding the state change.

Normative hashes

  • shadcn.css 429bbb01bc9ba5cea83069df0ed94010c2923b43578a10d1c32aaa990bd5c1bb
  • shadcn.json eab36c8b93686caa8f10a1c59772352e9cca99514b63da3c2094f765d870815c
  • sudx-tokens.css 90dd2735036eaac7d0a76e98dd3cf91457d6bc13aa0b7de1014c8045877c7398

The 4.8.0 dark theme changed nine dark neutrals and the dark Clay accent, which changed sudx-tokens.css and therefore its normative hash. The drift-lp and cma-tracker proofs recorded in 4.7.0 were taken against the 4.7.0 token file and prove that release only, so this profile returns to pending rather than carrying them forward: a consumer proof is bound to the exact bytes it was taken against, and re-pointing it at bytes the consumer never rendered would be a false receipt. Those proofs remain addressable and unaltered in the frozen release at design/releases/4.7.0/assets/compatibility/shadcn-evidence.json (drift-lp@d541d324, cma-tracker@c7c7a6bd). Restoring candidate-proved requires re-rendering both consumers against the 4.8.0 foundation, regenerating their consumer-owned evidence files, and recording the new proof commits and hashes here. Until that happens no compatibility family is claimed verified for 4.8.0.

Primitives / Technical reference

Actions

Generic actions belong to shadcn while SUDX-specific compatibility remains reference material.
Open technical record

Purpose

Express one clear primary action, quieter secondary actions, links, and unavailable states.

Rules

Do
  • Use one primary action per local decision and keep labels verb-led.
  • Signal work by setting aria-busy on the button; keep the label and let the Bayer field sweep behind it.
Do not
  • Turn every action Clay or change label width while loading.

States

  • Rest
  • Hover
  • Focus
  • Active
  • Disabled
  • Loading

Tokens and dependencies

  • --sudx-textPrimary reading text.
  • --sudx-backgroundThe page ground. Everything else is drawn on it, and nothing else may claim it.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.

Semantic recipe

<button class="sudx-button sudx-button--primary" type="button"><span>Save changes</span></button>

Accessibility

  • Use native buttons for actions and anchors for navigation.
  • Expose loading with text or aria-live without removing the accessible name.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Shared route and product control usage

Primitives / Technical reference

Form controls

Generic fields belong to shadcn while SUDX-specific data conventions remain reference material.
Open technical record

Purpose

Collect an observed value with its unit and period held inside the control, and render a value that was never observed as missing rather than blank.

Rules

Do
  • Keep a visible label and put corrective text next to the invalid field.
  • Encode the error with a mark as well as color, and set aria-invalid on the control.
  • Give a value field its unit or period in the rail, and set the value itself in Geist Mono.
Do not
  • Use placeholder text as the only label or reveal sensitive configuration in an error.
  • Render an unobserved value as an ordinary empty box; a gap keeps the dashed strong hairline.

States

  • Populated
  • Missing
  • Hover
  • Focus
  • Disabled
  • Loading
  • Error

Tokens and dependencies

  • --sudx-surfaceA raised reading surface: cards, panels, popovers. Carries no resting shadow.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-border-strongThe heavier hairline, reserved for a dashed or emphasised edge around unproven or empty work.
  • --sudx-textPrimary reading text.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-cost-upA rise in buyer cost. Always paired with the arrow and the percentage, never colour alone.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.

Semantic recipe

<div class="sudx-field"><label for="rate">All-in rate</label><span class="sudx-field__slot"><input id="rate" name="rate" aria-describedby="rate-help"><span class="sudx-field__unit">USD/FEU</span></span><small id="rate-help">Spot, week 31</small></div>

Accessibility

  • Associate label, help, and error text with the control.
  • Set aria-invalid only while the value is invalid.
  • Keep the unit inside the label's reading path; it is not a decoration the screen reader may skip.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
SUDX password form, DRIFT rate entry, and CMA reference fields

Primitives / Technical reference

Choice controls

Generic choice controls belong to shadcn while SUDX-specific behavior remains reference material.
Open technical record

Purpose

Resolve one route out of several, or include a series, with the clay diamond and the filled cell carrying which kind of choice is being made.

Rules

Do
  • Group related choices with fieldset and legend.
  • Let the diamond carry a single choice and the filled square carry an included series.
  • Show indeterminate as its own mark wherever partial coverage is a real answer.
Do not
  • Build a custom switch when a checkbox or radio already expresses the choice.
  • Replace the native input; restyle it with appearance so it stays in the accessibility tree.

States

  • Unchecked
  • Checked
  • Indeterminate
  • Focus
  • Disabled
  • Error

Tokens and dependencies

  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-accent-wellThe tinted accent ground behind a notice, an arrival ribbon, or an applied filter. Background only.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-border-strongThe heavier hairline, reserved for a dashed or emphasised edge around unproven or empty work.
  • --sudx-textPrimary reading text.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-cost-upA rise in buyer cost. Always paired with the arrow and the percentage, never colour alone.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.

Semantic recipe

<fieldset class="sudx-choices"><legend>Scope</legend><label class="sudx-choice"><input type="radio" name="scope" value="overview" checked><span>Overview</span><span class="sudx-choice__key">scope=overview</span></label></fieldset>

Accessibility

  • Keep the native input in the accessibility tree.
  • Make the full label area clickable and at least 44px on mobile.
  • Carry a group error on the fieldset with aria-invalid and aria-describedby.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
DRIFT, CMA Tracker, Future products
Provenance
The SUDX clay diamond and filled square applied to DRIFT and CMA scope filters

Primitives / Technical reference

Theme control

Theme behavior remains a technical integration contract rather than a primary exhibit.
Open technical record

Purpose

Let a reader take the warm light theme or the true-black dark theme, starting from the one their system already asked for, and show which of the two the next press delivers.

Rules

Do
  • Show the theme the press delivers, not the theme in force. The half-moon faces dark while the page is still light.
  • Open on the system preference, follow it while nobody has chosen, and keep a reader's choice for the next visit.
  • Hold the 44px square and the glyph's own width across both states, so the header beside it never reflows.
Do not
  • Cycle a third System position through the control. The system preference is the default it departs from, and SUDXTheme.clear() returns to it.
  • Swap the glyph for a sun and a moon. One mark rotating is what makes the two states read as one control in two positions.

States

  • Offers dark
  • Offers light
  • Hover
  • Focus
  • Active
  • Reduced motion

Tokens and dependencies

  • --sudx-surfaceA raised reading surface: cards, panels, popovers. Carries no resting shadow.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-textPrimary reading text.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • --sudx-shadow-activeThe single-pixel lift on a pressable control. Dropped while the control is active.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.

Semantic recipe

<script src="/assets/theme.js"></script><button class="sudx-theme-toggle" type="button" data-theme-toggle aria-pressed="false" aria-label="Use dark theme"><span aria-hidden="true">◐</span><span data-theme-label>Use dark theme</span></button><script src="/assets/site.js" defer></script>

Accessibility

  • Carry the state in aria-pressed and the action in the accessible name; the half-moon is decorative and stays aria-hidden.
  • Rename the control when it flips, so a reader who never sees the moon still hears what the press does.
  • Reduced motion drops the rotation. The flipped glyph still arrives, without the sweep.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
The theme control carried by every SUDX route header, including this portal

Primitives / Technical reference

Status and feedback

Status behavior remains reusable technical guidance rather than a distinctive exhibit.
Open technical record

Purpose

Communicate success, warning, error, freshness, direction, and experimental state without relying on color alone.

Rules

Do
  • Pair every semantic color with a glyph or explicit status word.
Do not
  • Reuse direction, warning, projection, or CMA band colors as decoration.

States

  • Informational
  • Success
  • Warning
  • Error
  • Stale
  • Projected
  • Experimental

Tokens and dependencies

  • --sudx-cost-upA rise in buyer cost. Always paired with the arrow and the percentage, never colour alone.
  • --sudx-cost-downA fall in buyer cost. Green is not "good" here; it is a direction.
  • --sudx-warningA caution marker for freshness and gaps. Measures 5.26:1 on paper, the same step as its cost siblings, so it carries small text as well as badges and borders.
  • --sudx-projectedA value that was estimated rather than observed. Always carries its word label too.

Semantic recipe

<p role="status"><span aria-hidden="true">!</span> Data is stale by 2 hours.</p>

Accessibility

  • Use role=status for non-blocking updates and role=alert only for urgent errors.
  • Do not announce decorative repetition.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Auth, freshness, projection, and data-direction states

Patterns / Technical reference

Navigation shell

Navigation details remain implementation reference rather than a primary visual outcome.
Open technical record

Purpose

Orient users with a persistent wordmark, restrained primary links, current location, and reachable theme control.

Rules

Do
  • Keep the identity, current location, and essential actions stable across routes.
  • Keep the theme control reachable in the shell on every route and at every width. Its own behaviour belongs to the Theme control node.
Do not
  • Hide the only route back or overload the shell with product content.
  • Typeset or approximate the mark in the lockup, in a specimen as much as on a route.

States

  • Default
  • Current page
  • Hover
  • Focus
  • Theme toggled
  • Collapsed mobile
  • Drawer open

Tokens and dependencies

  • --sudx-backgroundThe page ground. Everything else is drawn on it, and nothing else may claim it.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-surface-quietThe recessed companion to a surface: readouts, table heads, and inset wells.
  • --sudx-textPrimary reading text.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.

Semantic recipe

<header class="sudx-header"><a class="sudx-wordmark" href="/" aria-label="SUDX home"><span class="sudx-brand-name" aria-hidden="true">SUD</span><svg class="sudx-mark" viewBox="0 0 100 100" aria-hidden="true"><path class="sudx-mark__ink" d="M21.3 10.7L89.3 78.7A7.5 7.5 0 0 1 78.7 89.3L10.7 21.3A7.5 7.5 0 0 1 21.3 10.7Z"/><path class="sudx-mark__clay" d="M55.66 33.74L78.7 10.7A7.5 7.5 0 0 1 89.3 21.3L66.26 44.34ZM33.74 55.66L10.7 78.7A7.5 7.5 0 0 0 21.3 89.3L44.34 66.26Z"/></svg></a><nav class="sudx-nav" aria-label="Primary"><a data-mobile-essential href="/design/" aria-current="page">design/</a><a data-mobile-essential href="/portal">sign-in/</a></nav></header>

Accessibility

  • Name each navigation landmark.
  • Expose the current page with aria-current and a visual state.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, Future products
Provenance
The shell every SUDX route header runs

Patterns / Technical reference

Panels and sections

Panel structure remains implementation reference rather than a primary visual outcome.
Open technical record

Purpose

Group related content with one flat surface, clear heading, optional controls, and internal section separators.

Rules

Do
  • Use one panel boundary and hairlines between internal regions.
Do not
  • Place a card inside a card or add a resting shadow.

States

  • Default
  • Interactive header
  • Empty
  • Loading
  • Error

Tokens and dependencies

  • --sudx-surfaceA raised reading surface: cards, panels, popovers. Carries no resting shadow.
  • --sudx-surface-quietThe recessed companion to a surface: readouts, table heads, and inset wells.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-radiusThe surface radius. Cards, panels, and buttons.

Semantic recipe

<section aria-labelledby="panel-title"><header><h2 id="panel-title">Lane context</h2></header><div>Content</div></section>

Accessibility

  • Give each major region a programmatic heading.
  • Keep reading order identical to visual order.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Flat surface hierarchy across SUDX products

Patterns / Technical reference

Tables and directories

Dense table behavior remains useful technical reference for product surfaces.
Open technical record

Purpose

Present comparable records with stable columns, tabular values, visible units, and row actions that preserve context.

Rules

Do
  • Put units in the caption or heading and align numeric columns for scanning.
  • In a directory, resolve the row on hover and keyboard focus: take the index to the accent, grow a Clay edge-marker, and lift the open affordance from a dimmed rest.
Do not
  • Replace dense row trends with decorative bar strips.

States

  • Default
  • Sorted
  • Selected row
  • Loading
  • Empty
  • Error
  • Horizontal overflow

Tokens and dependencies

  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-textPrimary reading text.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.

Semantic recipe

<table><caption>Rates · USD/FEU</caption><thead><tr><th scope="col">Lane</th><th scope="col">Rate</th></tr></thead><tbody><tr><th scope="row">HKG → LAX</th><td>1,840</td></tr></tbody></table>

Accessibility

  • Use caption and scoped headers.
  • Give the directory row the same resolved state on keyboard focus as on hover.
  • Provide a keyboard-reachable overflow region on narrow screens.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
SUDX portal and dense product data usage

Patterns / Technical reference

Toolbars and analysis scope

Analysis controls remain useful technical reference for product surfaces.
Open technical record

Purpose

Keep the view, the analysis range, the comparison period, the applied filters, and the primary view action in one control region that states the scope it holds.

Rules

Do
  • Show active filters and analysis range next to the view they change.
  • Resolve the scope back in words under the controls: the dates the range covers, its span, the comparison period, and the observation cutoff.
  • Build the view switch from a native radio group and the range from the field slot, so the period travels inside the control that carries the value.
Do not
  • Hide scope in an unlabeled icon or let controls re-order unpredictably.
  • Leave a select in browser chrome inside a value slot, or ship an applied filter the reader cannot drop.

States

  • Default
  • Filter active
  • Scope changed
  • Loading
  • No available range
  • Mobile wrap

Tokens and dependencies

  • --sudx-surface-quietThe recessed companion to a surface: readouts, table heads, and inset wells.
  • --sudx-activeThe pressed or currently selected state of a control, not a hover.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-accent-wellThe tinted accent ground behind a notice, an arrival ribbon, or an applied filter. Background only.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-border-strongThe heavier hairline, reserved for a dashed or emphasised edge around unproven or empty work.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-target-minThe minimum interactive target. Raised from 40px in 3.4.2.
  • --sudx-transition-controlThe one control transition. Anything longer reads as latency.
  • aria-liveThe region that announces a state change to a screen reader without moving focus.
  • toolbar.htmlThe published analysis toolbar recipe.

Semantic recipe

<div class="sudx-toolbar" role="group" aria-label="Analysis controls"><div class="sudx-toolbar__rail"><div class="sudx-toolbar__controls"><fieldset class="sudx-toolbar__views"><legend class="sudx-visually-hidden">View</legend><label class="sudx-toolbar__view"><input type="radio" name="view" value="overview" checked><span>Overview</span></label></fieldset><span class="sudx-toolbar__group"><label class="sudx-toolbar__key" for="range">Range</label><span class="sudx-field__slot"><span class="sudx-toolbar__picker"><select id="range" name="range"><option selected>W24–W29</option></select></span><span class="sudx-field__unit">6 wk</span></span></span></div><span class="sudx-toolbar__actions"><button class="sudx-button sudx-button--primary" type="button">Export view</button></span></div><p class="sudx-toolbar__scope" aria-live="polite"><span class="sudx-toolbar__key">Scope</span><span><b>2026-06-08 → 2026-07-19</b></span><span>6 weeks</span></p></div>

Accessibility

  • Name the control region. Use role="toolbar" only with complete arrow-key navigation and a roving tabindex; a named group keeps native tab order honest.
  • Keep the view switch a native radio group so arrow keys, the accessibility tree, and the submitted value stay intact.
  • Announce the scope readback once with aria-live="polite" and never move focus to it.
  • Name the object of each filter removal, and give it the full target on a coarse pointer.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
DRIFT, CMA Tracker, Future products
Provenance
DRIFT comparison and CMA Performance scope controls

Patterns / Technical reference

System states

System-state behavior remains essential technical reference.
Open technical record

Purpose

Keep layout and recovery clear while data is loading, empty, stale, unavailable, or invalid.

Rules

Do
  • Keep the affected region sized and provide a specific safe recovery action.
Do not
  • Use endless animation, blame the user, or expose server configuration.

States

  • Loading
  • Empty
  • Stale
  • Unavailable
  • Validation error
  • Recovered

Tokens and dependencies

  • --sudx-warningA caution marker for freshness and gaps. Measures 5.26:1 on paper, the same step as its cost siblings, so it carries small text as well as badges and borders.
  • --sudx-cost-upA rise in buyer cost. Always paired with the arrow and the percentage, never colour alone.
  • --sudx-surface-quietThe recessed companion to a surface: readouts, table heads, and inset wells.
  • aria-liveThe region that announces a state change to a screen reader without moving focus.

Semantic recipe

<section aria-labelledby="state-title"><h2 id="state-title">Rates unavailable</h2><p>Try again.</p><button type="button">Retry</button></section>

Accessibility

  • Announce asynchronous status once without stealing focus.
  • Keep errors concise and put focus on recovery only when the action requires it.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Shared loading, empty, stale, and failure needs

Patterns / Technical reference

Authentication

Protected-route behavior remains technical reference and is not a public exhibit.
Open technical record

Purpose

Protect a registered path with one portal password while keeping errors generic and sessions scoped.

Rules

Do
  • Validate return paths server-side and clear only the selected portal cookie on logout.
Do not
  • Reveal which secret is missing or mutate auth state with GET.

States

  • Signed out
  • Submitting
  • Invalid credentials
  • Unavailable
  • Authenticated
  • Signed out by POST

Tokens and dependencies

  • password-onlySign-in takes a password and no identifier. There are no accounts to enumerate.
  • same-origin return_toThe post-login destination, resolved on the server and rejected if it leaves the origin.
  • HttpOnly scoped cookieThe session cookie: HttpOnly, SameSite=Lax, scoped to one portal path, 24 hours.
  • POST logoutSign-out is POST-only, so a link or a prefetch can never end a session.

Semantic recipe

<form method="post" action="/api/login"><input type="hidden" name="return_to" value="/portal"><label>Password <input name="password" type="password" autocomplete="current-password"></label><button>Sign in</button></form>

Accessibility

  • Use a real password label and current-password autocomplete.
  • Put generic errors in a role=alert region without clearing user focus.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website
Provenance
Current SUDX path-scoped password portal

Data language / Technical reference

Metrics and deltas

Metric semantics remain reusable technical reference for product data.
Open technical record

Purpose

Show a value with its unit, comparison, direction, time range, source, and estimate state in one scan path.

Rules

Do
  • Put unit and period next to the value and encode buyer-cost direction with glyph plus color.
Do not
  • Show a naked number or treat green as universally positive.

States

  • Measured
  • Rising
  • Falling
  • Flat
  • Projected
  • Missing
  • Stale

Tokens and dependencies

  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • --sudx-cost-upA rise in buyer cost. Always paired with the arrow and the percentage, never colour alone.
  • --sudx-cost-downA fall in buyer cost. Green is not "good" here; it is a direction.
  • --sudx-projectedA value that was estimated rather than observed. Always carries its word label too.

Semantic recipe

<figure><figcaption>Rate · W29</figcaption><data value="1840">USD 1,840 / FEU</data><p>▲ USD 30 · Source: carrier sheet</p></figure>

Accessibility

  • Include direction words in accessible copy when a glyph is ambiguous.
  • Keep unit and time range in the same figure or labelled group.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
DRIFT, CMA Tracker, Future products
Provenance
DRIFT rate metrics and CMA performance metrics

Data language / Curated

Dither trend charts

A distinctive DRIFT-proven signal treatment with broad chart and sparkline reuse.
Open technical record

Purpose

Show one selected quantitative trend with texture density while preserving exact domains, context lines, and missing-data gaps.

Rules

Do
  • Use Bayer 4x4, 2px cells, maximum coverage 0.4, a 0.72 cap, and one selected field.
  • Paint the unlit tier of the field in the series colour so density reads as weight, not as holes punched to the page.
  • Give every unobserved period its own dashed rule, and every context series a dashed, lighter line.
Do not
  • Overlap fills, animate idle charts, interpolate gaps, or place dither behind text.

States

  • Selected series
  • Context series
  • Missing gap
  • Loading texture
  • Canvas unavailable
  • Reduced motion

Tokens and dependencies

  • BAYER_4The matrix itself, shared by every dithered surface so texture stays identical.
  • MAX_COVERAGE = 0.4That ceiling's value: at most 40% of cells filled.
  • OFF_TIER = 0.34The ink an unlit dither cell keeps, as a fraction of a lit one. Above zero, so density reads as weight rather than as holes punched through to the page.
  • FIELD_FLOOR = 0.34The ink a dither field keeps at the value line, as a fraction of its ink at the domain floor. Above zero, so the field stays attached to the line it describes.
  • cellSize = 2The dither cell in device pixels. Larger reads as pattern, smaller as noise.
  • explicit domainThe stated minimum and maximum of a chart axis. A domain is never inferred and never hidden.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.

Semantic recipe

<figure><figcaption>Selected series · explicit domain</figcaption><canvas data-dither-chart="" aria-hidden="true"></canvas><table aria-label="Selected and context series values">…</table></figure>

Accessibility

  • Keep a textual summary and data table when Canvas works or fails.
  • Distinguish the selected series from context by line weight and dash, never by colour alone.
  • Name every unobserved period in the table rather than leaving its cell empty.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT
Provenance
DRIFT dither chart proven and ratified into SUDX

Data language / Technical reference

Sparklines

Compact trend behavior remains useful reference beside the curated Dither family.
Open technical record

Purpose

Add a compact line trend to a dense row without replacing the value, range, or accessible summary.

Rules

Do
  • Use a line with a visible final value and accessible trend summary.
Do not
  • Use bar strips or imply an unlabeled zero baseline.

States

  • Rising
  • Falling
  • Flat
  • Missing segment
  • Selected row
  • Narrow cell

Tokens and dependencies

  • --sudx-textPrimary reading text.
  • --sudx-text-mutedSecondary text: supporting prose, units, and labels beside a value.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.

Semantic recipe

<svg role="img" aria-label="Six-week utilization rises from 74 to 88 percent" viewBox="0 0 160 40"><polyline points="2,31 32,24 63,27 94,16 126,18 158,8"/></svg>

Accessibility

  • Provide a concise trend description in the accessible name.
  • Do not make the sparkline the only source of the final value.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
DRIFT, CMA Tracker
Provenance
Dense DRIFT/CMA row trend requirement

Data language / Technical reference

Heatmaps

Heatmap semantics remain useful technical reference pending a proven exhibit.
Open technical record

Purpose

Compare allocation utilization in a matrix using profile-owned bands, printed values, and adaptive foreground contrast.

Rules

Do
  • Print the value in every cell and keep the four bands inside CMA allocation heatmaps.
Do not
  • Promote CMA bands to shared buttons, text, navigation, or generic charts.

States

  • Below 50%
  • 50–79%
  • 80–119%
  • 120% and above
  • Missing
  • Selected cell

Tokens and dependencies

  • CMA shortfall rgba(190,74,84,.75)A quarantined CMA Tracker band colour. Not a SUDX token and not for reuse.
  • CMA warning rgba(181,138,45,.70)A quarantined CMA Tracker band colour. Not a SUDX token and not for reuse.
  • CMA target rgba(63,115,82,.75)A quarantined CMA Tracker band colour. Not a SUDX token and not for reuse.
  • CMA high rgba(94,94,158,.80)A quarantined CMA Tracker band colour. Not a SUDX token and not for reuse.

Semantic recipe

<table aria-label="Allocation utilization"><tr><th>Member A</th><td data-band="target">102%</td></tr></table>

Accessibility

  • Print each value and expose row and column headers.
  • Choose foreground contrast per band and mark missing cells with text.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
CMA Tracker
Provenance
CMA allocation heatmap bands retained as a product profile

Data language / Technical reference

Matrices and mosaics

Matrix semantics remain useful technical reference pending a proven exhibit.
Open technical record

Purpose

Represent two-dimensional allocation relationships and calendar-shaped activity with explicit axes and square cells.

Rules

Do
  • Use square cells, visible axes, and a numeric summary.
Do not
  • Apply dither texture or turn activity cells into unlabeled decoration.

States

  • Active
  • Inactive
  • Missing
  • Selected
  • Current period
  • Overflow matrix

Tokens and dependencies

  • --sudx-surface-quietThe recessed companion to a surface: readouts, table heads, and inset wells.
  • --sudx-accentClay for borders, fills, strokes, and underlines. Below AA on paper, so never small text.
  • --sudx-borderThe default hairline. One rule or one tonal inset separates two things, never both.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.

Semantic recipe

<figure><div role="img" aria-label="Five of eight weeks active">…</div><figcaption>W22–W29 · 5 active</figcaption></figure>

Accessibility

  • Describe the overall pattern and expose exact values in a table when decisions depend on them.
  • Keep cells large enough to inspect when interactive.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
CMA Tracker, Future products
Provenance
CMA allocation matrix and member activity evidence

Data language / Technical reference

Provenance and uncertainty

Provenance rules remain essential technical reference for every data surface.
Open technical record

Purpose

Attach source, as-of time, confidence, missingness, and projection state to the value or chart they qualify.

Rules

Do
  • Place provenance beside the qualified output and preserve real gaps.
Do not
  • Hide projection in a tooltip or silently choose between conflicting sources.

States

  • Observed
  • Projected
  • Stale
  • Missing
  • Conflicting sources
  • Unknown

Tokens and dependencies

  • --sudx-projectedA value that was estimated rather than observed. Always carries its word label too.
  • --sudx-warningA caution marker for freshness and gaps. Measures 5.26:1 on paper, the same step as its cost siblings, so it carries small text as well as badges and borders.
  • --sudx-font-monoGeist Mono with tabular figures. Every value, date, percentage, unit, and token name.
  • sourceWhere a value came from, named within one line of the value.
  • as-ofThe moment a value was true, printed beside it.

Semantic recipe

<aside aria-label="Data provenance"><dl><dt>Source</dt><dd>Carrier sheet</dd><dt>As of</dt><dd><time datetime="2026-07-20T09:00:00+08:00">20 Jul 09:00 HKT</time></dd></dl></aside>

Accessibility

  • Keep provenance in the reading order, not hover-only UI.
  • Use explicit words for projected, missing, stale, and unknown states.

Deviations

  • None recorded.

Ownership and provenance

Owner
SUDX
Consumers
SUDX Website, DRIFT, CMA Tracker
Provenance
Shipping source-artifact and projected-rate requirements

Motion / Retired

Shipping ticker

No production surface uses this one-off motion experiment.
Retirement record
Owner
SUDX
Provenance
Recovered SUDX landing motion