Standards and functional baselines
Accessibility success criteria, semantic behavior, security boundaries, and lossless task completion are release requirements.
A production reference for spatial hierarchy, control geometry, affordance placement, progressive disclosure, dynamic expansion, accessibility, resilience, and responsible enterprise communication.
Evidence basis: official design systems, W3C standards, usability research, and clearly labeled implementation heuristics.
01 · Core principles
The handbook separates normative requirements, recommended production defaults, and context-dependent patterns. This prevents ergonomic heuristics from being presented as compliance mandates.
Accessibility success criteria, semantic behavior, security boundaries, and lossless task completion are release requirements.
44–48px touch regions, shared control size families, explicit state models, and component-owned internal spacing are strong defaults with documented exceptions.
Bottom navigation, drawers, inline expansion, dense tables, and sticky actions depend on task, audience, device, information volume, and consequence.
| Constraint | Design implication |
|---|---|
| Viewport | Prioritize one decision surface and adapt composition rather than shrinking desktop structure. |
| Attention | Front-load current state, exceptions, and next action. Delay optional detail. |
| Input precision | Use generous targets, spacing, and alternatives to drag or gesture-only behavior. |
| Connectivity | Expose offline, stale, retrying, and pending-sync states. |
| Authorization | Keep tenant, environment, role, and acting scope visible when errors would be consequential. |
| Interruption | Preserve draft, scroll, filters, selection, upload progress, and last synchronized state. |
Reduce extraneous cognitive effort without hiding meaningful complexity, trade-offs, evidence, or consequences.
02 · Spatial system
Space should encode containment, relationship, hierarchy, interaction safety, and reading rhythm. Raw pixel values are implementation details; semantic spatial roles are the system.
Padding, internal icon gaps, line height, and focus clearance belong to the component contract.
Stacks, clusters, grids, rows, and sections define gaps between components. Reusable components should not carry arbitrary outer margins.
Subsection, section, chapter, and landmark spacing should be distinct enough to communicate hierarchy without borders around every region.
:root {
--space-1: 2px; /* optical correction */
--space-2: 4px; /* micro relationship */
--space-3: 6px; /* icon-to-label */
--space-4: 8px; /* control relationship */
--space-5: 12px; /* related content */
--space-6: 16px; /* component */
--space-7: 24px; /* group */
--space-8: 32px; /* region */
--space-9: 48px; /* section */
--space-10: 64px; /* chapter */
--space-11: 96px; /* landmark */
}
| Property | Primary job | Owner |
|---|---|---|
| Padding | Space inside a boundary | Component |
| Gap | Relationship between siblings | Parent layout |
| Margin | Editorial flow or exceptional separation | Page or flow primitive |
| Line height | Vertical rhythm inside text | Typography role |
| Minimum size | Interaction safety and consistent silhouette | Component geometry |
| Optical adjustment | Correct perceived misalignment | Specific component token |
Keep micro and relationship spacing stable. Compress larger section and chapter values on compact screens. Do not globally scale every value.
Step selected semantic roles along the scale. Preserve touch safety, focus clearance, destructive-action separation, and reading legibility.
Use empty space to protect meaningful content from competing content. Excessive space can also break relationships and increase travel distance.
03 · Typography
Controls, labels, headings, interface copy, and extended reading have different line-box requirements. A global reading line height should never leak into compact controls.
| Text role | Starting profile | Behavior |
|---|---|---|
| Icon-only element | 1 or 0 | The target box provides geometry. |
| Pill or badge | 12px / 16px | One line. No internal wrapping. |
| Single-line control | 14–16px / 18–20px | Explicit line box tied to control height. |
| Compact list row | 14px / 18–20px | Use row padding to provide touch and scanning space. |
| Interface copy | 14–16px / 20–24px | Moderate density for task-focused reading. |
| Extended reading | 16px / 24–27px | Open rhythm and constrained line length. |
| Display heading | 32px+ / 1.05–1.2 | Tighter leading; test wrapping and localization. |
WCAG 2.2 requires no loss of content or functionality when users override line, paragraph, letter, and word spacing. It does not require every control to default to 1.5 line height.
Define font size and line height inside every control family. Otherwise a page-level reading rhythm can silently make buttons and selectors taller.
04 · Control geometry
A matching min-height is insufficient. Inputs, closed selectors, buttons, and icon controls must share border-box height, line box, border width, radius family, and alignment behavior.
| Tier | Height | Use |
|---|---|---|
| Compact | 32px | Dense desktop utility with precise pointer input. |
| Standard | 40px | Desktop productivity forms and toolbars. |
| Touch | 44px | Default cross-device and mobile-first control. |
| Large | 48px | Simple forms, touch-heavy tasks, and high-attention workflows. |
:root {
--control-block-size: 44px;
--control-font-size: 16px;
--control-line-height: 20px;
--control-border-width: 1px;
--control-radius: 10px;
--control-padding-block: 11px;
--control-padding-inline: 14px;
--control-icon-size: 20px;
}
Use min-block-size for text-bearing controls so text enlargement can grow or reflow. Exact block size is safer for icon-only controls with stable SVG geometry.
A filled button and outlined input may appear different despite identical boxes. Preserve the shared silhouette; communicate priority through style rather than a larger height.
Same-row controls should use the same interactive radius family. Reserve capsule geometry for pills, tags, and deliberately distinct action groups.
05 · Form consistency
Labels, helper text, errors, and selector menus may change total component height. The input surface, closed selector, date field, combobox shell, and adjacent button should still align to one size family.
Keep the semantic <select>, normalize its closed border box, reserve a fixed trailing icon slot, and let the browser provide the mobile picker.
Do not align an entire field wrapper containing helper text against a bare button. Separate label, control, and message tracks or stack the action when validation becomes complex.
Do not let one button become two lines beside one-line fields. Shorten the label or stack the row before the silhouette breaks.
| Selector | Closed surface | Expansion behavior |
|---|---|---|
| Native select | Match input and button | Platform-managed popup or picker |
| Dropdown / listbox | Match input and button | Options generally use the same size family |
| Combobox | Match text input | Popup may be larger; preserve input geometry |
| Date picker | Match input and button | Calendar popup has independent geometry |
| Segmented control | Equal segments | Switches peer views; not a completion action |
| Multiselect / tag picker | Starts at the shared height | May grow as tags wrap; align top or stack adjacent actions |
| Textarea | Independent height | Top-align or stack; do not height-match |
align-items: end can align a button to the bottom of helper text rather than the input surface. Model the control row explicitly.06 · Pills and metadata
Pills communicate status, classification, filter state, or a compact attribute that changes interpretation. They should not become miniature text containers.
Do not wrap pill text internally. Shorten the label, truncate accessibly, or replace the capsule with a rounded rectangular label block.
Use inline flex or grid with explicit line height, symmetric padding, and centered alignment. Avoid absolute positioning and per-label vertical transforms.
A curved border weakens the perceived bottom edge. Add a small optical relief token when a pill directly precedes a heading.
Internal block padding:
P = (H - L - 2B) / 2
Curve intrusion at text edge:
C = r - sqrt(r² - y²)
Practical follow gap:
Gafter = Grelated + clamp(2px, 0.25r, 4px)
The follow-gap formula is a derived optical heuristic, not a published standard. It should be rounded to the system spacing scale and validated with the actual font.
| Priority | Examples | Placement |
|---|---|---|
| Interpretive | Status, environment, risk | Near the title |
| Operational | Recency, owner, region | Subheader or metadata row |
| Provenance | Source, confidence, version | Body, footer, or disclosure |
| Technical | Identifiers, raw timestamps | Details, inspector, or expanded view |
07 · Affordance placement
Placement becomes predictable when every action is classified by scope, frequency, consequence, and persistence.
08 · Title and action geometry
Vertically centering actions against a multi-line title places them between lines and weakens the title-action relationship. Use block-start alignment and container-driven stacking.
Production service
Elevated latency is affecting international traffic in the eastern region.
Identity, actions, metadata, and summary are independent wrapping regions. The title retains priority and the action row moves intact when space becomes constrained.
.object-header {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: start;
}
@container (inline-size < 31rem) {
.object-header {
grid-template-columns: 1fr;
}
}
09 · Progressive disclosure
The collapsed state must expose enough information to decide whether expansion is worthwhile. Expansion should proceed below its trigger while the title, trigger, and critical actions remain stable.
| Need | Preferred pattern | Stability requirement |
|---|---|---|
| Small optional detail | Native details | Expand below the trigger |
| Several independent sections | Accordion | Preserve heading and focus |
| Peer views used frequently | Tabs or segment | Only controlled region changes |
| Medium contextual detail | Internal region | Stable header; body grows |
| Large focused secondary task | Sheet or drawer | Header/body/footer zones |
| Long, complex, deep-linkable task | Full page | Browser history and state persistence |
This native disclosure demonstrates the preferred small-expansion pattern. The trigger remains at the component boundary and the revealed information enters document flow below it.
state: degraded
region: us-east-1
p95_latency_ms: 842
last_updated: 2026-07-18T12:04:00-04:00Use plain sections, anchor navigation, or separate pages when most users need the content, when comparison across sections is important, or when the hidden material is essential to the primary decision.
10 · Component anatomy
Headers orient and expose compact utilities. Bodies contain the information or work. Footers contain completion and whole-object actions. These regions should not become interchangeable dumping grounds.
Title, one material status, one compact utility or overflow. Keep large CTAs and extensive metadata out.
Summary, decision-relevant values, recommendation, and small disclosures.
View details, continue, review, or low-priority provenance.
Short task title and dismiss control.
Consequences first, focused fields, validation, and optional help.
Small action set. Only the body should scroll under normal conditions.
Task title, scope, progress, and error summary after failed submission.
Persistent labels, controls, hints, and adjacent field-level actions.
Submit, continue, back, save draft, and immediate consequences.
11 · Dynamic data
User-triggered expansion can move following content. Unexpected asynchronous insertion, target movement, and title relocation are the failures to prevent.
Reserve the expected region with a skeleton matching the final structure.
Keep existing content visible and state when it was last verified.
Place retry and recovery beside the failure. Preserve prior valid state.
Replace content inside a stable region and announce material changes.
Use inline expansion only in one-column layouts with short detail. In multi-column grids, open a full-width detail region, drawer, sheet, or page.
Use animation to explain origin and continuity. Avoid independent title/action movement, large layout-property animation, and decorative spring effects in serious workflows.
12 · Enterprise patterns
Responsive design changes dimensions. Adaptive design changes composition. Reactive design responds to current state, authorization, connectivity, and data volume.
Compact title, current scope, visible search when central, and a small number of stable destinations. Do not use a bottom bar merely because the viewport is mobile.
Current condition → exceptions → trend → recommended action → supporting detail. Avoid equal-priority KPI walls.
Visible scope, applied-filter summary, result count, deliberate apply behavior, and preserved query state.
Separate screens on compact layouts; split panes on larger layouts. Preserve filters, selection, scroll, and deep links.
Use when users scan and act on individual records. Use contained tables when cross-record comparison is essential.
State what completed, reference number, timestamp, next steps, expected duration, and support path.
13 · Accessibility and responsibility
Accessibility is architectural. Responsible design additionally covers privacy, secure-by-design behavior, non-manipulative consent, internationalization, and transparent automation.
WCAG 2.2 AA defines a 24×24 CSS-pixel minimum with exceptions. Design important mobile controls toward 44–48px, especially for frequent, consequential, edge-positioned, or sequential actions.
Use logical properties, test RTL, long translations, mixed scripts, local dates, currencies, units, addresses, and name structures.
Keep tenant, organization, environment, acting role, impersonation, and data scope visible when misunderstanding would cause harm.
Explain what can be completed on mobile, what requires another surface, whether progress transfers, and where authoritative status lives.
14 · Performance and resilience
Performance, failure recovery, and progressive enhancement directly affect comprehension and trust. Core content and actions should survive delayed or failed JavaScript.
Idle, loading, saving, saved, pending, partial, stale, offline, failed, retrying, unauthorized, empty, no-results, and success are different states.
HTML owns meaning and navigation. CSS owns layout and hierarchy. Native browser behavior owns standard disclosure and form semantics. JavaScript adds filtering, live validation, optimistic updates, and richer exploration.
15 · Pattern lab
These demos use the same reset, tokens, form geometry, pill rules, container queries, and placement contracts documented by the handbook.
Change the shared control size. Input, native select, text button, and icon button should retain the same computed border-box height.
Helper text belongs below this field only.
Resize the component container. Actions remain block-start aligned, then move together beneath the identity region.
Customer account
The action cluster stays intact while title, metadata, and summary wrap independently.
Identity and status remain visible. Secondary evidence expands below the trigger. Completion remains in the footer.
Elevated errors are affecting checkout authorization.
The downstream identity service has exceeded the error threshold. Recent deploy history and correlated traces are available.
16 · Governance and review
A design system is a governed product. It needs semantic tokens, code, content guidance, accessibility status, change logs, deprecation policy, and usage evidence.
component: AccountCard
scope:
identity: account
actions: account
header:
required: [title]
optional: [primary_status, overflow]
max_visible_actions: 1
metadata:
primary: [status, environment, recency]
secondary: [owner, region, source]
footer:
optional: [view_details, continue, provenance]
expansion:
short_detail: inline
large_detail: sheet_or_page
responsive:
long_title: actions_move_as_group
narrow_width: footer_actions_stack
stability:
trigger_remains_visible: true
async_space_reserved: true
preserve_scroll_context: true
| Category | Weight | Review question |
|---|---|---|
| Task completion | 20% | Can users complete the primary outcome quickly and correctly? |
| Discoverability | 15% | Are destinations, actions, state, and next steps apparent? |
| Accessibility | 15% | Can users operate every workflow across input and assistive modes? |
| Performance and resilience | 15% | Does the application remain useful under latency and partial failure? |
| Content clarity | 10% | Is information understandable without internal organizational knowledge? |
| Trust and responsibility | 10% | Are data use, consequences, permissions, and automation transparent? |
| Responsive adaptation | 10% | Does each context receive an appropriate composition? |
| Visual craftsmanship | 5% | Are hierarchy, typography, spacing, states, and motion coherent? |
17 · Sources and provenance
This handbook is a synthesis of official standards and public design-system guidance. “Fortune 500-grade” describes enterprise production rigor; it is not a survey of every Fortune 500 company.