Claude Code Plugins

Community-maintained marketplace

Feedback

mobile-design-patterns

@chriscarterux/chris-claude-stack
1
0

This skill should be used when designing or implementing mobile applications (iOS, Android, React Native, mobile web) - covers native patterns, gesture controls, navigation paradigms, responsive design, mobile-first components, performance constraints, and platform-specific guidelines for optimal mobile UX.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name mobile-design-patterns
description This skill should be used when designing or implementing mobile applications (iOS, Android, React Native, mobile web) - covers native patterns, gesture controls, navigation paradigms, responsive design, mobile-first components, performance constraints, and platform-specific guidelines for optimal mobile UX.

Mobile Design Patterns

Overview

Design mobile experiences that feel native, performant, and intuitive. This skill teaches platform-specific patterns, gesture interactions, and mobile-first design principles.

Core principle: Mobile isn't just "desktop but smaller" - it requires different patterns, priorities, and interactions.

When to Use

Use when:

  • Designing mobile apps (iOS, Android, React Native)
  • Building mobile-responsive web apps
  • Optimizing existing apps for mobile
  • Making platform-specific design decisions
  • Implementing gesture controls
  • Planning mobile navigation

Mobile-First Principles

1. Thumb-Friendly Design

  • Primary actions in bottom 1/3 of screen
  • Touch targets ≥44px (iOS) / 48px (Android)
  • Critical buttons within thumb reach

2. Content Priority

  • One primary action per screen
  • Progressive disclosure (hide complexity)
  • Scrolling > multiple taps

3. Performance Constraints

  • Slower CPUs than desktop
  • Limited bandwidth
  • Battery impact
  • Memory constraints

Navigation Patterns

Bottom Tab Navigation (Most Common)

Use for:

  • 3-5 top-level sections
  • Frequent navigation between sections
  • Clear categories

Pattern:

┌─────────────────┐
│   Page Content  │
│                 │
│                 │
├─────────────────┤
│ □ □ □ □ □     │ ← Tab Bar (Bottom)
└─────────────────┘

Best practices:

  • 3-5 tabs (not more)
  • Icons + labels for clarity
  • Highlight active tab
  • Don't hide tab bar on scroll (unless content-focused app)

Stack Navigation (Secondary)

Use for:

  • Hierarchical content
  • Detail views
  • Settings/preferences

Pattern:

List → Detail → Sub-detail
[Back] ← [Back] ←

Implementation:

// React Navigation example
<Stack.Navigator>
  <Stack.Screen name="List" component={ListScreen} />
  <Stack.Screen name="Detail" component={DetailScreen} />
</Stack.Navigator>

Drawer Navigation (Less Common)

Use for:

  • 6+ sections
  • Infrequently accessed pages
  • User account access

Pattern:

┌─────────────────┐
│ ☰ Title         │ ← Hamburger menu
│                 │
│   Content       │
└─────────────────┘

Tap ☰ → Drawer slides in from left

Best practices:

  • Don't hide critical navigation in drawer
  • Combine with tab bar for hybrid approach
  • Profile/settings often in drawer

Gesture Patterns

Standard Gestures (Follow Platform Conventions)

Gesture iOS Android Use For
Swipe right Back Back (sometimes) Navigate back
Swipe left Forward/Delete N/A Delete item, next
Pull down Refresh Refresh Refresh content
Long press Context menu Context menu Show options
Pinch Zoom Zoom Images, maps
Swipe up from bottom Home (system) Home (system) Avoid conflicts

Custom Gestures (Use Sparingly)

Only add custom gestures when:

  • Strongly convention-established (Tinder swipe)
  • Central to app experience
  • Discoverable through onboarding
  • No conflict with platform gestures

Discovery methods:

  • Tutorial on first launch
  • Animated hints
  • Ghost hands/arrows showing gesture
  • Progressive disclosure

Component Patterns

Lists & Cards

Mobile list pattern:

