skills/responsive_design/SKILL.md
Build responsive, mobile-first layouts using fluid containers, flexible units, media queries, and touch-friendly design that works across all screen sizes. Use this skill when creating or modifying UI layouts, responsive grids, breakpoint styles, mobile navigation, or any interface that needs to adapt to different screen sizes. Apply when working with responsive CSS, media queries, viewport settings, flexbox/grid layouts, mobile-first styling, breakpoint definitions (mobile, tablet, desktop), touch target sizing, relative units (rem, em, %), image optimization for different screens, or testing layouts across multiple devices. Use for any task involving multi-device support, responsive design patterns, or adaptive layouts.
npx skillsauth add vuralserhat86/antigravity-agentic-skills responsive_designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Rule: Mobile-first development with consistent breakpoints, fluid layouts, relative units, and touch-friendly targets.
This Skill provides Claude Code with specific guidance on how to adhere to coding standards as they relate to how it should handle frontend responsive.
Always start with mobile layout, then enhance for larger screens.
Bad (desktop-first):
.container {
width: 1200px;
display: grid;
grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
.container {
width: 100%;
grid-template-columns: 1fr;
}
}
Good (mobile-first):
.container {
width: 100%;
display: grid;
grid-template-columns: 1fr;
}
@media (min-width: 768px) {
.container {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.container {
max-width: 1200px;
grid-template-columns: repeat(4, 1fr);
}
}
Why mobile-first:
Identify and use project breakpoints consistently:
Common breakpoint systems:
Tailwind:
sm: 640px (small tablets)
md: 768px (tablets)
lg: 1024px (laptops)
xl: 1280px (desktops)
2xl: 1536px (large desktops)
Bootstrap:
sm: 576px
md: 768px
lg: 992px
xl: 1200px
xxl: 1400px
Check existing codebase for breakpoint definitions before creating new ones.
Usage (Tailwind):
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
Usage (CSS):
@media (min-width: 768px) { }
@media (min-width: 1024px) { }
Never use arbitrary breakpoints like 850px or 1150px unless explicitly required.
Use flexible containers that adapt to screen size:
Bad (fixed widths):
.container { width: 1200px; }
.sidebar { width: 300px; }
.content { width: 900px; }
Good (fluid):
.container {
width: 100%;
max-width: 1200px;
padding: 0 1rem;
}
.layout {
display: grid;
grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
.layout {
grid-template-columns: 300px 1fr;
}
}
Patterns for fluid layouts:
flex: 1, flex-grow, flex-shrink1fr, minmax(), auto-fit, auto-fillwidth: 100%, max-width: 1200px@container (min-width: 400px)Use rem/em for scalability and accessibility:
Bad:
font-size: 16px;
padding: 20px;
margin: 10px;
border-radius: 8px;
Good:
font-size: 1rem; /* 16px base */
padding: 1.25rem; /* 20px */
margin: 0.625rem; /* 10px */
border-radius: 0.5rem; /* 8px */
When to use each unit:
rem: Font sizes, spacing, layout dimensions (scales with root font size)em: Component-relative sizing (scales with parent font size)%: Widths, heights relative to parentpx: Borders (1px), shadows, very small valuesvw/vh: Full viewport dimensions, hero sectionsch: Text-based widths (e.g., max-width: 65ch for readable line length)Framework utilities handle this automatically:
<div className="text-base p-5 m-2.5 rounded-lg">
Minimum touch target size: 44x44px (iOS) / 48x48px (Android)
Bad:
.icon-button {
width: 24px;
height: 24px;
}
Good:
.icon-button {
width: 24px;
height: 24px;
padding: 12px; /* Total: 48x48px */
/* Or use min-width/min-height */
min-width: 44px;
min-height: 44px;
}
Touch target checklist:
Maintain readable font sizes without zoom:
Bad:
body { font-size: 12px; }
.small-text { font-size: 10px; }
Good:
body { font-size: 1rem; } /* 16px minimum */
.small-text { font-size: 0.875rem; } /* 14px minimum */
Typography guidelines:
max-width: 65ch)Responsive typography:
h1 {
font-size: 2rem;
}
@media (min-width: 768px) {
h1 {
font-size: 2.5rem;
}
}
@media (min-width: 1024px) {
h1 {
font-size: 3rem;
}
}
Or with clamp (fluid):
h1 {
font-size: clamp(2rem, 5vw, 3rem);
}
Show most important content first, hide or collapse secondary content:
Bad:
<div>
<Sidebar /> {/* Full sidebar on mobile */}
<MainContent />
</div>
Good:
<div className="flex flex-col lg:flex-row">
<MainContent className="order-1" />
<Sidebar className="order-2 hidden lg:block" />
</div>
Strategies:
order property to reorder contentServe appropriate images for device size:
Bad:
<img src="hero-4000x3000.jpg" alt="Hero">
Good:
<img
src="hero-800x600.jpg"
srcset="
hero-400x300.jpg 400w,
hero-800x600.jpg 800w,
hero-1600x1200.jpg 1600w
"
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 800px"
alt="Hero"
>
Or with modern formats:
<picture>
<source srcset="hero.avif" type="image/avif">
<source srcset="hero.webp" type="image/webp">
<img src="hero.jpg" alt="Hero">
</picture>
Framework-specific:
// Next.js
<Image
src="/hero.jpg"
width={800}
height={600}
sizes="(max-width: 768px) 100vw, 50vw"
alt="Hero"
/>
Verify layouts at key breakpoints before completing work:
Test checklist:
Testing methods:
Common issues to check:
Navigation:
// Mobile: Hamburger menu
// Desktop: Horizontal nav
<nav className="lg:flex lg:items-center">
<button className="lg:hidden">Menu</button>
<ul className="hidden lg:flex lg:gap-4">
<li>Home</li>
<li>About</li>
</ul>
</nav>
Grid layouts:
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
@media (min-width: 640px) {
.grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
.grid { grid-template-columns: repeat(4, 1fr); }
}
Sidebar layouts:
.layout {
display: flex;
flex-direction: column;
}
@media (min-width: 1024px) {
.layout {
flex-direction: row;
}
.sidebar { width: 300px; }
.content { flex: 1; }
}
Before completing responsive work:
| Situation | Action |
| ------------------- | ------------------------------------------ |
| Starting new layout | Begin with mobile (320-375px) |
| Need breakpoint | Use project standard (check existing code) |
| Setting width | Use width: 100% + max-width |
| Setting font size | Use rem (16px = 1rem) |
| Setting spacing | Use rem or framework utilities |
| Button too small | Ensure min 44x44px with padding |
| Text too small | Minimum 16px (1rem) for body |
| Testing layout | Check 375px, 768px, 1024px, 1440px |
Responsive Design v1.1 - Enhanced
Kaynak: Google Web Fundamentals & MDN Responsive Design
@media) değil, bileşenin bulunduğu alanın genişliğine (@container) göre stil yaz.subgrid kullan.clamp(1rem, 5vw, 2rem) ile akışkan yazı tipleri kullan.@media (hover: hover)) stil değiştir (Dokunmatik cihaz optimizasyonu).<picture>, srcset) sun (Art Direction & Performance).prefers-color-scheme ile sistem temasını destekle.| Aşama | Doğrulama | |-------|-----------| | 1 | Yatay kaydırma çubuğu (Horizontal Scroll) oluşuyor mu? (Taşan içerik var mı?). | | 2 | Tıklanabilir alanlar (Touch Targets) en az 44x44px mi? | | 3 | CLS (Cumulative Layout Shift) 0.1'in altında mı? (Yüklenirken zıplama var mı?). |
tools
Production-tested setup for Zustand state management in React. Includes patterns for persistence, devtools, and TypeScript patterns. Prevents hydration mismatches and render loops.
development
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
development
--- name: websocket_engineer router_kit: FullStackKit description: WebSocket specialist for real-time communication systems. Invoke for Socket.IO, WebSocket servers, bidirectional messaging, presence systems. Keywords: WebSocket, Socket.IO, real-time, pub/sub, Redis. triggers: - WebSocket - Socket.IO - real-time communication - bidirectional messaging - pub/sub - server push - live updates - chat systems - presence tracking role: specialist scope: implementation output-format:
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.