Commit Graph
118 Commits
Author SHA1 Message Date
SGavrl 6d4ce11aa1 Keep declarative shadow templates inert 2026-07-30 22:04:01 +00:00
SGavrl a008a484d3 Constrain non-stretched flex text 2026-07-30 21:44:49 +00:00
SGavrl 90c64b2c31 Support safe column subgrid propagation 2026-07-30 21:15:28 +00:00
SGavrl 661212e6aa Fix framework layout and image transforms 2026-07-30 20:58:05 +00:00
SGavrl a5555d78c8 Fix replaced element aspect ratios 2026-07-30 20:41:58 +00:00
SGavrl 277753d31d Support responsive images and atomic multicol 2026-07-30 20:38:33 +00:00
SGavrl 10b8492116 Improve modern layout and viewport rendering 2026-07-30 20:24:57 +00:00
SGavrl 35c54936d5 render: size and paint native selects 2026-07-26 22:11:39 +00:00
SGavrl 237ba35639 render: shape atomic generated controls 2026-07-26 21:51:34 +00:00
SGavrl 9ec43134ae render: honor generated controls and border resets 2026-07-26 21:31:05 +00:00
SGavrl 1b313ecb49 render: retain authored webfont identity 2026-07-26 20:58:28 +00:00
SGavrl 20be62bca9 render: preserve numeric font weights 2026-07-26 20:48:24 +00:00
SGavrl 37f6c93af9 render: paint generated boxes with contextual backgrounds 2026-07-26 19:48:59 +00:00
SGavrl eea960dd32 render: honor text and background intrinsic metrics 2026-07-26 16:04:55 +00:00
SGavrl bc13488df9 render: apply text transforms to UI word leaves 2026-07-26 15:52:29 +00:00
SGavrl 058e3e98a0 render: load preloaded web fonts 2026-07-26 15:46:40 +00:00
SGavrl 9b0b138fb9 render: resolve contextual gaps and empty block lines 2026-07-26 15:33:23 +00:00
SGavrl ca551a996b render: resolve contextual positioned lengths 2026-07-26 14:09:49 +00:00
SGavrl d9f9202737 render: resolve modern responsive geometry 2026-07-26 13:47:09 +00:00
SGavrl 6eafb7d6cc render: size and color inline SVG from CSS 2026-07-26 12:18:07 +00:00
SGavrl 5a89ebd0a3 render: preserve framework inline control rows 2026-07-26 12:06:26 +00:00
SGavrl 3618549842 render: unify responsive geometry and inline gradients 2026-07-26 11:51:44 +00:00
SGavrl 228a5723ce render: support modern framework content and geometry 2026-07-26 10:50:31 +00:00
SGavrl 21dd5819ae render: finalize table row geometry 2026-07-23 22:45:07 +00:00
SGavrl 771528c7ff render: align table track geometry 2026-07-23 21:56:19 +00:00
SGavrl 40a34639ca render: size native input controls 2026-07-23 21:30:35 +00:00
SGavrl 706e110a24 render: preserve forced line break geometry 2026-07-23 21:07:10 +00:00
SGavrl fa471bce43 render: propagate float bands through blocks 2026-07-23 19:56:24 +00:00
SGavrl 07d2c6691f render: clamp intrinsic replaced sizing 2026-07-23 19:22:27 +00:00
SGavrl 4b4d7007d9 render: place right-float navigation bands 2026-07-23 19:01:50 +00:00
SGavrl eff74fc38c render: correct list and mixed float geometry 2026-07-23 18:42:15 +00:00
SGavrl 8422cfccd0 render: honor legacy center layout 2026-07-23 18:05:41 +00:00
SGavrl f6484f51c8 render: preserve absolute static position 2026-07-23 17:30:43 +00:00
SGavrl 2d1f84a29d render: preserve inline block inner flow 2026-07-23 16:24:13 +00:00
SGavrl bd9c161f55 render: separate text and item alignment 2026-07-23 15:58:37 +00:00
SGavrl f83bdd36cf render: contain responsive replaced wrappers 2026-07-23 15:34:57 +00:00
SGavrl 6c77eb2383 render: preserve block fill beside floats 2026-07-23 15:13:40 +00:00
SGavrl 85613b741d render: place opposing floats in one band 2026-07-23 15:03:50 +00:00
SGavrl 9471591c6c render: preserve responsive image grid geometry 2026-07-23 14:48:27 +00:00
SGavrl 735375ee33 render: preserve float flow bands 2026-07-23 14:09:57 +00:00
SGavrl 64b628404b render: ignore non-items in flex layout 2026-07-23 13:34:09 +00:00
SGavrl 29628df548 render: resolve contextual CSS math 2026-07-23 12:53:11 +00:00
SGavrl b13a1e5e71 render: resolve relative box edge lengths 2026-07-23 12:30:44 +00:00
SGavrl 7827a6a788 render: honor modern containing-block triggers
Track transform, filter, backdrop-filter, perspective, containment,
will-change, and content-visibility triggers independently. Use the combined
state for absolute and fixed containing-block ancestry.
2026-07-23 12:02:55 +00:00
SGavrl bbeceb97ad render: honor transform containing blocks
Track every non-none transform as a containing-block trigger, including
unsupported visual transforms. Keep separate nearest-ancestor maps so
positioned boxes capture absolute descendants while only transforms capture
fixed descendants.
2026-07-23 11:47:00 +00:00
SGavrl 6ea1739121 render: position inset boxes against CSS containers
Reparent inset-positioned absolute boxes to the nearest non-static ancestor
and fixed boxes to the initial containing block. Keep auto-axis boxes on the
existing static-position path, distinguish fixed from absolute, and blockify
positioned inline boxes and floats.
2026-07-23 11:34:23 +00:00
SGavrl 4979606a2f render: respect CSS box sizing 2026-07-23 10:06:55 +00:00
SGavrl 3d7a8e2582 render: honor important cascade priority 2026-07-22 12:59:55 +00:00
SGavrl 22f33e4dec render: z-index paint layers and clear ending float zones
Paint order was pure tree order, so a dropdown/overlay declared before a
later sibling lost to it and a z:-1 decorative backdrop covered its own
content. A positioned element with a non-zero z-index now lifts its
whole subtree into a separate paint layer: negative layers under the
normal flow, positive above it, each sorted ascending with tree order
preserved within equal z. Nested z roots paint inside their ancestor
root's subtree in tree order, the pragmatic core of CSS stacking
contexts.

