Typography
One hierarchy, three renderings
Every surface shares the same information order: a stable title anchor, labels that precede values, metadata below headings, and explicit status wording beside any emphasis. Desktop and mobile are one graphical system: the same type families, roles, sizes and weights. Layout, padding, and component target dimensions adapt to touch and narrow screens; the type scale stays shared. The terminal expresses the same roles with one cell size, using bold, spacing, reserved marker cells and uppercase only for short tags.
None of the three platforms should imitate another's constraints. They share meaning, not pixels.
Families
Reading, labels, and controls use bundled Exo 2 (Exo 2, system-ui, sans-serif). Display titles use bundled Oxanium Bold (Oxanium, Exo 2, system-ui, sans-serif). Identifiers, code, and logs use bundled monospace with system fallbacks (Cascadia Mono, Consolas, ui-monospace, monospace). Use actual bundled weights only; do not synthesize bold or italic.
Desktop
Same families, fallbacks, and weight rules as above.
Mobile
Identical to desktop: same families, roles, sizes, weights and the full scale below. The only addition is that sizes also honor the host text scale (sp, Dynamic Type, or equivalent). Do not horizontally scale or add wide tracking to imitate wordmarks.
Terminal
The terminal owns font family, size and line height. One monospaced grid carries titles, borders, code and body copy. Use regular and bold weights only; avoid italic, faint text and ligatures.
Validation overview
Inputs verified; ready to submit when the operator confirms.
Run validation
job-042-revision-8
Validation overview
Inputs verified; ready to submit when the operator confirms.
Run validation
job-042-revision-8
Validation overview
Inputs verified; ready to submit.
Run validation
job-042-revision-8
Graphical type scale
Sizes and line heights are logical pixels at 100% text scale on desktop. Mobile uses the same roles and values, additionally multiplied by the host scale. The terminal maps each role to weight, spacing or a compact tag at one size.
| Role | Family / weight | Size / line height | Use |
|---|---|---|---|
| Display | Oxanium 700 | 36 / 44 | Occasional product landing/overview title |
| Page title | Oxanium 700 | 28 / 36 | One main workspace title |
| Section/card title | Oxanium 700 | 22 / 28 | Major section and card heading |
| Small panel heading | Exo 2 600 | 16 / 24 | Drawer and compact panel labels |
| Body | Exo 2 400 | 16 / 24 | Reading copy |
| Control/field label | Exo 2 500 | 16 / 24 | Buttons, tabs, field labels and menus |
| Metadata | Exo 2 400 | 14 / 20 | Hints, timestamps and secondary context |
| Badge/table label | Exo 2 600 | 14 / 20 | Short status and column labels |
| Code/log | Monospace 400 | 14 / 20 | Editable code, diagnostic text and identifiers |
Use sentence case with normal letter spacing. Uppercase is limited to short acronyms, log levels and compact terminal tags. Avoid 11–12px microtext; essential status uses at least the metadata role.
Oracle
Validation run
Evidence summary
On this page
Three checks observed complete.
Run validation
revision: 8
Oracle
Validation run
Evidence summary
On this page
Three checks observed complete.
Run validation
revision: 8
ORACLE Validation run Evidence summary On this page Three checks observed complete. Run validation Job 042 · Revision 8 ✓ Ready revision: 8
Text layout
Default readable prose measure is 65 characters, with an upper bound of about 80. Align labels and paragraphs to the leading edge. Heading first lines stay anchored to the component inset. The first row contains the title and at most one optional trailing status chip; remaining chips, metadata, then actions follow below with at least 8px separation between rows on every platform. Label-to-control spacing is 8px; control-to-hint spacing is 4px.
Desktop
Numerical table columns may align trailing with tabular figures. Long identifiers may wrap at safe boundaries with an explicit copy action. Single-line navigation may truncate only when the full label remains accessible.
Mobile
Same anchoring and spacing tokens; narrow widths wrap content downward, with actions always below chips and metadata and no change to type roles. Do not rely on hover-only truncation; show the full label or an explicit expand affordance.
Terminal
Measure display cells, not string length. Reserve marker cells and leave blanks when a glyph is absent. Wrap log and code content without inserting decorative glyphs into copied data.
Validation run for upstream dependency checks
Request identity
armory://jobs/042/revisions/8/evidence-bundleValidation run for upstream dependency checks
Request identity
armory://jobs/042/revisions/8/evidence-bundle🮣───────────────────────────🮢 │ Validation run for │ │ upstream dependency │ │ ✓ Ready │ │ Job 042 · Revision 8 │ │ │ │ │ │ Request identity │ │ armory://jobs/042/rev/8 │ │ │ 🮡───────────────────────────🮠
Language and scaling
Do not encode layout in a particular English label length. At 200% text zoom on desktop, wrap toolbars within the action section below chips and metadata before clipping. On mobile, switch layouts at narrow widths rather than shrinking type. Maintain semantic heading levels even when visual roles repeat.
Desktop
Implement web text in scalable units; large screens do not justify microtype.
Mobile
Native type follows user font scaling independently of control height; touch targets use layout tokens from layout and density.
Terminal
Prefer reflowing columns and stage lists over shrinking the cell grid. User font preferences and wide characters must not destroy alignment.
Validation run
Validation run
Validation run Job 042 · three checks complete.
Validation Job 042 · checks OK.