Awesome-omni-skill responsive-design-patterns
Mobile-first responsive design patterns with breakpoints, fluid layouts, and adaptive components
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/design/responsive-design-patterns-organvm-iv-taxis" ~/.claude/skills/diegosouzapw-awesome-omni-skill-responsive-design-patterns && rm -rf "$T"
manifest:
skills/design/responsive-design-patterns-organvm-iv-taxis/SKILL.mdsource content
Responsive Design Patterns
Mobile-first patterns for creating adaptive, responsive user interfaces.
Breakpoint System
export const breakpoints = { sm: '640px', // Small devices md: '768px', // Medium devices lg: '1024px', // Large devices xl: '1280px', // Extra large devices '2xl': '1536px' // 2X Extra large }; // Tailwind config module.exports = { theme: { screens: breakpoints } };
Mobile-First Approach
// Start with mobile, enhance for larger screens <div className=" flex flex-col /* Mobile: stack vertically */ md:flex-row /* Tablet+: side by side */ gap-4 p-4 md:p-6 lg:p-8 /* Progressive spacing */ "> <div className=" w-full /* Mobile: full width */ md:w-1/3 /* Tablet+: 1/3 width */ ">Sidebar</div> <div className=" w-full md:w-2/3 ">Main Content</div> </div>
Fluid Typography
/* Clamp for fluid scaling */ h1 { font-size: clamp(1.5rem, 5vw, 3rem); } /* Container queries */ @container (min-width: 400px) { .card-title { font-size: 1.25rem; } }
Responsive Images
<picture> <source media="(min-width: 1024px)" srcSet="/images/hero-large.webp" /> <source media="(min-width: 640px)" srcSet="/images/hero-medium.webp" /> <img src="/images/hero-small.webp" alt="Hero image" loading="lazy" /> </picture>
Touch-Friendly Patterns
// Minimum touch target: 44x44px <button className="min-h-[44px] min-w-[44px] p-3"> <Icon /> </button> // Swipe gestures function useSwipe(onSwipeLeft?: () => void, onSwipeRight?: () => void) { const [touchStart, setTouchStart] = useState(0); const [touchEnd, setTouchEnd] = useState(0); const minSwipeDistance = 50; const onTouchStart = (e: TouchEvent) => { setTouchEnd(0); setTouchStart(e.targetTouches[0].clientX); }; const onTouchMove = (e: TouchEvent) => { setTouchEnd(e.targetTouches[0].clientX); }; const onTouchEnd = () => { if (!touchStart || !touchEnd) return; const distance = touchStart - touchEnd; const isLeftSwipe = distance > minSwipeDistance; const isRightSwipe = distance < -minSwipeDistance; if (isLeftSwipe && onSwipeLeft) onSwipeLeft(); if (isRightSwipe && onSwipeRight) onSwipeRight(); }; return { onTouchStart, onTouchMove, onTouchEnd }; }
Integration Points
Complements:
- frontend-design-systems: For component design
- accessibility-patterns: For mobile accessibility
- webapp-testing: For responsive testing