Agent skill

Mobile UI Design

by openvetta in openvetta/open-vetta

Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel.

Apache-2.0Auto-check passedMobile

Install Mobile UI Design

skills CLI
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openvetta/open-vetta mobile-ui-design --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .claude/skills/mobile-ui-design && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mobile-ui-design
GitHub stars
290
Token cost
~1.6k tokens
SKILL.md length
561 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
Apache-2.0

At a glance

Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel.

  • Works in 2 steps: Content collides with the status bar at… → Content collides with the home indicator…
  • The user asks to build a mobile screen
  • SKILL.md covers Non-negotiable rules, Reusable scaffold, Platform style cues and Layout checklist before…, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mobile UI Design is an agent skill from openvetta/open-vetta. Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel. Use when the user asks to build a mobile screen, app UI, phone mockup page, or "make this look like a native app". Enforces correct status-bar and bottom safe-area handling so content never hides under the notch/Dynamic Island or the home indicator.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Mobile UI design. It works with Android and iOS. The repository describes itself as: Open-source, local-first AI agent for coding and real work. BYOK models, MCP, skills, plugins, workflows, and private knowledge bases. The licence is Apache-2.0.

When your agent uses it

  • The user asks to build a mobile screen
  • Phone mockup page
  • Make this look like a native app

Example prompts

  • “make this look like a native app”
  • “/mobile-ui-design”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Content collides with the status bar at the top (title/text sits under the clock and battery).
  2. Content collides with the home indicator / gesture bar at the bottom (a fixed CTA button gets cut by the gesture area).

What it can do on your machine

Read from SKILL.md and the folder at commit b983179. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are html and css).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mobile UI Design loads about 1.6k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 561 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~89
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openvetta/open-vetta at commit b983179, republished under its Apache-2.0 licence (© openvetta). 561 words, ~1,558 tokens.

