Add contract parsing, i18n extraction, template rendering, and roundtrip support for Nickel. Update backends and form parser for integration. Add testing and build infrastructure.
TypeDialog Examples
Complete example collection organized by feature category and backend implementation.
Quick Start
First Time?
Start here: 01-basic/
# Run a simple form
cargo run --example form
# Or with a specific backend
cargo run -p typedialog-tui --example form_with_autocompletion
Example Categories
1. Basic Forms → 01-basic/
Simple form structures for getting started.
- Form fundamentals
- Sections and grouping
- Basic validation
- Best for: Learning the syntax, quick prototypes
2. Advanced Features → 02-advanced/
Conditional logic, dynamic fields, complex forms.
- Conditional visibility
- Required field rules
- State management
- Best for: Complex workflows, conditional UX
3. Styling & Appearance → 03-styling/
Custom borders, themes, and visual design.
- Border styles
- Visual hierarchy
- Theme customization
- Best for: CLI aesthetics, branded interfaces
4. Backend-Specific → 04-backends/
Implementation details for each backend.
| Backend | Path | Best For |
|---|---|---|
| CLI | 04-backends/cli/ |
Scripting, server tools, pipes |
| TUI | 04-backends/tui/ |
Interactive terminal apps, dashboards |
| Web | 04-backends/web/ |
SaaS, public forms, browsers |
Running forms by backend:
# CLI (default)
cargo run --example form
# TUI
cargo run -p typedialog-tui --example form_with_autocompletion
# Web
cargo run -p typedialog-web -- --config form.toml
5. Fragments & Composition → 05-fragments/
Reusable components and form composition.
- Fragment templates
- Includes and inheritance
- Component libraries
- Best for: Large projects, DRY principle, multiple forms
6. Integrations → 06-integrations/
External tool integrations.
| Integration | Path |
|---|---|
| Nickel (Type-safe schemas) | 06-integrations/nickel/ |
| i18n (Multi-language) | 06-integrations/i18n/ |
9. Real-World Templates → 09-templates/
Production-ready examples for common use cases.
| Template | Path | Use Case |
|---|---|---|
| Employee Onboarding | 09-templates/employee_onboarding/ |
HR systems |
| User Registration | 09-templates/user_registration/ |
SaaS, apps |
| Library Catalog | 09-templates/library_catalog/ |
Management systems |
Learning Path
START HERE
↓
01-basic/ ← Understand form structure
↓
02-advanced/ ← Add conditional logic
↓
03-styling/ ← Customize appearance
↓
04-backends/ ← Choose your backend
├→ 04-backends/cli/ ← Scripting
├→ 04-backends/tui/ ← Interactive UX
└→ 04-backends/web/ ← Web deployment
↓
05-fragments/ ← Scale to multiple forms
↓
06-integrations/ ← Advanced integrations
↓
09-templates/ ← Deploy to production
Common Tasks
Run a Basic Example
cargo run --example form
Try Different Backends
# CLI
cargo run --example form
# TUI
cargo run -p typedialog-tui --example tui_survey_form
# Web
cargo run -p typedialog-web -- --config examples/04-backends/web/web_registration_form.toml
Use with TOML Configuration
cargo run -p typedialog-web -- --config examples/01-basic/form_with_sections.toml
Use with Rust Code
cargo run --example form_with_autocompletion
Test Conditional Logic
cargo run --example conditional_required_demo
Try Multi-Language Support
LANG=es cargo run --example test_i18n_form
File Types
TOML (.toml)
Configuration-driven forms - fastest iteration.
cargo run -p typedialog-web -- --config form.toml
Rust (.rs)
Programmatic forms - maximum control.
cargo run --example form_example
Nickel (.ncl)
Type-safe schema generation.
nickel eval schema.ncl > form.toml
Backend Compatibility
| Feature | CLI | TUI | Web |
|---|---|---|---|
| TOML forms | ✓ | ✓ | ✓ |
| Rust code | ✓ | ✓ | - |
| Conditional fields | ✓ | ✓ | ✓ |
| Autocompletion | ✓ | ✓ | ✓ |
| Custom styling | - | ✓ | ✓ |
| Validation | ✓ | ✓ | ✓ |
| i18n support | ✓ | ✓ | ✓ |
| Fragments | ✓ | ✓ | ✓ |
Tips
For CLI Forms
- Use for scripts and automation
- Good for piping between tools
- Minimal dependencies
For TUI Forms
- Create interactive dashboards
- Better UX than CLI
- Keyboard shortcuts available
- Mouse support
For Web Forms
- Public-facing forms
- Rich styling options
- Browser validation
- Mobile-friendly
- RESTful API integration
Troubleshooting
"Example not found"
- Check example is in
examples/directory - Use
--exampleflag with cargo
"Feature not compiled"
- Run:
cargo build --all-features - Check feature flags in Cargo.toml
"Form not displaying"
- For web: Check terminal output for port
- For TUI: Ensure terminal supports the feature
- For CLI: Check input/output redirection
Next Steps
- Read the category README for your use case
- Copy and modify an example form
- Consult
06-integrations/for advanced features - Deploy a template from
09-templates/ - Integrate with your application
Contributing Examples
To add new examples:
- Create in appropriate category
- Add README explaining the example
- Include usage instructions
- List features demonstrated
- Provide expected output
Start with: 01-basic/README.md
Need specific backend? Check 04-backends/
Want real-world example? See 09-templates/