Mobile-First Design Handbook Canonical enterprise reference · v4.0

Search the handbook

Search section titles and guidance. Results link directly to the canonical section.

Type to search all sections.

Jump to a handbook section

Canonical system Version 4.0 Reviewed July 18, 2026

Mobile-first design, engineered as a system.

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.

A compact enterprise component showing stable identity, aligned controls, explicit status, and progressive disclosure.
01Prioritize outcomes.Compact layouts expose the true product hierarchy.
02Use space semantically.Spacing proves relationship, hierarchy, rhythm, and safety.
03Normalize controls.Inputs, selectors, and buttons share a complete geometry contract.
04Place by scope.Actions live at the lowest stable scope containing their effect.
05Keep expansion stable.Identity, triggers, targets, and reading position survive data growth.

01 · Core principles

Turn constraints into an explicit design system.

The handbook separates normative requirements, recommended production defaults, and context-dependent patterns. This prevents ergonomic heuristics from being presented as compliance mandates.

Required

Standards and functional baselines

Accessibility success criteria, semantic behavior, security boundaries, and lossless task completion are release requirements.

Recommended

Default production practices

44–48px touch regions, shared control size families, explicit state models, and component-owned internal spacing are strong defaults with documented exceptions.

Context-dependent

Pattern selection

Bottom navigation, drawers, inline expansion, dense tables, and sticky actions depend on task, audience, device, information volume, and consequence.

The smallest credible context has multiple dimensions

ConstraintDesign implication
ViewportPrioritize one decision surface and adapt composition rather than shrinking desktop structure.
AttentionFront-load current state, exceptions, and next action. Delay optional detail.
Input precisionUse generous targets, spacing, and alternatives to drag or gesture-only behavior.
ConnectivityExpose offline, stale, retrying, and pending-sync states.
AuthorizationKeep tenant, environment, role, and acting scope visible when errors would be consequential.
InterruptionPreserve 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

Make space a first-class information primitive.

Space should encode containment, relationship, hierarchy, interaction safety, and reading rhythm. Raw pixel values are implementation details; semantic spatial roles are the system.

Ownership rule

Components own internal space

Padding, internal icon gaps, line height, and focus clearance belong to the component contract.

Ownership rule

Parents own sibling relationships

Stacks, clusters, grids, rows, and sections define gaps between components. Reusable components should not carry arbitrary outer margins.

Hierarchy rule

Pages own structural cadence

Subsection, section, chapter, and landmark spacing should be distinct enough to communicate hierarchy without borders around every region.

Primitive and semantic scale

: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 */
}
Relationship invariant: internal space ≤ related-content space < group space < section space. Major hierarchy boundaries should move at least two token steps.

Property ownership

PropertyPrimary jobOwner
PaddingSpace inside a boundaryComponent
GapRelationship between siblingsParent layout
MarginEditorial flow or exceptional separationPage or flow primitive
Line heightVertical rhythm inside textTypography role
Minimum sizeInteraction safety and consistent silhouetteComponent geometry
Optical adjustmentCorrect perceived misalignmentSpecific component token

Responsive compression

Keep micro and relationship spacing stable. Compress larger section and chapter values on compact screens. Do not globally scale every value.

Density modes

Step selected semantic roles along the scale. Preserve touch safety, focus clearance, destructive-action separation, and reading legibility.

Whitespace

Use empty space to protect meaningful content from competing content. Excessive space can also break relationships and increase travel distance.

03 · Typography

Line height belongs to a text role, not the entire page.

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 roleStarting profileBehavior
Icon-only element1 or 0The target box provides geometry.
Pill or badge12px / 16pxOne line. No internal wrapping.
Single-line control14–16px / 18–20pxExplicit line box tied to control height.
Compact list row14px / 18–20pxUse row padding to provide touch and scanning space.
Interface copy14–16px / 20–24pxModerate density for task-focused reading.
Extended reading16px / 24–27pxOpen rhythm and constrained line length.
Display heading32px+ / 1.05–1.2Tighter leading; test wrapping and localization.
Required