┌─────────────────────────┐
│ □ Avatar   Title        │ ← 56-72px height
│            Subtitle     │
│            Meta info  > │
├─────────────────────────┤
│ □ Avatar   Title        │
│            Subtitle     │
│            Meta info  > │
└─────────────────────────┘

Card pattern:

┌─────────────────┐
│  [Image]        │ ← 16:9 or 4:3
├─────────────────┤
│ Title           │ ← Bold, 16-18px
│ Description     │ ← 14px, 2 lines max
│                 │
│ [Action Button] │
└─────────────────┘

Forms (Mobile-Optimized)

Pattern:

  • One input per row (full width)
  • Large touch targets (48px+ height)
  • Clear labels above inputs
  • Inline validation (as user types)
  • Numeric keyboard for numbers
  • Email keyboard for emails
  • Next/Done buttons in keyboard

Example:

<Input
  type="email"
  inputMode="email" // Mobile keyboard
  autoComplete="email"
  label="Email"
  error={errors.email}
/>

Modals & Sheets

Bottom Sheet (Preferred on mobile):

┌─────────────────┐
│                 │
│   Main Content  │
│                 │
├─────────────────┤ ← Drag handle
│▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔│
│ Sheet Content   │ ← Slides up from bottom
│                 │
│ [Action]        │
└─────────────────┘

Use bottom sheets for:

  • Quick actions
  • Short forms
  • Confirmations
  • Filter/sort options

Full screen modals for:

  • Long forms
  • Multi-step flows
  • Content creation

Responsive Breakpoints

Mobile-first breakpoints:

/* Mobile first (default) */
.component {
  /* Mobile styles */
}

/* Small tablets */
@media (min-width: 640px) {
  .component {
    /* 2-column layout */
  }
}

/* Tablets */
@media (min-width: 768px) {
  .component {
    /* 3-column layout */
  }
}

/* Desktop */
@media (min-width: 1024px) {
  .component {
    /* Full desktop layout */
  }
}

Test on actual devices:

  • iPhone SE (smallest common: 375px)
  • iPhone Pro Max (largest phone: 428px)
  • iPad (768px+)
  • Android variations

Performance Patterns

Lazy Loading Images

<img
  src={thumbnailUrl}
  data-src={fullImageUrl}
  loading="lazy"
  alt="Description"
/>

Virtualized Lists

import { VirtualScroll } from 'react-native-virtualized-view'

<VirtualScroll
  data={items}
  renderItem={({item}) => <ItemCard item={item} />}
  estimatedItemSize={80}
/>

Optimize Bundle Size

Mobile budget:

  • Initial bundle: <200KB
  • Total (with code-splitting): <500KB
  • Images: WebP format, lazy load

Techniques:

  • Code splitting
  • Tree shaking
  • Remove unused dependencies
  • Dynamic imports

Platform-Specific Guidelines

iOS (Human Interface Guidelines)

Key patterns:

  • SF Symbols for icons
  • Standard navigation bars (44px)
  • System fonts (San Francisco)
  • Bottom tab bar for primary nav
  • Swipe back gesture
  • Pull-to-refresh
  • Action sheets for options

Android (Material Design)

Key patterns:

  • Material icons
  • Floating Action Button (FAB)
  • Navigation drawer (optional)
  • Bottom navigation (3-5 items)
  • Snackbars for feedback
  • Material 3 components

React Native (Cross-Platform)

Shared patterns:

  • Bottom tabs for main navigation
  • Stack navigation for hierarchy
  • Platform-specific components when needed
  • Shared business logic

Quick Reference

Touch targets: 44px (iOS) / 48px (Android) minimum Text sizes: 16px+ body, 14px+ secondary Spacing: 8px grid system (8, 16, 24, 32, 48) Animations: <300ms (feels instant), avoid jank Load time: <2s initial load Tap response: <100ms visual feedback

Mobile users are impatient. Make interfaces fast, thumb-friendly, and obvious.