The float-aware rich-text layout was resetting curX for every block formatting context, including inline-blocks. That made consecutive action buttons overlap. The reset is now limited to block-level BFCs;
inline-blocks retain normal cursor advancement.
Added:
- An always-on deferred CSS regression covering inline anchors, inline-block siblings, and float exclusions.
- Strict action-row and title/domain ordering checks in the opt-in Reddit visual smoke test.
- A small CSS fixture reproducing Reddit’s layout rules.
Track percentage-based margins in UIHTMLWidget and re-resolve them when
the containing parent acquires its final size. This prevents margins
computed against an initial zero-width container from remaining stale
until the viewport is resized.
Add regressions covering percentage margin recomputation and the SS64
footer layout after a deferred stylesheet is loaded.
Reserve stylesheet source positions when link elements are encountered
instead of assigning them when asynchronous loading completes.
Track the stylesheet and rule ordinals explicitly so deferred external
styles retain their document order relative to later inline styles.
Preserve this ordering when extracting marked stylesheet rules.
Add an SS64 regression test covering heading and button styles after a
deferred stylesheet finishes loading.
Resolve percentage dimensions for HTML-backed widgets after their containing
block has a definite size. Apply the resolution during rich-text, flex, and
grid layout without triggering broad layout invalidation.
Rasterize SVGs using their resolved dimensions when intrinsic width or height
attributes are missing or percentage-based.
Add regression coverage for percentage-sized SVGs and the SS64 navigation
buttons and search icon.
Treat UIHTMLInput as the stable HTML/CSS host while keeping its native
control as an anonymous implementation detail.
Prevent author CSS from matching internal control widgets, avoiding
duplicated backgrounds and other styles. Keep valid input types such as
email intact for attribute selectors while falling back to compatible
native implementations.
Synchronize the internal control with the host content box after layout,
including flex sizing, and preserve intrinsic measurement for size and
font changes. Preserve input state across dynamic type changes and make
hidden transitions reversible.
Also fix border-radius calculations and add regressions for CSS ownership,
anonymous widget isolation, dynamic type changes, input sizing, and the
Causality newsletter form.
- parse slash-separated background position and size without requiring whitespace
- recognize custom-property background images following an explicit size
- resolve root body and html minimum heights against the layout viewport
- avoid expanding semantic document boxes to the scrollable content extent
- handle auto margins and percentage offsets correctly for absolute positioning
- add DuckDuckGo layout and background shorthand regression tests
- document the Xvfb limitation with multisampled OpenGL contexts
Fix:
- User fallback now uses "user-fallback-font".
- Built-in CJK and custom fallback fonts remain registered together.
- Added and passed a regression test verifying both fallback resources remain in the chain.
Fixes in premake5.lua:
- Removed obsolete PRECISE_F32=1; Wasm already provides precise float behavior.
- Moved ENVIRONMENT=worker,web to final application link options.
Fixed MarkdownView not getting the correct CSS style from the base theme.
Resolve CSS variable values at the points where properties are applied,
inherited, propagated, and used to seed transitions. This prevents raw
var() values from leaking into widget state or transition start/end
values when style attributes, inherited properties, or state-dependent
rules are involved.
Also refresh style definitions when widgets load so selector-dependent
rules are evaluated with the final widget context, and add regression
coverage for inline style vars, inherited vars, parent-state child rules,
tab close opacity, and foreground tint transitions.
Preserve shrink-to-fit widths for floated HTML boxes whose CSS width is
auto, instead of letting their own block layout expand them back to the
containing block width. This matches the CSS float model and fixes floated
list-item menus where hover boxes were much wider than their content.
Also separate RichText visual font metrics from CSS line-box metrics. Text
runs now keep native font height for drawing while line layout still uses
CSS line-height, allowing the expected half-leading offset for vertically
centered text in block anchors.