Tolerate user text-spacing overrides

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.

Recommended

Prevent accidental geometry

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

Equal visual rows require a shared control contract.

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.

Control-height equation: H = L + 2P + 2B. For a 44px control with a 20px line box and 1px borders, block padding is 11px per side.
TierHeightUse
Compact32pxDense desktop utility with precise pointer input.
Standard40pxDesktop productivity forms and toolbars.
Touch44pxDefault cross-device and mobile-first control.
Large48pxSimple forms, touch-heavy tasks, and high-attention workflows.

Canonical geometry

: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;
}

Exact versus minimum height

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.

Optical differences

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.

Radius family

Same-row controls should use the same interactive radius family. Reserve capsule geometry for pills, tags, and deliberately distinct action groups.

05 · Form consistency

Match the closed control surface, not every surrounding field.

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.

Native-first

Normalize native selectors

Keep the semantic <select>, normalize its closed border box, reserve a fixed trailing icon slot, and let the browser provide the mobile picker.

Row contract

Align control tracks

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.

Resilience

Reflow before wrapping controls

Do not let one button become two lines beside one-line fields. Shorten the label or stack the row before the silhouette breaks.

Selector families

SelectorClosed surfaceExpansion behavior
Native selectMatch input and buttonPlatform-managed popup or picker
Dropdown / listboxMatch input and buttonOptions generally use the same size family
ComboboxMatch text inputPopup may be larger; preserve input geometry
Date pickerMatch input and buttonCalendar popup has independent geometry
Segmented controlEqual segmentsSwitches peer views; not a completion action
Multiselect / tag pickerStarts at the shared heightMay grow as tags wrap; align top or stack adjacent actions
TextareaIndependent heightTop-align or stack; do not height-match
Common failure: 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

Capsules should remain compact, single-line, and optically separated.

Pills communicate status, classification, filter state, or a compact attribute that changes interpretation. They should not become miniature text containers.

Production

One line only

Do not wrap pill text internally. Shorten the label, truncate accessibly, or replace the capsule with a rounded rectangular label block.

Recommended

Intrinsic centering

Use inline flex or grid with explicit line height, symmetric padding, and centered alignment. Avoid absolute positioning and per-label vertical transforms.

Degraded

Curve-aware follow spacing

A curved border weakens the perceived bottom edge. Add a small optical relief token when a pill directly precedes a heading.

Derived geometry

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.

Metadata priority

PriorityExamplesPlacement
InterpretiveStatus, environment, riskNear the title
OperationalRecency, owner, regionSubheader or metadata row
ProvenanceSource, confidence, versionBody, footer, or disclosure
TechnicalIdentifiers, raw timestampsDetails, inspector, or expanded view

07 · Affordance placement

Place an action at the lowest stable scope that contains its effect.

Placement becomes predictable when every action is classified by scope, frequency, consequence, and persistence.

Application
Persistent shell: search, account, notifications, product switcher.
Page
Page header or action row: create, export, refresh the complete dataset.
Section
Section header or subheader: filter, sort, change view, expand a section.
Object
Card or record header/footer: edit, rerun, inspect, overflow.
Field
Immediately adjacent: reveal password, clear, scan, choose date.
Workflow
After the task: continue, save, submit, approve, confirm.
Exception
Beside the problem: retry, resolve conflict, restore failed upload.

Keep at the top

  • Back, close, or dismiss
  • Current title and essential scope
  • One critical page action
  • Overflow for secondary page actions
  • Status that changes the whole view

Keep out of the global header

  • Long descriptions
  • Repeated object metadata
  • Large filter groups
  • Temporary success messages
  • Card-specific completion actions

Use the footer for completion

  • Submit or continue
  • Approve or reject
  • Save as draft
  • View details after reading
  • Provenance that does not alter interpretation
Placement model: Placement = f(scope, frequency, consequence, persistence). Scope chooses the container. Frequency chooses visible versus overflow. Consequence chooses prominence and separation. Persistence chooses header, body, or footer.

08 · Title and action geometry

Top-align actions with long titles, then move them to a new row.

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

