A markup language for AI-native UI component definitions
UXSCII (pronounced "you-ex-ski") is an open specification for representing UI components in a text-based format optimized for both human readability and AI agent consumption.
UXSCII defines a simple two-file system:
.uxmfiles - JSON metadata defining component structure, behavior, and properties.mdfiles - ASCII visual templates showing how components look
This format is:
- Text-based - Works with git, readable in any editor
- AI-native - Designed for machine parsing and generation
- Tool-independent - Open specification, not tied to specific software
- Human-readable - ASCII representations anyone can understand
button.uxm:
{
"id": "primary-button",
"type": "button",
"version": "1.0.0",
"metadata": {
"name": "Primary Button",
"created": "2024-01-01T00:00:00Z",
"modified": "2024-01-01T00:00:00Z"
},
"props": {
"text": "Click Me"
},
"ascii": {
"templateFile": "button.md",
"width": 16,
"height": 3
}
}button.md:
# Primary Button
```
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ {{text}} ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
```The complete specification is available at:
Or online at: uxscii.org/spec
The specification defines:
- File format standards (
.uxmand.md) - JSON schema and validation rules
- Variable interpolation syntax
- Versioning and extension points
- Conformance requirements
Browse example components in the /examples directory:
- primary-button - Basic button component
- text-input - Form input field
- card - Content card container
- More examples...
A CLI validator and tooling is available in /reference-cli:
# Install
npm install -g uxscii
# Validate a component
uxscii validate button.uxm
# Validate a template
uxscii template button.md
# Get component with template
uxscii uxm get buttonNote: The CLI is optional. UXSCII is a specification - you can build your own tools that read and write this format.
Build design tools without reinventing format parsing. UXSCII provides a standard format AI agents can read and generate.
Implement UXSCII support in your design tools, build systems, or component libraries. Think of it like supporting Markdown or JSON.
Define components in a tool-independent format. Version control your designs. Work across any platform.
Existing design formats (Figma, Sketch, Adobe XD) are:
- ❌ Proprietary and closed
- ❌ Binary formats (poor version control)
- ❌ Tool-locked
- ❌ Not designed for AI consumption
UXSCII is:
- ✅ Open specification (MIT License)
- ✅ Text-based (git-friendly, meaningful diffs)
- ✅ Tool-independent
- ✅ Built for AI agents from day one
The JSON Schema for UXM files is available at:
https://uxscii.org/schema/v1.0.0.json
Use it to validate UXM files in your tools.
We welcome contributions to:
- Specification - Propose improvements via GitHub Discussions
- Examples - Submit example components via pull requests
- Documentation - Improve guides and tutorials
- Tools - Build implementations and share them
For specification changes, please open an RFC (Request for Comments) in Discussions.
See CONTRIBUTING.md for guidelines.
- Discussions: GitHub Discussions
- Issues: Report bugs or request features
- Website: uxscii.org
MIT License - see LICENSE for details.
The specification is open and free to implement.
v1.0 (Current)
- Core specification
- JSON schema
- Reference CLI implementation
- Example component library
v1.1 (Planned)
- Enhanced animation specifications
- Responsive design patterns
- Component composition standards
- Extended accessibility features
v2.0 (Future)
- Advanced interactivity models
- Runtime behavior specifications
- Component testing standards
See ROADMAP.md for details.
- Fluxwing - AI agents that design with UXSCII (coming soon)
- More tools and integrations as the ecosystem grows