---
name: html-visual
version: 0.0.1
category: design-frontend
description: "Generate an interactive single-file HTML visualization (mockup, wireframe, ERD, flowchart, chart, slides, architecture diagram, dashboard, timeline, mindmap, kanban, table)."
argument-hint: "[type] "
---
## Input
```text
$ARGUMENTS
```
## Instructions
Visualize the user's request as an **interactive single HTML file**.
First, read `references/common-rules.md` to review common rules.
### Type Determination
Determine the type from the first argument (`$0`).
| Argument | Type | Filename Pattern |
|----------|------|-----------------|
| `mockup` | UI mockup (high-fidelity) | `mockup-{name}.html` |
| `wireframe` | Wireframe (low-fidelity, hand-drawn style) | `wireframe-{name}.html` |
| `erd` | ERD | `erd-{name}.html` |
| `flow` | Flowchart / Sequence diagram | `flow-{name}.html` |
| `chart` | Data chart | `chart-{name}.html` |
| `slides` | Presentation | `slides-{name}.html` |
| `arch` | Architecture diagram | `arch-{name}.html` |
| `dashboard` | Composite dashboard | `dashboard-{name}.html` |
| `timeline` | Timeline / Gantt chart | `timeline-{name}.html` |
| `mindmap` | Mindmap | `mindmap-{name}.html` |
| `kanban` | Kanban board | `kanban-{name}.html` |
| `table` | Interactive data table | `table-{name}.html` |
**No match**: Infer the type from the request content. If unable to infer, ask the user.
When inferred, use `visual-{name}.html` as the filename.
**`{name}` rule**: Extract the core noun from the request and convert to kebab-case. e.g., "user login form" → `login-form`, "payment flow" → `payment-flow`.
### Input Handling
- **File path provided**: Read and analyze the file, then visualize.
e.g., `/html-visual erd schema.prisma` → Analyze the Prisma schema to auto-generate ERD
- **Existing HTML modification**: Read and modify the existing file. Do not recreate from scratch.
- **Natural language only**: Infer the type, then generate.
### Context Gathering
- **Description is sufficient**: Generate immediately (e.g., "simple login form mockup")
- **Project code reference needed**: Read code/schema/API first (e.g., "our project's ERD", "current payment flow")
- Criterion: If the request contains project context references like "our", "current", "project's", read the code first.
### Type-Specific Guides
#### mockup
- Device frame: Actual device frame shape for mobile/tablet UI
- Multiple screens: Side-by-side layout + screen labels
- Placeholder data: Realistic data matching project context
- Tab/swipe for screen transitions
#### wireframe
- Hand-drawn (sketch) style: Slightly irregular lines, hand-drawn feel
- Black-and-white or grayscale. Minimal color
- Text areas shown as gray blocks (no "Lorem ipsum")
- Focus on layout and information structure, exclude visual details
#### erd
- Entity boxes with attribute lists. Distinguish PK/FK
- Relationship lines: 1:1, 1:N, N:M notation. Auto-track on node drag
- Include relationship type legend
#### flow
- Node types: Start/End (circle), Process (rectangle), Decision (diamond)
- Directional arrows. Auto-track on node drag
- Display branch conditions on connection lines
#### chart
- Auto-select appropriate chart type for the data (bar, line, pie, scatter, etc.)
- Axis labels + units, hover tooltips, legend
- Use Chart.js or D3.js
#### slides
- Reveal.js CDN-based
- Slide transition animations
- Code block highlighting (highlight.js)
- Speaker notes support (toggle with S key)
#### arch
- Separate system components by layer/zone (Frontend / Backend / DB / External)
- Label communication lines with protocols (HTTP, gRPC, pub/sub, etc.)
- Zoom/pan support
- D3.js force-directed or direct SVG generation
#### dashboard
- Arrange multiple charts/metrics in grid layout
- KPI cards at the top (numbers + change rates)
- Cross-chart interaction: Click one → filter others
#### timeline
- Horizontal or vertical timeline
- Event nodes + date labels
- Zoom/scroll for period navigation
- Use Mermaid gantt or D3.js
#### mindmap
- Radial expansion from center node
- Node collapse/expand
- Use Mermaid mindmap or direct SVG generation
#### kanban
- Columns: TODO / In Progress / Done (customizable)
- Drag and drop cards between columns
- Display labels/tags on cards
#### table
- Sort by clicking column headers (ascending/descending)
- Search/filter at the top
- Pagination or virtual scroll
- Cell highlight, row selection
### Procedure
1. **Identify type + target**. Ask if ambiguous. Read the file if a path is provided.
2. **Context gathering decision**. Determine if project context is needed. If so, read relevant code/docs.
3. **Read `references/common-rules.md`**. Review common principles, aesthetics, CDN, and error prevention rules.
4. **Read `references/html-boilerplate.md`**. Start from the base HTML template.
5. **Generate HTML following the type-specific guide**.
6. **Validate**: Review the generated HTML.
- No smart quotes (curly quotes) in HTML attributes
- No unclosed tags
- No overlapping nodes/elements
- If issues found, fix and re-validate
7. **Instruct to `open {filename}`**.