Releases: openwebf/webf
Releases · openwebf/webf
0.24.19
Immutable
release. Only release title and notes can be modified.
Performance Improvements
- CSS/Dart Engine: significantly reduce pure-Dart style application overhead for large DOM
mounts by pruning redundant subtree restyles, optimizing selector and cascade evaluation,
speeding pseudo-element styling, reducing declaration merge/flush work, and caching parse-time
CSS values before resolve-time application. - Bridge/DOM: reduce UI command package overflow during large DOM mounts.
Bug Fixes
- CSS/Backgrounds: fix mixed
background-attachment: fixed, localmulti-layer background
painting, preserve authored layered background values, and warm background images early enough
for first-paint snapshots. - CSS/CSSOM: normalize kebab-case CSSOM property names and ensure pending inline style updates
flush even when recomputed style matches the queued value, fixing resolved-value regressions. - Dependencies: widen
archiveandintlversion constraints for Flutter 3.27+ compatibility.
0.24.18
Immutable
release. Only release title and notes can be modified.
Major Features
- Use Cases/CSS: re-enable the selectors showcase in the example app and expand it with
direct-target interactive pseudo-class demos for:hover,:active,:focus-visible, and
:focus-within.
Bug Fixes
- CSS/Selectors: scope document-dispatched interactive pseudo-class state to the stable leaf
target only. This prevents ancestor/descendant false positives for:hoverand:active, ignores
targets without direct interactive pseudo selectors, preserves the deepest target during
same-event bubbling, and adds regression coverage.
0.24.17
Immutable
release. Only release title and notes can be modified.
Bug Fixes
- Rendering/Widget: revert the
0.24.16auto-height shrink-wrap change for widget-hosted WebF content inside bounded flex and tooltip layouts, restoring the previousRenderWidgetheight-constraint behavior.
0.24.16
Immutable
release. Only release title and notes can be modified.
Major Features
- CSS/Selectors: add Dart-engine support for interactive and form pseudo-classes, including
:hover,:active,:focus,:focus-visible,:focus-within,:enabled,:disabled,:checked,:required,:optional,:placeholder-shown,:valid, and:invalid, with new unit and integration coverage. - Form Controls: add Dart-side
<select>support withvalue/selectedIndex, focus and blur handling,required/multiple/disabledstate, option andoptgrouphandling, and native menu rendering; improve<label>activation and default button/select UA styling.
Bug Fixes
- Rendering/Widget: preserve auto-height shrink-wrap for widget-hosted WebF content inside bounded flex and tooltip layouts; add regression coverage.
- Rendering/Inline: honor
border-radiuswhen painting inline backgrounds for inline spans. - Form Controls: improve checkbox and radio checked-state synchronization across Dart/Blink paths, fix checkbox baseline alignment in inline formatting contexts, restore placeholder color behavior, and tighten default form-control typography and disabled-state styling.
- DOM/Focus: make generic elements focusable via
tabindex, and fix focus/blur state propagation for selector matching and related events. - Selectors/DOM: improve attribute selector and
querySelectorfallback matching for case-insensitive HTML attributes and live form-control values. - Bridge/NativeValue: accept integer tags by coercing them to doubles during native value conversion.
0.24.15
Immutable
release. Only release title and notes can be modified.
Bug Fixes
- CSS/Logical Properties: defer
inset-inline-start/inset-inline-endmapping untildirectionresolves; support dynamic direction changes and percentage resolution; add regression coverage. - Rendering/Inline/RTL: fix RTL absolutely positioned shrink-to-fit inline text visibility in inline formatting context; add integration snapshot and tests.
0.24.14
Immutable
release. Only release title and notes can be modified.
Bug Fixes
- RTL/Overflow: correct initial paint offset for overflow scrollers in RTL; add regression tests.
- Rendering/Inline: preserve inline span text through
WebFListViewwrapper stacks; add integration coverage. - Rendering/Flexbox: fix RTL cross-axis padding for column flex containers; add regression tests and snapshots.
0.24.13+1
0.24.13
Immutable
release. Only release title and notes can be modified.
Major Features
- Networking: add
EventSource(Server-Sent Events) API support, including named events and
integration coverage and a use-cases demo page.
Performance Improvements
- Bridge/DOM: avoid style invalidation work when attributes are re-applied without value
changes (common in React).
Bug Fixes
- Blink/Rendering: defer first paint for newly inserted elements until Blink style-sync starts
to prevent 1-frame unstyled flashes (FOUC). - Scrolling: use a custom overflow
ScrollControllerto avoid layout-time ballistic
simulations that can trigger asserts with some physics. - Routing: use
HybridHistoryDelegate.state()forRouteAwarecallbacks inWebFand
WebFRouterView(#855). - Routing/React: bump
@openwebf/react-routerto1.0.1and alignRouterLinkwith
@openwebf/react-core-uicomponent wiring. - Flexbox: include gap and border-box extents when computing flex scrollable area; add
regression snapshots. - CSS/Parsing: accept
calc(...)inflexshorthand basis parsing; add integration coverage. - DOM/Blink: bypass stale CSS batch dirties when Blink is enabled to avoid redundant style
work.
0.24.12
Immutable
release. Only release title and notes can be modified.
0.24.12
Major Features
- Routing: add browser-history routing support for
@openwebf/react-routerand
@openwebf/vue-router, improving web-style navigation andRouterLinkbehavior (#850). - Native UIs/Icons: expand
webf_lucide_iconssupport and add React/Vue showcases (#850). - Tooling/Codegen: enhance Vue generator output (runtime enum exports, updated templates) and
add generator tests for Dart method interface bindings (#850).
Performance Improvements
- Widget Elements: cache stable default attributes on the native side to make
getAttribute()
non-blocking for common widget defaults (#850).
Bug Fixes
- CSS/Selectors: fix
:has()selector state flags for:checkedand:disabledmatching in
the Blink backend (#849). - CSS/Values: prevent
calc(% - px)from collapsing during shrink-to-fit sizing (flex items);
add regression snapshots (#851). - Scrolling/Focus: prevent focused inputs from scrolling the page to the top; add a
showOnScreenregression test (#851). - Overflow: fix height collapse for
overflow:hiddenchildren insideWebFListView(#850). - Rendering/Grid: re-resolve
frrow tracks after intrinsic sizing to match expected track
sizing behavior (#850). - Bridge/UICommand: prevent re-entrant
flushUICommandcalls from causing missing DOM
elements (#850). - Gestures: guard against null
attachedRendererin click handling (#850). - Lifecycle: remove asserts that could fire on disposed nodes during teardown (#850).
- Rendering/Flexbox: correct
min-size:autobehavior for replaced elements (e.g. images) in
flex layouts (#853).
0.24.11
Immutable
release. Only release title and notes can be modified.
Major Features
- CSS/Selectors: add Selectors Level 4
:has()support to the Blink backend (Tailwind CSS
compatibility), including invalidation coverage and snapshots (#840).
Bug Fixes
- Rendering/Widget: avoid clamping portal/modal popup widget width to DOM parent constraints
(#841). - Rendering/Text: establish a local inline formatting context for inline spans hosted under
RenderWidget, fixing flexbox/inline layout edge cases (#842). - Flexbox: don’t stretch auto-height flex items when cross-axis constraints are bounded,
improvingWebFListViewsizing inside flex containers (#843). - RTL: isolate per-subtree
directionoverrides and support dynamicdocumentElement.dir
updates (including logical margin remapping) (#844). - Bridge: serialize Dart enums across the native bridge for stable
NativeValueround-trips
(#840). - Form Controls: add
HTMLOptGroupElementsupport and resolve related bridge build issues
(#840). - Scrolling: detach overflow scroll listeners on dispose to prevent stale callbacks/leaks.