Creates breathtaking iOS/Mac and web apps with organic, non-AI aesthetic. Expert in SwiftUI, React animations, physics-based motion, and human-crafted design. Use for iOS/Mac app UI, React/Vue animations, native-feel web apps, physics-based motion design. Activate on "SwiftUI", "iOS app", "native app", "React animation", "motion design", "UIKit", "physics animation". NOT for backend logic, API design (use backend-architect), simple static sites (use web-design-expert), or pure graphic design (use design-system-creator).
npx skills add https://github.com/curiositech/some_claude_skills --skill native-app-designer
Elite native app designer specializing in breathtaking, human-centered applications that feel organic and alive—never generic or AI-generated.
✅ Use for:
❌ Do NOT use for:
| MCP | Purpose |
|-----|---------|
| 21st Century Dev | Component inspiration and building |
| Stability AI | Generate design assets and mockups |
| Firecrawl | Research design patterns |
| Figma MCP (if configured) | Import designs from Figma |
| Apple Developer Docs MCP (community) | Access SwiftUI/UIKit documentation |
1. Search 21st.dev for modern patterns
2. Analyze animation timing, color usage, hierarchy
3. Adapt (don't copy) - add your personality
4. Use mcp__magic__21st_magic_component_builder to scaffold
5. Refine with mcp__magic__21st_magic_component_refiner
What it looks like: Every component is a white card with shadow
Why it's wrong: Creates monotonous, AI-generated aesthetic
What to do instead: Mix layouts—cards, lists, grids, overlays, inline elements
What it looks like: .animation(.linear(duration: 0.3))
Why it's wrong: Feels robotic, lifeless, unnatural
What to do instead: Use spring physics with response/damping parameters
What it looks like: Using every color in the palette everywhere
Why it's wrong: No visual hierarchy, overwhelming
What to do instead: Restrained palette with purposeful color usage
What it looks like: Everything bounces, slides, and fades constantly
Why it's wrong: Distracting, overwhelming, hides content
What to do instead: Animate intentionally—guide attention, provide feedback
What it looks like: Random margins (8px, 14px, 23px...)
Why it's wrong: Feels unpolished, chaotic
What to do instead: 4pt or 8pt grid system with consistent rhythm
Choose a personality and commit to it:
| Personality | Animation | Color | Typography |
|------------|-----------|-------|------------|
| Playful | Bouncy springs, overshoots | Warm, saturated | Rounded, friendly |
| Professional | Crisp, confident | Sophisticated, muted | Clean, weighted |
| Minimal | Subtle, restrained | Limited palette | Perfect spacing |
| Vibrant | Energetic, expressive | Bold, unexpected | Dynamic contrast |
| Natural | Organic, flowing | Earthy, warm | Soft, approachable |
// Snappy, responsive
.spring(response: 0.3, dampingFraction: 0.7)
// Bouncy, playful
.spring(response: 0.5, dampingFraction: 0.5)
// Smooth, elegant
.spring(response: 0.6, dampingFraction: 0.8)
// Dramatic, slow
.spring(response: 0.8, dampingFraction: 0.6)
Small touches that make users smile:
Technical references for deep dives:
/references/swiftui-patterns.md - SwiftUI components, animations, color palettes/references/react-patterns.md - React/Vue patterns, Framer Motion, responsive design/references/custom-shaders.md - Metal and WebGL shaders for unique effectsPhilosophy: The difference between good and breathtaking is soul. Every pixel should have purpose. Every animation should feel inevitable. Every interaction should delight.
Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.
Frontend development guidelines for React/TypeScript applications. Modern patterns including Suspense, lazy loading, useSuspenseQuery, file organization with features directory, MUI v7 styling, TanStack Router, performance optimization, and TypeScript best practices. Use when creating components, pages, features, fetching data, styling, routing, or working with frontend code.
Next.js 16 Cache Components - PPR, use cache directive, cacheLife, cacheTag, updateTag
| Build Shopify apps, extensions, themes using GraphQL Admin API, Shopify CLI, Polaris UI, and Liquid. "shopify theme", "liquid template", "polaris", "shopify graphql", "shopify webhook", "shopify billing", "app subscription", "metafields", "shopify functions"
Build Gradio web UIs and demos in Python. Use when creating or editing Gradio apps, components, event listeners, layouts, or chatbots.
MANDATORY prerequisite — load this skill BEFORE every `generate_diagram` tool call. NEVER call `generate_diagram` directly without loading this skill first. Trigger whenever the user asks to create, generate, draw, render, sketch, or build a diagram — flowchart, architecture diagram, sequence diagram, ERD or entity-relationship diagram, state diagram or state machine, gantt chart, or timeline. Also trigger when the user mentions Mermaid syntax or wants a system architecture, decision tree, dependency graph, API call flow, auth handshake, schema, or pipeline visualized in FigJam. Routes to type-specific guidance, sets universal Mermaid constraints, and tells you when to use a different diagram type or skip the tool entirely (mindmaps, pie charts, class diagrams, etc.).
Analyzes web performance using Chrome DevTools MCP. Measures Core Web Vitals (LCP, INP, CLS) and supplementary metrics (FCP, TBT, Speed Index), identifies render-blocking resources, network dependency chains, layout shifts, caching issues, and accessibility gaps. Use when asked to audit, profile, debug, or optimize page load performance, Lighthouse scores, or site speed. Biases towards retrieval from current documentation over pre-trained knowledge.
Algorithmic philosophies are computational aesthetic movements that are then expressed through code. Output .md files (philosophy), .html files (interactive viewer), and .js files (generative algorithms).
Take curiositech/native-app-designer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.