Skip to main content

Crate llimphi_widget_panel

Crate llimphi_widget_panel 

Source
Expand description

llimphi-widget-panel — firma visual transversal de los paneles tawasuyu.

Aporta dos detalles que aplicados consistentemente vuelven al sistema reconocible sin que se note “diseñado”:

  1. Gradiente vertical casi imperceptible — el fondo del panel no es un color sólido sino una interpolación lineal entre una versión ligeramente más clara (top) y una ligeramente más oscura (bot) del color base. La diferencia es ~4% en valor — invisible al primer vistazo pero el ojo lo registra como “tallado” en vez de “pintado”.

  2. Hairline accent en el top edge — una línea horizontal de 1px en el color accent del theme, al ~30% de alpha, justo en el borde superior del panel. Funciona como “hilo de identidad” que cose todos los paneles del sistema: aparece en modales, dropdowns, cards, sidebars; siempre el mismo grosor, siempre el mismo color.

§API

  • PanelStyle — bundle de tokens (color base, accent, radio, alpha del hairline, fuerza del gradiente).
  • panel_signature_painterFn para View::paint_with. Útil si ya tenés un View configurado y querés sumarle la firma sin envolver.
  • panel_view — convenience: arma el View completo con la firma aplicada, recibe los hijos como Vec<View<Msg>>.

§Cuándo usarlo

  • SÍ: modales, dropdowns, cards prominentes, columnas de layout, shortcuts-help, paneles flotantes.
  • NO: chips, badges, toasts, items de lista (la firma es para superficies grandes; en piezas chiquitas es ruido).

Structs§

PanelStyle
Token bundle de la firma visual.

Functions§

panel_elevated_view
Variante elevada: agrega una sombra del nivel elev (token de llimphi_theme::elevation) al panel_view. Para dropdowns, popovers y dashboards que necesitan separación clara del fondo. Pasar elevation::E2 para cards, E3 para menús contextuales, E4 para modales.
panel_signature_painter
Devuelve la closure de pintura que aplica la firma sobre el rect del nodo. Pasarla a View::paint_with para sumar la firma a un View existente. El View NO debe tener .fill(...) setteado — el gradient reemplaza el fill sólido.
panel_view
Convenience: arma un View con la firma aplicada y los children adentro. Equivalente a: