360-panorama-viewer
Build a fully self-contained 360° equirectangular panorama viewer as a single HTML file. The viewer uses Three.js to render…
Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.
$ npx -y skills add happycapy-ai/happycapy-skills --skill mobile-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mobile-designContext preview
The summary Claude sees to decide when to auto-load this skill.
Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.
name: mobile-design description: Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps. allowed-tools: Read, Glob, Grep, Bash
> **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Offline-capable. > **Core Principle:** Mobile is NOT a small desktop. THINK mobile constraints, ASK platform choice.
---
**Execute these for validation (don't read, just run):**
| Script | Purpose | Usage | |--------|---------|-------| | `scripts/mobile_audit.py` | Mobile UX & Touch Audit | `python scripts/mobile_audit.py <project_path>` |
---
**⛔ DO NOT start development until you read the relevant files:**
| File | Content | Status | |------|---------|--------| | **[mobile-design-thinking.md](mobile-design-thinking.md)** | **⚠️ ANTI-MEMORIZATION: Forces thinking, prevents AI defaults** | **⬜ CRITICAL FIRST** | | **[touch-psychology.md](touch-psychology.md)** | **Fitts' Law, gestures, haptics, thumb zone** | **⬜ CRITICAL** | | **[mobile-performance.md](mobile-performance.md)** | **RN/Flutter performance, 60fps, memory** | **⬜ CRITICAL** | | **[mobile-backend.md](mobile-backend.md)** | **Push notifications, offline sync, mobile API** | **⬜ CRITICAL** | | **[mobile-testing.md](mobile-testing.md)** | **Testing pyramid, E2E, platform-specific** | **⬜ CRITICAL** | | **[mobile-debugging.md](mobile-debugging.md)** | **Native vs JS debugging, Flipper, Logcat** | **⬜ CRITICAL** | | [mobile-navigation.md](mobile-navigation.md) | Tab/Stack/Drawer, deep linking | ⬜ Read | | [mobile-typography.md](mobile-typography.md) | System fonts, Dynamic Type, a11y | ⬜ Read | | [mobile-color-system.md](mobile-color-system.md) | OLED, dark mode, battery-aware | ⬜ Read | | [decision-trees.md](decision-trees.md) | Framework/state/storage selection | ⬜ Read |
> 🧠 **mobile-design-thinking.md is PRIORITY!** This file ensures AI thinks instead of using memorized patterns.
| Platform | File | Content | When to Read | |----------|------|---------|--------------| | **iOS** | [platform-ios.md](platform-ios.md) | Human Interface Guidelines, SF Pro, SwiftUI patterns | Building for iPhone/iPad | | **Android** | [platform-android.md](platform-android.md) | Material Design 3, Roboto, Compose patterns | Building for Android | | **Cross-Platform** | Both above | Platform divergence points | React Native / Flutter |
> 🔴 **If building for iOS → Read platform-ios.md FIRST!** > 🔴 **If building for Android → Read platform-android.md FIRST!** > 🔴 **If cross-platform → Read BOTH and apply conditional platform logic!**
---
> **STOP! If the user's request is open-ended, DO NOT default to your favorites.**
| Aspect | Ask | Why | |--------|-----|-----| | **Platform** | "iOS, Android, or both?" | Affects EVERY design decision | | **Framework** | "React Native, Flutter, or native?" | Determines patterns and tools | | **Navigation** | "Tab bar, drawer, or stack-based?" | Core UX decision | | **State** | "What state management? (Zustand/Redux/Riverpod/BLoC?)" | Architecture foundation | | **Offline** | "Does this need to work offline?" | Affects data strategy | | **Target devices** | "Phone only, or tablet support?" | Layout complexity |
> 🚫 **These are AI default tendencies that MUST be avoided!**
| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **ScrollView for long lists** | Renders ALL items, memory explodes | Use `FlatList` / `FlashList` / `ListView.builder` | | **Inline renderItem function** | New function every render, all items re-render | `useCallback` + `React.memo` | | **Missing keyExtractor** | Index-based keys cause bugs on reorder | Unique, stable ID from data | | **Skip getItemLayout** | Async layout = janky scroll | Provide when items have fixed height | | **setState() everywhere** | Unnecessary widget rebuilds | Targeted state, `const` constructors | | **Native driver: false** | Animations blocked by JS thread | `useNativeDriver: true` always | | **console.log in production** | Blocks JS thread severely | Remove before release build | | **Skip React.memo/const** | Every item re-renders on any change | Memoize list items ALWAYS |
| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **Touch target < 44px** | Impossible to tap accurately, frustrating | Minimum 44pt (iOS) / 48dp (Android) | | **Spacing < 8px between targets** | Accidental taps on neighbors | Minimum 8-12px gap | | **Gesture-only interactions** | Motor impaired users excluded | Always provide button alternative | | **No loading state** | User thinks app crashed | ALWAYS show loading feedback | | **No error state** | User stuck, no recovery path | Show error with retry option | | **No offline handling** | Crash/block when network lost | Graceful degradation, cached data | | **Ignore platform conventions** | Users confused, muscle memory broken | iOS feels iOS, Android feels Android |
| ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO | |-------------|----------------|--------------| | **Token in AsyncStorage** | Easily accessible, stolen on rooted device | `SecureStore` / `Keychain` / `EncryptedSharedPreferences` | | **Hardcode API keys** | Reverse engineered from APK/IPA | Environment variables, secure storage | | **Skip SSL pinning** | MITM attacks possible | Pin certificates in production | | **Log sensitive data** | Logs can be extracted | Never log tokens, passwords, PII |
| ❌ NEVER DO
A curated collection of high-quality Claude Code skills to enhance your development workflow
Build a fully self-contained 360° equirectangular panorama viewer as a single HTML file. The viewer uses Three.js to render…
Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers…
Reusable fixed-style PPTX generation skill for the Acid Labels visual brand — bold acid-green (#A9FF7A) operating-guide aesthetic…
Generate AI images with FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: FLUX Dev LoRA, FLUX.2…
Generate AI videos with Google Veo, Seedance, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 1.5…
Reusable fixed-style PPTX generation skill for the Apricot Ritual Index visual brand — warm apricot background (#FDDEB6),…