responsive-rules
a default set of responsive rules. adjust to your product's traffic mix.
breakpoints
if traffic is mobile-first, structure breakpoints up from the smallest:
xs: 320px (small mobile)
sm: 480px (mobile)
md: 768px (tablet, landscape mobile)
lg: 1024px (small desktop, large tablet landscape)
xl: 1280px (desktop)
2xl: 1536px (large desktop)
if traffic is desktop-heavy, start at lg and adjust downward.
per breakpoint, decide
- container width: max-width and side padding
- column count: 4 / 8 / 12 grid columns is the standard ladder
- type scale: how much does the ramp shift between sizes
- spacing scale: same question for spacing tokens
- navigation: when does the nav collapse to a hamburger or drawer
- content priority: what hides, reorders, or compresses
fluid sizing
for type and spacing, prefer fluid clamps over breakpoint jumps where it reads well:
font-size: clamp(1rem, 0.5rem + 2vw, 1.5rem);
- use fluid for body type, paragraph spacing, container padding
- use breakpoint jumps for headlines, hero sections, where you want intentional weight at scale
images
- responsive sizes via srcset
- art direction via picture when crops should change at breakpoints
- aspect-ratio css to prevent layout shift
touch targets
- 24x24px minimum at AA
- 44x44px on mobile is the practical floor
test list
at minimum, design and test at:
- 360px (smallest common mobile)
- 768px (tablet portrait)
- 1024px (standard desktop / tablet landscape)
- 1440px (common large desktop)
- text scaled 200% (accessibility test)
what to avoid
- designing only at one breakpoint and praying
- hiding critical content on mobile because it doesn't fit
- bottom-aligned ctas that fall under the mobile browser chrome
- assumed orientation (some users land in landscape on mobile)