Skip to content

Wire-DSL Documentation

Build wireframes with code, not clicks

Wire-DSL is a declarative, block-based domain-specific language (DSL) for creating interactive wireframes using code instead of visual tools.

Instead of dragging components in a design tool, you write clean, readable code:

project "Login App" {
style {
device: "tablet"
density: "comfortable"
}
screen LoginScreen {
layout card(padding: lg, gap: md, radius: md, border: true) {
component Heading text: "Welcome"
component Input label: "Email"
component Input label: "Password"
component Button text: "Sign In" variant: primary
}
}
}

Render it instantly to SVG, PNG, or PDF.


  • Code-First Workflow – Version control, diff, and collaborate like code
  • 28 Built-In Components – Buttons, forms, tables, navigation, more
  • 5 Layout Types – Stack, Grid, Split, Panel, Card with intelligent spacing
  • Design Tokens – Consistent theming across wireframes
  • Instant Rendering – SVG, PNG, PDF exports
  • AI-Friendly – Generate wireframes from natural language
  • Accessible – Built-in accessibility best practices

Terminal window
npm install -g @wire-dsl/cli
wire render myfile.wire output.svg
project "Hello" {
style { density: "normal" spacing: "md" }
screen Home {
layout stack(padding: lg) {
component Heading text: "Hello World"
}
}
}

Complete Getting Started Guide


  • Installation and setup
  • Your first wireframe
  • Web editor preview
  • Common patterns
  • Complete DSL syntax
  • All components
  • Layout containers
  • Style system
  • Icons & styling
  • System design (7-layer pipeline)
  • IR format specification
  • Layout engine algorithms
  • Validation rules
  • 20+ example files
  • Dashboard, forms, cards
  • Learning paths
  • CLI reference
  • Web editor
  • LLM prompting guide
  • Development setup
  • Code quality standards
  • Contribution workflow
  • Project roadmap

CategoryComponents
TextHeading, Text, Label
InputInput, Textarea, Select, Checkbox, Radio, Toggle
ButtonsButton, IconButton
NavigationTopbar, SidebarMenu, Sidebar, Breadcrumbs, Tabs
DataTable, List
MediaImage, Icon
DisplayDivider, Separate, Badge, Link, Alert
InformationStat, Card, Code, Chart
Modal & OverlayModal

  • Stack – Linear vertical/horizontal arrangement
  • Grid – 12-column responsive grid
  • Split – Sidebar + main content layout
  • Panel – Bordered container with padding
  • Card – Self-contained grouped content

layout grid(columns: 12, gap: lg) {
cell span: 4 { component Stat title: "Users" value: "1,234" }
cell span: 8 { component Table columns: "ID,Name,Status" rows: 5 }
}
layout card(padding: lg, gap: md, radius: md, border: true) {
component Heading text: "Signup Form"
component Input label: "Name" placeholder: "John Doe"
component Select label: "Country" items: "USA,Canada,Mexico"
component Checkbox label: "I agree to terms"
component Button text: "Submit" variant: primary
}
style {
density: "comfortable"
spacing: "lg"
radius: "lg"
stroke: "thin"
font: "base"
}

  • Live preview while coding
  • Component reference
  • editor
  • No installation needed
Terminal window
wire render dashboard.wire output.svg
wire render dashboard.wire output.pdf
wire validate dashboard.wire
import { Parser, IRGenerator, SVGRenderer } from '@wire-dsl/engine';
const ir = new Parser(code).parse();
const svg = new SVGRenderer(ir).render();

Wire-DSL files use the .wire extension:

project-name.wire
screens/
├── login.wire
├── dashboard.wire
└── settings.wire

  1. Declarative – Describe what, not how
  2. Human-Readable – Clear syntax, no complexity
  3. Composable – Build complex UIs from simple blocks
  4. Themeable – Consistent design across wireframes
  5. Accessible – Built-in best practices
  6. Fast – Instant rendering
  7. Versionable – Works with Git, diff-friendly
  8. AI-Powered – Generate from natural language with predictable, LLM-friendly syntax

  1. Installation – 5 min
  2. First Wireframe – 15 min
  3. Web Preview – 10 min
  4. DSL Syntax – 20 min
  1. Components Reference – 1 hour
  2. Containers Guide – 45 min
  3. Configuration – 45 min
  4. Examples – 1 hour
  1. Architecture Overview – 1 hour
  2. IR Format – 45 min
  3. Layout Engine – 1 hour
  4. Validation Rules – 45 min

  • CLI – Command-line tool for rendering
  • Web Editor – Browser-based code editor
  • VS Code Extension – Syntax highlighting, intellisense
  • LLM Prompting – Generate from natural language
  • GitHub Integration – Version control ready

Tools Documentation | Web Editor Guide



Choose your path:


Wire-DSL is actively developed. Current status:

  • ✅ Phase 1: Core DSL and rendering (complete)
  • ✅ Phase 2: Style system and design tokens (complete)
  • ✅ Phase 3: VS Code Extension (complete)
  • ✅ Phase 4: Source Maps & Debugging (complete)

Planned Features:

  • LSP support for universal editor integration

Full Development Roadmap


Wire-DSL is open source. See LICENSE for details.


Last Updated: January 2026
Status: Active Development
Version: 0.5.0