MCPInstall

thumb-first-design

The design-judgment layer of the thumb-first mobile suite — decides WHAT the right mobile pattern is and WHY, platform-agnostic across web and native. Reasons through named designer lenses (Hoober, Hurff, Wroblewski, Clark, Rausch, Budiu, Allen, de With, Nelson) with context-aware weighting, and surfaces decision forks where there's no single right answer. Two modes: plan a feature's mobile design before code, or audit an existing one. Use for navigation-pattern choices (tab bar, drawer, bottom sheet), thumb-reach and action placement, mobile forms, gestures vs visible controls, and mobile design critique — or when the user mentions mobile design, mobile UX, thumb zones, one-handed use, bottom sheets, or mobile navigation. Usually run via the /thumb-first umbrella (which also runs platform checks); invoke directly for design judgment only. For web/PWA technical defects use thumb-first-platform.

Installs
42
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/kylezantos/thumb-first --skill thumb-first-design
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads thumb-first-design automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Thumb-First · Design

Mobile design judgment — what the right mobile pattern is and why, not how to code it. The decisions hold whether the implementation is CSS, SwiftUI, or React Native. This is the design-judgment layer of the thumb-first suite.

Quick Start

Plan a feature's mobile design: /thumb-first-design plan or "design the mobile UX for this" or "how should this work on mobile" Audit an existing mobile design: /thumb-first-design audit or "review this mobile screen" or "is this good mobile design"

This skill decides patterns and ergonomics; it does not write the implementation — for responsive CSS use responsive-craft; for mobile-web/PWA technical defects (safe areas, viewport, service workers) use its sibling thumb-first-platform; for React Native/Expo use the native-mobile skills. For a single combined pass that runs this judgment audit and the platform audit and merges them into one report, run /thumb-first.


Core Principles

These are the durable principles — synthesized from the people who defined the field. They survive device generations and platform churn.

  1. Design for the most constrained grip (Hoober) — Grips switch every few seconds with the task. The often-quoted "49% use one hand" is not license to bury controls in easy-reach zones. Accommodate the hardest grip the user might be in, so the interface works no matter how they hold the device. In practice: keep the interaction surface — controls, nav, primary actions — in the lower band; let content fill the top, but don't put interaction there.

  2. Thumb zones are a cost map, not a layout grid (Hurff) — Natural / Stretch / "Ow" tells you the cost of a location, not where things must go. High-cost zones are the right home for rare or destructive actions. Reach cost rises non-linearly with screen size — re-map it per device class.

  3. Mobile forces focus (Wroblewski) — The small screen is a feature: it forces the question "what actually earns this screen?" Decide what to cut and what is primary before deciding layout. Prioritization is the design work.

  4. The content is the control (Clark) — Prefer direct manipulation of content over chrome wrapped around it. But every gesture without a visible affordance is a feature only experts will discover — gesture power and discoverability trade off, and that tension never fully resolves.

  5. Motion is communication, not decoration (Modern Craft) — Transitions carry state, hierarchy, and causality. Design motion with the layout, not as a final polish pass. Where something comes from and goes to is information.

  6. Navigation chrome is currently unsettled — iOS 26 (Liquid Glass, floating tab bar) and Material 3 Expressive (nav drawer deprecated) are mid-transition. Treat platform navigation as in-flux; flag it, don't present a moving target as settled canon.

  7. Surface decision forks — don't default silently — When a mobile design choice has multiple valid answers (nav pattern, sheet vs. modal, gesture vs. visible control), present 2-3 options with tradeoffs and let the user choose. See references/design-forks.md.


The Designer Lenses

This skill reasons through eight named lenses rather than a flattened checklist. Each is a real practitioner with sharp, attributable positions. Weighting is context-aware — the lenses that matter most depend on what's being designed.

LensVoice(s)Leads when the work is about…
Ergonomic RealistSteven Hooberreach, action placement, grip assumptions
Thumb-Zone MapperScott Hurfflayout cost, large-screen tradeoffs
Focus ForcerLuke Wroblewskicontent prioritization, forms
Direct ManipulationJosh Clarktouch model, gesture vs. control, discoverability
Navigation TaxonomistFrank Rauschnav architecture, modals, drawers, sheets
Empirical SkepticRaluca Budiu / NN/gscanning, overlays, myth-checking assumptions
Modern CraftAllen / de With / Nelsonmotion & feel, native-class craft, complex-app density
Platform CanonApple HIG / Material 3current conventions, system-reserved gestures

