| Crates.io | fluix |
| lib.rs | fluix |
| version | 0.1.25 |
| created_at | 2025-10-25 05:04:12.162523+00 |
| updated_at | 2025-11-09 13:45:38.840036+00 |
| description | Rust UI components for GPUI |
| homepage | https://github.com/lipish/fluix |
| repository | https://github.com/lipish/fluix |
| max_upload_size | |
| id | 1899715 |
| size | 2,308,812 |
Rust UI components for GPUI
Comprehensive library of cross-platform desktop UI components for building feature-rich applications.
GPU-accelerated rendering powered by GPUI for smooth user experience.
Leverage Rust's type system for compile-time type safety guarantees.
Built-in theme system with flexible theme and style customization support.
Simple and consistent API design for quick onboarding.
Comprehensive API documentation, tutorials, and example code.
Get started with just a few lines of code. Stateless components make it easy to build complex UIs.
Button::new("Click Me")
.variant(ButtonVariant::Primary)
.size(ComponentSize::Medium)
.on_click(|_, _, _| println!("Button clicked!"))
Add the following to your Cargo.toml:
[dependencies]
fluix = "0.1.20"
gpui = "0.2"
The following src/main.rs is a simple "Hello, World!" application:
use gpui::*;
use fluix::*;
pub struct HelloWorld;
impl Render for HelloWorld {
fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
div()
.v_flex()
.gap_2()
.size_full()
.items_center()
.justify_center()
.child("Hello, World!")
.child(
Button::new("click_me")
.variant(ButtonVariant::Primary)
.size(ComponentSize::Medium)
)
}
}
fn main() {
let app = Application::new()
.with_assets(fluix::Assets); // ← Important! Load SVG icons
app.run(move |cx| {
cx.spawn(async move |cx| {
cx.open_window(WindowOptions::default(), |window, cx| {
cx.new(|_| HelloWorld)
})?;
Ok::<_, anyhow::Error>(())
})
.detach();
});
}
Run the program:
$ cargo run
⚠️ Work in Progress: Fluix is currently in early development, APIs may change.
💡 Important: When using Fluix, you must call.with_assets(fluix::Assets)at application startup to load SVG icon resources!
New to Fluix? Follow our step-by-step tutorials:
View All Tutorials → | Documentation Index →
Basic Components: Button, Icon
Form Components: TextInput, TextArea, Checkbox, Radio, Select, Combobox
Layout Components: Tabs, Breadcrumb
See ROADMAP.md for detailed development progress and component list.
Run example projects:
# Button component example
cargo run --example button_demo
# Icon component example
cargo run --example icon_demo
# TextInput and TextArea examples
cargo run --example text_input_demo
# Tabs component example
cargo run --example tabs_demo
View more examples: examples/
Contributions are welcome! Please check ROADMAP.md for current progress and components to implement.
Fluix is a modern Rust UI component library built on top of GPUI 0.2, designed to simplify the development of cross-platform desktop applications. With GPU-accelerated rendering, a comprehensive component set, and type-safe APIs, Fluix empowers developers to build beautiful and performant desktop applications with ease.
Fluix bridges the gap between low-level GPUI APIs and high-level component development, providing a consistent and intuitive API for building modern desktop applications. Whether you're building a simple utility or a complex application, Fluix provides the building blocks you need.
MIT License