Skip to content

Add @layer cascade layers (block and statement forms)#219

Open
jhaygood86 wants to merge 1 commit into
TylerBrinks:masterfrom
jhaygood86:feature/cascade-layers
Open

Add @layer cascade layers (block and statement forms)#219
jhaygood86 wants to merge 1 commit into
TylerBrinks:masterfrom
jhaygood86:feature/cascade-layers

Conversation

@jhaygood86

Copy link
Copy Markdown
Contributor

Summary

Adds parsing for the @layer cascade-layer at-rule (CSS Cascade 5):

  • Block form@layer name { rules }, including anonymous @layer { rules } — modeled as a grouping rule (LayerRule / public ILayerRule with a Name).
  • Statement form@layer a, b, c; — declaring layer order with no rules (LayerStatementRule, exposing the ordered Names).

Adds the Layer / LayerStatement RuleTypes and a StylesheetComposer.CreateLayer dispatch with a comma-separated, dotted-ident (framework.utilities) name reader.

This adds the object-model representation only — cascade precedence between layers is left to the consumer (ExCSS does no cascade resolution).

Tests

CascadeLayerTests — named/anonymous block layers, dotted names, statement-form ordered names, round-trips, and @layer among other rules. Full suite green across all target frameworks.

Ported from PeachPDF, which vendors ExCSS.

Parse the @layer at-rule (CSS Cascade 5): the block form
`@layer name { rules }` (incl. anonymous `@layer { rules }`) as a
grouping rule (LayerRule/ILayerRule), and the order-declaring statement
form `@layer a, b, c;` (LayerStatementRule). Adds the Layer/LayerStatement
rule types and a StylesheetComposer.CreateLayer dispatch with a comma-
separated, dotted-ident name reader.

Cascade precedence between layers is left to the consumer; this adds the
object-model representation only.

Ported from PeachPDF, which vendors ExCSS.
@jhaygood86
jhaygood86 marked this pull request as ready for review July 24, 2026 20:00
@jhaygood86
jhaygood86 marked this pull request as draft July 24, 2026 20:35
@jhaygood86
jhaygood86 marked this pull request as ready for review July 24, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant