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
| Dimension | Rail | Drawer |
|---|---|---|
| Primary input | Mouse / trackpad | Mouse / trackpad |
| Width | 52–64px (icons only) | 200–280px (icons + labels) |
| Hover behaviour | Tooltip on hover | Full label always visible |
| Keyboard nav | Tab to icon, tooltip announces label | Tab to row, label in DOM |
| Depth support | 1 level — flyout for sub-items | 2–3 levels with indentation |
| When to use | Space-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 Command SearchOpens a full command palette (not just search). Supports slash commands, recent items, and keyboard-navigable results. Bind Ctrl+K on Windows.
Contextual BreadcrumbShows the user's location within the information architecture. Update on every navigation. Truncate middle segments, never the last (current page).
Notification BellShow an unread count badge capped at 99+. Clicking opens a popover, not a new page. Mark read on open.
User / ProfileAvatar + 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.
| Breakpoint | Columns | Gutter | Margin | Notes |
|---|---|---|---|---|
| < 640px | 4 | 16px | 16px | Mobile — single column cards, stacked layout |
| 640–1023px | 8 | 16px | 24px | Tablet — split views collapse to tabs |
| 1024–1439px | 12 | 20px | 32px | Desktop — sidebar + content; primary breakpoint |
| 1440px+ | 12 | 24px | 48px | Wide — 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.
: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;
}Onboarding flows, marketing pages, or when the primary audience is non-technical.
Standard app surfaces. Matches mobile muscle memory while gaining efficiency on desktop.
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 + 9Master-detail views, settings pages, document editors.
8 + 4Article/post with metadata panel. Aside collapses to bottom on tablet.
3+6+3Complex tools: list → detail → inspector (e.g., email clients, IDEs).
4+4+4Metric cards and chart widgets in equal columns.
12/6+6Overview page: full-width chart above two metric panels.
12Maps, canvases, video, or tables that need every pixel.