Loading...
Loading...
This skill generates text-based UI wireframes using .kui file syntax. Use when creating wireframes, mockups, or UI layout diagrams. The skill converts .kui files to SVG/PNG images via the katsuragi CLI tool.
npx skill4agent add enlinks-llc/katsuragi ui-wireframe-generator.kui# Install this skill
npx skills add enlinks-llc/katsuragi
# Install katsuragi CLI
npm install -g katsuragi
# or use directly with npx
npx ktr input.kui -o output.png.kui.kuiktr fetchnpx ktr input.kui -o output.png # PNG output
npx ktr input.kui -o output.svg # SVG output.kui# Basic usage
npx ktr fetch https://example.com -o output.kui
# With viewport option (desktop, mobile, tablet)
npx ktr fetch https://example.com -o output.kui --viewport mobile
# With custom grid and ratio
npx ktr fetch https://example.com -o output.kui --grid 6x4 --ratio 4:3| Option | Description | Default |
|---|---|---|
| Output .kui file path (required) | - |
| Target viewport: desktop, mobile, tablet | desktop |
| Override grid size (e.g., 4x3) | auto |
| Override aspect ratio (e.g., 16:9) | auto |
<meta name="theme-color">colorsbackground-colorborder-colorheadernavfootertxtbuttonbtninputtextareaselectinputimgimgh1h6pspanlabeltxtbgborder.kui.kuiratio: 16:9 // Canvas aspect ratio
grid: 4x3 // Grid dimensions (columns x rows)
gap: 8 // Space between cells (optional)
padding: 16 // Canvas padding (optional)
colors: { name: "#hex" } // Color definitions (optional)
// Cell definitions
A1..B2: { type: component, property: value }A1A1..B2| Type | Purpose | Key Properties |
|---|---|---|
| Text label | |
| Empty container | |
| Button | |
| Form input | |
| Image placeholder | |
| Property | Values | Default |
|---|---|---|
| | |
| Color (hex, name, or | |
| Color (hex, name, or | none |
| Number (pixels) | |
colors: { primary: "#3B82F6", danger: "#EF4444", accent: "orange" }
// Use with $ prefix
D3: { type: btn, value: "Submit", bg: $primary }#RGB#RRGGBB16:94:39:16references/syntax.mdratio: 16:9
grid: 4x3
gap: 8
padding: 16
colors: { primary: "#3B82F6" }
// Header
A1..D1: { type: txt, value: "Login", align: center }
// Form fields
A2..D2: { type: input, label: "Email" }
A3..C3: { type: input, label: "Password" }
// Submit button
D3: { type: btn, value: "Login", bg: $primary }ratio: 16:9
grid: 4x3
gap: 8
padding: 16
colors: { secondary: "#f5f5f5", outline: "#333" }
// Navigation
A1: { type: img, alt: "Logo" }
B1..C1: { type: txt, value: "Dashboard", align: center }
D1: { type: btn, value: "Logout", border: $outline }
// Sidebar
A2..A3: { type: box, bg: $secondary }
// Main content area
B2..D2: { type: txt, value: "Welcome back!", align: left }
B3..D3: { type: box, border: $outline }ratio: 9:16
grid: 3x5
gap: 8
padding: 16
colors: { primary: "#3B82F6", outline: "#333" }
// Header
A1..C1: { type: txt, value: "My App", align: center }
// Profile image
A2..C2: { type: img, alt: "Profile Photo" }
// User info
A3..C3: { type: txt, value: "John Doe", align: center }
// Actions
A4..C4: { type: btn, value: "Edit Profile", bg: $primary }
A5..C5: { type: btn, value: "Settings", border: $outline }npx ktr file.kui -o output.pngcolors//gap