Mobile app
Skill nexu-io/open-design/plugins/_official/examples/mobile-app
π¨ The open-source Claude Design alternative. π₯οΈ Local-first desktop app. πΌοΈ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video β real files, HTML/PDF/PPTX/MP4 export. π€ Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen & 20+ CLIs via BYOK.
npx -y skills add nexu-io/open-design --skill mobile-appAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
A mobile-app screen rendered inside a pixel-accurate iPhone 15 Pro frame on the page. Built by copying the seed `assets/template.html` and pasting one screen archetype from `references/layouts.md`. Use when the brief asks for "mobile app", "iOS app", "Android app", "phone screen", or "app UI".
SKILL.md
3.8 KB, as published. Nobody here has run it
Mobile App Skill
Produce a single mobile-app screen mockup, framed inside a real-feeling iPhone 15 Pro device.
Resource map
mobile-app/
βββ SKILL.md β you're reading this
βββ assets/
β βββ template.html β seed: device frame + screen primitives (READ FIRST)
βββ references/
βββ layouts.md β 6 screen archetypes (Feed / Detail / Onboarding / Profile / Checkout / Focus)
βββ checklist.md β P0/P1/P2 self-review (anti-fake-device)
Workflow
Step 0 β Pre-flight
- Read
assets/template.htmlend-to-end through the<style>block. The Dynamic Island, status bar SVG icons, home indicator, side rails, and tab bar are all already drawn in HTML/SVG β do not re-implement them inline on each screen. - Read
references/layouts.mdso you know which 6 archetypes exist. - Read the active DESIGN.md β map its tokens to the six
:rootvariables in the seed.
Step 1 β Copy the seed
Copy assets/template.html to the project root as index.html. Replace the six :root variables with the active design system's tokens. Replace the page <title> and the caption above the device.
Step 2 β Pick exactly one archetype
| Brief language | Use |
|---|---|
| feed, inbox, timeline, list, messages, notifications | A β Feed |
| article, post, item, recipe, song, product, song detail | B β Detail |
| sign-up, welcome, intro, walkthrough, tour | C β Onboarding |
| profile, account, user page, someone's bio | D β Profile |
| checkout, payment, order, form, settings step | E β Checkout |
| timer, map, dashboard widget, single big number | F β Focus / hero card |
A mobile screen does one job. If the brief seems to combine two, ship one screen and offer the other as a follow-up.
Step 3 β Paste and fill
Copy the archetype block from layouts.md into <main class="content">, replacing the placeholder card. Fill bracketed text with real, specific copy from the brief. Drop the <nav class="tabbar"> block entirely for archetypes that don't show one (B, C, E).
Step 4 β Self-check
Run through references/checklist.md. Pay extra attention to:
- Frame still has the Dynamic Island, status bar SVGs, and home indicator
- Tap targets β₯ 44px
- One accent, used β€ 2Γ on the screen
- Display headings still use
var(--font-display)(serif)
Step 5 β Emit the artifact
<artifact identifier="mobile-slug" type="text/html" title="Mobile β Screen Name">
<!doctype html>
<html>...</html>
</artifact>
One sentence before describing what's there. Stop after </artifact>.
Hard rules
- The phone is real. Dynamic Island gap, SVG status icons, home indicator. The seed protects all three β don't rewrite the frame.
- Single screen, single job. No multi-tab tours, no spliced flows.
- Accent budget = 2. One active tab + one primary action is the default.
- Numerics in mono via
.numclass. - Display in serif via
var(--font-display). - No external images β use
.ph-imgplaceholders.