v0.6.0
Pre-release
Pre-release
Full Changelog: v0.5.0...v0.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:
glyph-demo-3-r.mp4
Effect animations