How astra-void/vela-rbxts works
Vela is a Tailwind-style className compiler and runtime for Roblox UI projects, with React and Vide targets. The main workflow is project configuration plus TSX className input, lowered by either the roblox-ts transformer or the standalone CLI, then evaluated by the matching runtime host. A separate editor workflow exposes compiler services through a Rust LSP server and VS Code client. Compiler internals and relationships are grounded in the supplied excerpts and SOURCE INDEX; broader package relationships follow the README. Unsampled implementation details are not inferred.
Main entry points: jsx.rs JSX lowering · server.rs Rust LSP server · mod.rs Compiler API · runtime.rs Runtime emission
Components 24
Project integration
- rbxtsc transformer
packages/rbxtsc-host/src/transformer.ts - Compiler bridge
packages/rbxtsc-host/src/bridge.ts - vela CLI
packages/vela-rbxts/src/cli/run.ts
Compiler
- Compiler API
packages/compiler/src/api/mod.rs - Class value collapse
packages/compiler/src/class_value/collapse.rs - Compiler config model
packages/compiler/src/config/model.rs - Utility resolution
packages/compiler/src/semantic/utility.rs - Compiler diagnostics
packages/compiler/src/diagnostics/compiler.rs - JSX lowering
packages/compiler/src/transform/jsx.rs - Transform context
packages/compiler/src/transform/context.rs - Module transform
packages/compiler/src/transform/module.rs - Branch lowering
packages/compiler/src/transform/branch.rs - Runtime emission
packages/compiler/src/transform/runtime.rs
Configuration
- CSS config loader
packages/config/src/css.ts - Config plugins
packages/config/src/plugin.ts - Custom variants
packages/config/src/variants.ts
Runtime
- Runtime core
packages/runtime-core/src/apply.ts - React host runtime
packages/runtime/src/index.ts - Vide host runtime
packages/runtime-vide/src/index.ts
Editor tooling
- Rust LSP server
packages/lsp/src/server.rs - Document state
packages/lsp/src/documents.rs - Protocol translation
packages/lsp/src/translate.rs - VS Code client
packages/vscode-extension/src/extension.ts
Other components
- Roblox developer
Connections 28
- Roblox developer → rbxtsc transformer: registers plugin
README.md - Roblox developer → vela CLI: runs CLI
README.md - rbxtsc transformer → Compiler bridge: delegates
packages/rbxtsc-host/src/transformer.ts - Compiler bridge → Compiler API: calls compiler
README.md - vela CLI → Compiler bridge: uses host
packages/vela-rbxts/src/cli/run.ts - Compiler API → JSX lowering: lowers TSX
README.md - Compiler API → Compiler config model: accepts config
README.md - Transform context → Class value collapse: collapses values
packages/compiler/src/transform/context.rs - Transform context → JSX lowering: visits JSX
packages/compiler/src/transform/context.rs - JSX lowering → Class value collapse: collapses values
packages/compiler/src/transform/jsx.rs - JSX lowering → Branch lowering: lowers branches
packages/compiler/src/transform/jsx.rs - JSX lowering → Runtime emission: emits runtime needs
packages/compiler/src/transform/jsx.rs - JSX lowering → Compiler config model: reads config
packages/compiler/src/transform/jsx.rs - Utility resolution → Compiler config model: resolves theme
packages/compiler/src/semantic/utility.rs - Utility resolution → Compiler diagnostics: reports issues
packages/compiler/src/semantic/utility.rs - Module transform → Runtime emission: adds runtime host
packages/compiler/src/transform/module.rs - Roblox developer → CSS config loader: writes CSS config
README.md - CSS config loader → Config plugins: registers plugins
packages/config/src/css.ts - CSS config loader → Custom variants: registers variants
packages/config/src/css.ts - Roblox developer → Rust LSP server: uses editor
README.md - Rust LSP server → Document state: updates documents
packages/lsp/src/server.rs - Rust LSP server → Protocol translation: translates requests
packages/lsp/src/main.rs - Rust LSP server → Compiler API: requests editor services
README.md - VS Code client → Rust LSP server: connects LSP
README.md - Runtime core → React host runtime: supports host
README.md - Runtime core → Vide host runtime: supports host
README.md - Runtime emission → React host runtime: imports host
README.md - Runtime emission → Vide host runtime: imports Vide host
README.md