FLORui
Interfaces nativas em Rust, com a expressividade do CSS.
FLORui é o framework de interfaces nativas que a FLOREGREEN constrói e usa em seus próprios produtos: componentes em Rust, marcação inspirada em JSX e um motor de estilos e layout que segue CSS de verdade, não um subconjunto reduzido.
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>
}
} Componentes em Rust
Componentes declarativos com a macro #[component], marcação view! inspirada em JSX e propriedades tipadas. Já funcionando, não apenas planejado.
.button {
display: flex;
padding: 10px 16px;
background-color: #2a2a30;
color: #ffffff;
}
.button:hover {
background-color: #3a3a42;
} Estilos com CSS
CSS real, processado por um motor de estilos completo, o mesmo usado pelo Firefox e pelo Servo. Não é um subconjunto simulado: seletores, cascata, herança e pseudo-classes funcionam de verdade.
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>
}
} Renderização nativa
Layout real via um motor de flexbox dedicado, texto renderizado com shaping completo e apresentação acelerada por GPU com transparência de janela genuína, sem embutir um navegador na aplicação.
Onde estamos hoje
- Parsing de CSS real, layout com motor de flexbox dedicado e renderização de texto com shaping completo.
- Apresentação acelerada por GPU, incluindo transparência de janela verificada de ponta a ponta.
- Controle de janela nativo: barra de título personalizada, sempre-no-topo, tela cheia, clique-através seletivo por região e ícone de bandeja do sistema.
- Um CLI próprio: florui doctor diagnostica o ambiente gráfico, florui fmt formata o código view!.
É um projeto em construção ativa: o ecossistema de componentes e a cobertura de CSS crescem a cada semana. Já é sólido o suficiente para experimentar; ainda não é o momento de apostar nele em produção.
O que vem a seguir
- 1
Suporte nativo para macOS e Linux, sobre a mesma base que já usamos no Windows.
- 2
Interação completa de formulários: campos de texto, seleção, área de transferência, foco e navegação por teclado.
- 3
Acessibilidade validada pela ponte real do sistema operacional.
- 4
Múltiplas janelas, menus, diálogos e arrastar-e-soltar nativos.
- 5
Configuração própria do aplicativo: identidade, ícones e comportamento de janela num único arquivo.
- 6
FLORui no navegador, com os mesmos componentes rodando via Web.
Perguntas frequentes
Ainda não. O motor de estilos, layout, renderização e controle de janela já funcionam de verdade, mas o ecossistema de componentes e a cobertura de CSS continuam crescendo. Hoje é um bom momento para experimentar, não para apostar nele em um projeto crítico.
Código aberto desde o início
O código original e a documentação estão disponíveis sob MIT ou Apache-2.0, à sua escolha. Dependências e recursos de terceiros mantêm suas próprias licenças.