clear (left/right/both, previously unparsed) now ends the float zone,
so a clearfix element drops below the float at full width instead of
joining the flow column beside it.

Repro-verified: an earlier z:10 overlay paints over a later sibling, a
later z:-1 backdrop paints under earlier content, and the clear repro
matches Chromium within 3px on every measure. Spot set unchanged or
slightly improved; obstacle course 33/33.
2026-07-16 13:10:28 +00:00
SGavrl 953292563d render: table vertical-align and specified column/row sizing
Cells now vertical-align the way tables actually do: middle by default
(the effective UA behavior), with author top/middle/bottom parsed and
applied to whichever shape the cell took: main-axis alignment on the
flex-column stand-in, line alignment on a promoted inline context, or a
pinned-origin offset for the pure-text leaf path where the shaped text
height is known at finalize.

Specified column widths finally apply. <col>/<colgroup> widths (style
or attribute, with span) and colspan-1 cell widths are recorded per
column at build time and pinned inside the column-balancing pass: px
directly, percent against the table's content width, with each column's
content min-content still flooring it. The cell's own width is
neutralized once it has fed the column, so the cell box fills its grid
area instead of shrinking to a fraction of its own already-sized track
(a width:50% cell previously ended up at 25 percent). Unspecified
columns keep content sizing but stretch to fill a definite table width
instead of leaving a dead strip of table background. Row and cell
heights act as row minimums.

Verified against Chromium on a 5-case repro (column from cell width,
row backgrounds, vertical alignment, col element width, percent cell in
a fixed table): all match. Wikipedia and the prose spot set unchanged;
obstacle course 33/33.
2026-07-16 12:47:47 +00:00