Responsive Design
One design, every screen. How layout adapts from phone to desktop.
What is responsive design and why is it necessary?
Responsive design means creating layouts that adapt to any screen size — phone, tablet, laptop, ultrawide monitor. The same HTML, the same content, but a different arrangement depending on the available space.
This is necessary because your audience uses every device. A design that works only on desktop excludes half your visitors. A design that works only on mobile wastes desktop space. Responsive design serves everyone from a single codebase.
On this site, every style is responsive. Resize your browser window and watch: columns collapse, spacing adjusts, typography reflows. The style character remains — only the arrangement changes.
What is the difference between mobile-first and desktop-first?
Mobile-first means designing for the smallest screen first, then adding complexity for larger screens. You start simple and expand.
Desktop-first means designing for the largest screen first, then removing features for smaller screens. You start complex and simplify.
Mobile-first is generally preferred today because: (1) it forces you to prioritize content, (2) mobile users are often the majority, (3) adding is easier than removing.
Web Brutalism is accidentally mobile-first — full-width, single column, system fonts, no decoration. It works on any screen without any media queries because it never assumed a large screen in the first place.
Bauhaus and Swiss International are desktop-first — their 2-column grids and 1100px width are designed for large screens, then collapse to single-column on mobile.
How do breakpoints work and when should you use them?
A breakpoint is a screen width at which the layout changes — typically switching from multi-column to single-column, or adjusting spacing. Common breakpoints: 768px (tablet), 1024px (desktop), 1440px (large desktop).
But modern responsive design uses breakpoints less than before. Tools like CSS Grid `auto-fit`, `clamp()`, and fluid typography reduce the need for hard breakpoints.
Nordic Minimal demonstrates this: its spacing uses `clamp(3rem, 8vw, 6rem)` — the spacing is fluid between 3rem and 6rem, scaling proportionally to viewport width. No breakpoint needed.
Breakpoints are still necessary for structural changes (2 columns → 1 column), but avoid using them for fine-tuning. If you need 10 breakpoints, your layout is probably too rigid.
How does content width affect the mobile experience?
On desktop, `max-width` constrains content to a readable measure. On mobile, content naturally fills the viewport — no constraint needed.
Compare on mobile:
• Art Deco (800px max-width) — on mobile, the compact desktop width becomes full-width anyway. The mobile experience is dominated by tall sections and ceremonial spacing.
• Bauhaus (1100px max-width) — on mobile, the 2-column grid collapses to 1 column. Content that was side-by-side becomes stacked.
• Web Brutalism (100% width) — identical on every screen. No adaptation needed because it never constrained itself.
The lesson: choose your desktop `max-width` knowing that mobile will ignore it. The real question is how your grid and spacing adapt.
How should typography respond to screen size?
Font sizes should be comfortable on every device. Body text at 16px (1rem) works everywhere. But headings often need to shrink on smaller screens — a 5rem heading that fits on desktop overflows on mobile.
The solution: fluid typography using `clamp()`. For example: `font-size: clamp(2rem, 5vw, 4rem)` — minimum 2rem, maximum 4rem, scales with viewport in between.
On this site, the hero title uses `clamp(1.8rem, 4vw, 3rem)` on learn pages and `clamp(3rem, 8vw, 5rem)` on style pages. The text is always readable, always proportional, never overflowing.
Line length also matters: on narrow screens, a 720px column becomes full-width — potentially creating very short lines. This is acceptable on phones (users expect shorter lines) but requires adequate font size to remain readable.
What happens to grids and multi-column layouts on mobile?
CSS Grid with `auto-fit` and `minmax()` handles this naturally: `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))`. On wide screens, multiple columns. On narrow screens, a single column. No breakpoint needed.
This is how StyleShift's principle cards work. On desktop, Bauhaus shows them in a 2-column grid. On mobile, they stack vertically. The `minmax(280px, 1fr)` ensures cards never become too narrow to read.
Art Deco uses `grid-orphan-column: 1 / -1` — the last card in an odd-numbered grid stretches full width. On mobile this is irrelevant (everything is one column), but on desktop it maintains symmetry.
The key principle: design the grid for content, not for a specific device. If your minimum column width is 280px, the grid will naturally adapt to any screen wider or narrower than that.
How do spacing and padding adapt responsively?
Fixed pixel spacing breaks on small screens. A 5rem section gap that breathes beautifully on desktop crushes mobile users with endless scrolling.
Solutions:
• clamp() — `padding: clamp(1rem, 5vw, 3rem)` scales smoothly
• Viewport units — `padding: 5vw` is always proportional
• Reduced values on mobile — simpler but requires breakpoints
Nordic Minimal uses clamp for section spacing: `clamp(3rem, 8vw, 6rem)`. On a 375px phone, this resolves to 3rem. On a 1440px desktop, 6rem. Smooth transition, no breakpoint.
Victorian uses a fixed 1.5rem page padding — tight on all screens. This reflects the style's horror vacui: no space is wasted, regardless of device.
The goal: spacing should feel proportional to the screen, not identical across devices. A 5rem gap that creates ceremony on desktop creates frustration on mobile.