Loading...
Loading...
Generate Wire DSL code for wireframes and UI prototypes
npx skill4agent add wire-dsl/wire-dsl wireframe-generator.wireproject → theme → screen → layout → componentsproject "App Name" {
theme { ... }
screen ScreenName {
layout <type> { ... }
}
}text: "Hello"height: 200checked: truevariant: primarykey: value///* */project "Project Name" {
theme {
density: "normal"
spacing: "md"
radius: "md"
stroke: "normal"
font: "base"
}
// screens go here
}screen ScreenName {
layout <type> {
// content
}
}UsersListProductDetailDashboard| Layout | Use Case | Children | Example |
|---|---|---|---|
| stack | Linear arrangement | Multiple | Forms, lists, vertical/horizontal sections |
| grid | Multi-column (12-col) | cells | Dashboards, product grids, responsive layouts |
| split | Sidebar + main area | Exactly 2 | Admin panels, navigation + content |
| panel | Bordered container | Exactly 1 | Highlighted sections, form groups |
| card | Content cards | Multiple | Product cards, user profiles, info boxes |
span| File | Purpose |
|---|---|
| core-syntax.md | Complete syntax rules, property formats, naming conventions |
| components-catalog.md | All 23 components with properties and examples |
| layouts-guide.md | Layout containers (Stack, Grid, Split, Panel, Card) with patterns |
| best-practices.md | Validation checklist, common mistakes, gotchas |
| common-patterns.md | Reusable patterns for forms, dashboards, navigation, cards |
project "Login App" {
theme {
density: "normal"
spacing: "md"
radius: "md"
stroke: "normal"
font: "base"
}
screen Login {
layout stack(direction: vertical, gap: lg, padding: xl) {
component Heading text: "Sign In"
component Input label: "Email" placeholder: "your@email.com"
component Input label: "Password" placeholder: "Enter password"
component Checkbox label: "Remember me" checked: false
component Button text: "Sign In" variant: primary
component Link text: "Forgot password?"
}
}
}project "Admin Dashboard" {
theme {
density: "normal"
spacing: "md"
radius: "md"
stroke: "normal"
font: "base"
}
screen Dashboard {
layout split(sidebar: 260, gap: md) {
layout stack(direction: vertical, gap: md, padding: md) {
component Heading text: "Menu"
component SidebarMenu items: "Dashboard,Users,Settings,Analytics" active: 0
}
layout stack(direction: vertical, gap: lg, padding: lg) {
component Heading text: "Dashboard Overview"
layout grid(columns: 12, gap: md) {
cell span: 3 {
component StatCard title: "Total Users" value: "2,543"
}
cell span: 3 {
component StatCard title: "Revenue" value: "$45,230"
}
cell span: 3 {
component StatCard title: "Growth" value: "+12.5%"
}
cell span: 3 {
component StatCard title: "Active Now" value: "892"
}
}
component ChartPlaceholder type: "line" height: 300
component Table columns: "User,Email,Status,Role" rows: 8
}
}
}
}project "Product Catalog" {
theme {
density: "comfortable"
spacing: "lg"
radius: "lg"
stroke: "thin"
font: "base"
}
screen Products {
layout stack(direction: vertical, gap: xl, padding: xl) {
layout grid(columns: 12, gap: md) {
cell span: 8 {
component Heading text: "Featured Products"
}
cell span: 4 align: end {
component Button text: "View All" variant: primary
}
}
layout grid(columns: 12, gap: lg) {
cell span: 4 {
layout card(padding: md, gap: md, radius: lg, border: true) {
component Image placeholder: "square" height: 220
component Heading text: "Wireless Headphones"
component Text content: "Premium sound quality"
component Badge text: "New" variant: primary
layout stack(direction: horizontal, gap: sm) {
component Text content: "$129.99"
component Button text: "Add to Cart" variant: primary
}
}
}
cell span: 4 {
layout card(padding: md, gap: md, radius: lg, border: true) {
component Image placeholder: "square" height: 220
component Heading text: "Smart Watch"
component Text content: "Track your fitness"
component Badge text: "Sale" variant: success
layout stack(direction: horizontal, gap: sm) {
component Text content: "$199.99"
component Button text: "Add to Cart" variant: primary
}
}
}
cell span: 4 {
layout card(padding: md, gap: md, radius: lg, border: true) {
component Image placeholder: "square" height: 220
component Heading text: "Laptop Stand"
component Text content: "Ergonomic design"
component Badge text: "Popular" variant: info
layout stack(direction: horizontal, gap: sm) {
component Text content: "$49.99"
component Button text: "Add to Cart" variant: primary
}
}
}
}
}
}
}gappaddingxssmmdlgxlsearchsettingsmenuuserstarheartitems: "Home,About,Contact"primarysecondaryghostsuccesswarningerrorinfotext: Hellotext: "Hello"height: "200"height: 200buttonButtonuser-listUserListspan: 15gappadding//references//home/user/wire-dsl/docs//home/user/wire-dsl/apps/docs//home/user/wire-dsl/examples/