ippclub/dora-ssr/ui-design
Claude Code and agent skill by ippclub/dora-ssr
- community
Checking that the SKILL.md file is still in the repository.
Use this skill when designing, creating, or polishing UI/screens/HUDs/menus so the result is visually refined, coherent, responsive, and implemented with the correct Dora UI APIs.
Install
npx vskill@latest install ippclub/dora-ssr/ui-designSKILL.md
UI Design
Use this skill when the user asks for UI, interface, screen, HUD, menu, panel, dashboard, visual polish, or "make it look good" work.
Target
Code runs in Dora engine. Use Dora, DoraX, ImGui, or Dora UI APIs. Do not use DOM/browser APIs.
Design Workflow
Before editing, form a small design brief:
- Purpose: what the screen helps the user/player do.
- Mood: e.g. calm, playful, premium, cyber, minimal, arcade.
- Hierarchy: primary action, secondary actions, status/info.
- Constraints: screen size, input method, existing theme/assets.
Then implement from structure to detail:
- Layout and information hierarchy.
- Spacing scale and alignment.
- Color palette and contrast.
- Typography and iconography.
- Interaction states and motion.
- Empty/loading/error states.
Visual Quality Rules
- Do not ship plain default controls unless the user explicitly asks for plain UI.
- Use a cohesive palette: 1 primary color, 1 accent color, neutrals, and semantic colors.
- Use spacing consistently. Prefer a small scale such as
4/8/12/16/24/32. - Make the primary action obvious; reduce competing visual emphasis.
- Prefer cards, panels, subtle borders, shadows/glow, and layered backgrounds over flat random boxes.
- Use contrast intentionally: readable text, muted secondary text, clear disabled states.
- Add hover/pressed/focus/selected/running states where the UI is interactive.
- Add subtle motion only when it communicates state; avoid noisy infinite animation.
- Keep UI responsive to window/screen size. Avoid hard-coded coordinates unless tied to
View.sizeor a known container. - If using icons, keep stroke weight/style consistent.
Dora Runtime UI Rules
When building UI inside a Dora game/workspace:
- Follow the
dora-engine-codingskill first. - Prefer
.tsxwithDoraXwhen JSX layout is useful; otherwise use Dora nodes directly. - Use
search_dora_docbefore unfamiliar Dora UI APIs. - Attach runtime UI to the correct Dora node (
Director.ui,Director.entry, or the existing root) based on project conventions. - Use
View.sizeto position and scale HUD elements; support resizing where possible. - Keep reusable UI in modules/components instead of dumping large UI code into
init.tswhen the UI has multiple sections. - Avoid browser-only APIs:
document,window, DOM events, HTML canvas, CSS files, npm UI libraries.
Core UI Components
| Component | Use Case | |
|---|---|---|
Node | Base class for all UI elements, handles transform, touch, keyboard events | |
Sprite | Image/texture rendering with effects, blend modes | |
Label | Text rendering with SDF outline, alignment, batching | |
Menu | Touch event management for child nodes | |
AlignNode | Flexbox-like layout (flexDirection, justifyContent, alignItems, padding, margin, gap) | |
DrawNode | Custom drawing: dots, lines, polygons, rectangles | |
ClipNode | Stencil-based clipping for scrollable areas |
UI Controls (Assets/Script/Lib/UI/Control/Basic/)
| Control | Description | |
|---|---|---|
Button | Parametric button with text, size, font | |
CircleButton | Circular button variant | |
ScrollArea | Scrollable container | |
FixedLabel | Fixed-size label |
Director Roots
| Root | Purpose | |
|---|---|---|
Director.entry | Root node for game scene | |
Director.ui | Root node for 2D UI elements | |
Director.ui3D | Root node for 3D-projected UI |
DoraX JSX Elements
Use .tsx files with DoraX for declarative UI:
Use toNode() when the TSX tree only needs to be materialized once. For state-driven UI, mount a dynamic root with createRoot(parent) and render from a function that reads signal() values:
For dynamic sibling lists, provide stable key values. Omitted keys are only safe when child order and identity do not change.
Signals update only dynamic roots that read them during render. Unmount roots that are no longer needed with root.unmount(), and use onUnmount for deterministic cleanup when nodes are removed by diffing.
ImGui
For debug/development UI, use ImGui:
- Windows, buttons, sliders, color pickers
- Tables, tabs, menus, plots
- Style customization
Vector Graphics (nvg/VGNode)
For custom vector graphics:
- Paths, arcs, bezier curves
- Gradients, text rendering
- Scissoring, transforms
Suggested module split for larger Dora UI:
Implementation Checklist
Before finishing, verify:
- The correct runtime target was used.
- The UI has clear hierarchy and spacing.
- Colors are coherent and accessible enough for the background.
- Primary, secondary, disabled, loading, and error states are handled where relevant.
- Text does not overflow obvious containers.
- The code is wired into the actual entry/screen and is not orphaned.
- Build/transpile succeeds, and any per-file diagnostics are fixed.
Final Response
Briefly state:
- What UI was added or improved.
- Which files changed.
- How to run/preview it.
- Any design decisions worth noting.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingAssets/Doc/skills/ui-design/SKILL.md
Popularity
- Repository stars
- 490
- Repository forks
- 68
- 7-day trend score
- 31
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ippclub/dora-ssr/ui-design)