Download SKILL.mdSave it as .claude/skills/mobile-ui-design/SKILL.md (or your agent's skills folder).
name
mobile-ui-design
description
Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel. Use when the user asks to build a mobile screen, app UI, phone mockup page, or "make this look like a native app". Enforces correct status-bar and bottom safe-area handling so content never hides under the notch/Dynamic Island or the home indicator.

Mobile UI Design

Build single-file HTML pages that look like native mobile screens and preview correctly inside the Mobile UI Preview panel (iPhone / Android / iPad device frames).

The preview panel renders your HTML edge to edge inside the device screen and draws its own immersive status bar (clock, signal, wifi, battery) floating on top of your content. It does not shrink your content into the safe area for you. That means the two things that go wrong most often are:

  1. Content collides with the status bar at the top (title/text sits under the clock and battery).
  2. Content collides with the home indicator / gesture bar at the bottom (a fixed CTA button gets cut by the gesture area).

This skill exists to prevent both. Reserve the top and bottom safe areas explicitly; never paint interactive or important content into them.

Non-negotiable rules

  1. Viewport meta is required and must be viewport-fit=cover:

    html
    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
  2. Reserve the top safe area (status bar). The panel overlays a status bar of roughly:

    • iPhone with Dynamic Island (15 Pro): ~54px
    • iPhone with notch (14): ~47px
    • Classic iPhone SE: ~20px
    • Android: ~28px
    • iPad: ~20–24px

    The iframe has no real notch, so env(safe-area-inset-top) resolves to 0. Do not rely on it alone. Use a variable with a sensible fallback and let env() upgrade it on real devices:

    css
    :root {
      --safe-top: max(env(safe-area-inset-top), 54px);
      --safe-bottom: max(env(safe-area-inset-bottom), 34px);
    }

    Default --safe-top to the tallest target you care about (54px covers Dynamic Island). If the design is meant only for SE-class devices, lower it to 20px.

  3. Reserve the bottom safe area (home indicator). Modern iPhones/Android reserve ~34px for the gesture bar. Any bottom-fixed bar (tab bar, primary CTA) must sit above it:

    css
    .bottom-bar { padding-bottom: var(--safe-bottom); }
  4. Fixed headers get the top inset, scroll content clears it. A sticky/fixed app header must add padding-top: var(--safe-top) so its title sits below the clock. A full-bleed hero image may extend under the status bar, but any text or control on it must still start below --safe-top.

  5. Full height, no page scroll bleed. Use height: 100dvh (or 100vh fallback) on the app root; scroll happens in an inner content region, not the <body>.

Show full SKILL.md (213 more words)Show less

Reusable scaffold

Start every mobile page from this structure and fill in the content region:

html
<!doctype html>
<html lang="zh">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
  <style>
    :root {
      --safe-top: max(env(safe-area-inset-top), 54px);
      --safe-bottom: max(env(safe-area-inset-bottom), 34px);
      --bg: #f2f2f7;
      --card: #ffffff;
      --text: #1c1c1e;
      --muted: #8e8e93;
      --tint: #007aff; /* iOS system blue */
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    html, body { height: 100%; }
    body {
      font-family: -apple-system, "SF Pro Text", "Segoe UI", Roboto, system-ui, sans-serif;
      background: var(--bg);
      color: var(--text);
      -webkit-font-smoothing: antialiased;
    }
    .app { display: flex; flex-direction: column; height: 100dvh; }

    /* Fixed header: clears the status bar via --safe-top */
    .app-header {
      padding-top: var(--safe-top);
      padding-inline: 16px;
      padding-bottom: 10px;
      background: var(--card);
      border-bottom: 1px solid rgba(0,0,0,0.08);
    }
    .app-header h1 { font-size: 20px; font-weight: 700; }

    /* Scrollable content: never under the top bar, ends above the tab bar */
    .content { flex: 1; overflow-y: auto; padding: 16px; }

    /* Bottom bar: lifted above the home indicator via --safe-bottom */
    .tab-bar {
      background: var(--card);
      border-top: 1px solid rgba(0,0,0,0.08);
      padding-top: 8px;
      padding-bottom: var(--safe-bottom);
      display: flex;
      justify-content: space-around;
    }
  </style>
</head>
<body>
  <div class="app">
    <header class="app-header"><h1>标题</h1></header>
    <main class="content"><!-- 内容区 --></main>
    <nav class="tab-bar"><!-- 底部导航 --></nav>
  </div>
</body>
</html>

Platform style cues

Match the target OS the user names (default to iOS if unspecified):

  • iOS: system blue #007aff tint; generous 16px side padding; grouped rounded cards (border-radius: 12px); large bold navigation titles; -apple-system font; subtle hairline separators; bottom tab bar with icon + tiny label.
  • Android (Material): primary color surfaces, elevation via soft shadows, ripple-style buttons, FAB for the primary action, top app bar; Roboto. Reserve ~28px top inset instead of 54.

Layout checklist before finishing

  • viewport-fit=cover present.
  • --safe-top / --safe-bottom defined with max(env(...), fallback).
  • App header adds --safe-top; no title/icon overlaps the clock or battery.
  • Bottom bar / primary CTA adds --safe-bottom; nothing important touches the gesture bar.
  • Root is 100dvh, scrolling is inside .content, body itself does not scroll.
  • Tested mentally at the tallest device (Dynamic Island) and the shortest (SE): content still clears both insets.

Working with the preview

  • Save the page as a .html file inside the current scope; the panel lists it automatically and reloads on save.
  • Switch device model / orientation in the panel toolbar to verify safe areas across frames.
  • After the design is solid, "Generate engineering prompt" in the panel export menu turns the current page into an engineering prompt for productionizing it.

© openvetta, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design of openvetta/open-vetta.

Open the folder on GitHubat commit b983179

Compare with similar skills

Mobile UI Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mobile UI Design compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mobile UI Design this skillopenvetta/open-vetta290—~1.6kAutomated safety check: PassApache-2.0
App Store Screenshots GeneratorParthJadhav/app-store-screenshots7.2k—~16kAutomated safety check: PassMIT
Building Native UICherryHQ/cherry-studio-app4k8 repos~2.6kAutomated safety check: PassMIT
Phoneagentrounak/PhoneAgent800—~2.2kAutomated safety check: PassMIT
Mobile PrinciplesAThevon/genjutsu440—~2.8kAutomated safety check: PassCustom licence
UI Mobilealinaqi/maggy707—~4.9kAutomated safety check: PassMIT

Similar skills

  • App Store Screenshots Generator

    ParthJadhav/app-store-screenshots

    Scaffolds a Next.js editor for designing App Store and Google Play screenshots as ads and exporting them at every required size, for iOS, Mac and Android.

    7.2k GitHub stars~16k tokensUpdated today
    MobileAuto-check passed
  • Building Native UI

    CherryHQ/cherry-studio-app

    Complete guide for building beautiful apps with Expo Router.

    4k GitHub starsUsed in 8 repos~2.6k tokens
    MobileAuto-check passed
  • Phoneagent

    rounak/PhoneAgent

    Control a connected iPhone, iOS simulator, Android emulator, or Android device from macOS through PhoneAgent's JSON-RPC bridge.

    800 GitHub stars~2.2k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Mobile Principles

    AThevon/genjutsu

    Mobile-specific UX principles - touch targets, hover-less doctrine, thumb zones, safe areas, gestures, mobile perf budgets.

    440 GitHub stars~2.8k tokensUpdated 4 days ago
    MobileAuto-check passed
  • UI Mobile

    alinaqi/maggy

    Mobile UI patterns - React Native, iOS/Android, touch targets

    707 GitHub stars~4.9k tokensUpdated 16 days ago
    MobileAuto-check passed
  • Developing Mobile Apps

    telagod/code-abyss

    Mobile development knowledge reference covering iOS (SwiftUI), Android (Jetpack Compose), React Native, and Flutter.

    244 GitHub stars~258 tokensUpdated 2 mo ago
    MobileAuto-check passed

More from openvetta/open-vetta

All 21 skills in this repo
  • Mobile Android Design

    openvetta/open-vetta

    Master Material Design 3 and Jetpack Compose patterns for building native Android apps.

    290 GitHub starsUsed in 3 repos~950 tokens
    Auto-check passed
  • Publish Ability

    openvetta/open-vetta

    Publish a skill, scene, MCP server, plugin, or bundle to the Vetta ability marketplace.

    290 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Plugin Workbench

    openvetta/open-vetta

    Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers.

    290 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Create Skill

    openvetta/open-vetta

    Create or update Vetta-compatible Agent Skills. An agent skill from openvetta/open-vetta.

    290 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Remotion Video

    openvetta/open-vetta

    Create, modify, and render Remotion React video projects in the current Vetta conversation workspace.

    290 GitHub stars~744 tokensUpdated yesterday
    Auto-check passed
  • Vetta UI Design

    openvetta/open-vetta

    Build and edit design documents (.vetd) on the Vetta design canvas — app screens, landing pages, slides, posters, infographics.

    290 GitHub stars~7.3k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Mobile UI Design

What does Mobile UI Design do?

Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel. Mobile UI Design is an agent skill from openvetta/open-vetta. Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel.

When should I use Mobile UI Design?

Mobile UI Design fits situations like: the user asks to build a mobile screen; phone mockup page; make this look like a native app.

How do I install Mobile UI Design in Claude Code?

Run `npx skills add openvetta/open-vetta --skill mobile-ui-design -a claude-code`. Or copy the skill folder (packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design in openvetta/open-vetta) into .claude/skills/mobile-ui-design in your project. Claude Code loads it when a task matches its description.

How do I install Mobile UI Design in Codex?

Run `npx skills add openvetta/open-vetta --skill mobile-ui-design -a codex`. Or copy the skill folder (packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design in openvetta/open-vetta) into .agents/skills/mobile-ui-design in your project. Codex loads it when a task matches its description.

Can I use Mobile UI Design in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openvetta/open-vetta --skill mobile-ui-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mobile-ui-design, .gemini/skills/mobile-ui-design, .github/skills/mobile-ui-design and .opencode/skills/mobile-ui-design in your project.

What does Mobile UI Design need to run?

SKILL.md names no scripts, command-line tools or credentials: Mobile UI Design is instructions for the agent only.

Does Mobile UI Design access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Mobile UI Design safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Mobile UI Design use?

Mobile UI Design is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mobile UI Design use?

About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mobile UI Design?

Skills that share tags, products or a category with Mobile UI Design: App Store Screenshots Generator (ParthJadhav/app-store-screenshots, 7.2k stars), Building Native UI (CherryHQ/cherry-studio-app, 4k stars), Phoneagent (rounak/PhoneAgent, 800 stars) and Mobile Principles (AThevon/genjutsu, 440 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mobile UI Design?

openvetta (a GitHub organization) maintains it in openvetta/open-vetta, which has 290 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 9, 2026.

Source: openvetta/open-vetta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.