Content Delivery API for International Applications and Regional Experiences

DegradedUpdated 4 minutes agoOwner: Core Platform

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.

Stable header model

.object-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

@container (inline-size < 31rem) {
  .object-header {
    grid-template-columns: 1fr;
  }
}
Do not: truncate the primary identity to preserve a decorative action cluster, place long pill groups inside the title row, or split related actions individually across lines.

09 · Progressive disclosure

Reveal secondary detail without destabilizing identity or context.

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.

Always visible

  • Object identity
  • Current status or exception
  • Short decision summary
  • Descriptive disclosure label
  • Actions valid in both states

Reveal progressively

  • Technical metadata
  • History and raw evidence
  • Optional settings
  • Secondary relationships
  • Advanced actions

Never hide by default

  • Required fields
  • Critical warnings
  • Material consent or price terms
  • The current failure state
  • The only path to completion

Choose the expansion surface by task size

NeedPreferred patternStability requirement
Small optional detailNative detailsExpand below the trigger
Several independent sectionsAccordionPreserve heading and focus
Peer views used frequentlyTabs or segmentOnly controlled region changes
Medium contextual detailInternal regionStable header; body grows
Large focused secondary taskSheet or drawerHeader/body/footer zones
Long, complex, deep-linkable taskFull pageBrowser history and state persistence
Technical details — request latency and regional evidence

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:00
When not to use an accordion

Use 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

Separate identity, interpretation, work, and completion.

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.

Card

Header

Title, one material status, one compact utility or overflow. Keep large CTAs and extensive metadata out.

Body

Summary, decision-relevant values, recommendation, and small disclosures.

Footer

View details, continue, review, or low-priority provenance.

Dialog

Header

Short task title and dismiss control.

Body

Consequences first, focused fields, validation, and optional help.

Footer

Small action set. Only the body should scroll under normal conditions.

Form

Top

Task title, scope, progress, and error summary after failed submission.

Fields

Persistent labels, controls, hints, and adjacent field-level actions.

Footer

Submit, continue, back, save draft, and immediate consequences.

The demo becomes full-screen on constrained viewports and returns sticky regions to flow when height is insufficient.

Production change

Approve regional failover

Consequence: traffic will move from the eastern region to the western region. Existing sessions may reconnect.

This note becomes part of the audit record.

Review technical evidence

Regional latency is above the approved failover threshold. The secondary region passed readiness checks.

11 · Dynamic data

Let data grow without moving the user’s target.

User-triggered expansion can move following content. Unexpected asynchronous insertion, target movement, and title relocation are the failures to prevent.

Loading

Reserve the expected region with a skeleton matching the final structure.

Stale

Keep existing content visible and state when it was last verified.

Failed

Place retry and recovery beside the failure. Preserve prior valid state.

Updated

Replace content inside a stable region and announce material changes.

Stable expansion

  • Expand below the trigger
  • Keep title and action positions stable
  • Reserve expected async space
  • Preserve scroll and focus
  • Offer “new results available” instead of inserting above

Card grids

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.

Motion

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

Transform composition according to the task.

Responsive design changes dimensions. Adaptive design changes composition. Reactive design responds to current state, authorization, connectivity, and data volume.

Application shell

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.

Exception-first dashboard

Current condition → exceptions → trend → recommended action → supporting detail. Avoid equal-priority KPI walls.

Search and filter

Visible scope, applied-filter summary, result count, deliberate apply behavior, and preserved query state.

List-detail

Separate screens on compact layouts; split panes on larger layouts. Preserve filters, selection, scroll, and deep links.

Structured list

Use when users scan and act on individual records. Use contained tables when cross-record comparison is essential.

Confirmation

State what completed, reference number, timestamp, next steps, expected duration, and support path.

Data-density rule: do not convert every table into unrelated cards. Cards improve individual-record scanning but reduce cross-record comparison.

13 · Accessibility and responsibility

Preserve access, agency, context, and auditability.

Accessibility is architectural. Responsible design additionally covers privacy, secure-by-design behavior, non-manipulative consent, internationalization, and transparent automation.

