From ibr
Use when building responsive web UI for phones, or when /ibr:build preamble returns platform=web mobile. Covers viewport/safe-area, thumb zones, touch, Material 3, iOS Safari, WCAG 2.2.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ibr:mobile-web-uiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Opinionated rules for mobile-first web. Full research context + citations: `docs/research/2026-04-13-mobile-ui-best-practices.md`.
Opinionated rules for mobile-first web. Full research context + citations: docs/research/2026-04-13-mobile-ui-best-practices.md.
<meta name="viewport" content="width=device-width, initial-scale=1"> — prevents iOS 300ms click delay100dvh for true viewport (not 100vh — includes dynamic chrome)env(safe-area-inset-bottom) for home-indicator clearanceprefers-reduced-motion honored for every non-essential animation (WCAG SC 2.3.3)| Standard | Size | Use as |
|---|---|---|
| WCAG 2.5.8 (AA minimum) | 24×24 CSS px | Legal floor — not a design target |
| WCAG 2.5.5 (AAA enhanced) | 44×44 CSS px | Working minimum |
| Material Design 3 | 48×48 dp | Preferred for Android-targeted web |
Default: 44×44 px for tap targets. Full-width primary CTAs in the bottom 25–40% of viewport (natural thumb zone — NN/g: 96% tap accuracy vs 61% in stretch zone).
Never hardcode hex. Use role tokens so dark mode + theming work.
on-surface, surface, outline, errorprimary, secondary, tertiarysurface-container-lowest → -highest — tonal elevation replaces shadow-only depth5 roles × 3 sizes — Display (57/45/36), Headline (32/28/24), Title (22/16/14), Body (16/14/12), Label (14/12/11). Weights limited to Regular or Medium. Body Large (16px) for primary reading.
inputmode / type="email|tel|number|url" for correct mobile keyboardautocomplete tokens for autofill@media (hover: hover) for desktop-only affordancesUse the motion-physics springs for interactive transitions (M3 Expressive, May 2025). Durations/easings still documented for non-interactive. Always respect prefers-reduced-motion.
transform / opacity for animation (compositor-only):hover used to reveal primary content → broken on touchnpx claudepluginhub tyroneross/interface-built-right --plugin ibrGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.