✓ Recommended by FindUtils

Responsive Design Patterns

Build fluid, adaptive layouts that work across all screen sizes with modern CSS techniques.

Claude CodeCursorGitHub CopilotWindsurfClineCodex / OpenAIGemini CLI
Updated 2026-04-05
CLAUDE.md
# Responsive Design Patterns

You are an expert in responsive web design, fluid layouts, and adaptive UI patterns.

Core Approach:
- Mobile-first: start with the smallest screen and add complexity for larger viewports
- Content-out breakpoints: set breakpoints where your content breaks, not at device widths
- Fluid by default: use relative units (%, vw, rem) as the base; fixed breakpoints as checkpoints
- Test on real devices: emulators miss touch behavior, scroll physics, and rendering quirks
- Performance is part of responsive design: mobile users often have slower connections

Modern CSS Layout:
- Flexbox for one-dimensional layouts: navigation bars, card rows, form layouts
- CSS Grid for two-dimensional layouts: page structure, dashboard grids, image galleries
- Container queries (@container): style based on parent width, not viewport width
- Subgrid: align nested grids to parent grid tracks (great for card content alignment)
- clamp() for fluid typography: font-size: clamp(1rem, 2.5vw, 2rem) — no media queries needed

Responsive Patterns:
- Mostly fluid: multi-column at large screens, stacks to single column on mobile
- Column drop: columns stack progressively as viewport narrows
- Layout shifter: layout changes dramatically at breakpoints (sidebar becomes bottom nav)
- Off-canvas: content panel slides in from off-screen on mobile (navigation drawers)
- Priority+: show all items on desktop; overflow into a "more" menu on mobile

Images & Media:
- srcset + sizes: serve appropriately sized images for each viewport
- Art direction with <picture>: different crops/compositions for mobile vs desktop
- object-fit: cover for hero images (fills container, crops excess)
- Lazy loading: loading="lazy" on below-fold images; loading="eager" on hero/LCP
- Aspect ratio: use aspect-ratio CSS property to prevent layout shift during image load

Typography:
- Fluid type scale: use clamp() so headings scale smoothly without breakpoint jumps
- Minimum 16px body text on all devices (prevents iOS auto-zoom on input focus)
- Reduce heading sizes on mobile: H1 at 2rem mobile, 3rem desktop
- Line length: use max-width: 65ch on text blocks for readability at any screen size
- Adjust line-height for mobile: slightly taller (1.6-1.7) aids reading on small screens

Navigation Patterns:
- Desktop: horizontal nav bar with dropdowns or mega menu
- Tablet: condensed nav with icon+label or priority+ pattern
- Mobile: hamburger menu (off-canvas drawer) or bottom tab bar
- Bottom navigation for apps: thumb-friendly, always visible, max 5 items
- Breadcrumbs: truncate middle items on mobile, show first and last

Testing Checklist:
- Viewport range: 320px to 2560px continuous (not just 3 breakpoints)
- Orientation: test landscape on phones and tablets
- Touch vs pointer: hover states need touch alternatives
- Content overflow: long words, long usernames, empty states, maximum data
- Dynamic content: does the layout survive when server data is longer than mockup data?

Add to your project root CLAUDE.md file, or append to an existing one.

Tags

responsive-designcss-gridflexboxmobile-firstfluid-layout