Vibe UI
Vibe UI is a DESIGN.md workflow skill for web UI work. It helps choose an inspired visual style, apply its DESIGN.md, generate page-specific build prompts, and review generated code for design consistency.
Vibe Gate 2.0 is the default loop for visual work: read the brief, lock the style and recipe, generate with hidden design constraints, then report/critique/polish after implementation.
Included styles are inspired by publicly visible UI patterns. Do not describe them as official brand systems.
Naming rule: Vibe UI-owned workflow features should use Vibe UI names such as Vibe Gate. Upstream names are used only for attribution, source filters, and resource ids.
Commands
Run commands from skills/vibe-ui or call node /absolute/path/to/skills/vibe-ui/scripts/design.mjs ....
node scripts/design.mjs list [--source built-in|open-design|all]
node scripts/design.mjs search <keyword> [--source built-in|open-design|all]
node scripts/design.mjs recommend "<user goal>" [--source built-in|open-design|all]
node scripts/design.mjs read <brief> [--page page_type] [--design design_id] [--template template_id] [--source built-in|open-design|all]
node scripts/design.mjs use <design_id>
node scripts/design.mjs like <design_id> [page_type] [--strength light|medium|bold]
node scripts/design.mjs remix <primary_design_id> <secondary_design_id> [goal]
node scripts/design.mjs workflow <page_type> [--design design_id] [--template template_id] [--target file_or_directory]
node scripts/design.mjs template <template_id>
node scripts/design.mjs generate <page_type> [--template template_id]
node scripts/design.mjs invariants <design_id>
node scripts/design.mjs brief-check <page_type> [--design design_id] [--template template_id]
node scripts/design.mjs check <file_or_directory>
node scripts/design.mjs report <file_or_directory> [--out DESIGN-REPORT.md]
node scripts/design.mjs browse [--source built-in|open-design|all] [--out directory]
node scripts/design.mjs preview [--source built-in|open-design|all] [--out directory]
node scripts/design.mjs submit <design_id> <DESIGN.md> [--name display_name]
node scripts/design.mjs extract-url <url_or_html_file> [--out DESIGN.md]
node scripts/design.mjs import <figma_or_screenshot_notes> [--kind figma|screenshot] [--out DESIGN.md]
node scripts/design.mjs critique <file_or_directory> [--out directory]
node scripts/design.mjs polish <file_or_directory>
Supported page types: landing, dashboard, pricing, login, docs, settings, profile, chrome-extension-landing.
Workflow
- For user-facing UI work, run
read "<brief>"before implementation. It writes.vibe-ui/brief-read.jsonand.vibe-ui/product-context.jsonwith audience, buyer anxiety, register, dials, proof strategy, and section strategy. - If the user names a style, run
use <design_id>in the project root to writeDESIGN.md,DESIGN.generated.md, and.vibe-ui/current-design.json. - If the user has not chosen a style, run
recommend "<goal>"or use the recommendation fromread. Use built-in curated styles by default; add--source open-designwhen they want the broader bundled source library. - Use namespaced source ids such as
open-design:linear-app,open-design:revolut, oropen-design:airbnb. - If the user asks for a page pattern, run
template <template_id>orgenerate <page_type> --template <template_id>. - If the user asks for a page that should feel "like" a known style, run
like <design_id> [page_type]for a brand-safe prompt. - If the user wants to browse or compare styles visually, run
browse --source allto generate a local static browser. - Before generating or editing a page, run
workflow <page_type> --design <design_id> --template <template_id>for the recommended Vibe UI execution chain. - Run
invariants <design_id>andbrief-check <page_type> --design <design_id>when the task is visual or user-facing.brief-checkwrites.vibe-ui/vibe-gate-contract.jsonwith Design Read, dials, page preflight, and anti-pattern watchlist. - Run
generate <page_type>and follow the output together with the project's existing stack and components. - After implementation, run
check <file_or_directory>orreport <file_or_directory>. If the report is not Ready or the UI still feels generic, runcritique <target>and then usepolish <target>to produce a repair prompt.
Design Library
registry.jsoncontains 18 high-confidence curated built-in styles.resource/open-design-systems.jsonbundles 150 upstreamDESIGN.mdsystems as one offline resource.resource/open-design-template-index.jsonindexes 111 upstreamdesign-templatesmirrored throughLiuwei1125/vibe-ui-resources.resource/open-design-template-recipes.jsoncontains Vibe UI template recipes distilled from upstream source patterns, including commerce, launch, pricing, waitlist, docs, dashboard, kanban, mobile, onboarding, portfolio, and SaaS recipes.resource/open-design-template-sources.jsoncontains the full template source bundle for offline-full packaging.resource/resources-sync-manifest.jsonrecords the resource mirror source commit, counts, and hashes.resource/open-design-attribution.mdrecords upstream license and provenance notes.resource/ui-anti-patterns.jsoncontains the Vibe Gate 2.0 watchlist used bybrief-check,check,report,critique, andpolish.
Default curated styles include linear, vercel, stripe, apple, cursor, openai, notion, raycast, mintlify, framer, airbnb, shopify, feishu, doubao, xiaohongshu, wechat-reading, slack, and figma.
Guardrails
- Treat
DESIGN.mdas the source of truth for colors, typography, spacing, radius, shadows, layout rhythm, density, and interaction style. - Do not copy real logos, trademarks, proprietary assets, or official brand claims from inspiration sources.
- Keep Design Read, dials, and internal scaffold text in
.vibe-uiJSON, reports, prompts, or comments; do not render them in production UI. - Add stable
data-od-idvalues to top-level generated sections when using source-backed recipes. - Avoid default LLM indigo, emoji-as-icon decoration, invented metrics, filler copy, arbitrary gradients, heavy glass, and unsupported shadows unless the selected
DESIGN.mdexplicitly allows them. - Use Vibe Gate as the default execution contract:
readinterprets the brief,workflowshows the full chain,invariantsstates what must not drift,brief-checkrecords materials and anti-patterns before implementation,generatecarries the hidden Design Read constraints, andreport/critique/polishclose the revision loop after implementation. - The static checker is a first-pass review. Still run the project tests and inspect the rendered UI for frontend work.
Scan to join WeChat group