skills/oimiragieo/agent-studio/mobile-first-design-rules

mobile-first-design-rules

SKILL.md

Mobile First Design Rules Skill

  • Always design and implement for mobile screens first, then scale up to larger screens.
  • Use Tailwind's responsive prefixes (sm:, md:, lg:, xl:) to adjust layouts for different screen sizes.
  • Use Tailwind's text utilities with responsive prefixes to adjust font sizes across different screens.
  • Consider using a fluid typography system for seamless scaling.

Iron Laws

  1. ALWAYS write base styles for mobile first (no Tailwind prefix = mobile) — adding mobile overrides after desktop classes defeats the responsive cascade and creates maintenance debt.
  2. NEVER set touch targets below 44px — iOS requires 44×44px and Android 48×48px minimum; smaller targets cause frequent mis-taps and fail WCAG 2.5.5.
  3. ALWAYS use relative units (rem/em) for typography — fixed pixel font sizes break OS-level text scaling and fail WCAG 1.4.4 (Resize Text).
  4. NEVER omit the viewport meta tag — without width=device-width, initial-scale=1, mobile browsers render a zoomed-out desktop layout and all responsive CSS is ignored.
  5. ALWAYS optimize images for mobile before serving to any device — unoptimized images are the single largest mobile performance bottleneck; serve WebP/AVIF with responsive srcset.

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach
Desktop-first CSS with mobile overrides Mobile overrides fight specificity; cascade order breaks; maintenance burden grows Write base styles for mobile, then use sm: md: lg: prefixes to scale up
Touch targets smaller than 44px iOS/Android guidelines violated; WCAG 2.5.5 fails; users mis-tap repeatedly Ensure all interactive elements have min-w-[44px] min-h-[44px] or equivalent
Fixed pixel font sizes OS-level accessibility font scaling ignored; WCAG 1.4.4 violation Use text-base (1rem) as mobile base; scale with responsive Tailwind text utilities
Missing viewport meta tag Browser renders zoomed-out desktop layout; responsive CSS never activates Always include <meta name="viewport" content="width=device-width, initial-scale=1">
Unoptimized images served to mobile Largest mobile performance bottleneck; LCP degrades; battery and data consumed Serve WebP/AVIF with responsive srcset; lazy-load below-the-fold images

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Weekly Installs
51
GitHub Stars
16
First Seen
Feb 8, 2026
Installed on
gemini-cli51
github-copilot50
codex50
opencode50
kimi-cli49
amp49