@neyugn/agent-kits 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +514 -0
- package/README.vi.md +410 -0
- package/README.zh.md +410 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +422 -0
- package/kits/coder/ARCHITECTURE.md +289 -0
- package/kits/coder/agents/ai-engineer.md +344 -0
- package/kits/coder/agents/backend-specialist.md +270 -0
- package/kits/coder/agents/cloud-architect.md +363 -0
- package/kits/coder/agents/code-reviewer.md +284 -0
- package/kits/coder/agents/data-engineer.md +401 -0
- package/kits/coder/agents/database-specialist.md +251 -0
- package/kits/coder/agents/debugger.md +209 -0
- package/kits/coder/agents/devops-engineer.md +281 -0
- package/kits/coder/agents/documentation-writer.md +296 -0
- package/kits/coder/agents/frontend-specialist.md +298 -0
- package/kits/coder/agents/i18n-specialist.md +348 -0
- package/kits/coder/agents/integration-specialist.md +314 -0
- package/kits/coder/agents/mobile-developer.md +271 -0
- package/kits/coder/agents/multi-tenant-architect.md +281 -0
- package/kits/coder/agents/orchestrator.md +263 -0
- package/kits/coder/agents/performance-analyst.md +327 -0
- package/kits/coder/agents/project-planner.md +277 -0
- package/kits/coder/agents/queue-specialist.md +282 -0
- package/kits/coder/agents/realtime-specialist.md +267 -0
- package/kits/coder/agents/security-auditor.md +253 -0
- package/kits/coder/agents/test-engineer.md +315 -0
- package/kits/coder/agents/ux-researcher.md +388 -0
- package/kits/coder/rules/.cursorrules +287 -0
- package/kits/coder/rules/CLAUDE.md +287 -0
- package/kits/coder/rules/CODEX.md +287 -0
- package/kits/coder/rules/GEMINI.md +287 -0
- package/kits/coder/scripts/checklist.py +318 -0
- package/kits/coder/scripts/kit_status.py +292 -0
- package/kits/coder/scripts/skills_manager.py +243 -0
- package/kits/coder/scripts/verify_all.py +391 -0
- package/kits/coder/skills/accessibility-patterns/SKILL.md +372 -0
- package/kits/coder/skills/accessibility-patterns/scripts/a11y_checker.py +211 -0
- package/kits/coder/skills/ai-rag-patterns/SKILL.md +444 -0
- package/kits/coder/skills/api-patterns/SKILL.md +316 -0
- package/kits/coder/skills/api-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/api-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/api-patterns/scripts/api_validator.py +253 -0
- package/kits/coder/skills/api-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/auth-patterns/SKILL.md +267 -0
- package/kits/coder/skills/aws-patterns/SKILL.md +576 -0
- package/kits/coder/skills/brainstorming/SKILL.md +370 -0
- package/kits/coder/skills/brainstorming/assets/.gitkeep +1 -0
- package/kits/coder/skills/brainstorming/references/deep-dive.md +21 -0
- package/kits/coder/skills/brainstorming/scripts/validate.py +56 -0
- package/kits/coder/skills/clean-code/SKILL.md +240 -0
- package/kits/coder/skills/clean-code/assets/.gitkeep +1 -0
- package/kits/coder/skills/clean-code/references/deep-dive.md +21 -0
- package/kits/coder/skills/clean-code/scripts/lint_runner.py +186 -0
- package/kits/coder/skills/clean-code/scripts/validate.py +56 -0
- package/kits/coder/skills/database-design/SKILL.md +255 -0
- package/kits/coder/skills/database-design/assets/.gitkeep +1 -0
- package/kits/coder/skills/database-design/references/deep-dive.md +21 -0
- package/kits/coder/skills/database-design/scripts/schema_validator.py +272 -0
- package/kits/coder/skills/database-design/scripts/validate.py +56 -0
- package/kits/coder/skills/docker-patterns/SKILL.md +240 -0
- package/kits/coder/skills/documentation-templates/SKILL.md +441 -0
- package/kits/coder/skills/e2e-testing/SKILL.md +457 -0
- package/kits/coder/skills/flutter-patterns/SKILL.md +330 -0
- package/kits/coder/skills/frontend-design/SKILL.md +127 -0
- package/kits/coder/skills/github-actions/SKILL.md +349 -0
- package/kits/coder/skills/gitlab-ci-patterns/SKILL.md +466 -0
- package/kits/coder/skills/graphql-patterns/SKILL.md +558 -0
- package/kits/coder/skills/i18n-localization/SKILL.md +345 -0
- package/kits/coder/skills/i18n-localization/scripts/i18n_checker.py +267 -0
- package/kits/coder/skills/kubernetes-patterns/SKILL.md +357 -0
- package/kits/coder/skills/mermaid-diagrams/SKILL.md +351 -0
- package/kits/coder/skills/mobile-design/SKILL.md +305 -0
- package/kits/coder/skills/monitoring-observability/SKILL.md +458 -0
- package/kits/coder/skills/multi-tenancy/SKILL.md +317 -0
- package/kits/coder/skills/multi-tenancy/assets/.gitkeep +1 -0
- package/kits/coder/skills/multi-tenancy/references/deep-dive.md +21 -0
- package/kits/coder/skills/multi-tenancy/scripts/validate.py +56 -0
- package/kits/coder/skills/nodejs-best-practices/SKILL.md +220 -0
- package/kits/coder/skills/performance-profiling/SKILL.md +333 -0
- package/kits/coder/skills/performance-profiling/assets/.gitkeep +1 -0
- package/kits/coder/skills/performance-profiling/references/deep-dive.md +21 -0
- package/kits/coder/skills/performance-profiling/scripts/validate.py +56 -0
- package/kits/coder/skills/plan-writing/SKILL.md +360 -0
- package/kits/coder/skills/plan-writing/assets/.gitkeep +1 -0
- package/kits/coder/skills/plan-writing/references/deep-dive.md +21 -0
- package/kits/coder/skills/plan-writing/scripts/validate.py +56 -0
- package/kits/coder/skills/postgres-patterns/SKILL.md +361 -0
- package/kits/coder/skills/prompt-engineering/SKILL.md +277 -0
- package/kits/coder/skills/queue-patterns/SKILL.md +359 -0
- package/kits/coder/skills/queue-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/queue-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/queue-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/react-native-patterns/SKILL.md +393 -0
- package/kits/coder/skills/react-patterns/SKILL.md +319 -0
- package/kits/coder/skills/realtime-patterns/SKILL.md +506 -0
- package/kits/coder/skills/realtime-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/realtime-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/realtime-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/redis-patterns/SKILL.md +484 -0
- package/kits/coder/skills/security-fundamentals/SKILL.md +363 -0
- package/kits/coder/skills/security-fundamentals/assets/.gitkeep +1 -0
- package/kits/coder/skills/security-fundamentals/references/deep-dive.md +21 -0
- package/kits/coder/skills/security-fundamentals/scripts/security_scan.py +326 -0
- package/kits/coder/skills/security-fundamentals/scripts/validate.py +56 -0
- package/kits/coder/skills/seo-patterns/SKILL.md +262 -0
- package/kits/coder/skills/seo-patterns/scripts/seo_checker.py +211 -0
- package/kits/coder/skills/systematic-debugging/SKILL.md +478 -0
- package/kits/coder/skills/systematic-debugging/assets/.gitkeep +1 -0
- package/kits/coder/skills/systematic-debugging/references/deep-dive.md +21 -0
- package/kits/coder/skills/systematic-debugging/scripts/validate.py +56 -0
- package/kits/coder/skills/tailwind-patterns/SKILL.md +395 -0
- package/kits/coder/skills/terraform-patterns/SKILL.md +470 -0
- package/kits/coder/skills/testing-patterns/SKILL.md +285 -0
- package/kits/coder/skills/testing-patterns/assets/.gitkeep +1 -0
- package/kits/coder/skills/testing-patterns/references/deep-dive.md +21 -0
- package/kits/coder/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/kits/coder/skills/testing-patterns/scripts/validate.py +56 -0
- package/kits/coder/skills/typescript-patterns/SKILL.md +417 -0
- package/kits/coder/skills/ui-ux-pro-max/SKILL.md +364 -0
- package/kits/coder/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/kits/coder/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/kits/coder/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/kits/coder/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/kits/coder/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/kits/coder/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/kits/coder/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/kits/coder/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/kits/coder/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/kits/coder/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/kits/coder/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/kits/coder/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/kits/coder/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/core.py +257 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/design_system.py +488 -0
- package/kits/coder/skills/ui-ux-pro-max/scripts/search.py +76 -0
- package/kits/coder/workflows/.gitkeep +20 -0
- package/kits/coder/workflows/create.md +152 -0
- package/kits/coder/workflows/debug.md +223 -0
- package/kits/coder/workflows/deploy.md +283 -0
- package/kits/coder/workflows/orchestrate.md +243 -0
- package/kits/coder/workflows/plan.md +134 -0
- package/kits/coder/workflows/test.md +237 -0
- package/kits/coder/workflows/ui-ux-pro-max.md +109 -0
- package/package.json +49 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mobile-design
|
|
3
|
+
description: Mobile-first design thinking for iOS and Android apps. Touch interaction, gesture design, platform conventions, responsive layouts, performance patterns. Use when building React Native, Flutter, or native mobile apps.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Mobile Design Patterns
|
|
8
|
+
|
|
9
|
+
> Design for thumbs, not mice. Every millisecond matters.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Principles
|
|
14
|
+
|
|
15
|
+
1. **Touch-first** - Minimum 44x44pt tap targets, gesture-friendly
|
|
16
|
+
2. **Platform-native** - Respect iOS/Android conventions
|
|
17
|
+
3. **Performance-obsessed** - 60fps animations, fast startup
|
|
18
|
+
4. **Offline-capable** - Design for unreliable networks
|
|
19
|
+
5. **Battery-aware** - Minimize background work
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📱 Platform Conventions
|
|
24
|
+
|
|
25
|
+
### iOS vs Android Differences
|
|
26
|
+
|
|
27
|
+
| Element | iOS | Android |
|
|
28
|
+
| ---------------- | --------------------- | -------------------------- |
|
|
29
|
+
| **Back gesture** | Swipe from left edge | System back button/gesture |
|
|
30
|
+
| **Navigation** | Tab bar at bottom | Bottom nav or drawer |
|
|
31
|
+
| **Actions** | Right side of nav bar | FAB or overflow menu |
|
|
32
|
+
| **Typography** | SF Pro | Roboto |
|
|
33
|
+
| **Modals** | Full-screen or sheet | Dialog or full-screen |
|
|
34
|
+
| **Switches** | Rounded, green tint | Material Design style |
|
|
35
|
+
|
|
36
|
+
### Font Sizes (Accessibility-Ready)
|
|
37
|
+
|
|
38
|
+
| Size Category | iOS (pt) | Android (sp) | Use Case |
|
|
39
|
+
| ------------- | -------- | ------------ | ----------------- |
|
|
40
|
+
| Caption | 12 | 12 | Timestamps, hints |
|
|
41
|
+
| Body | 17 | 14-16 | Main content |
|
|
42
|
+
| Title | 22 | 20 | Section headers |
|
|
43
|
+
| Large Title | 34 | 24-34 | Screen titles |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 👆 Touch Interaction
|
|
48
|
+
|
|
49
|
+
### Tap Target Sizes
|
|
50
|
+
|
|
51
|
+
| Requirement | Minimum Size | Recommended |
|
|
52
|
+
| ------------- | -------------- | ----------- |
|
|
53
|
+
| **Apple HIG** | 44 x 44 pt | 48 x 48 pt |
|
|
54
|
+
| **Material** | 48 x 48 dp | 48 x 48 dp |
|
|
55
|
+
| **WCAG 2.2** | 24 x 24 CSS px | 44 x 44 |
|
|
56
|
+
|
|
57
|
+
### Gesture Patterns
|
|
58
|
+
|
|
59
|
+
| Gesture | Common Use | Consideration |
|
|
60
|
+
| -------------- | ------------------------- | ------------------------- |
|
|
61
|
+
| **Tap** | Primary action | Provide visual feedback |
|
|
62
|
+
| **Long press** | Context menu, selection | Show hint after delay |
|
|
63
|
+
| **Swipe** | Delete, actions, navigate | Show affordance initially |
|
|
64
|
+
| **Pull down** | Refresh | Loading indicator |
|
|
65
|
+
| **Pinch** | Zoom | Photos, maps only |
|
|
66
|
+
| **Two-finger** | Advanced actions | Provide alternative |
|
|
67
|
+
|
|
68
|
+
### Thumb Zone Design
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
+-----------------------------------+
|
|
72
|
+
| Hard to reach | <- Top 1/4
|
|
73
|
+
|-----------------------------------|
|
|
74
|
+
| |
|
|
75
|
+
| Okay - may stretch | <- Middle
|
|
76
|
+
| |
|
|
77
|
+
|-----------------------------------|
|
|
78
|
+
| ✅ Natural thumb zone | <- Bottom 1/3
|
|
79
|
+
| Primary actions |
|
|
80
|
+
+-----------------------------------+
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Rule:** Place primary actions in bottom 1/3 of screen.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 📐 Responsive Layout
|
|
88
|
+
|
|
89
|
+
### Safe Areas
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
┌─────────────────────────────────────┐
|
|
93
|
+
│ Status Bar (Dynamic) │ <- Respect safe area
|
|
94
|
+
├─────────────────────────────────────┤
|
|
95
|
+
│ │
|
|
96
|
+
│ Content Area │
|
|
97
|
+
│ (Scrollable, edge-to-edge) │
|
|
98
|
+
│ │
|
|
99
|
+
├─────────────────────────────────────┤
|
|
100
|
+
│ Home Indicator Area │ <- Respect safe area
|
|
101
|
+
└─────────────────────────────────────┘
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Screen Size Breakpoints
|
|
105
|
+
|
|
106
|
+
| Device Type | Width Range | Design Approach |
|
|
107
|
+
| --------------- | ----------- | ---------------------- |
|
|
108
|
+
| **Small phone** | < 375px | Single column, compact |
|
|
109
|
+
| **Phone** | 375-428px | Standard mobile |
|
|
110
|
+
| **Large phone** | 428-768px | Can add side elements |
|
|
111
|
+
| **Tablet** | 768px+ | Multi-column possible |
|
|
112
|
+
|
|
113
|
+
### Adaptive vs Responsive
|
|
114
|
+
|
|
115
|
+
| Approach | When to Use |
|
|
116
|
+
| -------------- | ------------------------------ |
|
|
117
|
+
| **Adaptive** | Different layouts per platform |
|
|
118
|
+
| **Responsive** | Same layout, flexible sizing |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 🎨 Visual Design
|
|
123
|
+
|
|
124
|
+
### Spacing System (8pt Grid)
|
|
125
|
+
|
|
126
|
+
| Token | Value | Use Case |
|
|
127
|
+
| ----- | ----- | ------------------ |
|
|
128
|
+
| `xs` | 4pt | Icon padding |
|
|
129
|
+
| `sm` | 8pt | Tight grouping |
|
|
130
|
+
| `md` | 16pt | Standard spacing |
|
|
131
|
+
| `lg` | 24pt | Section separation |
|
|
132
|
+
| `xl` | 32pt | Major sections |
|
|
133
|
+
|
|
134
|
+
### Dark Mode Support
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// Design with semantic colors
|
|
138
|
+
const colors = {
|
|
139
|
+
light: {
|
|
140
|
+
background: "#FFFFFF",
|
|
141
|
+
surface: "#F5F5F5",
|
|
142
|
+
text: "#000000",
|
|
143
|
+
textSecondary: "#666666",
|
|
144
|
+
},
|
|
145
|
+
dark: {
|
|
146
|
+
background: "#000000",
|
|
147
|
+
surface: "#1C1C1E",
|
|
148
|
+
text: "#FFFFFF",
|
|
149
|
+
textSecondary: "#8E8E93",
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Elevation & Shadows
|
|
155
|
+
|
|
156
|
+
| Level | Use Case | iOS Shadow | Android Elevation |
|
|
157
|
+
| ----- | ----------------- | ---------- | ----------------- |
|
|
158
|
+
| 0 | Flat content | None | 0dp |
|
|
159
|
+
| 1 | Cards | Subtle | 1-2dp |
|
|
160
|
+
| 2 | FAB, Bottom sheet | Medium | 6-8dp |
|
|
161
|
+
| 3 | Modal, Dialog | Strong | 16-24dp |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## ⚡ Performance Patterns
|
|
166
|
+
|
|
167
|
+
### 60fps Animation Rules
|
|
168
|
+
|
|
169
|
+
| ❌ Don't | ✅ Do |
|
|
170
|
+
| ------------------------ | -------------------------- |
|
|
171
|
+
| Animate width/height | Use transform: scale() |
|
|
172
|
+
| Animate left/top | Use transform: translate() |
|
|
173
|
+
| Animate during scroll | Use native driver |
|
|
174
|
+
| Complex animations in JS | Use Reanimated/Worklets |
|
|
175
|
+
|
|
176
|
+
### List Performance
|
|
177
|
+
|
|
178
|
+
| Technique | When to Use |
|
|
179
|
+
| -------------------- | ------------------------ |
|
|
180
|
+
| **FlashList** | Large lists (100+ items) |
|
|
181
|
+
| **Virtualization** | Any scrollable list |
|
|
182
|
+
| **Item memoization** | Complex item components |
|
|
183
|
+
| **Skeleton loading** | Initial data fetch |
|
|
184
|
+
|
|
185
|
+
### Image Optimization
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
// ✅ Optimized image loading
|
|
189
|
+
<FastImage
|
|
190
|
+
source={{
|
|
191
|
+
uri: imageUrl,
|
|
192
|
+
priority: FastImage.priority.normal,
|
|
193
|
+
cache: FastImage.cacheControl.immutable,
|
|
194
|
+
}}
|
|
195
|
+
resizeMode={FastImage.resizeMode.cover}
|
|
196
|
+
/>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 📴 Offline-First Design
|
|
202
|
+
|
|
203
|
+
### States to Handle
|
|
204
|
+
|
|
205
|
+
| State | UI Pattern |
|
|
206
|
+
| ----------- | ------------------------------- |
|
|
207
|
+
| **Loading** | Skeleton or spinner |
|
|
208
|
+
| **Success** | Content display |
|
|
209
|
+
| **Empty** | Empty state with action |
|
|
210
|
+
| **Error** | Error message + retry |
|
|
211
|
+
| **Offline** | Cached data + offline indicator |
|
|
212
|
+
| **Syncing** | Subtle sync indicator |
|
|
213
|
+
|
|
214
|
+
### Optimistic UI
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
User Action → Immediate UI Update → Background Sync
|
|
218
|
+
↓
|
|
219
|
+
If failed → Revert + Error
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 🔔 Notifications & Feedback
|
|
225
|
+
|
|
226
|
+
### Haptic Feedback
|
|
227
|
+
|
|
228
|
+
| Type | Use Case |
|
|
229
|
+
| ----------- | -------------------------- |
|
|
230
|
+
| **Light** | UI selection |
|
|
231
|
+
| **Medium** | Toggle, switch |
|
|
232
|
+
| **Heavy** | Significant action |
|
|
233
|
+
| **Success** | Task completed |
|
|
234
|
+
| **Warning** | Destructive action confirm |
|
|
235
|
+
| **Error** | Failed action |
|
|
236
|
+
|
|
237
|
+
### Loading States
|
|
238
|
+
|
|
239
|
+
| Duration | Pattern |
|
|
240
|
+
| -------- | ---------------------------- |
|
|
241
|
+
| < 100ms | No indicator |
|
|
242
|
+
| 100ms-1s | Inline spinner |
|
|
243
|
+
| 1s-3s | Progress indicator |
|
|
244
|
+
| > 3s | Progress + estimated time |
|
|
245
|
+
| Unknown | Skeleton + content streaming |
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## ✅ Design Checklist
|
|
250
|
+
|
|
251
|
+
### Touch & Interaction
|
|
252
|
+
|
|
253
|
+
- [ ] All tap targets ≥ 44x44pt
|
|
254
|
+
- [ ] Primary actions in thumb zone
|
|
255
|
+
- [ ] Gesture hints for swipe actions
|
|
256
|
+
- [ ] Visual feedback on all touches
|
|
257
|
+
|
|
258
|
+
### Platform Compliance
|
|
259
|
+
|
|
260
|
+
- [ ] iOS HIG followed for iOS
|
|
261
|
+
- [ ] Material Design for Android
|
|
262
|
+
- [ ] Safe areas respected
|
|
263
|
+
- [ ] Status bar handled correctly
|
|
264
|
+
|
|
265
|
+
### Accessibility
|
|
266
|
+
|
|
267
|
+
- [ ] Text scales with system settings
|
|
268
|
+
- [ ] Color contrast ≥ 4.5:1
|
|
269
|
+
- [ ] Touch targets accessible
|
|
270
|
+
- [ ] Screen reader labels
|
|
271
|
+
|
|
272
|
+
### Performance
|
|
273
|
+
|
|
274
|
+
- [ ] 60fps animations
|
|
275
|
+
- [ ] Lists virtualized
|
|
276
|
+
- [ ] Images optimized
|
|
277
|
+
- [ ] Offline state handled
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## ❌ Anti-Patterns
|
|
282
|
+
|
|
283
|
+
| ❌ Don't | ✅ Do |
|
|
284
|
+
| ---------------------------------- | ----------------------------------- |
|
|
285
|
+
| Small tap targets (< 44pt) | Minimum 44x44pt |
|
|
286
|
+
| Important actions at screen top | Primary actions in thumb zone |
|
|
287
|
+
| Hamburger menu for main navigation | Bottom tab bar |
|
|
288
|
+
| Custom back button behavior | Respect platform conventions |
|
|
289
|
+
| Infinite scroll without pagination | Load more or paginate |
|
|
290
|
+
| Text that doesn't scale | Support Dynamic Type / Font Scaling |
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 🔗 Related Skills
|
|
295
|
+
|
|
296
|
+
| Need | Skill |
|
|
297
|
+
| --------------------- | ------------------------ |
|
|
298
|
+
| React Native patterns | `react-native-patterns` |
|
|
299
|
+
| Flutter patterns | `flutter-patterns` |
|
|
300
|
+
| Accessibility | `accessibility-patterns` |
|
|
301
|
+
| Performance profiling | `performance-profiling` |
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
> **Remember:** Mobile users are impatient, distracted, and using one hand. Design for the worst conditions: bad network, bright sunlight, walking while texting.
|