Skip to content

Commit bcb5af7

Browse files
docs(consolidation): record the visibility rung in the D-N register
The current-state corpus count moves to 92, and the dated addendum records the rung's two findings: the per-element inheritance reading the un-hide cell forces, and the entry split the oracle itself caught — a standalone outermost <svg> ignores display:none where an embedded root generates no box, which is exactly why cells are baked from the entry they gate.
1 parent 0825f8f commit bcb5af7

1 file changed

Lines changed: 38 additions & 1 deletion

File tree

docs/wg/consolidation/svg-engine-of-record.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ from eight addenda:
4646
`preserveAspectRatio` grammar; and one exact-time
4747
`<animate attributeName="x">` on a top-level `<rect>`.
4848
`crates/n0_cli/README.md` is the statement of record.
49-
- **The corpus** is 85 Chromium-baked primitive cells plus 10 sampled frames.
49+
- **The corpus** is 92 Chromium-baked primitive cells plus 10 sampled frames.
5050
All byte-exact except six curved cells carrying a declared, geometrically
5151
confined tolerance; the departure is the weighted rational conic alone.
5252
- **Not claimed:** no conformance score exists or may be computed — FLIP is
@@ -901,3 +901,40 @@ refusal rows graduated (the enumeration gate forces the move), the L0
901901
admitted probe. The points shapes inherit the path patrols — `pathLength`
902902
and the marker properties stay refusals — and `points_contract.rs` is the
903903
rung's law file.
904+
905+
## Addendum — the visibility rung (2026-07-31)
906+
907+
`display: none` and `visibility` are consumed — the first rung that turns
908+
over-refusals into the correct nothing rather than admitting new paint.
909+
Both enter as presentation hints through the one cascade (csscascade's
910+
admitted set grew its ninth and tenth properties, precedence-law-gated),
911+
so the attribute and every CSS spelling resolve identically and an author
912+
rule beats the attribute — measured, and baked as the un-hide cell.
913+
914+
**The split is semantic, and each half is measured.** `display: none`
915+
generates no box: the subtree is pruned and a `visibility: visible`
916+
descendant stays gone. `visibility: hidden` and `collapse` (identical for
917+
shapes) turn off one element's *own* paint; the property inherits, and a
918+
descendant whose computed value is `visible` un-hides itself — the walk
919+
therefore still descends through hidden containers, and each element's own
920+
computed value decides its node. Neither is a hole: nothing is declared,
921+
because Chromium also paints nothing — `r="0"`'s admitted nothing,
922+
restated. A pruned or hidden element's other unconsumed properties stay
923+
silent too: a refusal there would turn a correct nothing into a false
924+
alarm. `display: contents` stays a named refusal (its own corpus row): it
925+
paints children in the parent's place, which the flattened walk cannot
926+
express without dropping a transform silently.
927+
928+
**The oracle corrected the probe.** An embedded-context probe suggested a
929+
root `display: none` never paints; the bake of `svg-display-none-root`
930+
showed a **standalone** document's outermost `<svg>` ignores the property
931+
and paints normally — only an embedded (inline-HTML) root generates no
932+
box. The compiler now splits by entry, the law file pins both halves, and
933+
the divergence between probe context and document context is exactly why
934+
cells are baked from the entry they gate.
935+
936+
**Seven cells, byte-exact** (92 total): the shape and container prunes,
937+
the standalone-root proof, hidden and collapse, the descendant un-hide,
938+
and the author-rule-beats-attribute cell. `visibility_contract.rs` is the
939+
rung's law file; the smuggle law's display/visibility rows graduated into
940+
it, and `svg-display-contents` replaced the pair in the refusal corpus.

0 commit comments

Comments
 (0)