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.

Follow on GitHub
button.rs Rust
use florui::prelude::*;

stylesheet!("./button.css");

#[component]
pub fn Button(label: String) -> Element {
    view! {
        <button class="button">{label}</button>
    }
}
A real example of FLORui's component syntax.
button.rs Rust
use florui::prelude::*;

stylesheet!("./button.css");

#[component]
pub fn Button(label: String) -> Element {
    view! {
        <button class="button">{label}</button>
    }
}
A real component, with the same syntax you would write today.

Rust components

Declarative components via the #[component] macro, JSX-inspired view! markup, and typed properties. Already working, not just planned.

button.css CSS
.button {
    display: flex;
    padding: 10px 16px;
    background-color: #2a2a30;
    color: #ffffff;
}

.button:hover {
    background-color: #3a3a42;
}
Pseudo-classes, cascade, and inheritance work exactly as you expect.

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.

widget.rs Rust
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>
    }
}
Operating-system-level window control, not simulated.

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. 1

    Native support for macOS and Linux, on the same foundation already used on Windows.

  2. 2

    Full form interaction: text fields, selection, clipboard, focus, and keyboard navigation.

  3. 3

    Accessibility validated through the operating system's own real accessibility bridge.

  4. 4

    Multiple windows, menus, dialogs, and native drag-and-drop.

  5. 5

    The application's own configuration: identity, icons, and window behavior in a single file.

  6. 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.

Explore the code