Implement horizontal margins in the layout engine - #187
Draft
afishhh wants to merge 4 commits into
Draft
Conversation
Make final inline layout operate on differently-typed items. This allows us to re-use the shaped items for multiple layout attempts and means new information can be added to items before layout without needing to assert its presence later.
afishhh
force-pushed
the
horizontal-margins
branch
from
July 20, 2026 19:29
03171b2 to
0bb9f71
Compare
afishhh
force-pushed
the
horizontal-margins
branch
from
July 20, 2026 19:36
0bb9f71 to
afc5ce2
Compare
4 tasks
Owner
Author
|
This structure is a bit more accurate to the box model and css sizing but it's still not good enough to neatly handle additional inner layout algorithms (eg. flexbox). |
afishhh
marked this pull request as draft
July 27, 2026 20:42
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.
This block sizing refactoring is essentially necessary anyway if we want to do anything useful with our block layout.
Vertical margins are not implemented because margin collapsing is actually messed up and evil (we can do without it for now).
Part of trying to expose a layout API to users, not used internally.