ui-design
Guides the AI through UI/visual design for user-facing OpenSpec changes.
Skill by minhlucvan
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/minhlucvan-ui-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ui-design
What's inside
- Skill name
ui-design- Description
- Guides the AI through UI/visual design for user-facing OpenSpec changes. Covers wireframes, component trees, UI states, user flows, visual decisions, responsive/accessible design, and connecting UI design to implementation tasks. Use when a change has a visible surface (new screens, component changes, UX improvements) and you need to produce ui.md.
- License
- Apache-2.0
- Instructions
- 244 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# UI Design
## Overview
UI design lives in `openspec/changes/<cNNNN-slug>/ui.md` — a sibling of `design.md` (architecture/logic) and `tasks.md`. While `design.md` captures architecture decisions, dependency graphs, and technical risks, `ui.md` captures the visual and interaction design: wireframes, component hierarchy, UI states (loading/empty/error/populated/edge cases), user flows, visual decisions, responsive behavior, and accessibility.
A good `ui.md` makes implementation tasks concrete: each UI state becomes an acceptance criterion, each component maps to a task file, and the wireframes give the implementer an unambiguous target.
## When to Use
- Your OpenSpec change introduces or modifies user-facing screens
- You are adding or changing interactive components (forms, lists, modals, navigation, buttons)
- The change affects layout, responsive behavior, or accessibility
- You need to document UI states (loading, empty, error, edge cases)
- The human explicitly requested UI design work
**When NOT to use:** Purely backend/data-layer changes, spec-only changes, infrastructure work, CLI-only changes. If the change has no visible surface, state "no UI surface — ui.md not created" in the propose output.
## The Design Process
### Step 1: Explore Existing Patterns
Before proposing any UI, explore the codebase to understand what already exists:
1. **Read the frontend package** — e.g., `apps/portal/src/`, `apps/web/src/` — to understand component naming conventions, file organization, and pattern libraries
2. **Check for design tokens** — `theme.ts`, `tokens.css`, `tailwind.config.*`, design system files in `components/ui/` or `lib/`
3. **Study existing components** — look for patterns: how do they handle error states? Loading states? Empty states? Form validation? What's the import style?
4. **Check capability specs** — read `openspec/specs/<capability>/spec.md` to understand the intended behavior the UI must support
5. **Note the tech stack** — React/Vue/Svelte? Tailwind/CSS Modules/Styled Components/vanilla CSS? Responsive or mobile-first? shadcn/ui, Radix, MUI, or custom?
Document findings as "Existing patterns observed:" in `ui.md` so the implementer knows what conventions to follow.
### Step 2: Create Wireframes / ASCII Art
Use ASCII art in fenced code blocks. Keep diagrams 72–80 characters wide. Each screen or significant state gets its own diagram.
```
+----------------------------------------------------------------------+
| [Logo] [Nav: Home | Search | Settings] [Avatar v] |
+----------------------------------------------------------------------+
| |
| +-----------+ +--------------------------------------------------+ |
| | Filters | | Search Results | |
| | | | | |
| | [v Type] | | +----------------------------------------------+ | |
| | [ ] Active| | | ResultCard (title, excerpt, timestamp) | | |
| | [ ] Draft | | | [View] [Edit] | | |
| | | | +----------------------------------------------+ | |
| | [Apply] | | +----------------------------------------------+ | |
| +-----------+ | | ResultCard (title, excerpt, timestamp) | | |
| | | [View] [Edit] | | |
| | +----------------------------------------------+ | |
| | | |
| | [ < Page 2 of 8 > ] | |
| +--------------------------------------------------+ |
+----------------------------------------------------------------------+
```
Use the following conventions:
- `[Button]` or `[Label]` for interactive elements
- `[v Dropdown]` for dropdowns (v = chevron)
- `[x]` / `[ ]` for checkboxes
- `(...)` for radio buttons
- `+--...--+` for bordered containers
- `|` for vertical edges
### Step 3: Document Component Tree
Show the hierarchy of UI components using indentation. Annotate each leaf component with its possible states in brackets.
```
SearchPage
SearchHeader
SearchInput [focused / blurred / filled / validation-error]
SearchButton [enabled / disabled / loading]
SearchFilters
FilterDropdown [unselected / selected / no-results]
ToggleGroup [all / active / archived]
ResultList
LoadingSpinner
ResultCard[] [populated / hovered / selected]
CardTitle
CardExcerpt
CardMeta
ActionMenu [open / closed]
EmptyState
Illustration
CallToAction
ErrorState
ErrorMessage
RetryButton
Pagination
PageLink[] [active / inactive / disabled]
```
Mark repeated elements with `[]` (e.g., `ResultCard[]`).
### Step 4: Enumerate UI States
For each interactive component, enumerate all relevant states:
| State | What the user sees |
|-------|-------------------|
| **Loading** | Skeleton, spinner, shimmer, or progressive placeholder while data fetches |
| **Empty** | Message + illustration + call-to-action when there's nothing to display |
| **Error** | Error message + retry button + fallback content on fetch/operation failure |
| **Populated** | The normal data-present state |
| **Disabled** | Greyed-out/inactive state while conditions aren't met |
| **Focused** | Keyboard/touch focus indicator for inputs and interactive elements |
| **Hovered** | Hover state for clickable elements |
| **Edge cases** | Long text truncation, rapid clicks, slow network, expired session, permissions denied, zero results |
### Step 5: Design User Flows
Write step-by-step flows for key scenarios. Cover the happy path, then branch for empty, error, and edge cases.
```
## Flow: Search and view a resultFrom minhlucvan/emdesign, Apache-2.0.
More from minhlucvan/emdesign
- 0.476score
emdesign
minhlucvan
Master skill for emdesign — the design-engineering engine.
SkillCFreshness: CClaude Code +9 - 0.474score
git-workflow-and-versioning
minhlucvan
Structures git workflow practices, adapted for the Mezon Mentor Bot ("MeKnow") platform — the platform/ git submodule of funix-mezon-bot.
SkillCFreshness: CClaude Code +9 - 0.474score
ci-cd-and-automation
minhlucvan
Automates CI/CD pipeline setup, adapted for the Mezon Mentor Bot ("MeKnow") platform.
SkillCFreshness: CClaude Code +9 - 0.474score
documentation-and-adrs
minhlucvan
Records decisions and documentation, adapted for the Mezon Mentor Bot ("MeKnow") platform.
SkillCFreshness: CClaude Code +9 - 0.474score
planning-and-task-breakdown
minhlucvan
Breaks work into ordered tasks (MeKnow-adapted onto OpenSpec).
SkillCFreshness: CClaude Code +9 - 0.474score
security-and-hardening
minhlucvan
Hardens code against vulnerabilities (MeKnow-adapted, polyglot).
SkillCFreshness: CClaude Code +9 - 0.474score
spec-driven-development
minhlucvan
Creates specs before coding (MeKnow-adapted onto OpenSpec).
SkillCFreshness: CClaude Code +9 - 0.474score
using-agent-skills
minhlucvan
Discovers and invokes agent skills (MeKnow-adapted).
SkillCFreshness: CClaude Code +9 - 0.474score
incremental-implementation
minhlucvan
Delivers changes incrementally (MeKnow-adapted, polyglot + OpenSpec).
SkillCFreshness: CClaude Code +9 - 0.474score
code-review-and-quality
minhlucvan
Conducts multi-axis code review (MeKnow-adapted, polyglot).
SkillCFreshness: CClaude Code +9 - 0.474score
code-simplification
minhlucvan
Simplifies code for clarity (MeKnow-adapted, polyglot + OpenSpec).
SkillCFreshness: CClaude Code +9 - 0.474score
debugging-and-error-recovery
minhlucvan
Guides systematic root-cause debugging (Mezon Mentor Bot "MeKnow" platform).
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 29, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/minhlucvan/emdesign
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from minhlucvan
- 0.476score
emdesign
minhlucvan
Master skill for emdesign — the design-engineering engine.
SkillCFreshness: CClaude Code +9 - 0.474score
git-workflow-and-versioning
minhlucvan
Structures git workflow practices, adapted for the Mezon Mentor Bot ("MeKnow") platform — the platform/ git submodule of funix-mezon-bot.
SkillCFreshness: CClaude Code +9 - 0.474score
ci-cd-and-automation
minhlucvan
Automates CI/CD pipeline setup, adapted for the Mezon Mentor Bot ("MeKnow") platform.
SkillCFreshness: CClaude Code +9 - 0.474score
incremental-implementation
minhlucvan
Delivers changes incrementally (MeKnow-adapted, polyglot + OpenSpec).
SkillCFreshness: CClaude Code +9 - 0.474score
code-review-and-quality
minhlucvan
Conducts multi-axis code review (MeKnow-adapted, polyglot).
SkillCFreshness: CClaude Code +9 - 0.474score
code-simplification
minhlucvan
Simplifies code for clarity (MeKnow-adapted, polyglot + OpenSpec).
SkillCFreshness: CClaude Code +9
Cite this page
ui-design skill. Agent Mart. https://agentmart.dev/skills/minhlucvan-ui-design (last updated 2026-10-24)