Production-ready, GPU-accelerated widgets with Tailwind-like styling API. Every component is optimized for 144+ FPS rendering.
// Import and use any widget
use vajra_ui::prelude::*;
fn my_app() -> impl Widget {
Container::new()
.flex()
.flex_col()
.gap(4)
.p(8)
.children([
Text::new("Hello, Vajra UI!")
.text_2xl()
.font_bold(),
Button::new("Click Me")
.bg(Color::BLUE_500)
.hover(|s| s.bg(Color::BLUE_600))
.on_click(|_| println!("Clicked!")),
Slider::new()
.min(0.0)
.max(100.0)
.value(50.0)
.on_change(|v| println!("Value: {}", v)),
])
}Fundamental building blocks for any UI
Interactive button with variants
Typography and text display
Text input field with validation
Flexible box container
GPU-optimized image display
Navigation hyperlink
Flexible spacing element
Visual content separator
User input and control components
Toggle checkbox control
Radio button group
Toggle switch control
Range value slider
Progress indicator bar
Loading spinner animation
Star rating component
Dropdown menu selector
Structural and container components
Content card container
Modal dialog overlay
Side panel drawer
Tabbed content interface
Collapsible content panels
Single collapsible panel
Floating content popup
Hover tooltip overlay
Navigation and data display
Navigation breadcrumb trail
Page navigation controls
Context menu component
Dropdown select input
Data table with sorting
Hierarchical tree view
Advanced multi-feature components
Syntax-highlighted code editor
Terminal emulator widget
File system explorer
CSS Grid layout container
Virtualized list component
Custom scrollbar region
Content clipping mask
Modal overlay container
Render portal component
Color selection dialog
Specialized components for code editors and IDEs
Full editor with tree-sitter syntax
Collapsible IDE sidebar
Multi-tab file interface
Project file explorer
Bottom status information
Cmd+K command search
Integrated terminal
Notification and feedback components
Flexible stack container
Tag/chip element
Status indicator badge
User avatar display
Alert message box
Toast notification
Push notification panel
Loading skeleton placeholder
Timeline display
Step progress indicator
Clone the repository and start building GPU-accelerated UIs today.
# Clone the repository
git clone https://github.com/Gaurav-Wankhede/vajra-ui
# Add to your Cargo.toml
[dependencies]
vajra-ui = "0.1"
# Run an example
cargo run --example widget_gallery