tawasuyu

tawasuyu/llimphi

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

Rust 229TOML 101Markdown 82Shell 24052 Sutichaykuna

⎇ a3c2ea9ffa5a97812e9ec043374b756586210bfb LEEME.md Markdown · 90 siq'ikuna · 4.5 KB Ñawpa willay ch'uya

feat: llimphi standalone — framework UI soberano extraído del monorepo e65e9cc62 · Sergio ·

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

Crates: framework

CrateRol
llimphi-halAbstracción de superficie (winit / framebuffer / android).
llimphi-rasterRasterizer vello + cache de scenes.
llimphi-layoutLayout taffy + extensiones.
llimphi-textShaping + fonts (Fontdue/HarfBuzz).
llimphi-themeThemes Dark/Light/Aurora/Sunset + paleta.
llimphi-uiView<Msg> retained-mode + Elm-arch.

Crates: widgets (visuales reactivos)

WidgetFunción
buttonBotón con variantes.
text-inputInput single-line.
text-areaTextarea multi-line.
text-editorEditor (rope · cursor · undo · highlight · clipboard · find).
text-editor-lspEditor + LSP.
treeÁrbol jerárquico.
listLista virtualizada.
tabsTabs con cierre.
splitterSplitter horizontal/vertical.
tiledTiled window manager dentro de la app.
sliderSlider con tick marks.
galleryGrid de cards.
cardCard base.
stat-cardCard para métricas.
bannerBanner / alerts.
app-headerHeader común de app.
context-menuMenú contextual (look distintivo).
theme-switcherSelector de tema.
nodegraphLienzo de nodos + cables Bezier.

Crates: modules (feature funcional con estado)

ModuleFunción
command-palettePaleta de comandos.
diff-viewerDiff side-by-side.
fifFind-in-files.
file-pickerPicker de archivos.
mini-mapMini-mapa del editor.
bookmarksBookmarks por archivo.
symbol-outlineOutline de símbolos LSP.
plugin-hostHost para plugins WASM.
shuma-termTerminal embebida (shell shuma).

Crates: android

CrateRol
clear-screen-androidSmoke test HAL Android.
vello-hello-androidVello hello-world Android.
vello-text-androidText shaping Android.

Consideraciones