Skip to content

Commit faaf3ca

Browse files
committed
[css-scoping-1] Define that tree-scoped names inherit into descendant shadow trees. #5693 #1995
1 parent 861a5e0 commit faaf3ca

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

css-scoping-1/Overview.bs

+20-5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ spec:dom; type:dfn;
2121
text:root; for:tree
2222
text:find slottables
2323
text:find flattened slottables
24+
text:element; for:/
2425
spec:html; type:element; text:style
2526
spec:selectors-4; type:dfn;
2627
text: static profile
@@ -69,7 +70,7 @@ Default Styles for Custom Elements</h2>
6970
to create a stylesheet of "default element styles" for a given element.
7071
This stylesheet applies across the entire document,
7172
in all <a>shadow trees</a>,
72-
and the rules in it apply at the <a>user agent origin</a>,
73+
and the rules in it apply at the <a>user-agent origin</a>,
7374
so author-level rules automatically win.
7475

7576
{{Window}}s gain a private slot <dfn attribute for=Window>\[[defaultElementStylesMap]]</dfn>
@@ -80,7 +81,7 @@ Default Styles for Custom Elements</h2>
8081

8182
Note: This implies, in particular,
8283
that they apply to all <a>shadow trees</a> in every document,
83-
and that the declarations in them are from the <a>user agent origin</a>.
84+
and that the declarations in them are from the <a>user-agent origin</a>.
8485

8586
For the purpose of the <a>cascade</a>,
8687
these stylesheets are ordered after the user agent's own stylesheets;
@@ -528,6 +529,15 @@ Slots and Slotted Elements in a Shadow Tree</h4>
528529
and any deeper <a>slots</a> that their <a>slot</a> gets assigned to,
529530
don't affect inheritance.
530531

532+
<!--
533+
████████ ████████ ████████ ████████ ██████ ██████ ███████ ████████ ████████ ████████
534+
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
535+
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
536+
██ ████████ ██████ ██████ ███████ ██████ ██ ██ ██ ████████ ██████ ██ ██
537+
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
538+
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
539+
██ ██ ██ ████████ ████████ ██████ ██████ ███████ ██ ████████ ████████
540+
-->
531541

532542
<h3 id='shadow-names'>
533543
Name-Defining Constructs and Inheritance</h3>
@@ -555,7 +565,7 @@ Name-Defining Constructs and Inheritance</h3>
555565
and doesn't give surprising results.
556566

557567
If an at-rule or property defines a name that other CSS constructs can refer to it by,
558-
such as a 'font-family!!descriptor' name
568+
such as a ''@font-face'' '@font-face/font-family!!descriptor' name
559569
or an ''@keyframes'' name,
560570
it must be defined as a <dfn export for=CSS>tree-scoped name</dfn>.
561571
[=Tree-scoped names=] are "global" within a particular [=node tree=];
@@ -576,8 +586,13 @@ Name-Defining Constructs and Inheritance</h3>
576586

577587
Whenever a [=tree-scoped reference=] is dereferenced
578588
to find the CSS construct it is referencing,
579-
only the [=tree-scoped names=] associated with the same [=root=]
589+
first search only the [=tree-scoped names=] associated with the same [=root=]
580590
as the [=tree-scoped reference=] must be searched.
591+
If no relevant [=tree-scoped name=] is found,
592+
and the [=root=] is a [=shadow root=],
593+
then repeat this search in the [=root=]'s [=host=]'s [=node tree=].
594+
(In other words, [=tree-scoped names=] "inherit" into descendant shadow trees,
595+
so long as they don't define the same name themselves.)
581596

582597
<div class=issue>
583598
TODO: Fix all the at-rules that define global names,
@@ -596,7 +611,7 @@ Name-Defining Constructs and Inheritance</h3>
596611
<h4 id='shadow-names-serialization'>
597612
Serialized Tree-Scoped References</h4>
598613

599-
If a [=tree-scoped reference=] is [=serialized=],
614+
If a [=tree-scoped reference=] is serialized,
600615
it serializes only its value;
601616
the associated [=root=] is lost.
602617

0 commit comments

Comments
 (0)