Clarity
Make orientation, state, and next action legible before expression.
Lunar Signal Modernism · Theme 01
A stack-neutral aerospace design system in plain HTML and CSS — design tokens, 49 component contracts, 161 native icons, and 13 responsive applications. Cinematic at entry, calm in operation, exact at systems depth.
Before the documentation, the system demonstrates itself — an unretouched Mission-depth workspace built entirely from the contracts and tokens on this page.
TOKENS · --lsm-color-semantic-surface · --lsm-color-semantic-primary · --lsm-font-display
| Record | Owner | Updated | State |
|---|---|---|---|
| Quarterly access review | M. Chen | 4 min ago | Priority |
| Vendor evidence packet | A. Rivera | 22 min ago | Nominal |
| Policy exception register | T. Singh | Yesterday | Attention |
| Control owner roster | J. Okafor | Aug 08 | Nominal |
Function before ornament. Signal over noise. Accent with intent. Structure creates calm.
TOKENS · --lsm-font-display · --lsm-color-palette-teal · --lsm-space-6
Make orientation, state, and next action legible before expression.
Use exact labels, stable alignment, and deliberate state language.
Accent only where it carries hierarchy or meaning.
Technical systems should feel capable and understandable.
Calm Graphite is the operational default. Ignition Orange is a controlled editorial signal — not a status color. Fault Red stays reserved for error, critical, and destructive state.
TOKENS · --lsm-color-palette-* · --lsm-color-semantic-editorial-signal · --lsm-color-semantic-error
#11181E#253139#2D3A42#37464F#56656E#B3BBC2#E7E1D5#5CA3A6#CBAE67#CB7248#7EB79E#C97A60#EA7468Severity scale · semantic tokens
Display creates identity. Interface carries work. Monospace communicates machine state.
TOKENS · --lsm-font-display · --lsm-font-sans · --lsm-font-mono · --lsm-font-size-display1
Readable hierarchy for labels, forms, navigation, descriptions, and data interpretation.
UPLINK› 14:32:18 UTC CALLSIGN: LUNA-01 STATUS: TRAJECTORY NOMINAL FAULT: NONE
Complexity rises only when the task requires it. Every deeper context retains a visible way back.
TOKENS · --lsm-color-semantic-surface-deep · --lsm-color-semantic-surface · --lsm-color-semantic-surface-elevated · --lsm-shadow-raised
Orientation, essential state, and one primary action.
Forms, filters, progress, and moderate task data.
Advanced settings, diagnostics, logs, and dense telemetry.
Use the same calm sequence in every stack: context, task, primary work surface, supporting context, then deliberate systems detail.
TOKENS · --lsm-grid-columns · --lsm-grid-gutter · --lsm-space-16 · --lsm-size-content
Mission or scope, current state, and only controls that affect the current view.
The form, queue, record, or focused dashboard. It carries the visual weight and the one clear next action.
Compact status, help, and related context. Stack it after the work surface on narrow screens.
Thirteen complete, stack-neutral references cover cinematic entry, product shells, active work, administration, content, settings, sequencing, mobile, and deep diagnostics. The nine specimens below show the range; open the full atlas for every responsive page.
TOKENS · --lsm-color-semantic-primary · --lsm-font-display · --lsm-shadow-overlay
SIGNAL / 01Oversized identity, one invitation, plotted flight architecture, and a protected copy corridor.
SIGNAL / 02Project storytelling with a large media plane and smaller evidence cards.
MISSION / 05Orientation metrics lead directly into a live work trajectory and review queue.
MISSION / 06Calibration, scoped filters, a dense record table, and an inspector that does not interrupt scanning.
MISSION / 08A protected reading column, stable guide rail, and horizon profile inside a dedicated figure.
MISSION / 09Grouped controls with an impact summary and an instrument-like configuration profile.
MISSION / 11A real trajectory mapped to discovery, build, launch, and observation milestones.
MISSION / 12Primary action first. Supporting context follows in a narrow, explicit sequence.
SYSTEMS / 13Visible scope, topology, state summary, bounded logs, and an obvious route back to operations.
49 governed, stack-neutral contracts cover core actions, forms, navigation, feedback, overlays, data display, and layout.
TOKENS · --lsm-color-semantic-primary · --lsm-radius-sm · --lsm-size-control · --lsm-shadow-focus
Triggers a single, discrete action. Label with a verb phrase in the imperative. Minimum target height is 46px; focus, hover, and disabled are contract-required states.
TOKENS · --lsm-* semantic action + control sizing
<!-- markup --> <button class="btn btn--primary"> Initiate sequence </button> /* consumes tokens — no hard-coded color */ .btn--primary { background: var(--lsm-color-semantic-primary); color: var(--lsm-color-semantic-primary-foreground); min-height: var(--lsm-size-control); font-family: var(--lsm-font-mono); }
Give a surface exactly one primary orange button for its single most important action; pair it with secondary controls for everything else.
Never stack multiple primary buttons or use Ignition Orange to signal status — severity has its own semantic colors.
Collects a single line of typed text. Pair every field with a persistent, visible label; the invalid state and Fault Red are reserved for validation failure, never for emphasis.
TOKENS · --lsm-color-semantic-surface · --lsm-color-semantic-border · --lsm-color-semantic-focus · --lsm-color-semantic-error
Keep the label visible above the field and surface each validation error inline in Fault Red, next to the input it describes.
Don't lean on placeholder text as the only label, and never tint a valid field red or an idle field Ignition Orange to pull attention.
Chooses one option from a known, finite list. The current value stays legible at rest behind a caret; the list opens on click, focus, or arrow keys.
TOKENS · --lsm-color-semantic-surface · --lsm-color-semantic-border · --lsm-color-semantic-focus · --lsm-radius-sm
Use a Select for four to twelve mutually exclusive options, keep the resting value legible, and drive focus and the open affordance with Teal.
Don't reach for a Select when two or three options fit a segmented control, and don't ship it with no default or placeholder cue.
Commits a binary on/off setting immediately, with no separate save step. The on position and its track read in Teal to match the system's active language — never Ignition Orange.
TOKENS · --lsm-color-palette-teal · --lsm-color-palette-gridline · --lsm-color-palette-bone · --lsm-color-semantic-focus
Use a toggle only for an instant on/off setting, and let Teal carry the on state so "active" stays consistent with focus and links.
Don't use a toggle for actions that need a Save, and never color the on state Ignition Orange — orange is rationed to one primary action.
Labels the current state of an object in a compact, non-interactive tag. Each severity maps to one fixed semantic color so status reads the same everywhere it appears.
TOKENS · --lsm-color-semantic-info · --lsm-color-semantic-success · --lsm-color-semantic-warning · --lsm-color-semantic-error
Map each status to its fixed semantic color — Teal info, Signal success, Rust warning, Fault error — and keep the label to a single word.
Don't signal status with Ignition Orange or remap colors per screen — orange means action, not condition, and drift breaks scannability.
Switches between a few mutually exclusive views in place. Exactly one segment is active at a time; the active segment fills with Teal to match the system's active language.
TOKENS · --lsm-color-palette-teal · --lsm-color-semantic-border · --lsm-color-semantic-surface · --lsm-font-mono
Use a segmented control for two to four peer views with short labels; the single active segment carries Teal.
Don't overflow past four segments or bury a destructive action inside — it selects a view, it doesn't confirm or delete.
Organizes peer sections under one region, showing a single panel at a time. The selected tab is marked with a Teal underline; a disabled tab stays present but inert.
TOKENS · --lsm-color-palette-teal · --lsm-color-semantic-border · --lsm-color-semantic-focus · --lsm-color-semantic-muted-foreground
Give the selected tab a clear Teal underline, hold labels to one or two words, and preserve each panel's state as users move between tabs.
Don't route primary navigation or one-way actions like sign-out through tabs, or disable a tab with no explanation of why.
Additional display patterns — quick reference, not yet full contract docs
72% COMPLETE
Marks, technical patterns, typography, and restrained framing carry the aerospace identity. The icon set is conventional and immediately legible, adapted from Tabler Icons (MIT).
TOKENS · --lsm-color-palette-teal · --lsm-color-palette-gold · --lsm-border-width
1.5-pixel default stroke, round caps and joins, monochrome currentColor.
Review at 16, 20, 24, 32, and 48 pixels; interactive targets remain at least 44 pixels where practical.
Individual SVGs, symbol sprite, and searchable JSON metadata—usable in any stack.
Do not invent niche pictograms. Use text labels, established platform symbols, or a vetted icon library when a conventional native glyph is unavailable.
161 conventional icons across 5 categories, adapted from Tabler Icons (MIT) and normalized to the Orbital contract. See THIRD_PARTY_NOTICES.md. Search the full family directly in this standalone guide.
TOKENS · --lsm-size-icon · --lsm-color-palette-teal
State coverage, allowed depth, and stable contract IDs are machine-readable in components/contracts.json and validated.
TOKENS · --lsm-font-mono · --lsm-color-semantic-border
| Component | States | Depth | Contract ID |
|---|---|---|---|
| Button | default hover active focus disabled loading | 0 / 1 / 2 | button |
| IconButton | default hover active focus disabled | 0 / 1 / 2 | icon-button |
| ButtonGroup | horizontal vertical responsive disabled | 0 / 1 / 2 | button-group |
| Card | default elevated interactive disabled | 0 / 1 / 2 | card |
| Badge | neutral info success warning error priority | 0 / 1 / 2 | badge |
| StatusChip | neutral info success warning error standby | 0 / 1 / 2 | status-chip |
| Alert | neutral info success warning error | 0 / 1 / 2 | alert |
| Avatar | image fallback online offline busy | 1 / 2 | avatar |
| EmptyState | default compact action | 0 / 1 / 2 | empty-state |
| Separator | horizontal vertical decorative semantic | 0 / 1 / 2 | separator |
| Skeleton | loading reduced-motion | 1 / 2 | skeleton |
| Spinner | active reduced-motion | 0 / 1 / 2 | spinner |
| Input | default hover focus filled invalid disabled readonly | 1 / 2 | input |
| Textarea | default hover focus filled invalid disabled readonly | 1 / 2 | textarea |
| SearchInput | default focus filled disabled | 1 / 2 | search-input |
| Select | default hover focus selected invalid disabled | 1 / 2 | select |
| Checkbox | unchecked checked indeterminate focus disabled invalid | 1 / 2 | checkbox |
| RadioGroup | unchecked checked focus disabled invalid | 1 / 2 | radio-group |
| Toggle | off on hover focus disabled | 1 / 2 | toggle |
| Slider | default hover focus disabled value | 1 / 2 | slider |
| Combobox | default focus expanded selected invalid disabled | 1 / 2 | combobox |
| FileInput | empty selected invalid disabled drag-ready | 1 / 2 | file-input |
| CharacterCount | empty typing nearing-limit over-limit disabled | 1 / 2 | character-count |
| Tabs | default hover focus selected disabled horizontal vertical | 0 / 1 / 2 | tabs |
| Accordion | collapsed expanded hover focus disabled | 0 / 1 / 2 | accordion |
| Tooltip | closed hover focus open escaped | 1 / 2 | tooltip |
| Dialog | closed open focus-trapped dismissing | 1 / 2 | dialog |
| Drawer | closed open focus-trapped dismissing left right | 1 / 2 | drawer |
| Progress | determinate indeterminate complete error | 0 / 1 / 2 | progress |
| Meter | low optimum high critical | 1 / 2 | meter |
| DataTable | populated empty loading overflow selected | 1 / 2 | data-table |
| Breadcrumb | default current collapsed overflow | 0 / 1 / 2 | breadcrumb |
| Navigation | default hover active focus compact expanded | 0 / 1 / 2 | navigation |
| Pagination | first middle last current disabled compact | 1 / 2 | pagination |
| StepIndicator | complete current upcoming error vertical horizontal | 1 / 2 | step-indicator |
| Toolbar | horizontal vertical focus disabled overflow | 1 / 2 | toolbar |
| CodeSnippet | default copied multiline overflow | 0 / 1 / 2 | code-snippet |
| Banner | info success warning error dismissible | 0 / 1 / 2 | banner |
| ToastProvider | queued visible dismissing info success warning error | 1 / 2 | toast-provider |
| Menu | closed open hover focus disabled destructive | 1 / 2 | menu |
| Disclosure | closed open hover focus disabled | 0 / 1 / 2 | disclosure |
| Tag | static interactive removable selected disabled | 1 / 2 | tag |
| SummaryBox | default priority info | 0 / 1 / 2 | summary-box |
| DepthBoundary | signal mission systems editorial operational | 0 / 1 / 2 | depth-boundary |
| Container | responsive constrained full-bleed | 0 / 1 / 2 | container |
| Stack | vertical responsive | 0 / 1 / 2 | stack |
| Cluster | wrapped aligned distributed | 0 / 1 / 2 | cluster |
| AutoGrid | responsive dense auto-fit | 0 / 1 / 2 | auto-grid |
| DescriptionList | stacked inline compact | 0 / 1 / 2 | description-list |