Enable parley line-box strut and plumb vertical-align for inline boxes - #685
Open
nicoburns wants to merge 5 commits into
Open
Enable parley line-box strut and plumb vertical-align for inline boxes#685nicoburns wants to merge 5 commits into
nicoburns wants to merge 5 commits into
Conversation
Re-pins parley to the strut/vertical-align commit, enables set_compute_strut(true) for inline layouts, and maps Stylo's baseline-shift top/bottom keywords to parley's InlineBoxVerticalAlign.
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
staging-devin-ai-integration
Bot
force-pushed
the
devin/1786131935-parley-git-dep
branch
from
August 18, 2026 21:18
262905f to
7d1d6b1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Blitz-side plumbing for the parley strut/vertical-align stack (DioxusLabs/parley#9 → #10 → #7), which fixes two WPT regression groups from the parley 0.10 → 0.11 upgrade (negative half-leading clamped away; no strut on text-less lines):
bb7159a(the stack head).build_inline_layout_intocallsbuilder.set_compute_strut(true)so every line box is sized as if it began with a zero-width glyph in the root style (the CSS 2 § 10.8 "strut").baseline-shift: top/bottomkeywords onto the newInlineBox::vertical_alignfield; everything else staysBaseline.append_inline_box_to_line(next_x, Option<InlineBoxAlignment>, quantize)signature (out-of-flow boxes passNoneso they no longer contribute(0, 0)extents that clamp negative leading).WPT results (manual run)
css/CSS2+css/css-fonts+css/css-backgrounds+css/css-text(8868 tests) vs the unmodifieddevin/1786131935-parley-git-depbranch: 5038 passing vs 4948 before — 98 newly passing, 8 newly failing. Newly passing covers theline-height-*cluster (Group B), text-less-line strut tests (Group C1),first-available-font-003/004, and thefloats-wrap-bfc-002-*vertical-align: bottomtests (Group C2).Still failing / newly failing (pre-existing Blitz limitations exposed by the strut, not special-cased):
css/CSS2/fonts/font-family-applies-to-005.xht(C4: 1px metric quantization)css/css-break/ruby-003.html,css/css-ruby/br-clear-all-000.html(C3: ruby)css/CSS2/lists/list-style{,-image,-type}-applies-to-01{2,4}.xht— empty list-item markers don't create a line box, so the now-correct baseline alignment of the empty inline-block wrapper shifts the markercss/CSS2/normal-flow/inline-table-width-002b.xht— inline-table baseline (Group A territory)css/css-fonts/font-colorization.html— first-available-font selection needsunicode-rangesupport (Blink treats a face with nounicode-rangeas covering U+0020 regardless of its cmap)Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/6ab608fbe6fb46479d6dab03fedceb25
Requested by: @nicoburns