Full positions, disagreements between lenses, and the weighting table are in references/designer-lenses.md. Load it at the start of both modes.


Mode Selection

Two modes. Detect from $ARGUMENTS or ask.

Detection

  • $ARGUMENTS contains "audit", "review", "critique", "evaluate", "feedback" → Audit
  • $ARGUMENTS contains "plan", "design", "build", "new", "how should" → Plan
  • User points at an existing screen/component/app and asks for assessment → Audit
  • User is starting a new mobile feature or unsure how it should work → Plan
  • Ambiguous → Ask.

If AskUserQuestion is available:

  • Plan — Design the mobile UX for a feature before any code is written
  • Audit — Review an existing mobile design against best practice

Otherwise: "Do you want to (1) plan the mobile design for a new feature, or (2) audit an existing mobile design?"

If the user picks Audit but hasn't provided anything to review, ask what they're reviewing — a screenshot, a live URL, code, or a description — before routing. The audit workflow can work from any of these; it just needs one.


Routing

ModeRead workflowLoad immediately
Planworkflows/plan.mdreferences/designer-lenses.md
Auditworkflows/audit.mdreferences/designer-lenses.md

Load other references on demand:

  • references/reach-and-ergonomics.md — placing actions, thumb reach, one-handed use, large screens
  • references/navigation.md — choosing nav patterns; tab bar, drawer, bottom sheet, modals
  • references/forms-and-input.md — any screen with form fields or data entry
  • references/touch-gesture-motion.md — gestures, touch targets, transitions, haptics, feel
  • references/content-and-attention.md — content prioritization, scanning, glanceability, overlays
  • references/design-forks.md — when a choice has multiple valid answers
  • references/output-format.md — presenting Audit findings (HTML report by default; adapt references/report-template.html)

Gotchas — Where Claude Fails at Mobile Design

Mobile design failures are judgment failures, not code failures. Check every recommendation against this list.

  1. Defaulting to a hamburger menu because it looks "clean" — Hidden navigation has poor discoverability. A tab bar exposes destinations and consistently outperforms it. The hamburger is a last resort for genuinely deep navigation, not a default.

  2. Primary action at the top of the screen — A desktop habit. The top is the hardest thumb zone on a modern phone. Primary, frequent actions belong in the easy-reach lower band.

  3. Designing for the average grip — There is no average grip. Designing only for comfortable one-handed reach penalizes the ~51% who are cradling or using two hands at any moment. Accommodate the most constrained grip.

  4. Treating a bottom sheet as a navigation destination — Sheets are for transient, scoped tasks with the background still relevant. They are not pages. Never stack sheets to build a flow.

  5. Adding gestures with no visible affordance — A swipe action nobody can see is a feature for experts only. Every gesture needs either a well-known convention behind it or a visible cue, and ideally a non-gesture fallback.

  6. Multi-column forms and placeholder-as-label — Mobile forms are single-column, always. Placeholders that vanish on focus remove the label exactly when the user needs it. Labels stay visible.

  7. Treating motion as a final polish pass — Motion that's bolted on after layout can't communicate where things come from. Decide transitions alongside the layout — they carry state and causality.

  8. Porting desktop information density to mobile — Cramming a desktop screen's content into a phone is not mobile design. Mobile forces a prioritization decision: what is primary, what is deferred, what is cut.

  9. Designing for an unspecified "mobile" target — Asked to design "for mobile," Claude silently defaults to iOS patterns (back-swipe, sheet detents, top-bar actions) that don't translate to Android. When the platform isn't stated, name the assumption and flag what differs across iOS / Android — and note where iOS 26 / Material 3 are mid-transition rather than treating either as settled.

  10. Optimizing for the showcase screen — A design that looks great in a marketing shot may fail in one-handed use, with the keyboard open, mid-interruption, or for a returning user. Design for the real, distracted, glancing context.

For the reasoning behind each and the lens that catches it, see references/designer-lenses.md and the topic references.


Reference Index

