1# llimphi
2
3> Framework de UI nativa: HAL · raster · layout · text · theme · ui — más widgets y módulos.
4
5`llimphi` es el motor gráfico que comparten todas las apps del monorepo. Pipeline retained-mode declarativa sobre `vello` + `wgpu` + `taffy`, con shaping `fontdue`/`harfbuzz`, theme `Dark/Light/Aurora/Sunset`, HAL multiplataforma (Wayland · X11 · Win32 · Android · Wawa).
6
7**Manual de uso:** [MANUAL.md](MANUAL.md) — referencia completa (bucle Elm, DSL `View<Msg>`, los ~44 widgets y 10 módulos, GPU directo, gotchas) para humanos e IA. Diseño y roadmap: [SDD.md](SDD.md).
8
9Filosofía: **un widget no se diseña pensando en mockups; se diseña con lo que `vello` y `taffy` pueden hacer.**
10
11## Instalación
12
13```sh
14# usar como dep en otro crate:
15[dependencies]
16llimphi-ui = { workspace = true }
17llimphi-theme = { workspace = true }
18llimphi-widget-... = { workspace = true }
19```
20
21## Compatibilidad
22
23- **Linux/Wayland** — backend principal.
24- **Linux/X11** — via XWayland (mediante `winit`).
25- **macOS / Windows** — `winit` + `wgpu`.
26- **Android** — `clear-screen-android`, `vello-hello-android`, `vello-text-android` para validar el HAL móvil.
27- **Wawa bare-metal** — HAL alterno sobre framebuffer.
28
29## Crates: framework
30
31| Crate | Rol |
32|---|---|
33| [`llimphi-hal`](llimphi-hal/README.md) | Abstracción de superficie (winit / framebuffer / android). |
34| [`llimphi-raster`](llimphi-raster/README.md) | Rasterizer vello + cache de scenes. |
35| [`llimphi-layout`](llimphi-layout/README.md) | Layout taffy + extensiones. |
36| [`llimphi-text`](llimphi-text/README.md) | Shaping + fonts (Fontdue/HarfBuzz). |
37| [`llimphi-theme`](llimphi-theme/README.md) | Themes Dark/Light/Aurora/Sunset + paleta. |
38| [`llimphi-ui`](llimphi-ui/README.md) | `View<Msg>` retained-mode + Elm-arch. |
39
40## Crates: widgets (visuales reactivos)
41
42| Widget | Función |
43|---|---|
44| [`button`](widgets/button/README.md) | Botón con variantes. |
45| [`text-input`](widgets/text-input/README.md) | Input single-line. |
46| [`text-area`](widgets/text-area/README.md) | Textarea multi-line. |
47| [`text-editor`](widgets/text-editor/README.md) | Editor (rope · cursor · undo · highlight · clipboard · find). |
48| [`text-editor-lsp`](widgets/text-editor-lsp/README.md) | Editor + LSP. |
49| [`tree`](widgets/tree/README.md) | Árbol jerárquico. |
50| [`list`](widgets/list/README.md) | Lista virtualizada. |
51| [`tabs`](widgets/tabs/README.md) | Tabs con cierre. |
52| [`splitter`](widgets/splitter/README.md) | Splitter horizontal/vertical. |
53| [`tiled`](widgets/tiled/README.md) | Tiled window manager dentro de la app. |
54| [`slider`](widgets/slider/README.md) | Slider con tick marks. |
55| [`gallery`](widgets/gallery/README.md) | Grid de cards. |
56| [`card`](widgets/card/README.md) | Card base. |
57| [`stat-card`](widgets/stat-card/README.md) | Card para métricas. |
58| [`banner`](widgets/banner/README.md) | Banner / alerts. |
59| [`app-header`](widgets/app-header/README.md) | Header común de app. |
60| [`context-menu`](widgets/context-menu/README.md) | Menú contextual (look distintivo). |
61| [`theme-switcher`](widgets/theme-switcher/README.md) | Selector de tema. |
62| [`nodegraph`](widgets/nodegraph/README.md) | Lienzo de nodos + cables Bezier. |
63
64## Crates: modules (feature funcional con estado)
65
66| Module | Función |
67|---|---|
68| [`command-palette`](modules/command-palette/README.md) | Paleta de comandos. |
69| [`diff-viewer`](modules/diff-viewer/README.md) | Diff side-by-side. |
70| [`fif`](modules/fif/README.md) | Find-in-files. |
71| [`file-picker`](modules/file-picker/README.md) | Picker de archivos. |
72| [`mini-map`](modules/mini-map/README.md) | Mini-mapa del editor. |
73| [`bookmarks`](modules/bookmarks/README.md) | Bookmarks por archivo. |
74| [`symbol-outline`](modules/symbol-outline/README.md) | Outline de símbolos LSP. |
75| [`plugin-host`](modules/plugin-host/README.md) | Host para plugins WASM. |
76| [`shuma-term`](modules/shuma-term/README.md) | Terminal embebida (shell shuma). |
77
78## Crates: android
79
80| Crate | Rol |
81|---|---|
82| [`clear-screen-android`](android/clear-screen-android/README.md) | Smoke test HAL Android. |
83| [`vello-hello-android`](android/vello-hello-android/README.md) | Vello hello-world Android. |
84| [`vello-text-android`](android/vello-text-android/README.md) | Text shaping Android. |
85
86## Consideraciones
87
88- **Una sola API: `View<Msg>` declarativa**. Sin imperativo, sin DOM virtual ajeno.
89- **El mismo árbol corre en Wayland y Wawa**: HAL abstrae la superficie, el resto es idéntico.
90- Los widgets son **puramente visuales**; los módulos encapsulan estado + comportamiento.
LEEME.md
llimphi
Framework de UI nativa: HAL · raster · layout · text · theme · ui — más widgets y módulos.
llimphi es el motor gráfico que comparten todas las apps del monorepo. Pipeline retained-mode declarativa sobre vello + wgpu + taffy, con shaping fontdue/harfbuzz, theme Dark/Light/Aurora/Sunset, HAL multiplataforma (Wayland · X11 · Win32 · Android · Wawa).
Manual de uso: MANUAL.md — referencia completa (bucle Elm, DSL View<Msg>, los ~44 widgets y 10 módulos, GPU directo, gotchas) para humanos e IA. Diseño y roadmap: SDD.md.
Filosofía: un widget no se diseña pensando en mockups; se diseña con lo que vello y taffy pueden hacer.
Instalación
# usar como dep en otro crate:
[dependencies]
llimphi-ui = { workspace = true }
llimphi-theme = { workspace = true }
llimphi-widget-... = { workspace = true }
Compatibilidad
- Linux/Wayland — backend principal.
- Linux/X11 — via XWayland (mediante
winit).
- macOS / Windows —
winit + wgpu.
- Android —
clear-screen-android, vello-hello-android, vello-text-android para validar el HAL móvil.
- Wawa bare-metal — HAL alterno sobre framebuffer.
Crates: framework
Crates: widgets (visuales reactivos)
Crates: modules (feature funcional con estado)
Crates: android
Consideraciones
- Una sola API:
View<Msg> declarativa. Sin imperativo, sin DOM virtual ajeno.
- El mismo árbol corre en Wayland y Wawa: HAL abstrae la superficie, el resto es idéntico.
- Los widgets son puramente visuales; los módulos encapsulan estado + comportamiento.