Skip to content

Releases: openwebf/webf

0.24.19

20 Mar 13:27
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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, local multi-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 archive and intl version constraints for Flutter 3.27+ compatibility.

0.24.18

11 Mar 06:27
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 :hover and :active, ignores
    targets without direct interactive pseudo selectors, preserves the deepest target during
    same-event bubbling, and adds regression coverage.

0.24.17

11 Mar 04:36
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Bug Fixes

  • Rendering/Widget: revert the 0.24.16 auto-height shrink-wrap change for widget-hosted WebF content inside bounded flex and tooltip layouts, restoring the previous RenderWidget height-constraint behavior.

0.24.16

08 Mar 18:00
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 with value/selectedIndex, focus and blur handling, required/multiple/disabled state, option and optgroup handling, 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-radius when 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 querySelector fallback 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

04 Mar 11:42
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Bug Fixes

  • CSS/Logical Properties: defer inset-inline-start/inset-inline-end mapping until direction resolves; 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

03 Mar 03:33
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Bug Fixes

  • RTL/Overflow: correct initial paint offset for overflow scrollers in RTL; add regression tests.
  • Rendering/Inline: preserve inline span text through WebFListView wrapper stacks; add integration coverage.
  • Rendering/Flexbox: fix RTL cross-axis padding for column flex containers; add regression tests and snapshots.

0.24.13+1

19 Feb 14:00
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

0.24.13+1

Major Features

  • Add flutter 3.41.x support.

0.24.13

19 Feb 09:13
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 ScrollController to avoid layout-time ballistic
    simulations that can trigger asserts with some physics.
  • Routing: use HybridHistoryDelegate.state() for RouteAware callbacks in WebF and
    WebFRouterView (#855).
  • Routing/React: bump @openwebf/react-router to 1.0.1 and align RouterLink with
    @openwebf/react-core-ui component wiring.
  • Flexbox: include gap and border-box extents when computing flex scrollable area; add
    regression snapshots.
  • CSS/Parsing: accept calc(...) in flex shorthand basis parsing; add integration coverage.
  • DOM/Blink: bypass stale CSS batch dirties when Blink is enabled to avoid redundant style
    work.

0.24.12

11 Feb 04:39
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

0.24.12

Major Features

  • Routing: add browser-history routing support for @openwebf/react-router and
    @openwebf/vue-router, improving web-style navigation and RouterLink behavior (#850).
  • Native UIs/Icons: expand webf_lucide_icons support 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 :checked and :disabled matching 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
    showOnScreen regression test (#851).
  • Overflow: fix height collapse for overflow:hidden children inside WebFListView (#850).
  • Rendering/Grid: re-resolve fr row tracks after intrinsic sizing to match expected track
    sizing behavior (#850).
  • Bridge/UICommand: prevent re-entrant flushUICommand calls from causing missing DOM
    elements (#850).
  • Gestures: guard against null attachedRenderer in click handling (#850).
  • Lifecycle: remove asserts that could fire on disposed nodes during teardown (#850).
  • Rendering/Flexbox: correct min-size:auto behavior for replaced elements (e.g. images) in
    flex layouts (#853).

0.24.11

10 Feb 20:29
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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,
    improving WebFListView sizing inside flex containers (#843).
  • RTL: isolate per-subtree direction overrides and support dynamic documentElement.dir
    updates (including logical margin remapping) (#844).
  • Bridge: serialize Dart enums across the native bridge for stable NativeValue round-trips
    (#840).
  • Form Controls: add HTMLOptGroupElement support and resolve related bridge build issues
    (#840).
  • Scrolling: detach overflow scroll listeners on dispose to prevent stale callbacks/leaks.