anthropics/skills180kfrontend-design
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
前端开发
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.
把这段话发给 Claude Code、Codex 或 Cursor。智能体会先检查安全性,你确认后才安装。
读取 https://funcoding.ai/skills/appllama/appllama-skills/appllama-app-design-skill/install.md ,按里面的步骤帮我安装这个 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.
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:
appllama-usage skill for the exact
research playbooks). Study 20–30 screens before writing a line of UI code.Default stack assumptions (override only if the project already differs):
react-native-reanimated for motion, react-native-gesture-handler for
gestures, @shopify/flash-list (or FlashList v2) for any list that can grow.expo-image for images (and SF Symbols via source="sf:name" on iOS),
expo-video / expo-audio (never the deprecated expo-av).react-native-safe-area-context for insets. Never hard-code notch numbers.process.env.EXPO_OS over Platform.OS for compile-time platform checks.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.
Color from expo-router on 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.expo-image with sf: sources, or expo-symbols); they inherit weight,
optical size, and Dynamic Type behavior. Do not mix three icon families on
one screen.fontVariant: ['tabular-nums']) for anything that counts, times,
or prices. Text selectable on data users may want to copy.borderCurve: 'continuous' on every rounded
rectangle. Squircles are the single cheapest "feels iOS" win that exists.boxShadow, not legacy shadow*/elevation props.
Shadows are for elevation logic, not decoration — one elevation system per
app.gap over margin stacking. ScrollView padding goes in
contentContainerStyle, never on the ScrollView itself.contentInsetAdjustmentBehavior="automatic". Use useWindowDimensions,
never Dimensions.get().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.
router.push when 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: 'modal' with its own stack and its own Cancel/Done; a
short interruption (picker, filters, item options) → formSheet with
detents, drag-to-dismiss; immersive content → fullScreenModal with an
explicit Close; something floating over a still-visible screen (confirm
card, lightbox, coach mark) → transparentModal overlay; 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 a useState sheet.Stack.Protected and land with replace, 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 — never
replace('/(tabs)') from there.usePreventRemove on 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.initialRouteName /
withAnchor); cold start lands by state, splash held until session
state has resolved — never a Login flash before Home.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.
Motion is the highest-leverage polish surface and the easiest to overdo. Decide in this order:
{ duration: 400, dampingRatio: 1 } to settle, { 300, 0.8 } for
sheets — and bounce only when the gesture carried momentum.Easing.bezier(0.23, 1, 0.32, 1) — built-in curves are too weak; never
ease-in on an entrance). Press feedback lands on press-in, 100–150 ms:
scale 0.97 on buttons and cards, a background highlight (never scale) on
list rows, opacity on bar buttons. Exits are faster than entrances and
leave the way they came in; enter from scale(0.95) + fade, never
scale(0); menus grow from their trigger (centered modals exempt)..get()/.set(); scheduleOnRN — Reanimated 4's runOnJS —
only at gesture end), transform/opacity only, no entering on
recycled list rows, never animate a header's height (translate inside a
fixed clip), keyboard-tracking UI via react-native-keyboard-controller
— never a keyboard listener plus a guessed duration.Screens that feel great are screens whose state is boring:
useEffect+fetch.TextInputs for high-frequency typing surfaces; controlled
inputs are a top-3 cause of typing jank.expo-image with recyclingKey in lists,
thumbhash/blurhash placeholders.When a screen calls for illustration, empty-state art, hero imagery, or icons beyond the symbol set:
A screen does not exist until you have seen it running. The loop:
Do not declare a screen finished from code review alone. Do not stop at "looks fine" — stop at "cannot find a flaw at 100% zoom".
Every flow is evaluated as moving pictures in the simulator, never as
stills. Screen-record the entire flow end to end
(xcrun simctl io booted recordVideo flow.mov), exercising ALL of it:
Watch the recording twice: once at full speed for feel, once scrubbing frame by frame. You are hunting:
The whole recording must play like one native piece — smooth end to end, zero UX glitches. One glitchy frame means the flow is not done.
| File | Load when |
|---|---|
| references/native-controls.md | Choosing/wiring iOS+Android native controls, menus, pickers, sheets |
| references/motion.md | Any Reanimated work: gestures, transitions, springs, layout animations |
| references/performance.md | Jank, slow TTI, big bundles, memory leaks, profiling method |
| references/image-assets.md | Generating illustrations/icons/hero art with image models |
| references/simulator-loop.md | Final verification checklist + device matrix |
anthropics/skills180kGuidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
前端开发
anthropics/skills180kSuite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
前端开发
addyosmani/agent-skills103kGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.
前端开发
addyosmani/agent-skills103kBuilds production-quality, accessible, responsive user-facing UIs. Use when building or modifying interfaces and pages, creating components, implementing layouts, meeting WCAG accessibility requirements, managing state, or when the output needs to look and feel production-quality rather than AI-generated.
前端开发
addyosmani/agent-skills103kOptimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.
前端开发
nexu-io/open-design100kOpenDesign's feature business case for the plugin marketplace: the user pain, options, tradeoffs, and the measure of success. Built as a decision-grade product management deck for PM, eng, design, leadership.
前端开发