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.
Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel.
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openvetta/open-vetta mobile-ui-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .claude/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openvetta/open-vetta mobile-ui-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .agents/skills/mobile-ui-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .agents/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openvetta/open-vetta mobile-ui-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .cursor/skills/mobile-ui-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .cursor/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openvetta/open-vetta.git --path packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openvetta/open-vetta mobile-ui-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .gemini/skills/mobile-ui-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .gemini/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openvetta/open-vetta mobile-ui-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .github/skills/mobile-ui-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .github/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openvetta/open-vetta --skill mobile-ui-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openvetta/open-vetta mobile-ui-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design .opencode/skills/mobile-ui-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mobile-ui-design" agent skill from https://github.com/openvetta/open-vetta/tree/main/packages/plugins/externals/mobile-ui-preview/agent/skills/mobile-ui-design into .opencode/skills/mobile-ui-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mobile-ui-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mobile-ui-designDesign 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. 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.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b983179. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from openvetta/open-vetta at commit b983179, republished under its Apache-2.0 licence (© openvetta). 561 words, ~1,558 tokens.
.claude/skills/mobile-ui-design/SKILL.md (or your agent's skills folder).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:
This skill exists to prevent both. Reserve the top and bottom safe areas explicitly; never paint interactive or important content into them.
Viewport meta is required and must be viewport-fit=cover:
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />Reserve the top safe area (status bar). The panel overlays a status bar of roughly:
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:
: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.
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:
.bottom-bar { padding-bottom: var(--safe-bottom); }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.
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>.
Start every mobile page from this structure and fill in the content region:
<!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>Match the target OS the user names (default to iOS if unspecified):
#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.Roboto. Reserve ~28px top inset instead of 54.viewport-fit=cover present.--safe-top / --safe-bottom defined with max(env(...), fallback).--safe-top; no title/icon overlaps the clock or battery.--safe-bottom; nothing important touches the gesture bar.100dvh, scrolling is inside .content, body itself does not scroll..html file inside the current scope; the panel lists it automatically and reloads on save.© 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
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
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mobile UI Design this skillopenvetta/open-vetta | 290 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| App Store Screenshots GeneratorParthJadhav/app-store-screenshots | 7.2k | — | ~16k | Automated safety check: Pass | MIT | |
| Building Native UICherryHQ/cherry-studio-app | 4k | 8 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Phoneagentrounak/PhoneAgent | 800 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Mobile PrinciplesAThevon/genjutsu | 440 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| UI Mobilealinaqi/maggy | 707 | — | ~4.9k | Automated safety check: Pass | MIT |
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.
CherryHQ/cherry-studio-app
Complete guide for building beautiful apps with Expo Router.
rounak/PhoneAgent
Control a connected iPhone, iOS simulator, Android emulator, or Android device from macOS through PhoneAgent's JSON-RPC bridge.
AThevon/genjutsu
Mobile-specific UX principles - touch targets, hover-less doctrine, thumb zones, safe areas, gestures, mobile perf budgets.
alinaqi/maggy
Mobile UI patterns - React Native, iOS/Android, touch targets
telagod/code-abyss
Mobile development knowledge reference covering iOS (SwiftUI), Android (Jetpack Compose), React Native, and Flutter.
openvetta/open-vetta
Master Material Design 3 and Jetpack Compose patterns for building native Android apps.
openvetta/open-vetta
Publish a skill, scene, MCP server, plugin, or bundle to the Vetta ability marketplace.
openvetta/open-vetta
Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers.
openvetta/open-vetta
Create or update Vetta-compatible Agent Skills. An agent skill from openvetta/open-vetta.
openvetta/open-vetta
Create, modify, and render Remotion React video projects in the current Vetta conversation workspace.
openvetta/open-vetta
Build and edit design documents (.vetd) on the Vetta design canvas — app screens, landing pages, slides, posters, infographics.
Categories
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.
Mobile UI Design fits situations like: the user asks to build a mobile screen; phone mockup page; make this look like a native app.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Mobile UI Design is instructions for the agent only.
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.
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.
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.
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.
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.
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.