tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 229TOML 101Markdown 82Shell 24052 Definiciones

⎇ main widgets/toolbar/LEEME.md Markdown · 37 líneas · 1.3 KB Historia crudo

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-widget-toolbar
2
3*Read this in English: [README.md](README.md).*
4
5Barra de herramientas moderna.
6
7Grupos de botones-ícono planos: hover con fondo redondeado, estado
8**activo** con fondo de selección + ícono en acento, **deshabilitado**
9atenuado y sin click. Entre grupos, un separador vertical sutil.
10
11El widget es render-only y agnóstico del `Msg`:
12- los **íconos los dibuja el caller** vía closure `Fn(size, color) ->
13  View` (mismo contrato que `dock-rail::make_icon`) — el widget resuelve
14  el color según el estado (activo/normal/deshabilitado);
15- los **grupos son datos** (`Vec<ToolbarGroup>`): el caller los arma,
16  reordena o filtra — la barra es componible/configurable por
17  construcción, sin sistema de config propio.
18```ignore
19let barra = toolbar_view(
20    vec![
21        ToolbarGroup::new(vec![
22            ToolbarItem::new(|s, c| icon_view(Icon::ChevronUp, c, 1.7), Msg::Subir)
23                .with_label("subir"),
24        ]),
25        ToolbarGroup::new(vec![
26            ToolbarItem::new(|s, c| icon_view(Icon::Rows, c, 1.7), Msg::Vista(0)).active(lista),
27            ToolbarItem::new(|s, c| icon_view(Icon::Grid, c, 1.7), Msg::Vista(2)).active(iconos),
28        ]),
29    ],
30    36.0,
31    &ToolbarPalette::from_theme(&theme),
32);
33```
34
35---
36
37Parte de **llimphi** — ver [llimphi](../../LEEME.md).

LEEME.md

llimphi-widget-toolbar

Read this in English: README.md.

Barra de herramientas moderna.

Grupos de botones-ícono planos: hover con fondo redondeado, estado activo con fondo de selección + ícono en acento, deshabilitado atenuado y sin click. Entre grupos, un separador vertical sutil.

El widget es render-only y agnóstico del Msg:

let barra = toolbar_view(
    vec![
        ToolbarGroup::new(vec![
            ToolbarItem::new(|s, c| icon_view(Icon::ChevronUp, c, 1.7), Msg::Subir)
                .with_label("subir"),
        ]),
        ToolbarGroup::new(vec![
            ToolbarItem::new(|s, c| icon_view(Icon::Rows, c, 1.7), Msg::Vista(0)).active(lista),
            ToolbarItem::new(|s, c| icon_view(Icon::Grid, c, 1.7), Msg::Vista(2)).active(iconos),
        ]),
    ],
    36.0,
    &ToolbarPalette::from_theme(&theme),
);

Parte de llimphi — ver llimphi.