FileContentsLoad when
designer-lenses.mdThe 8 lenses — positions, disagreements, context-aware weighting tableStart of both modes
reach-and-ergonomics.mdGrip data, thumb zones, action placement, large-screen reachPlacing actions or assessing reach
navigation.mdRausch's nav taxonomy, tab/drawer/sheet/modal decisions, iOS 26 + Material 3 stateChoosing or reviewing navigation
forms-and-input.mdWroblewski's form principles, input types, field reduction, keyboardAny data-entry screen
touch-gesture-motion.mdTouch targets, gesture discoverability, motion as communication, hapticsGestures, transitions, or feel
content-and-attention.mdPrioritization, scanning patterns, glanceability, overlay proliferationContent layout and hierarchy
design-forks.mdAmbiguous mobile decisions with options and tradeoffsA choice has no single right answer
output-format.mdHow the Audit presents findings — HTML report (default) + terminal fallback; color/diagram/section rulesPresenting audit findings (Step 5)
report-template.htmlThe canonical self-contained HTML audit report (worked example) — adapt, don't reinventWriting the HTML report

Workflow Index

WorkflowPurpose
plan.mdDiscovery → prioritize → choose patterns → mobile design brief
audit.mdAssess against lenses → surface forks → prioritized findings

FAQ

What does the thumb-first-design skill do?

The design-judgment layer of the thumb-first mobile suite — decides WHAT the right mobile pattern is and WHY, platform-agnostic across web and native. Reasons through named designer lenses (Hoober, Hurff, Wroblewski, Clark, Rausch, Budiu, Allen, de With, Nelson) with context-aware weighting, and surfaces decision forks where there's no single right answer. Two modes: plan a feature's mobile design before code, or audit an existing one. Use for navigation-pattern choices (tab bar, drawer, bottom sheet), thumb-reach and action placement, mobile forms, gestures vs visible controls, and mobile design critique — or when the user mentions mobile design, mobile UX, thumb zones, one-handed use, bottom sheets, or mobile navigation. Usually run via the /thumb-first umbrella (which also runs platform checks); invoke directly for design judgment only. For web/PWA technical defects use thumb-first-platform.

How do I install thumb-first-design?

Run npx skills add https://github.com/kylezantos/thumb-first --skill thumb-first-design in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/thumb-first-design/ (personal) or .claude/skills/thumb-first-design/ (project).

Which AI agents can use thumb-first-design?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is thumb-first-design safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains thumb-first-design?

It is published by kylezantos in kylezantos/thumb-first. It has 42 recorded installs.

More from kylezantos/thumb-first

View all →

thumb-first-platform

kylezantos/thumb-first

The technical-verification layer of the thumb-first mobile suite — finds and fixes objective platform defects in mobile web apps and PWAs (iOS Safari, Android Chrome). Covers viewport/100vh bugs, safe-area insets, touch targets and tap delay, service workers, web push, PWA manifest, and Core Web Vitals — with file/line defects and fixes, not opinions. Target-aware: full coverage for web/PWA; for native apps (React Native, Expo, SwiftUI, Flutter) it detects the target and hands off to a native skill if one is installed, otherwise states plainly that it does not do native-platform audits. Use for mobile-web/PWA technical audits, safe-area/notch issues, 100vh overflow, service-worker/offline, install/manifest, or mobile performance. Usually run via the /thumb-first umbrella (which also runs the design pass); invoke directly for technical checks only.

Mobile40 installs

Popular mobile skills

View category →

design-mobile-apps

designed-by-ai/skills

Design mobile app screens with Sleek, edit Sleek projects, and implement their designs in React Native or HTML.

Mobile1.1M installs

ios-design

uizze.sh

Design and review iOS UI/UX for iPhone apps in SwiftUI, UIKit, or React Native. Use for mobile app design, screen redesigns, navigation flows, typography, forms, keyboard and safe-area layout, and accessibility checks. Apply Apple Human Interface Guidelines and consult real product references through the optional Uizze connection.

Mobile416.5K installs

vercel-react-native-skills

vercel-labs/agent-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

OfficialMobile256.7K installs

animate-expo

emilkowalski/skills

Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use animate.

Mobile140.1K installs

xcode-project-setup

firebase/agent-skills

Safely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).

OfficialMobile131.2K installs

firebase-remote-config-basics

firebase/agent-skills

Manages Firebase Remote Config templates, feature flags, loading strategies, and SDKs (Android, iOS). Use when downloading/deploying remoteconfig JSON templates, managing version history/feature flags, setting in-app defaults, fetchAndActivate(), real-time listeners, or SDK setup. Don't use for Firebase Hosting, Auth, Firestore, Data Connect, Crashlytics, or App Hosting.

OfficialMobile121.7K installs