Layout & Navigation
Five sidebar navigation variants, header navigation, mobile responsive patterns, and the theme system. These building blocks define the application shell.
Theme System
The design system supports light and dark themes via CSS custom properties and next-themes.
Theme Toggle Variants
Button and switch styles at all available sizes.
Implementation
How the theme system is wired up.
ThemeProvider from next-themes
Uses the class strategy with attribute="class".
CSS class switching
.light-mode and .dark-mode classes on the root element toggle the theme.
CSS custom properties
Variables defined in theme.css automatically remap all semantic tokens between light and dark palettes.
System preference detection
enableSystem allows automatic theme selection based on the user's OS preference.
ThemeToggle Props
| Prop | Type | Default | Description |
|---|---|---|---|
size | "sm" | "md" | "lg" | "md" | Toggle button size |
showLabel | boolean | false | Show 'Light'/'Dark' label |
Page Layout Pattern
The standard page layout used across all pages in this design manual.
Standard Layout Structure
Sidebar
292px
Sticky Header (h-16)
Main Content (max-w-7xl)
px-4 py-8 md:px-8 md:py-12
Key Characteristics
Sidebar + content layout using flex min-h-dvh lg:flex-row
Sticky header with sticky top-0 z-40 and backdrop blur
Content area constrained to max-w-7xl with responsive padding
Hidden on mobile — sidebar is replaced by MobileNavigationHeader below lg
Responsive Patterns
Tailwind CSS breakpoints used throughout the design system for responsive layout transitions.
Breakpoints
The standard Tailwind breakpoint scale and how each is used in the layout system.
sm640px
Mobile landscape
md768px
Tablet
lg1024px
Desktop (sidebar appears)
xl1280px
Large desktop
2xl1536px
Ultra-wide
Layout Behavior by Breakpoint
| Breakpoint | Navigation | Content |
|---|---|---|
< lg | MobileNavigationHeader + drawer overlay | Full width, px-4 py-8 |
lg | Sidebar visible, sticky header appears | Flex-1 beside sidebar, max-w-7xl |
xl+ | Same as lg, wider content area | Increased horizontal padding, px-8 py-12 |