FLORui
Native Rust interfaces, with the expressiveness of CSS.
FLORui is the native UI framework FLOREGREEN builds and uses in its own products: Rust components, JSX-inspired markup, and a styling and layout engine that follows real CSS, not a reduced subset.
use florui::prelude::*;
stylesheet!("./button.css");
#[component]
pub fn Button(label: String) -> Element {
view! {
<button class="button">{label}</button>
}
} use florui::prelude::*;
stylesheet!("./button.css");
#[component]
pub fn Button(label: String) -> Element {
view! {
<button class="button">{label}</button>
}
} Rust components
Declarative components via the #[component] macro, JSX-inspired view! markup, and typed properties. Already working, not just planned.
.button {
display: flex;
padding: 10px 16px;
background-color: #2a2a30;
color: #ffffff;
}
.button:hover {
background-color: #3a3a42;
} CSS styling
Real CSS, processed by a full styling engine, the same one used by Firefox and Servo. Not a simulated subset: real selectors, cascade, inheritance, and pseudo-classes.
use florui_platform::{InputMode, use_window_controls};
fn widget() -> Element {
let controls = use_window_controls();
view! {
<button
onclick={move || {
if let Some(controls) = &controls {
controls.set_always_on_top(true);
controls.set_input_mode(InputMode::Selective);
}
}}
>
{"Fixar no topo"}
</button>
}
} Native rendering
Real layout through a dedicated flexbox engine, text rendered with full shaping, and GPU-accelerated presentation with genuine window transparency, with no browser embedded in the application.
Where we are today
- Real CSS parsing, layout through a dedicated flexbox engine, and text rendering with full shaping.
- GPU-accelerated presentation, including window transparency verified end to end.
- Native window control: a custom title bar, always-on-top, fullscreen, selective per-region click-through, and a system tray icon.
- A CLI of its own: florui doctor diagnoses the graphics environment, florui fmt formats view! code.
It's a project under active development: the component ecosystem and CSS coverage grow every week. It's solid enough to experiment with; it's not yet the moment to bet on it in production.
What's next
- 1
Native support for macOS and Linux, on the same foundation already used on Windows.
- 2
Full form interaction: text fields, selection, clipboard, focus, and keyboard navigation.
- 3
Accessibility validated through the operating system's own real accessibility bridge.
- 4
Multiple windows, menus, dialogs, and native drag-and-drop.
- 5
The application's own configuration: identity, icons, and window behavior in a single file.
- 6
FLORui in the browser, with the same components running on the Web.
Frequently asked questions
Not yet. The styling engine, layout, rendering, and window control already work for real, but the component ecosystem and CSS coverage keep growing. It's a good moment to experiment with, not to bet a critical project on.
Open source from the start
Original code and documentation are available under either MIT or Apache-2.0, at your option. Third-party dependencies and assets retain their own licenses.