Desktop Layout

Layout patterns for desktop environments — side navigation, global header anatomy, the 12-column grid system, and density modes that scale from touch to mouse-first interfaces.

Side Navigation

Desktop top-level navigation moves to a persistent left-hand sidebar, freeing the content area and enabling hierarchical structures that a hamburger menu buries. Use a collapsed rail for space-constrained layouts and an expanded drawer when there is enough horizontal room.

Rail vs Drawer — same information architecture, different density

COLLAPSED RAIL52pxEXPANDED DRAWERMAIN168–240px
DimensionRailDrawer
Primary inputMouse / trackpadMouse / trackpad
Width52–64px (icons only)200–280px (icons + labels)
Hover behaviourTooltip on hoverFull label always visible
Keyboard navTab to icon, tooltip announces labelTab to row, label in DOM
Depth support1 level — flyout for sub-items2–3 levels with indentation
When to useSpace-constrained desktop (1024–1280px)Wide desktop (1280px+), complex IA

Responsive strategy

  • Auto-collapse the drawer to a rail at 1024px. Expose a hamburger toggle only below 640px (full overlay drawer).
  • Never hide the sidebar entirely on desktop — persistent navigation is a core desktop advantage.
  • Collapsed rail icons must be 44×44px touch targets minimum, even on desktop (mouse pointer can be imprecise).
  • Use a CSS transition of 200ms ease-out for sidebar expand/collapse. Avoid layout shift on content area — slide the sidebar, reflow the content.
  • Store the user's preference in localStorage. Respect it across sessions.
  • On the Global Header, ⌘K should open a command palette modal, not a standard input. Map Ctrl+K on Windows.

Global Header

A persistent top bar anchors global actions that don't belong to any single section — search, notifications, and account. Keep it under 56px tall. Don't put navigation here on desktop; that belongs in the sidebar.

⌘K/🔔?⌘K SearchBreadcrumb / ContextNotificationsProfile
⌘K Command Search

Opens a full command palette (not just search). Supports slash commands, recent items, and keyboard-navigable results. Bind Ctrl+K on Windows.

Contextual Breadcrumb

Shows the user's location within the information architecture. Update on every navigation. Truncate middle segments, never the last (current page).

Notification Bell

Show an unread count badge capped at 99+. Clicking opens a popover, not a new page. Mark read on open.

User / Profile

Avatar + display name on wide screens. Avatar only on narrower desktops. Clicking opens an account popover with sign-out at the bottom.

12-Column Grid

A 12-column grid gives maximum compositional flexibility: it divides evenly into halves (6), thirds (4), quarters (3), and sixths (2). All desktop layouts are built from these column spans. Gutter and margin values scale with the viewport.

12345678910111212 col — full width8 col4 col4 col4 col4 col
BreakpointColumnsGutterMarginNotes
< 640px416px16pxMobile — single column cards, stacked layout
640–1023px816px24pxTablet — split views collapse to tabs
1024–1439px1220px32pxDesktop — sidebar + content; primary breakpoint
1440px+1224px48pxWide — constrain max-width at 1440px or 1536px

Density Modes

Desktop users tolerate higher information density than touch users. Provide two CSS variable sets — default (mobile-inherited) and compact (desktop-optimised). A density toggle lets power users choose.

Comfortable48px row height60pxDefault40px row height40pxCompact32px row height28px
globals.css — density token overrides
:root {
  /* Touch / default */
  --spacing-row:    40px;
  --spacing-cell-y: 12px;
  --spacing-cell-x: 16px;
}

[data-density="compact"] {
  --spacing-row:    32px;
  --spacing-cell-y: 6px;
  --spacing-cell-x: 12px;
}

[data-density="comfortable"] {
  --spacing-row:    48px;
  --spacing-cell-y: 18px;
  --spacing-cell-x: 20px;
}
Comfortable

Onboarding flows, marketing pages, or when the primary audience is non-technical.

Default

Standard app surfaces. Matches mobile muscle memory while gaining efficiency on desktop.

Compact

Data-heavy dashboards, tables, and analytics views where users process many rows at once.

Common Dashboard Layouts

These column-span compositions cover the majority of desktop dashboard needs. Build them from the 12-column grid using CSS Grid or a layout library.

3 + 9
Sidebar + Content

Master-detail views, settings pages, document editors.

8 + 4
Content + Aside

Article/post with metadata panel. Aside collapses to bottom on tablet.

3+6+3
Three-panel

Complex tools: list → detail → inspector (e.g., email clients, IDEs).

4+4+4
Dashboard grid

Metric cards and chart widgets in equal columns.

12/6+6
Hero + two cards

Overview page: full-width chart above two metric panels.

12
Full bleed

Maps, canvases, video, or tables that need every pixel.