tawasuyu

tawasuyu/llimphi

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

Rust 660Markdown 302TOML 157RON 312382 Definiciones

⎇ main widgets/toast/LEEME.md Markdown · 26 líneas · 950 B 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-toast
2
3*Read this in English: [README.md](README.md).*
4
5Notificaciones efímeras apiladas.
6
7Cuatro severidades (Info / Success / Warning / Error) con color
8semántico hardcoded — un Error debe leerse rojo aunque la app esté
9en tema "sunset". Cada toast lleva un icono de `llimphi-icons` y
10un texto corto.
11
12El widget es **render-only**: recibe una lista de `Toast`s ya
13filtrados por la app (los que aún no expiraron) y los apila en la
14esquina bottom-right. El ciclo de vida (push, auto-dismiss tras
15`duration`, dismiss manual al click) lo maneja la app desde su
16`update`/`spawn`.
17
18Patrón típico:
191. App tiene `Vec<Toast>` en el modelo + `next_id: u64`.
202. Para pushear: agregar Toast con `expires_at = Instant::now() + dur`
21   + `handle.spawn(move || { sleep(dur); Msg::ToastExpire(id) })`.
223. `view_overlay` filtra los no expirados y los pasa a `toast_stack_view`.
23
24---
25
26Parte de **llimphi** — ver [llimphi](../../LEEME.md).

LEEME.md

llimphi-widget-toast

Read this in English: README.md.

Notificaciones efímeras apiladas.

Cuatro severidades (Info / Success / Warning / Error) con color semántico hardcoded — un Error debe leerse rojo aunque la app esté en tema "sunset". Cada toast lleva un icono de llimphi-icons y un texto corto.

El widget es render-only: recibe una lista de Toasts ya filtrados por la app (los que aún no expiraron) y los apila en la esquina bottom-right. El ciclo de vida (push, auto-dismiss tras duration, dismiss manual al click) lo maneja la app desde su update/spawn.

Patrón típico:

  1. App tiene Vec<Toast> en el modelo + next_id: u64.
  2. Para pushear: agregar Toast con expires_at = Instant::now() + dur
    • handle.spawn(move || { sleep(dur); Msg::ToastExpire(id) }).
  3. view_overlay filtra los no expirados y los pasa a toast_stack_view.

Parte de llimphi — ver llimphi.