glyph 0.6.0
Breaking
- Component builders now take
Componentchildren instead ofany. View helper functions should returnComponent. Define,ForEach,List.Render, and similar callbacks now expectComponentreturn values.- Child slices passed to containers should be
[]Component, not[]any.
New
In(...).Out(...)allows you to set up In/Out animations by coupling to the condition its rendered inside, all declaratively. 👈❗Opacitycompositing for text, containers, and overlays. 👈 ❗OpacityMode(...)controls rune handoff during fades. Current support is either smooth or dither.SESpinGlowaddsRim,Opacity,OpacityMode, andPaletteRef.Layer.Invalidate()marks layer content dirty for the next display pass.
Correctness
- Conditional branches with exit tweens are retained until their
Outanimations complete. If,Switch,Match,ForEach, overlays, and screen effects now share the same exit-lease path.- Per-item tween state is tracked by item identity, so list rows animate independently.
- Layer refresh now invalidates content for the next display pass instead of mutating render-owned template state.
SESpinGlowphase advances from frame delta, so repeated effect activation no longer compounds speed.- SpinGlow rim sides paint through background cells where possible, matching top and bottom rim brightness.
- Demo code updated for the new component interface and effect APIs.
- Screen-effect opacity follows target node opacity.
Fixes
- FilterList string rows compile against the new component interface.
- FilterList renders plain string rows through the default renderer.
- View activation routing uses the active view for handler dispatch (_problem only if a Form was being used in a secondary View_)
- Layer refresh now invalidates content for the next display pass instead of mutating render-owned template state.
- ScrollView refresh no longer risks clearing its cached child template during rendering.
Opacity demo:
https://github.com/user-attachments/assets/4c0e2b13-68f0-4f73-891a-3bf3ec08541a
Effect animations
https://github.com/user-attachments/assets/b8ac5fad-a034-4819-9ac4-7ab83b8ad11b