Required

Accessibility baseline

  • Semantic HTML and landmarks
  • Complete keyboard workflows
  • Visible, unobscured focus
  • Zoom and reflow without loss
  • Non-color status cues
  • Accessible errors and announcements
Touch default

Target size

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.

Responsible

User agency

  • Explain permissions and data use
  • Separate required and optional data
  • Avoid preselected consent
  • Make destructive consequences explicit
  • Provide undo or recovery where feasible
AI presence

Automation transparency

  • Identify AI-generated content
  • Show sources and provenance
  • Separate fact from inference
  • Indicate material uncertainty
  • Keep human approval for consequential actions

Internationalization

Use logical properties, test RTL, long translations, mixed scripts, local dates, currencies, units, addresses, and name structures.

Role and environment

Keep tenant, organization, environment, acting role, impersonation, and data scope visible when misunderstanding would cause harm.

Cross-channel continuity

Explain what can be completed on mobile, what requires another surface, whether progress transfers, and where authoritative status lives.

14 · Performance and resilience

Make the primary task usable before the page is visually complete.

Performance, failure recovery, and progressive enhancement directly affect comprehension and trust. Core content and actions should survive delayed or failed JavaScript.

Delivery sequence

  1. Render shell, title, and essential content.
  2. Make navigation and primary action usable.
  3. Load critical data and current state.
  4. Hydrate enhanced interactions.
  5. Defer charts, analytics, and optional integrations.

State completeness

Idle, loading, saving, saved, pending, partial, stale, offline, failed, retrying, unauthorized, empty, no-results, and success are different states.

Progressive enhancement

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.

Explicit budgets

Initial JavaScriptCritical CSSFontsImagesThird-party codeAPI latencyLong tasksLayout shift

15 · Pattern lab

Inspect the contracts in a responsive implementation.

These demos use the same reset, tokens, form geometry, pill rules, container queries, and placement contracts documented by the handbook.

Control alignment lab

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.

Long-title alignment lab

Resize the component container. Actions remain block-start aligned, then move together beneath the identity region.

620px

Customer account

International Content Platform Renewal and Regional Delivery Agreement

Renewal dueUpdated today

The action cluster stays intact while title, metadata, and summary wrap independently.

Placement and progressive-disclosure lab

Identity and status remain visible. Secondary evidence expands below the trigger. Completion remains in the footer.

Payment API incident

InvestigatingProduction12 minutes

Elevated errors are affecting checkout authorization.

Recommendation: review the failing dependency before initiating regional failover.
Show dependency evidence

The downstream identity service has exceeded the error threshold. Recent deploy history and correlated traces are available.

16 · Governance and review

Document the spatial and behavioral contract of every component.

A design system is a governed product. It needs semantic tokens, code, content guidance, accessibility status, change logs, deprecation policy, and usage evidence.

Example component contract

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

Weighted review rubric

CategoryWeightReview question
Task completion20%Can users complete the primary outcome quickly and correctly?
Discoverability15%Are destinations, actions, state, and next steps apparent?
Accessibility15%Can users operate every workflow across input and assistive modes?
Performance and resilience15%Does the application remain useful under latency and partial failure?
Content clarity10%Is information understandable without internal organizational knowledge?
Trust and responsibility10%Are data use, consequences, permissions, and automation transparent?
Responsive adaptation10%Does each context receive an appropriate composition?
Visual craftsmanship5%Are hierarchy, typography, spacing, states, and motion coherent?

Production-readiness checklist

0 of 10 checks complete.

17 · Sources and provenance

Keep evidence attached to the system.

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.

Validated in this build

  • HTML structural checks
  • Duplicate-ID and fragment-target checks
  • JavaScript syntax check
  • CSS parser check
  • Desktop and compact Chromium render
  • Overflow scan at tested viewports

Remaining release gates

  • Manual VoiceOver, NVDA, and JAWS testing
  • Safari and Firefox behavior
  • 200% and 400% zoom workflows
  • Real RTL localization
  • Windows forced-colors testing
  • Real-user performance monitoring

Primary references