Repository navigation
CTX-PROOF-3: viewport units proven on min-height, max-height, min-width and max-width - #211
Merged
Merged
Conversation
…tes scrolls that script, fragment links or focus start, and the native output starts none); web still refuses it
…and gridItem fields, grid lowering and grid contexts Rebuilt from grid-g1a (#32, 2196d59 through 00877f4) onto origin/master as one unstacked branch. input.ts: display grid, LayoutStyle.grid and LayoutStyle.gridItem (null where unused); validate.ts: array and nullable rules and the grid shape rules; environment.ts (where master now zooms the input) zooms px track breadths and fit-content limits; the native harness decodes the fields and the native emitter builds them. lower/grid-layout.ts resolves every item line in the compiler as Blink's GridLineResolver does. Grid contexts in analysis/context.ts. The engine still refuses display: grid (grid-layout). Changes for master since #32: replaced elements (REPL-a) in a grid container carry their placement (lowerReplaced, and checkGrid checks replaced children too); display: grid on a replaced element is refused in lowering and by the validator.
…he lowering, checked by the validator) and for display: grid on a replaced element
…in grid: null and gridItem: null on every style (additive; a JSON round trip with indent 1, as the files are written)
…ed leaves too (REPL-a landed after #32); PASS over 2200 vectors
…ixed point after 3 passes): every vector gains grid: null and gridItem: null (check-grid-input-additive PASS: 2200 vectors, 39964 styles), the translated engine and harness, the native corpora, the animator cases and the host lanes record
…grid fields instead of crashing on it; state-program.test's hand-built style gains grid: null and gridItem: null (CI failure on cbeb232)
…n and device-run steps blame the tree, a setup step falls back to the local run
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: b79e6c2 Run: https://github.com/compiled-run/dragoncss/actions/runs/37385909525
…is that shard's, not the tree's
…eyframes, and frame fixtures for the web easing, direction and fill gaps - css/aliases/animation.ts: the 14 Chrome 145 alias_for entries of transition and animation (none uses UseAliasParsing). - @-webkit-keyframes parses as @Keyframes (css_parser_impl.cc ConsumeKeyframesRule); a same-named unprefixed rule beats it in either order, as ScopedStyleResolver::AddKeyframeStyle decides; it keys its own at-rule:@-webkit-keyframes feature. - Frame fixtures (ltr and rtl): anim-easings (transition ease-in, ease-out, ease-in-out, step-start, step-end), anim-timing (every animation easing), anim-direction (alternate, reverse, fill backwards) and anim-webkit (every alias, alias and property in both orders, and the @-webkit-keyframes precedence).
…e, and list aliases.test.ts on the css_parser_impl.cc entry
… regen, fixed point after 4 passes; then pnpm notices:gen): the Chrome frame captures of anim-easings, anim-timing, anim-direction and anim-webkit (ltr and rtl), the web profile rows, the emitted CSS, NOTICES, the animator rt-vectors, the translate corpus and the host lanes record
…iler's line resolution, a port) and core/style/grid_area.h (kGridMaxTracks, a reference), fetched at 145.0.7632.6 with their file and header sha256 and located ranges (landing full test: chrome-ports)
…ition of a batch prepared at once in its own worktree (master plus PRs 1..k, installed, regenerated to its fixed point under the heavy lease), then assembled in order on the actual chain with the device step; an ejection ends the speculation
… rt-vectors/animator/cases.json (ANIM-b2's frame fixtures bring it to 26), with a short-run check; it pinned 18
…that build's failure ejects); abandoned preparations are waited out before their worktrees are reused; position worktrees kept within a disk budget and removed at a run's end (and after each builder); prepared trees and regen commits checked against regen's declared outputs, not the review-ignore list
Commands: pnpm regen; pnpm run parity:devices; pnpm regen
Commands: pnpm regen
…-height, min-width and max-width min-height: 100vh and max-height: 100vh in block flow are refused only for lack of a fixture (height: <length-vh> is proven; the engine resolves viewport lengths the same way for every size). One fixture in ltr and rtl: vh, vw, vmin and vmax on the four min and max sizes in block flow and on flex items, each checked in Chrome to move a frame. Group unit-contexts, one GROUPS line
Commands: pnpm regen
GRID G1a input: grid and gridItem engine fields, grid lowering and grid contexts, unstacked on master (supersedes #32)
land CI steps: judge a failed job by its failed step (setup failures fall back, never blame the PR)
NA-NATIVE: scroll-behavior is not applicable on native (OVFL lane)
Commands: pnpm regen
land: parallel position builds (prepare every position of a batch at once; devices serialize)
…(FAILED, label, comment), not only once the whole batch has built
Commands: pnpm regen; pnpm run parity:devices; pnpm regen
ANIM-b slice 2: -webkit- transition/animation aliases, @-webkit-keyframes, and web frame fixtures for easings, direction and fill backwards
Commands: pnpm regen
Commands: pnpm regen; pnpm run parity:devices; pnpm regen
thejackshelton
added a commit
that referenced
this pull request
Oct 6, 2026
… into ovfl-a: no textual conflicts locally (GitHub's conflict was in files the dragon merge drivers resolve); fixtures.ts keeps master's groups and OVFL's overflow line
thejackshelton
added a commit
that referenced
this pull request
Oct 6, 2026
thejackshelton
added a commit
that referenced
this pull request
Oct 6, 2026
…supports. seams.test.ts keeps both sides: ANIM-b2's @-webkit-keyframes as @Keyframes and CASC's @supports leave the refused list, with @layer as the enclosing at-rule; the pinned hash 48d27023… equals casc-supports' own (1b8eacf) for the same list, so every other at-rule is unchanged
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.
CTX-PROOF-3. This PR adds one parity fixture proving viewport units (vh, vw, vmin, vmax) on
min-height,max-height,min-widthandmax-width.min-height: 100vh(the full-screen idiom) andmax-height: 100vhin block flow were refused only because no fixture used a viewport unit on those properties.height: <length-vh>was already proven, and the engine resolves viewport lengths the same way for every size. There is no engine, compiler, gate or tolerance change. Reviewed diff: about 3 KB.How the batch was found
I swept the coverage-rank probes, the Tailwind sweep and the music player for refusals whose value kind is already handled elsewhere. I started from the CSS-wide keyword sweep the lane was asked for:
width: initialanddisplay: revert, both proven by CASC 1: @supports decided at build time as Chrome 145 decides it; revert and revert-layer; CSS-wide keyword rows #200. The 8 Tailwind keyword refusals are on properties Dragon does not support at all.font-size: small(absolute-size keywords) andfont-size: 120%both fail lowering ("no layout mapping (expected px)"). They need compiler work, and the keywords need a ruling on whatmediummeans under the device text size.white-space: pre,text-align: justify, gradients, and the native animation frame lanes.What changed
unit-contexts(oneGROUPSline) withctx-proof-units, run in ltr and rtl. It contains:min-height: 50vh,max-height: 20vh(underheight: 600px),min-width: 50vw,max-width: 25vw,min-height: 10vminandmax-width: 30vmaxin block flow.min-height: 15vh,min-width: 20vw,max-height: 5vhandmax-width: 10vwon flex-row items.Result
min-height: 100vhandmax-height: 100vhpromoted on all three targets.What passed
pnpm regenreached a fixed point. The outputs are in their own commit.pnpm typecheck: pass.vitest run packages/layout packages/dragon(the CI platform-free set): 103 files, 2354 tests pass.No fixture, test, check or tolerance was changed or removed.
🤖 Generated with Claude Code