Wire-DSL Documentation
Build wireframes with code, not clicks
What is Wire-DSL?
Section titled “What is Wire-DSL?”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" { theme { 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.
Why Wire-DSL?
Section titled “Why Wire-DSL?”- 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
Quick Start
Section titled “Quick Start”Installation (30 seconds)
Section titled “Installation (30 seconds)”npm install -g @wire-dsl/cliwire render myfile.wire output.svgYour First Wireframe
Section titled “Your First Wireframe”project "Hello" { theme { density: "normal" spacing: "md" }
screen Home { layout stack(padding: lg) { component Heading text: "Hello World" } }}→ Complete Getting Started Guide
Core Sections
Section titled “Core Sections”- Installation and setup
- Your first wireframe
- Web editor preview
- Common patterns
- Complete DSL syntax
- All components
- Layout containers
- Theme 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
- LLM prompting guide
- Development setup
- Code quality standards
- Contribution workflow
- Project roadmap
28 Components
Section titled “28 Components”| Category | Components |
|---|---|
| Text | Heading, Text, Label |
| Input | Input, Textarea, Select, Checkbox, Radio, Toggle |
| Buttons | Button, IconButton |
| Navigation | Topbar, SidebarMenu, Sidebar, Breadcrumbs, Tabs |
| Data | Table, List |
| Media | Image, Icon |
| Display | Divider, Badge, Alert |
| Information | StatCard, Code, ChartPlaceholder |
| Modal & Overlay | Modal |
| Loading & Feedback | Spinner |
5 Layout Containers
Section titled “5 Layout Containers”- 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
Popular Use Cases
Section titled “Popular Use Cases”📊 Dashboards
Section titled “📊 Dashboards”layout grid(columns: 12, gap: lg) { cell span: 4 { component StatCard title: "Users" value: "1,234" } cell span: 8 { component Table columns: "ID,Name,Status" rows: 5 }}📋 Forms
Section titled “📋 Forms”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}🎨 Design Systems
Section titled “🎨 Design Systems”theme { density: "comfortable" spacing: "lg" radius: "lg" stroke: "thin" font: "base"}Rendering Options
Section titled “Rendering Options”Web Editor
Section titled “Web Editor”- Live preview while coding
- Component reference
- Theme editor
- No installation needed
wire render dashboard.wire output.svgwire render dashboard.wire output.pdfwire validate dashboard.wireProgrammatic
Section titled “Programmatic”import { Parser, IRGenerator, SVGRenderer } from '@wire-dsl/engine';
const ir = new Parser(code).parse();const svg = new SVGRenderer(ir).render();File Format
Section titled “File Format”Wire-DSL files use the .wire extension:
project-name.wirescreens/ ├── login.wire ├── dashboard.wire └── settings.wireDesign Philosophy
Section titled “Design Philosophy”- Declarative – Describe what, not how
- Human-Readable – Clear syntax, no complexity
- Composable – Build complex UIs from simple blocks
- Themeable – Consistent design across wireframes
- Accessible – Built-in best practices
- Fast – Instant rendering
- Versionable – Works with Git, diff-friendly
- AI-Powered – Generate from natural language with predictable, LLM-friendly syntax
Learning Path
Section titled “Learning Path”Beginner (1 hour)
Section titled “Beginner (1 hour)”- Installation – 5 min
- First Wireframe – 15 min
- Web Preview – 10 min
- DSL Syntax – 20 min
Intermediate (2-3 hours)
Section titled “Intermediate (2-3 hours)”- Components Reference – 1 hour
- Containers Guide – 45 min
- Theming – 45 min
- Examples – 1 hour
Advanced (3-5 hours)
Section titled “Advanced (3-5 hours)”- Architecture Overview – 1 hour
- IR Format – 45 min
- Layout Engine – 1 hour
- Validation Rules – 45 min
Tools & Integration
Section titled “Tools & Integration”- 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
Community & Support
Section titled “Community & Support”Next Steps
Section titled “Next Steps”Choose your path:
- Want to learn? → Getting Started
- Need reference? → Language Guide
- Building something? → Examples
- Contributing? → Development Guide
- Curious about internals? → Architecture
Roadmap
Section titled “Roadmap”Wire-DSL is actively developed. Current focus:
- ✅ Core DSL and rendering (complete)
- ✅ Theme system and design tokens (complete)
- 🚀 Advanced exporters (HTML, React, Figma)
- 🚀 AI-assisted wireframing
- 🚀 Enhanced VS Code extension
License
Section titled “License”Wire-DSL is open source. See LICENSE for details.
Last Updated: January 2026
Status: Active Development
Version: 0.5.0