skills/vapor-ui/SKILL.md
Vapor UI design system component and icon guide, UI mockup generator, and Figma design converter. Provides component catalog, icon lookup, usage patterns, props documentation, and converts Figma designs to production-ready vapor-ui code. Use when user asks "vapor-ui components", "vapor-ui icons", "아이콘 찾기", "vapor-ui 사용법", "vapor-ui를 사용해서 시안 구현", "convert figma", "figma to code", "implement design from figma", provides a Figma URL, or mentions specific components like "Button", "Input", "Modal".
npx skillsauth add goorm-dev/vapor-ui vapor-uiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run these checks in parallel:
Determine user intent:
Determine Vapor UI version (in order of priority):
node scripts/detect-version.mjs [start-path]
Output: CORE: x.x.x and ICONS: x.x.xUse CORE version for component scripts, ICONS version for icon scripts.
Get component list:
node scripts/get-component-list.mjs <VERSION>
Example: node scripts/get-component-list.mjs 1.0.0-beta.12
Get component details (props, description):
node scripts/get-component-info.mjs <VERSION> <COMPONENT> [PART]
Example: node scripts/get-component-info.mjs 1.0.0-beta.12 avatar
For detailed component structure, refer to references/component-structure.md.
Get example code:
node scripts/get-component-examples.mjs <VERSION> <COMPONENT> [EXAMPLE_NAME]
Example: node scripts/get-component-examples.mjs 1.0.0-beta.12 avatar default-avatar
Get icon list:
node scripts/get-icon-list.mjs <ICONS_VERSION> [search-keyword]
Examples:
node scripts/get-icon-list.mjs 1.0.0-beta.12 - List all iconsnode scripts/get-icon-list.mjs 1.0.0-beta.12 arrow - Search icons containing "arrow"node scripts/get-icon-list.mjs 1.0.0-beta.12 --outline - List only outline iconsnode scripts/get-icon-list.mjs 1.0.0-beta.12 --filled - List only filled iconsNote: Use ICONS version from detect-version.mjs output for icon queries.
For mockup requests:
get-component-list.mjs to identify available componentsget-component-info.mjs for each needed component's propsget-component-examples.mjs for usage patternsFor Figma conversion requests:
Parse Figma URL to extract file_key and node_id:
https://www.figma.com/design/{file_key}/...?node-id={node_id}
Get design context using MCP:
mcp__figma-dev-mode-mcp-server__get_design_context
- file_key: extracted from URL
- node_id: extracted from URL (format: "X-Y" or "X:Y")
- depth: 5 (or higher for complex designs)
Analyze node tree:
references/design-system-recognition.md)references/figma-layout-mapping.md)Convert layout properties:
layoutMode: VERTICAL → VStacklayoutMode: HORIZONTAL → HStackitemSpacing → gap tokenpadding* → padding tokensreferences/token-mapping.md for full mappingRecognize design system components:
componentProperties for variant → props mapping💙Button with Size: md, ColorPalette: primary → <Button size="md" colorPalette="primary">gap, padding, margin, backgroundColor, etc.) must be inside $css propGenerate code:
Example 1: Component Usage Query
User: "How do I use the Button component?"
Action:
node scripts/get-component-info.mjs 1.0.0-beta.12 buttonnode scripts/get-component-examples.mjs 1.0.0-beta.12 buttonResult: Complete Button usage guide with code examples
Example 2: Mockup Generation
User: "Create a login page mockup"
Action:
get-component-list.mjs to check available componentsget-component-info.mjs for text-input, button, card, formget-component-examples.mjs for form patternsResult: Production-ready login page code
Example 3: Component Discovery
User: "What form components are available?"
Action:
node scripts/get-component-list.mjs 1.0.0-beta.12Result: Categorized list of form-related components
For Figma conversion examples, see references/conversion-examples.md.
| Error | Cause | Solution |
| ------------------------- | -------------------------------- | ----------------------------------------------- |
| Component not found | Name mismatch or version error | Run get-component-list.mjs, verify version |
| Script fetch error | Invalid version or network issue | Re-run detect-version.mjs, check network |
| Figma node not recognized | No 💙 prefix | Treat as custom layout (Box/VStack/HStack/Grid) |
| Spacing mismatch | Non-standard values | Round to nearest token (see token-mapping.md) |
references/url-patterns.md: GitHub URL patterns for fetching component datareferences/component-structure.md: Component file structure and JSON schemareferences/figma-layout-mapping.md: Auto-layout to component mappingreferences/design-system-recognition.md: 💙 prefix component recognitionreferences/token-mapping.md: Figma values to vapor-ui tokensreferences/conversion-examples.md: Figma to code conversion examples| Script | Purpose |
| ---------------------------- | -------------------------------------------------------------------- |
| detect-version.mjs | Detect @vapor-ui/core and @vapor-ui/icons versions from package.json |
| get-component-list.mjs | List all available components |
| get-component-info.mjs | Get component props and documentation |
| get-component-examples.mjs | Get component example code |
| get-icon-list.mjs | List and search icons (supports --outline, --filled, keyword search) |
| Tool | Purpose |
| ---------------------------------------------------- | ---------------------------- |
| mcp__figma-dev-mode-mcp-server__get_design_context | Fetch Figma design node tree |
| mcp__figma-dev-mode-mcp-server__get_screenshot | Get visual reference image |
| mcp__figma-dev-mode-mcp-server__get_metadata | Get Figma file metadata |
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.