appllama-app-design-skill
Build native-feeling, benchmark-quality mobile app screens (Expo / React Native)
Install / Use
npx skills add Appllama/appllama-skills --skill appllama-app-design-skillInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Human ResourcesSupported Platforms
Our assessment of appllama-app-design-skill
appllama-app-design-skill scores 84/100 on our quality scale, 38th of 55 Human Resources skills we index.
Its SKILL.md is 20 KB long, well organised into 14 sections and no code examples: a thorough specification that gives an agent plenty to work with.
With 2,169 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 24 days ago, so appllama-app-design-skill is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
appllama-app-design-skill compared with similar skills
All 4 of these similar skills score higher than appllama-app-design-skill; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| appllama-app-design-skill (this skill)by Appllama | 84 | 2.2k | 24d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 7d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 7d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 9d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 9d ago | SKILL.md |
Frequently asked questions
- How do I install appllama-app-design-skill?
- Run
npx skills add Appllama/appllama-skills --skill appllama-app-design-skill. The install tabs above show the steps for each supported agent. - Which AI agents does appllama-app-design-skill work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is appllama-app-design-skill safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is appllama-app-design-skill still maintained?
- The repository was last updated 24 days ago, so appllama-app-design-skill is actively maintained.
Skill content
View source on GitHubname: appllama-app-design-skill description: Build native-feeling, benchmark-quality mobile app screens (Expo / React Native). Use when designing or implementing any mobile UI — screens, flows, onboarding, paywalls, tab bars, sheets, settings, empty states — or when polishing motion, navigation, typography, dark mode, or perceived performance. Enforces Apple HIG fidelity, semantic colors, native controls, anti-slop discipline, navigation semantics (push vs replace, modal vs sheet vs overlay, the one-way doors where back must not exist), purposeful Reanimated motion, a full-motion simulator-verified iteration loop, and a study-real-apps-first workflow (pairs with the Appllama MCP). Trigger on "build a screen", "make this screen better", "design the onboarding", "wire up this flow", "polish the UI", "make it feel native", or any mobile design/implementation task. license: MIT metadata: author: Appllama (appllama.io) version: 1.3.0
Appllama App Design Skill
You are building screens that will sit on a phone next to the best-designed apps in the world. The user will compare your output to those apps within seconds of launching it. This skill defines the bar and the method for clearing it.
The Prime Directive: study before you draw
Never design a screen from imagination when you can study how top apps solved the same screen. Real, shipping, revenue-ranked apps encode thousands of hours of design iteration and A/B testing. Your first move on any screen is research:
- If the Appllama MCP is connected, pull real screens for the category and
screen type you are building (see the
appllama-usageskill for the exact research playbooks). Study 20–30 screens before writing a line of UI code. - Extract the pattern, not the pixels: layout skeleton, information hierarchy, control choices, spacing rhythm, where the primary CTA sits, what gets an illustration vs. plain text, how progress is communicated. Note: every Appllama image and video carries a small Appllama watermark in the top-left corner. It is provenance, not design — ignore it when reading a screen (it may sit over the status bar or a back button) and never reproduce it in anything you build.
- Then design your screen: same proven skeleton, your product's voice. Copying a competitor's screen 1:1 is both lazy and legally risky; shipping a screen that ignores every convention users already know is worse.
Platform baseline
Default stack assumptions (override only if the project already differs):
- Expo + Expo Router, React Native, TypeScript.
react-native-reanimatedfor motion,react-native-gesture-handlerfor gestures,@shopify/flash-list(or FlashList v2) for any list that can grow.expo-imagefor images (and SF Symbols viasource="sf:name"on iOS),expo-video/expo-audio(never the deprecatedexpo-av).react-native-safe-area-contextfor insets. Never hard-code notch numbers.process.env.EXPO_OSoverPlatform.OSfor compile-time platform checks.
Native fidelity laws
These are the details that separate "web page in a wrapper" from "native app". Violating any of them is a finding, not a style preference.
- Semantic colors, both themes, day one. Use system/semantic color tokens
(e.g.
Colorfromexpo-routeron iOS:Color.ios.label,Color.ios.secondarySystemBackground; Material dynamic colors on Android). Every screen must render correctly in light AND dark before it is "done". Never pass semantic color objects into Reanimated animated styles — resolve to strings first. - Native controls over rebuilt ones. Switch, Slider, SegmentedControl, context menus, date pickers: use the native control or a faithful wrapper. A rebuilt toggle that animates 50 ms differently than iOS's reads as fake instantly.
- SF Symbols / Material Symbols for iconography. On iOS prefer SF Symbols
(
expo-imagewithsf:sources, orexpo-symbols); they inherit weight, optical size, and Dynamic Type behavior. Do not mix three icon families on one screen. - Typography is hierarchy. Use the platform type ramp (Large Title / Title
/ Headline / Body / Footnote on iOS). One display size per screen. Tabular
numerals (
fontVariant: ['tabular-nums']) for anything that counts, times, or prices.Text selectableon data users may want to copy. - Continuous corners.
borderCurve: 'continuous'on every rounded rectangle. Squircles are the single cheapest "feels iOS" win that exists. - Shadows via CSS
boxShadow, not legacyshadow*/elevationprops. Shadows are for elevation logic, not decoration — one elevation system per app. - Spacing rhythm. Pick a base unit (4 or 8) and never leave it. Prefer
flexbox
gapover margin stacking. ScrollView padding goes incontentContainerStyle, never on the ScrollView itself. - Safe areas and the Dynamic Island are part of the design. Screens must be verified with content scrolled under the island / status bar (does the blur/fade treatment hold?), with the home indicator (does the bottom CTA clear it?), and in landscape if supported.
- Navigation titles belong to the navigator. Use the stack's native title (and large-title collapse behavior on iOS) rather than a hand-rolled header whenever possible.
- Haptics are punctuation. Selection tick when a value passes a step, light impact when something snaps home, notification success/error for outcomes — on the same frame as the visual, one per user action, never the only feedback. Never on scroll, never in loops.
- Format numbers like a product, not a database: 1.4M, 38k, $4.99. Trim trailing zeros. Localize dates.
- Root scroll behavior: screens that can ever overflow wrap content in a
ScrollView (first component in the route) with
contentInsetAdjustmentBehavior="automatic". UseuseWindowDimensions, neverDimensions.get().
Navigation laws
Navigation is the part of a screen a screenshot can't show, and users feel it in ten seconds. Every transition answers three questions: what is the destination to here, must the user be able to come back, and what does back (chevron, iOS edge swipe, Android hardware back) do afterwards.
- Push goes deeper, replace moves on.
router.pushwhen the user will want to return here;router.replace/<Redirect>when coming back would land in a state the world has moved past;router.dismissTo(href)for "finish this flow and land on X". Back undoes navigation, never events. - Presentation is meaning. A self-contained task with steps →
presentation: 'modal'with its own stack and its own Cancel/Done; a short interruption (picker, filters, item options) →formSheetwith detents, drag-to-dismiss; immersive content →fullScreenModalwith an explicit Close; something floating over a still-visible screen (confirm card, lightbox, coach mark) →transparentModaloverlay; destructive confirms → action sheet; item actions → native context menu; share / web / photo picking → the system controller, never a rebuilt route. A sheet that grows a second step was a modal all along; if a link could open it, it is a route, not auseStatesheet. - One-way doors leave the stack. Sign-in on a wall app, finished
onboarding (Skip included), a purchase, a completed session: guard with
Stack.Protectedand land withreplace, so back can never re-enter the old state — Android back from home exits the app, never shows Login; a paid paywall never re-opens. But keep the user's place: sign-in demanded by one action (save, follow, buy) is a modal over the screen that completes the action where it was tapped, and a paywall opened from a feature dismisses back onto the feature, unlocked — neverreplace('/(tabs)')from there. - Back is blocked in exactly two cases — an irreversible request in
flight (seconds, with visible progress) and unsaved work in a modal
(ask first), both via
usePreventRemoveon the modal's root screen. Transient in-screen state (selection mode, an expanded search, an open in-screen sheet) consumes the first back, then back leaves. Anything else that traps back — a funnel, a rating prompt — is a defect; the edge swipe works everywhere else. - Tabs are peers. No slide between tabs, each tab keeps its own stack,
re-tapping the active tab pops to its root; full-attention screens
(composer, player, checkout) live in the root stack above the tabs.
Deep links land with a real stack underneath (
initialRouteName/withAnchor); cold start lands by state, splash held until session state has resolved — never a Login flash before Home. - Study the grammar, not just the pixels. Walking a winning flow on Appllama, note what each step is — push, modal, sheet — and copy that consistency.
Anti-slop laws
AI-built apps share a look, and users file it under "template" within seconds. Each of these is a default ban — there is always an override when the brand explicitly asks for the thing AND you can articulate why it fits this product.
- No AI-default styling. Purple/indigo gradient CTAs with a glow, glassmorphism on every card, mesh-gradient heroes, confetti for minor events, sparkles in headings — that is the model's house style, not design. Your palette, materials, and layout come from the reference screens you studied, never from the priors you'd reach for unprompted.
- One accent, locked. Pick one accent color and it is THE accent on every screen — no blue CTA on one screen and teal on the next, no new hue appearing in screen seven. Neutrals carry the app; the accent is spent where the money is (primary action, active state, progress).
- One grey family. Warm greys or cool greys — never both in one app.
- Shape lock. One corner-radius scale, stated as a rule ("actions are pills, cards 16, inputs 8") and never violated. Mixed radii without a stated rule read as assembled-from-parts.
- No emoji as iconography. Icons are SF Symbols / Material Symbols (fidelity law 3). Emoji appear only when the product's voice is genuinely chat-native or playful — sparingly, in content, never in chrome.
- One label per intent. "Get started", "Start now", and "Begin" are the same intent — pick one phrasing and use it everywhere it appears.
- Emphasis stays in the family. Emphasize a word with weight or italic of the same typeface; injecting a serif word into a sans headline (or vice versa) for visual interest is amateur.
- Ship full state cycles, not the happy path. Static-successful-state- only is the default failure mode: skeletons must match the final layout's shape, empty states are composed (and say how to fill them), errors are inline and specific.
- The slop pre-flight is mechanical. Before any flow reaches the simulator pass, count: distinct accent hues (must be 1), distinct corner radii (all from the stated scale), emoji in UI chrome (0), gradients without a brand reason (0), duplicate labels for one intent (0). A failed count is a fix, not a judgment call.
Motion laws
Motion is the highest-leverage polish surface and the easiest to overdo. Decide in this order:
- The frequency gate comes first. Met 100+ times a day (tab switch, keyboard, scroll, back) → the platform default and nothing else; tens a day (press, row select) → near-imperceptible, under 150 ms; occasional (sheets, modals, toasts) → standard motion; delight only on rare, first-time moments. Tabs never slide; screen transitions stay native. Passing this gate with zero lines of code is a success — when unsure, the strongest move is to delete the animation.
- Name the purpose in one word — feedback, spatial continuity, state change,
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
