Skip to content
This repository was archived by the owner on Feb 21, 2026. It is now read-only.

Raven 0.11.0

Choose a tag to compare

@briannadoubt briannadoubt released this 10 Feb 09:06
· 84 commits to main since this release

Raven 0.11.0

This release adds a SwiftUI-like preferences system (including anchor preferences) so child views can propagate values and geometry up the tree and ancestors can read/observe them.

Added

  • PreferenceKey + PreferenceValues
  • Preference modifiers:
    • preference(key:value:)
    • transformPreference(_:_:)
    • onPreferenceChange(_:perform:) (runs post-render)
    • overlayPreferenceValue(_:alignment:_:)
    • backgroundPreferenceValue(_:alignment:_:)
  • Anchor preferences (initial support):
    • Anchor<CGRect>
    • anchorPreference(key:value:transform:)
    • GeometryProxy anchor resolution (geo[anchor]) on WASM via DOM measurement

Behavior Notes

  • Preference reduction is applied in flattened view-tree order (SwiftUI-like).
  • onPreferenceChange is deferred to after the render pass to avoid re-entrant renders.

Demo

The TodoApp example includes a new Prefs tab demonstrating both preference aggregation and Anchor<CGRect> resolution.