Lensby Arxo
Download JSON
Question Saved analysis

Два объявления претендуют на одно свойство. Как каскад решает спор через слои, важность, происхождение и специфичность селектора?

Каскад — не «кто специфичнее», а лестница критериев. Среди обычных объявлений побеждает более поздний слой, но у важных объявлений порядок слоёв переворачивается, и выигрывает более ранний. Объявление вне слоёв бьёт слоевое даже при меньшей специфичности. Сама специфичность сравнивается покомпонентно, слева направо, и лишь при полном равенстве спор решает порядок в документе. Каждый шаг здесь — отдельное выведенное утверждение спецификации, а не эвристика браузера.

This is an assistant explanation, not a calculation result. Check the grounds and sources below.

At a glance

6

Select a result to explore its grounds

Detailed analysis

6

Condition

Обычное: побеждает более поздний слой

Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

Calculation result

Established

Input parameters

What we are finding

declaration is sorted before the other by the cascade

l14r14

Input facts

  • declaration is among the declarations the case records

    d: l14
  • declaration belongs to a style sheet that currently applies to this document

    d: l14
  • every conditional rule qualifying the declaration has a true condition

    d: l14
  • the declaration's property is a known property name

    d: l14
  • the declaration's value matches the syntax for that property

    d: l14
  • declaration belongs to a style rule whose selector matches the element

    d: l14e: target
  • declaration declares this property

    d: l14p: color
  • declaration is sourced from this encapsulation context

    d: l14encapsulation: light-dom
  • specificity of the style rule the declaration appears in, as computed by the Selectors module

    d: l14a: 0b: 0c: 1
  • position of the declaration in document order

    d: l14position: 1
  • declaration has this cascade origin

    d: l14origin: Author Origin: style sheets specified for a source document according to the conventions of the document language
  • declaration is mapped by means of a style rule selector

    d: l14
  • declaration is explicitly assigned to this cascade layer

    d: l14layer: theme
  • declaration is among the declarations the case records

    d: r14
  • declaration belongs to a style sheet that currently applies to this document

    d: r14
  • every conditional rule qualifying the declaration has a true condition

    d: r14
  • the declaration's property is a known property name

    d: r14
  • the declaration's value matches the syntax for that property

    d: r14
  • declaration belongs to a style rule whose selector matches the element

    d: r14e: target
  • declaration declares this property

    d: r14p: color
  • declaration is sourced from this encapsulation context

    d: r14encapsulation: light-dom
  • specificity of the style rule the declaration appears in, as computed by the Selectors module

    d: r14a: 0b: 0c: 1
  • position of the declaration in document order

    d: r14position: 2
  • declaration has this cascade origin

    d: r14origin: Author Origin: style sheets specified for a source document according to the conventions of the document language
  • declaration is mapped by means of a style rule selector

    d: r14
  • declaration is explicitly assigned to this cascade layer

    d: r14layer: reset
  • layer is declared using a @layer block at-rule

    layer: reset
  • layer is not defined inside a conditional group rule

    layer: reset
  • the first layer is first declared before the second in the layer order of its origin and context

    early: resetlate: theme
  • layer is declared using a @layer block at-rule

    layer: theme
  • layer is not defined inside a conditional group rule

    layer: theme

Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

Additional details

Include proof
Yes
Original data · JSON
JSONRead only
{
  "args": [
    "urn:case:css:d:l14",
    "urn:case:css:d:r14"
  ],
  "facts": [
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "declaration_recorded"
    },
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "in_applicable_style_sheet"
    },
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "qualifying_conditions_true"
    },
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "property_is_known"
    },
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "value_matches_property_syntax"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        "urn:case:css:element:target"
      ],
      "predicate": "selector_matches"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        "urn:case:css:property:color"
      ],
      "predicate": "declares_property"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        "urn:case:css:context:light-dom"
      ],
      "predicate": "declaration_context"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        0,
        0,
        1
      ],
      "predicate": "specificity"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        1
      ],
      "predicate": "document_order"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        "AuthorOrigin"
      ],
      "predicate": "declaration_origin"
    },
    {
      "args": [
        "urn:case:css:d:l14"
      ],
      "predicate": "mapped_by_style_rule"
    },
    {
      "args": [
        "urn:case:css:d:l14",
        "urn:case:css:layer:theme"
      ],
      "predicate": "assigned_to_layer"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "declaration_recorded"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "in_applicable_style_sheet"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "qualifying_conditions_true"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "property_is_known"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "value_matches_property_syntax"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        "urn:case:css:element:target"
      ],
      "predicate": "selector_matches"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        "urn:case:css:property:color"
      ],
      "predicate": "declares_property"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        "urn:case:css:context:light-dom"
      ],
      "predicate": "declaration_context"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        0,
        0,
        1
      ],
      "predicate": "specificity"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        2
      ],
      "predicate": "document_order"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        "AuthorOrigin"
      ],
      "predicate": "declaration_origin"
    },
    {
      "args": [
        "urn:case:css:d:r14"
      ],
      "predicate": "mapped_by_style_rule"
    },
    {
      "args": [
        "urn:case:css:d:r14",
        "urn:case:css:layer:reset"
      ],
      "predicate": "assigned_to_layer"
    },
    {
      "args": [
        "urn:case:css:layer:reset"
      ],
      "predicate": "declared_by_layer_block"
    },
    {
      "args": [
        "urn:case:css:layer:reset"
      ],
      "predicate": "declared_outside_conditional_group"
    },
    {
      "args": [
        "urn:case:css:layer:reset",
        "urn:case:css:layer:theme"
      ],
      "predicate": "first_declared_before"
    },
    {
      "args": [
        "urn:case:css:layer:theme"
      ],
      "predicate": "declared_by_layer_block"
    },
    {
      "args": [
        "urn:case:css:layer:theme"
      ],
      "predicate": "declared_outside_conditional_group"
    }
  ],
  "kind": "truth",
  "legalTime": "2026-09-06",
  "package": "w3c-css-cascade",
  "predicate": "wins_cascade",
  "proof": true
}
Why this resultApplied rules and conditions

Derivation path53 steps

  1. 1

    declaration is among the declarations the case records

    d: urn:case:css:d:l14

    case fact
  2. 2

    declaration has this cascade origin

    d: urn:case:css:d:l14; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

    case fact
  3. 3

    declaration is mapped by means of a style rule selector

    d: urn:case:css:d:l14

    case fact
  4. 4

    declaration is explicitly assigned to this cascade layer

    d: urn:case:css:d:l14; layer: urn:case:css:layer:theme

    case fact
  5. 5

    Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

    declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:l14; layer: urn:case:css:layer:theme

    sec. 6_4_3, sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
    rule
  6. 6

    declaration is among the declarations the case records

    d: urn:case:css:d:r14

    case fact
  7. 7

    declaration belongs to a style sheet that currently applies to this document

    d: urn:case:css:d:r14

    case fact
  8. 8

    every conditional rule qualifying the declaration has a true condition

    d: urn:case:css:d:r14

    case fact
  9. 9

    the declaration's property is a known property name

    d: urn:case:css:d:r14

    case fact
  10. 10

    the declaration's value matches the syntax for that property

    d: urn:case:css:d:r14

    case fact
  11. 11

    Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

    declaration is syntactically valid: d: urn:case:css:d:r14

    sec. 5

    Identifier
    urn:w3c:clir:css-cascade#SyntacticallyValid
    rule
  12. 12

    declaration belongs to a style rule whose selector matches the element

    d: urn:case:css:d:r14; e: urn:case:css:element:target

    case fact
  13. 13

    Section 5. A declaration applies to an element when all four filtering conditions hold

    declaration applies to the element: d: urn:case:css:d:r14; e: urn:case:css:element:target

    sec. 5

    Identifier
    urn:w3c:clir:css-cascade#DeclarationApplies
    rule
  14. 14

    declaration belongs to a style sheet that currently applies to this document

    d: urn:case:css:d:l14

    case fact
  15. 15

    declaration declares this property

    d: urn:case:css:d:r14; p: urn:case:css:property:color

    case fact
  16. 16

    Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

    declaration contributes a declared value for this property on this element: d: urn:case:css:d:r14; e: urn:case:css:element:target; p: urn:case:css:property:color

    sec. 4_1, sec. 4

    Identifier
    urn:w3c:clir:css-cascade#DeclaredValueContributed
    rule
  17. 17

    declaration is sourced from this encapsulation context

    d: urn:case:css:d:r14; encapsulation: urn:case:css:context:light-dom

    case fact
  18. 18

    declaration has this cascade origin

    d: urn:case:css:d:r14; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

    case fact
  19. 19

    declaration is mapped by means of a style rule selector

    d: urn:case:css:d:r14

    case fact
  20. 20

    declaration is explicitly assigned to this cascade layer

    d: urn:case:css:d:r14; layer: urn:case:css:layer:reset

    case fact
  21. 21

    Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

    declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:r14; layer: urn:case:css:layer:reset

    sec. 6_4_3, sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
    rule
  22. 22

    layer is declared using a @layer block at-rule

    layer: urn:case:css:layer:reset

    case fact
  23. 23

    Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

    layer is an explicitly declared cascade layer: layer: urn:case:css:layer:reset

    sec. 6_4_1

    Identifier
    urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
    rule
  24. 24

    layer is not defined inside a conditional group rule

    layer: urn:case:css:layer:reset

    case fact
  25. 25

    Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

    layer contributes to the layer order: layer: urn:case:css:layer:reset

    sec. 6_4_3

    Identifier
    urn:w3c:clir:css-cascade#TopLevelLayerContributes
    rule
  26. 26

    the first layer is first declared before the second in the layer order of its origin and context

    early: urn:case:css:layer:reset; late: urn:case:css:layer:theme

    case fact
  27. 27

    every conditional rule qualifying the declaration has a true condition

    d: urn:case:css:d:l14

    case fact
  28. 28

    layer is declared using a @layer block at-rule

    layer: urn:case:css:layer:theme

    case fact
  29. 29

    Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

    layer is an explicitly declared cascade layer: layer: urn:case:css:layer:theme

    sec. 6_4_1

    Identifier
    urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
    rule
  30. 30

    layer is not defined inside a conditional group rule

    layer: urn:case:css:layer:theme

    case fact
  31. 31

    Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

    layer contributes to the layer order: layer: urn:case:css:layer:theme

    sec. 6_4_3

    Identifier
    urn:w3c:clir:css-cascade#TopLevelLayerContributes
    rule
  32. 32

    Section 6.4.3. Cascade layers are sorted by the order in which they first are declared

    the first layer comes before the second in the layer order: early: urn:case:css:layer:reset; late: urn:case:css:layer:theme

    sec. 6_4_3

    Identifier
    urn:w3c:clir:css-cascade#ContributingLayersKeepDeclarationOrder
    rule
  33. 33

    the declaration's property is a known property name

    d: urn:case:css:d:l14

    case fact
  34. 34

    the declaration's value matches the syntax for that property

    d: urn:case:css:d:l14

    case fact
  35. 35

    Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

    declaration is syntactically valid: d: urn:case:css:d:l14

    sec. 5

    Identifier
    urn:w3c:clir:css-cascade#SyntacticallyValid
    rule
  36. 36

    declaration belongs to a style rule whose selector matches the element

    d: urn:case:css:d:l14; e: urn:case:css:element:target

    case fact
  37. 37

    Section 5. A declaration applies to an element when all four filtering conditions hold

    declaration applies to the element: d: urn:case:css:d:l14; e: urn:case:css:element:target

    sec. 5

    Identifier
    urn:w3c:clir:css-cascade#DeclarationApplies
    rule
  38. 38

    declaration declares this property

    d: urn:case:css:d:l14; p: urn:case:css:property:color

    case fact
  39. 39

    Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

    declaration contributes a declared value for this property on this element: d: urn:case:css:d:l14; e: urn:case:css:element:target; p: urn:case:css:property:color

    sec. 4_1, sec. 4

    Identifier
    urn:w3c:clir:css-cascade#DeclaredValueContributed
    rule
  40. 40

    Section 6. The cascade sorts the declared values for a given property on a given element against each other

    two declarations are sorted against each other by the cascade: first: urn:case:css:d:l14; second: urn:case:css:d:r14

    sec. 6, sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#Comparable
    rule
  41. 41

    declaration is sourced from this encapsulation context

    d: urn:case:css:d:l14; encapsulation: urn:case:css:context:light-dom

    case fact
  42. 42

    band occupies this position in the origin-and-importance precedence list

    band: Normal author declarations; rank: 60

    origin not recorded
  43. 43

    the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

    not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:l14

    origin not recorded
  44. 44

    Section 6.3. All other declarations are normal (non-important)

    declaration is normal (non-important): d: urn:case:css:d:l14

    sec. 6_3

    Identifier
    urn:w3c:clir:css-cascade#NormalDeclaration
    rule
  45. 45

    Section 6.1. Normal author declarations occupy the sixth step of the precedence list

    declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:l14; band: Normal author declarations

    sec. 6_1, sec. 6_2

    Identifier
    urn:w3c:clir:css-cascade#NormalAuthorBand
    rule
  46. 46

    the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

    not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:r14

    origin not recorded
  47. 47

    Section 6.3. All other declarations are normal (non-important)

    declaration is normal (non-important): d: urn:case:css:d:r14

    sec. 6_3

    Identifier
    urn:w3c:clir:css-cascade#NormalDeclaration
    rule
  48. 48

    Section 6.1. Normal author declarations occupy the sixth step of the precedence list

    declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:r14; band: Normal author declarations

    sec. 6_1, sec. 6_2

    Identifier
    urn:w3c:clir:css-cascade#NormalAuthorBand
    rule
  49. 49

    Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

    origin and importance did not separate the declarations: first: urn:case:css:d:l14; second: urn:case:css:d:r14

    sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#OriginAndImportanceTied
    rule
  50. 50

    Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

    encapsulation context did not separate the declarations: first: urn:case:css:d:l14; second: urn:case:css:d:r14

    sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#ContextTied
    rule
  51. 51

    Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

    element-attached styles did not separate the declarations: first: urn:case:css:d:l14; second: urn:case:css:d:r14

    sec. 6_1

    Identifier
    urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
    rule
  52. 52

    Section 6.1, Layers. For normal rules the declaration whose cascade layer is last wins

    declaration is sorted before the other by the cascade: winner: urn:case:css:d:l14; loser: urn:case:css:d:r14

    sec. 6_1, sec. 6_4

    Identifier
    urn:w3c:clir:css-cascade#LayerDecidesForNormal
    rule
  53. 53

    Query evaluation

    query

verified by the engine: 23 · case fact: 27 · origin not recorded: 3 · Full graph: 84 nodes

Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

Basis of this answer

Rules on the saved proof path for this answer.

Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
  • Section 6. The cascade sorts the declared values for a given property on a given element against each other

    Identifier
    urn:w3c:clir:css-cascade#Comparable
  • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

    Identifier
    urn:w3c:clir:css-cascade#ContextTied
  • Section 6.4.3. Cascade layers are sorted by the order in which they first are declared

    Identifier
    urn:w3c:clir:css-cascade#ContributingLayersKeepDeclarationOrder
  • Section 5. A declaration applies to an element when all four filtering conditions hold

    Identifier
    urn:w3c:clir:css-cascade#DeclarationApplies
  • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

    Identifier
    urn:w3c:clir:css-cascade#DeclaredValueContributed
  • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

    Identifier
    urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
  • Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

    Identifier
    urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
  • Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

    Identifier
    urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
  • Section 6.1, Layers. For normal rules the declaration whose cascade layer is last wins

    Identifier
    urn:w3c:clir:css-cascade#LayerDecidesForNormal
  • Section 6.1. Normal author declarations occupy the sixth step of the precedence list

    Identifier
    urn:w3c:clir:css-cascade#NormalAuthorBand
  • Section 6.3. All other declarations are normal (non-important)

    Identifier
    urn:w3c:clir:css-cascade#NormalDeclaration
  • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

    Identifier
    urn:w3c:clir:css-cascade#OriginAndImportanceTied
  • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

    Identifier
    urn:w3c:clir:css-cascade#SyntacticallyValid
  • Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

    Identifier
    urn:w3c:clir:css-cascade#TopLevelLayerContributes
Other rules in the evaluation8

Applied in the overall evaluation, but not on the proof path for this answer.

Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
  • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

    Identifier
    urn:w3c:clir:css-cascade#CascadeYieldsValue
  • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

    Identifier
    urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
  • Section 6.4.3. Unlayered style rules are added to an implicit outer layer which has higher priority than (comes after) the explicit layers

    Identifier
    urn:w3c:clir:css-cascade#ExplicitLayersComeBeforeTheImplicitOuterLayer
  • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

    Identifier
    urn:w3c:clir:css-cascade#LayerTied
  • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

    Identifier
    urn:w3c:clir:css-cascade#OutrankedBySome
  • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

    Identifier
    urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
  • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

    Identifier
    urn:w3c:clir:css-cascade#SpecificityTied
  • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

    Identifier
    urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

Derived result for this query

  • declaration is sorted before the other by the cascade

    winner: l14loser: r14
Other derived facts37
  • for the purpose of the revert keyword the declaration belongs to the author origin

    d: l14
  • declaration belongs to this cascade layer for the purpose of the cascade

    d: l14layer: theme
  • declaration is syntactically valid

    d: r14
  • declaration applies to the element

    d: r14e: target
  • declaration contributes a declared value for this property on this element

    d: r14e: targetp: color
  • two declarations are sorted against each other by the cascade

    first: r14second: r14
  • for the purpose of the revert keyword the declaration belongs to the author origin

    d: r14
  • declaration belongs to this cascade layer for the purpose of the cascade

    d: r14layer: reset
  • declaration is syntactically valid

    d: l14
  • declaration applies to the element

    d: l14e: target
  • declaration contributes a declared value for this property on this element

    d: l14e: targetp: color
  • declaration is the cascaded value for this property on this element

    d: l14e: targetp: color
  • two declarations are sorted against each other by the cascade

    firstsecond
    l14r14
    r14l14
    l14l14
  • the specified value is the cascaded value itself

    d: l14e: targetp: color
  • declaration is normal (non-important)

    d: l14
  • declaration belongs to this step of the origin-and-importance list

    d: l14band: Normal author declarations
  • origin and importance did not separate the declarations

    first: l14second: l14
  • encapsulation context did not separate the declarations

    first: l14second: l14
  • element-attached styles did not separate the declarations

    first: l14second: l14
  • cascade layers did not separate the declarations

    first: l14second: l14
  • specificity did not separate the declarations

    first: l14second: l14
  • declaration is normal (non-important)

    d: r14
  • declaration belongs to this step of the origin-and-importance list

    d: r14band: Normal author declarations
  • origin and importance did not separate the declarations

    first: r14second: r14
  • encapsulation context did not separate the declarations

    first: r14second: r14
  • element-attached styles did not separate the declarations

    first: r14second: r14
  • cascade layers did not separate the declarations

    first: r14second: r14
  • origin and importance did not separate the declarations

    first: r14second: l14
  • encapsulation context did not separate the declarations

    first: r14second: l14
  • element-attached styles did not separate the declarations

    first: r14second: l14
  • origin and importance did not separate the declarations

    first: l14second: r14
  • encapsulation context did not separate the declarations

    first: l14second: r14
  • element-attached styles did not separate the declarations

    first: l14second: r14
  • some competing declaration wins the cascade over this one

    d: r14
  • specificity did not separate the declarations

    first: r14second: r14
for the purpose of the revert keyword the declaration belongs to the author origin
d
l14
r14
declaration belongs to this cascade layer for the purpose of the cascade
dlayer
l14urn:case:css:layer:theme
r14urn:case:css:layer:reset
declaration is syntactically valid
d
r14
l14
declaration applies to the element
de
r14urn:case:css:element:target
l14urn:case:css:element:target
declaration contributes a declared value for this property on this element
dep
r14urn:case:css:element:targeturn:case:css:property:color
l14urn:case:css:element:targeturn:case:css:property:color
Relationship graph
urn:case:css:d:r14urn:case:css:d:l14
two declarations are sorted against each other by the cascade
firstsecond
r14r14
l14r14
r14l14
l14l14
declaration is the cascaded value for this property on this element
dep
l14urn:case:css:element:targeturn:case:css:property:color
the specified value is the cascaded value itself
dep
l14urn:case:css:element:targeturn:case:css:property:color
declaration is normal (non-important)
d
l14
r14
declaration belongs to this step of the origin-and-importance list
dband
l14Normal author declarations
r14Normal author declarations
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
origin and importance did not separate the declarations
firstsecond
l14l14
r14r14
r14l14
l14r14
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
encapsulation context did not separate the declarations
firstsecond
l14l14
r14r14
r14l14
l14r14
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
element-attached styles did not separate the declarations
firstsecond
l14l14
r14r14
r14l14
l14r14
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
cascade layers did not separate the declarations
firstsecond
l14l14
r14r14
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
specificity did not separate the declarations
firstsecond
l14l14
r14r14
Relationship graph
urn:case:css:d:l14urn:case:css:d:r14
declaration is sorted before the other by the cascade
winnerloser
l14r14
some competing declaration wins the cascade over this one
d
r14

8 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

Proof graph

Closed list: the set of declarations carrying the !important annotation is closed by the case

closed predicate the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important · snapshot urn:w3c:clir:css-cascade:snapshot:declarations:case · complete as of

in the list
    not in the list (explicit negative by closure)
    • urn:case:css:d:l14
    • urn:case:css:d:r14

    The list is closed by a §70 declaration: a missing record in the snapshot yields an explicit negative with an anti-membership certificate (§231.1). The lists are proof-graph nodes as recorded by the evaluation.

    Proof graph · 10 layer
    query_evaluationwins_cascaderule_applicationLayerDecidesForNormalrule_applicationContributingLayersKeepDeclarationOrdrule_applicationElementAttachedTiedBothMappedrule_applicationExplicitlyAssignedDeclarationIsInTharule_applicationExplicitlyAssignedDeclarationIsInTharule_applicationNormalDeclarationrule_applicationNormalDeclarationrule_applicationTopLevelLayerContributesrule_applicationTopLevelLayerContributesassertionfirst_declared_beforerule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_ruleassertionassigned_to_layerassertionassigned_to_layerassertiondeclaration_recordedassertionhas_important_annotationassertiondeclaration_recordedassertionhas_important_annotationrule_applicationExplicitLayerByLayerBlockassertiondeclared_outside_conditional_grouprule_applicationExplicitLayerByLayerBlockassertiondeclared_outside_conditional_grouprule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextassertiondeclared_by_layer_blockassertiondeclared_by_layer_blockrule_applicationComparablerule_applicationNormalAuthorBandrule_applicationNormalAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedassertiondeclaration_originassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

    Proof nodes: 84 · assertion 32, rule_application 46, candidate_closure 5, query_evaluation 1

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓
    Calendar and proof identifiers
    Proof reference
    mcp
    Original reasoning · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓
    SourcesExcerpts: 15

    section/4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4",
      "kind": "fragment",
      "locator": "section/4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
          "language": "en",
          "status": "official",
          "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
        }
      ]
    }

    section/4_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
      "kind": "fragment",
      "locator": "section/4_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
          "language": "en",
          "status": "official",
          "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
        }
      ]
    }

    section/4_2

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
      "kind": "fragment",
      "locator": "section/4_2",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
          "language": "en",
          "status": "official",
          "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
        }
      ]
    }

    section/4_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
      "kind": "fragment",
      "locator": "section/4_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
          "language": "en",
          "status": "official",
          "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
        }
      ]
    }

    section/5

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S5",
      "kind": "fragment",
      "locator": "section/5",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
          "language": "en",
          "status": "official",
          "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
        }
      ]
    }

    section/6

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6",
      "kind": "fragment",
      "locator": "section/6",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
          "language": "en",
          "status": "official",
          "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
        }
      ]
    }

    section/6_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
      "kind": "fragment",
      "locator": "section/6_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
          "language": "en",
          "status": "official",
          "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
        }
      ]
    }

    section/6_2

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.2. Cascading Origins Each style rule has a cascade origin, which determines where it enters the cascade. CSS defines three core origins: Author Origin The author specifies style sheets for a source document according to the conventions of the document language. For instance, in HTML, style sheets may be included in the document or linked externally. User Origin The user may be able to specify style information for a particular document. For example, the user may specify a file that contains a style sheet or the user agent may provide an interface that generates a user style sheet (or behaves as if it did). User-Agent Origin Conforming user agents must apply a default style sheet (or behave as if they did). A user agent’s default style sheet should present the elements of the document language in ways that satisfy general presentation expectations for the document language (e.g., for visual browsers, the EM element in HTML is presented using an italic font). See e.g. the HTML user agent style sheet. [HTML] Extensions to CSS define the following additional origins: Animation Origin CSS Animations [css-animations-1] generate “virtual” rules representing their effects when running. Transition Origin Like CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:6b324eff99852d174a60d90a89f75215e7e87210bf5a156817effa2ddc4c8294",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_2",
      "kind": "fragment",
      "locator": "section/6_2",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:f221ab39ebcc687e320a2336486650aa7543c9dfa742283a4214efe27251040b",
          "language": "en",
          "status": "official",
          "text": "6.2. Cascading Origins\nEach style rule has a cascade origin,\nwhich determines where it enters the cascade.\nCSS defines three core origins:\nAuthor Origin\nThe author specifies style sheets for a source document\naccording to the conventions of the document language.\nFor instance, in HTML,\nstyle sheets may be included in the document or linked externally.\nUser Origin\nThe user may be able to specify style information for a particular document.\nFor example, the user may specify a file that contains a style sheet\nor the user agent may provide an interface that generates a user style sheet\n(or behaves as if it did).\nUser-Agent Origin\nConforming user agents must apply a default style sheet\n(or behave as if they did).\nA user agent’s default style sheet should present the elements of the document language\nin ways that satisfy general presentation expectations for the document language\n(e.g., for visual browsers, the EM element in HTML is presented using an italic font).\nSee e.g. the HTML user agent style sheet. [HTML]\nExtensions to CSS define the following additional origins:\nAnimation Origin\nCSS Animations [css-animations-1] generate “virtual” rules representing their effects when running.\nTransition Origin\nLike CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running."
        }
      ]
    }

    section/6_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
      "kind": "fragment",
      "locator": "section/6_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
          "language": "en",
          "status": "official",
          "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
        }
      ]
    }

    section/6_4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
      "kind": "fragment",
      "locator": "section/6_4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
          "language": "en",
          "status": "official",
          "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
        }
      ]
    }

    section/6_4_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4.1. Declaring Cascade Layers Cascade layers can be declared: using an @import rule with the layer keyword or layer() function, assigning the contents of the imported file into that layer. using a @layer block at-rule, assigning its child style rules into that layer. using a @layer statement at-rule, declaring a named layer without assigning any rules. Provide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f73f7da5ab24db1edcfbb517ac720af6ea90b869dea1859d4baf5c4fbeff57bf",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4_1",
      "kind": "fragment",
      "locator": "section/6_4_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:c3b580096f3d74ade16cb2be984ef844a3b1213a1702db95e9140c610621ca23",
          "language": "en",
          "status": "official",
          "text": "6.4.1. Declaring Cascade Layers\nCascade layers can be declared:\nusing an @import rule with the layer keyword or layer() function,\nassigning the contents of the imported file into that layer.\nusing a @layer block at-rule,\nassigning its child style rules into that layer.\nusing a @layer statement at-rule,\ndeclaring a named layer without assigning any rules.\nProvide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]"
        }
      ]
    }

    section/6_4_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
      "kind": "fragment",
      "locator": "section/6_4_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
          "language": "en",
          "status": "official",
          "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
        }
      ]
    }

    section/7

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7",
      "kind": "fragment",
      "locator": "section/7",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
          "language": "en",
          "status": "official",
          "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
        }
      ]
    }

    section/7_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
      "kind": "fragment",
      "locator": "section/7_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
          "language": "en",
          "status": "official",
          "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
        }
      ]
    }

    section/7_3_4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
      "kind": "fragment",
      "locator": "section/7_3_4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
          "language": "en",
          "status": "official",
          "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
        }
      ]
    }

    Packages in the snapshot

    • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
    Technical dataFull response, parameters and checksums
    Calculation status
    COMPUTED
    Full engine response
    wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:l14); in_layer(urn:case:css:d:l14, urn:case:css:layer:theme); syntactically_valid(urn:case:css:d:r14); applies_to(urn:case:css:d:r14, urn:case:css:element:target); declared_value_for(urn:case:css:d:r14, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:r14, urn:case:css:d:r14); revert_origin_is_author(urn:case:css:d:r14); in_layer(urn:case:css:d:r14, urn:case:css:layer:reset); syntactically_valid(urn:case:css:d:l14); applies_to(urn:case:css:d:l14, urn:case:css:element:target); declared_value_for(urn:case:css:d:l14, urn:case:css:element:target, urn:case:css:property:color); cascaded_value_from(urn:case:css:d:l14, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:l14, urn:case:css:d:r14); comparable(urn:case:css:d:r14, urn:case:css:d:l14); comparable(urn:case:css:d:l14, urn:case:css:d:l14); specified_value_from_cascade(urn:case:css:d:l14, urn:case:css:element:target, urn:case:css:property:color); normal(urn:case:css:d:l14); declaration_band(urn:case:css:d:l14, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:l14, urn:case:css:d:l14); tied_after_context(urn:case:css:d:l14, urn:case:css:d:l14); tied_after_element_attached(urn:case:css:d:l14, urn:case:css:d:l14); tied_after_layer(urn:case:css:d:l14, urn:case:css:d:l14); tied_after_specificity(urn:case:css:d:l14, urn:case:css:d:l14); normal(urn:case:css:d:r14); declaration_band(urn:case:css:d:r14, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:r14, urn:case:css:d:r14); tied_after_context(urn:case:css:d:r14, urn:case:css:d:r14); tied_after_element_attached(urn:case:css:d:r14, urn:case:css:d:r14); tied_after_layer(urn:case:css:d:r14, urn:case:css:d:r14); tied_after_band(urn:case:css:d:r14, urn:case:css:d:l14); tied_after_context(urn:case:css:d:r14, urn:case:css:d:l14); tied_after_element_attached(urn:case:css:d:r14, urn:case:css:d:l14); tied_after_band(urn:case:css:d:l14, urn:case:css:d:r14); tied_after_context(urn:case:css:d:l14, urn:case:css:d:r14); tied_after_element_attached(urn:case:css:d:l14, urn:case:css:d:r14); wins_cascade(urn:case:css:d:l14, urn:case:css:d:r14); outranked_by_some(urn:case:css:d:r14); tied_after_specificity(urn:case:css:d:r14, urn:case:css:d:r14) …и ещё 8 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, ContributingLayersKeepDeclarationOrder, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, ExplicitLayerByLayerBlock, ExplicitLayersComeBeforeTheImplicitOuterLayer, ExplicitlyAssignedDeclarationIsInThatLayer, LayerDecidesForNormal, LayerTied, NormalAuthorBand, NormalDeclaration, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, TopLevelLayerContributes Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 84 узлов — поле evaluation готово для law_explain

    Complete machine result · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    Execution · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    Display metadata

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    JSON · calculations, sources and exact data

    JSONRead only
    {
      "acts": [
        {
          "contributed": true,
          "fragmentCount": 56,
          "fragments": [
            "urn:w3c:clir:css-cascade#CSS_S4",
            "urn:w3c:clir:css-cascade#CSS_S4_1",
            "urn:w3c:clir:css-cascade#CSS_S4_2",
            "urn:w3c:clir:css-cascade#CSS_S4_3",
            "urn:w3c:clir:css-cascade#CSS_S5",
            "urn:w3c:clir:css-cascade#CSS_S6",
            "urn:w3c:clir:css-cascade#CSS_S6_1",
            "urn:w3c:clir:css-cascade#CSS_S6_2",
            "urn:w3c:clir:css-cascade#CSS_S6_3",
            "urn:w3c:clir:css-cascade#CSS_S6_4",
            "urn:w3c:clir:css-cascade#CSS_S6_4_1",
            "urn:w3c:clir:css-cascade#CSS_S6_4_3",
            "urn:w3c:clir:css-cascade#CSS_S7_3_4"
          ],
          "jurisdiction": "W3C",
          "namespace": "urn:w3c:clir:css-cascade",
          "package": "w3c-css-cascade",
          "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
        }
      ],
      "caseHash": "sha256:1f6dba0296f39f68f0ad846a6233e366f6fc9b3b80dc97a4615cce2539c698a7",
      "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
      "jurisdiction": "W3C — издатель, не правопорядок",
      "legalTime": "2026-09-06",
      "mode": "audit",
      "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
      "resultHash": "sha256:59bef54939978b981c9bbb0ff0ed921746f378372e6705dc98fbfe26063b9861",
      "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
      "timezone": "Asia/Qyzylorda"
    }
    evaluation SHA-256
    sha256:f914da2278f0721b4683c0ecdf9808a40eab2261fd736db4177d83bdd3d49411
    Original data · JSON
    JSONRead only
    {
      "args": [
        "urn:case:css:d:l14",
        "urn:case:css:d:r14"
      ],
      "facts": [
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            1
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:l14"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:l14",
            "urn:case:css:layer:theme"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            2
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:r14"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:r14",
            "urn:case:css:layer:reset"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_outside_conditional_group"
        },
        {
          "args": [
            "urn:case:css:layer:reset",
            "urn:case:css:layer:theme"
          ],
          "predicate": "first_declared_before"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_outside_conditional_group"
        }
      ],
      "kind": "truth",
      "legalTime": "2026-09-06",
      "package": "w3c-css-cascade",
      "predicate": "wins_cascade",
      "proof": true
    }

    Среди обычных объявлений слой, объявленный позже, старше.

    Condition

    Важное: побеждает более ранний слой

    Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

    Calculation result

    Established

    Input parameters

    What we are finding

    declaration is sorted before the other by the cascade

    r15l15

    Input facts

    • declaration is among the declarations the case records

      d: r15
    • declaration belongs to a style sheet that currently applies to this document

      d: r15
    • every conditional rule qualifying the declaration has a true condition

      d: r15
    • the declaration's property is a known property name

      d: r15
    • the declaration's value matches the syntax for that property

      d: r15
    • declaration belongs to a style rule whose selector matches the element

      d: r15e: target
    • declaration declares this property

      d: r15p: color
    • declaration is sourced from this encapsulation context

      d: r15encapsulation: light-dom
    • specificity of the style rule the declaration appears in, as computed by the Selectors module

      d: r15a: 0b: 0c: 1
    • position of the declaration in document order

      d: r15position: 1
    • declaration has this cascade origin

      d: r15origin: Author Origin: style sheets specified for a source document according to the conventions of the document language
    • the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      d: r15
    • declaration is mapped by means of a style rule selector

      d: r15
    • declaration is explicitly assigned to this cascade layer

      d: r15layer: reset
    • declaration is among the declarations the case records

      d: l15
    • declaration belongs to a style sheet that currently applies to this document

      d: l15
    • every conditional rule qualifying the declaration has a true condition

      d: l15
    • the declaration's property is a known property name

      d: l15
    • the declaration's value matches the syntax for that property

      d: l15
    • declaration belongs to a style rule whose selector matches the element

      d: l15e: target
    • declaration declares this property

      d: l15p: color
    • declaration is sourced from this encapsulation context

      d: l15encapsulation: light-dom
    • specificity of the style rule the declaration appears in, as computed by the Selectors module

      d: l15a: 0b: 0c: 1
    • position of the declaration in document order

      d: l15position: 2
    • declaration has this cascade origin

      d: l15origin: Author Origin: style sheets specified for a source document according to the conventions of the document language
    • the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      d: l15
    • declaration is mapped by means of a style rule selector

      d: l15
    • declaration is explicitly assigned to this cascade layer

      d: l15layer: theme
    • layer is declared using a @layer block at-rule

      layer: reset
    • layer is not defined inside a conditional group rule

      layer: reset
    • the first layer is first declared before the second in the layer order of its origin and context

      early: resetlate: theme
    • layer is declared using a @layer block at-rule

      layer: theme
    • layer is not defined inside a conditional group rule

      layer: theme

    Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

    Additional details

    Include proof
    Yes
    Original data · JSON
    JSONRead only
    {
      "args": [
        "urn:case:css:d:r15",
        "urn:case:css:d:l15"
      ],
      "facts": [
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            1
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "has_important_annotation"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:layer:reset"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            2
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "has_important_annotation"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:layer:theme"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_outside_conditional_group"
        },
        {
          "args": [
            "urn:case:css:layer:reset",
            "urn:case:css:layer:theme"
          ],
          "predicate": "first_declared_before"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_outside_conditional_group"
        }
      ],
      "kind": "truth",
      "legalTime": "2026-09-06",
      "package": "w3c-css-cascade",
      "predicate": "wins_cascade",
      "proof": true
    }
    Why this resultApplied rules and conditions

    Derivation path51 steps

    1. 1

      declaration has this cascade origin

      d: urn:case:css:d:r15; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

      case fact
    2. 2

      the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      d: urn:case:css:d:r15

      case fact
    3. 3

      Section 6.3. A declaration is important if it has a !important annotation

      declaration is important: d: urn:case:css:d:r15

      sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#ImportantDeclaration
      rule
    4. 4

      Section 6.1. Important author declarations occupy the fourth step of the precedence list

      declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:r15; band: Important author declarations

      sec. 6_1, sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#ImportantAuthorBand
      rule
    5. 5

      declaration is mapped by means of a style rule selector

      d: urn:case:css:d:r15

      case fact
    6. 6

      declaration is explicitly assigned to this cascade layer

      d: urn:case:css:d:r15; layer: urn:case:css:layer:reset

      case fact
    7. 7

      Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

      declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:r15; layer: urn:case:css:layer:reset

      sec. 6_4_3, sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
      rule
    8. 8

      declaration belongs to a style sheet that currently applies to this document

      d: urn:case:css:d:l15

      case fact
    9. 9

      every conditional rule qualifying the declaration has a true condition

      d: urn:case:css:d:l15

      case fact
    10. 10

      the declaration's property is a known property name

      d: urn:case:css:d:l15

      case fact
    11. 11

      the declaration's value matches the syntax for that property

      d: urn:case:css:d:l15

      case fact
    12. 12

      Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      declaration is syntactically valid: d: urn:case:css:d:l15

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
      rule
    13. 13

      declaration belongs to a style sheet that currently applies to this document

      d: urn:case:css:d:r15

      case fact
    14. 14

      declaration belongs to a style rule whose selector matches the element

      d: urn:case:css:d:l15; e: urn:case:css:element:target

      case fact
    15. 15

      Section 5. A declaration applies to an element when all four filtering conditions hold

      declaration applies to the element: d: urn:case:css:d:l15; e: urn:case:css:element:target

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
      rule
    16. 16

      declaration declares this property

      d: urn:case:css:d:l15; p: urn:case:css:property:color

      case fact
    17. 17

      Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      declaration contributes a declared value for this property on this element: d: urn:case:css:d:l15; e: urn:case:css:element:target; p: urn:case:css:property:color

      sec. 4_1, sec. 4

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
      rule
    18. 18

      declaration is sourced from this encapsulation context

      d: urn:case:css:d:l15; encapsulation: urn:case:css:context:light-dom

      case fact
    19. 19

      declaration has this cascade origin

      d: urn:case:css:d:l15; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

      case fact
    20. 20

      the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      d: urn:case:css:d:l15

      case fact
    21. 21

      Section 6.3. A declaration is important if it has a !important annotation

      declaration is important: d: urn:case:css:d:l15

      sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#ImportantDeclaration
      rule
    22. 22

      Section 6.1. Important author declarations occupy the fourth step of the precedence list

      declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:l15; band: Important author declarations

      sec. 6_1, sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#ImportantAuthorBand
      rule
    23. 23

      declaration is mapped by means of a style rule selector

      d: urn:case:css:d:l15

      case fact
    24. 24

      declaration is explicitly assigned to this cascade layer

      d: urn:case:css:d:l15; layer: urn:case:css:layer:theme

      case fact
    25. 25

      Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

      declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:l15; layer: urn:case:css:layer:theme

      sec. 6_4_3, sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
      rule
    26. 26

      layer is declared using a @layer block at-rule

      layer: urn:case:css:layer:reset

      case fact
    27. 27

      Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

      layer is an explicitly declared cascade layer: layer: urn:case:css:layer:reset

      sec. 6_4_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
      rule
    28. 28

      every conditional rule qualifying the declaration has a true condition

      d: urn:case:css:d:r15

      case fact
    29. 29

      layer is not defined inside a conditional group rule

      layer: urn:case:css:layer:reset

      case fact
    30. 30

      Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

      layer contributes to the layer order: layer: urn:case:css:layer:reset

      sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#TopLevelLayerContributes
      rule
    31. 31

      the first layer is first declared before the second in the layer order of its origin and context

      early: urn:case:css:layer:reset; late: urn:case:css:layer:theme

      case fact
    32. 32

      layer is declared using a @layer block at-rule

      layer: urn:case:css:layer:theme

      case fact
    33. 33

      Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

      layer is an explicitly declared cascade layer: layer: urn:case:css:layer:theme

      sec. 6_4_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
      rule
    34. 34

      layer is not defined inside a conditional group rule

      layer: urn:case:css:layer:theme

      case fact
    35. 35

      Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

      layer contributes to the layer order: layer: urn:case:css:layer:theme

      sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#TopLevelLayerContributes
      rule
    36. 36

      Section 6.4.3. Cascade layers are sorted by the order in which they first are declared

      the first layer comes before the second in the layer order: early: urn:case:css:layer:reset; late: urn:case:css:layer:theme

      sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#ContributingLayersKeepDeclarationOrder
      rule
    37. 37

      the declaration's property is a known property name

      d: urn:case:css:d:r15

      case fact
    38. 38

      the declaration's value matches the syntax for that property

      d: urn:case:css:d:r15

      case fact
    39. 39

      Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      declaration is syntactically valid: d: urn:case:css:d:r15

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
      rule
    40. 40

      declaration belongs to a style rule whose selector matches the element

      d: urn:case:css:d:r15; e: urn:case:css:element:target

      case fact
    41. 41

      Section 5. A declaration applies to an element when all four filtering conditions hold

      declaration applies to the element: d: urn:case:css:d:r15; e: urn:case:css:element:target

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
      rule
    42. 42

      declaration declares this property

      d: urn:case:css:d:r15; p: urn:case:css:property:color

      case fact
    43. 43

      Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      declaration contributes a declared value for this property on this element: d: urn:case:css:d:r15; e: urn:case:css:element:target; p: urn:case:css:property:color

      sec. 4_1, sec. 4

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
      rule
    44. 44

      Section 6. The cascade sorts the declared values for a given property on a given element against each other

      two declarations are sorted against each other by the cascade: first: urn:case:css:d:r15; second: urn:case:css:d:l15

      sec. 6, sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#Comparable
      rule
    45. 45

      declaration is sourced from this encapsulation context

      d: urn:case:css:d:r15; encapsulation: urn:case:css:context:light-dom

      case fact
    46. 46

      band occupies this position in the origin-and-importance precedence list

      band: Important author declarations; rank: 40

      origin not recorded
    47. 47

      Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

      origin and importance did not separate the declarations: first: urn:case:css:d:r15; second: urn:case:css:d:l15

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#OriginAndImportanceTied
      rule
    48. 48

      Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

      encapsulation context did not separate the declarations: first: urn:case:css:d:r15; second: urn:case:css:d:l15

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ContextTied
      rule
    49. 49

      Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

      element-attached styles did not separate the declarations: first: urn:case:css:d:r15; second: urn:case:css:d:l15

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
      rule
    50. 50

      Section 6.1, Layers. For important rules the declaration whose cascade layer is first wins

      declaration is sorted before the other by the cascade: winner: urn:case:css:d:r15; loser: urn:case:css:d:l15

      sec. 6_1, sec. 6_4

      Identifier
      urn:w3c:clir:css-cascade#LayerDecidesForImportant
      rule
    51. 51

      Query evaluation

      query

    verified by the engine: 23 · case fact: 27 · origin not recorded: 1 · Full graph: 82 nodes

    Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

    Basis of this answer

    Rules on the saved proof path for this answer.

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
    • Section 6. The cascade sorts the declared values for a given property on a given element against each other

      Identifier
      urn:w3c:clir:css-cascade#Comparable
    • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#ContextTied
    • Section 6.4.3. Cascade layers are sorted by the order in which they first are declared

      Identifier
      urn:w3c:clir:css-cascade#ContributingLayersKeepDeclarationOrder
    • Section 5. A declaration applies to an element when all four filtering conditions hold

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
    • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
    • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
    • Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
    • Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

      Identifier
      urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
    • Section 6.1. Important author declarations occupy the fourth step of the precedence list

      Identifier
      urn:w3c:clir:css-cascade#ImportantAuthorBand
    • Section 6.3. A declaration is important if it has a !important annotation

      Identifier
      urn:w3c:clir:css-cascade#ImportantDeclaration
    • Section 6.1, Layers. For important rules the declaration whose cascade layer is first wins

      Identifier
      urn:w3c:clir:css-cascade#LayerDecidesForImportant
    • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#OriginAndImportanceTied
    • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
    • Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

      Identifier
      urn:w3c:clir:css-cascade#TopLevelLayerContributes
    Other rules in the evaluation8

    Applied in the overall evaluation, but not on the proof path for this answer.

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
    • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

      Identifier
      urn:w3c:clir:css-cascade#CascadeYieldsValue
    • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

      Identifier
      urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
    • Section 6.4.3. Unlayered style rules are added to an implicit outer layer which has higher priority than (comes after) the explicit layers

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayersComeBeforeTheImplicitOuterLayer
    • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#LayerTied
    • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

      Identifier
      urn:w3c:clir:css-cascade#OutrankedBySome
    • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

      Identifier
      urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
    • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#SpecificityTied
    • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

      Identifier
      urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

    Derived result for this query

    • declaration is sorted before the other by the cascade

      winner: r15loser: l15
    Other derived facts37
    • for the purpose of the revert keyword the declaration belongs to the author origin

      d: r15
    • declaration is important

      d: r15
    • declaration belongs to this step of the origin-and-importance list

      d: r15band: Important author declarations
    • declaration belongs to this cascade layer for the purpose of the cascade

      d: r15layer: reset
    • declaration is syntactically valid

      d: l15
    • declaration applies to the element

      d: l15e: target
    • declaration contributes a declared value for this property on this element

      d: l15e: targetp: color
    • two declarations are sorted against each other by the cascade

      first: l15second: l15
    • for the purpose of the revert keyword the declaration belongs to the author origin

      d: l15
    • declaration is important

      d: l15
    • declaration belongs to this step of the origin-and-importance list

      d: l15band: Important author declarations
    • declaration belongs to this cascade layer for the purpose of the cascade

      d: l15layer: theme
    • declaration is syntactically valid

      d: r15
    • declaration applies to the element

      d: r15e: target
    • declaration contributes a declared value for this property on this element

      d: r15e: targetp: color
    • declaration is the cascaded value for this property on this element

      d: r15e: targetp: color
    • two declarations are sorted against each other by the cascade

      firstsecond
      r15r15
      l15r15
      r15l15
    • the specified value is the cascaded value itself

      d: r15e: targetp: color
    • origin and importance did not separate the declarations

      first: l15second: l15
    • encapsulation context did not separate the declarations

      first: l15second: l15
    • element-attached styles did not separate the declarations

      first: l15second: l15
    • cascade layers did not separate the declarations

      first: l15second: l15
    • origin and importance did not separate the declarations

      first: l15second: r15
    • encapsulation context did not separate the declarations

      first: l15second: r15
    • element-attached styles did not separate the declarations

      first: l15second: r15
    • origin and importance did not separate the declarations

      first: r15second: l15
    • encapsulation context did not separate the declarations

      first: r15second: l15
    • element-attached styles did not separate the declarations

      first: r15second: l15
    • origin and importance did not separate the declarations

      first: r15second: r15
    • encapsulation context did not separate the declarations

      first: r15second: r15
    • element-attached styles did not separate the declarations

      first: r15second: r15
    • cascade layers did not separate the declarations

      first: r15second: r15
    • some competing declaration wins the cascade over this one

      d: l15
    • specificity did not separate the declarations

      firstsecond
      r15r15
      l15l15
    for the purpose of the revert keyword the declaration belongs to the author origin
    d
    r15
    l15
    declaration is important
    d
    r15
    l15
    declaration belongs to this step of the origin-and-importance list
    dband
    r15Important author declarations
    l15Important author declarations
    declaration belongs to this cascade layer for the purpose of the cascade
    dlayer
    r15urn:case:css:layer:reset
    l15urn:case:css:layer:theme
    declaration is syntactically valid
    d
    l15
    r15
    declaration applies to the element
    de
    l15urn:case:css:element:target
    r15urn:case:css:element:target
    declaration contributes a declared value for this property on this element
    dep
    l15urn:case:css:element:targeturn:case:css:property:color
    r15urn:case:css:element:targeturn:case:css:property:color
    Relationship graph
    urn:case:css:d:l15urn:case:css:d:r15
    two declarations are sorted against each other by the cascade
    firstsecond
    l15l15
    r15r15
    l15r15
    r15l15
    declaration is the cascaded value for this property on this element
    dep
    r15urn:case:css:element:targeturn:case:css:property:color
    the specified value is the cascaded value itself
    dep
    r15urn:case:css:element:targeturn:case:css:property:color
    Relationship graph
    urn:case:css:d:l15urn:case:css:d:r15
    origin and importance did not separate the declarations
    firstsecond
    l15l15
    l15r15
    r15l15
    r15r15
    Relationship graph
    urn:case:css:d:l15urn:case:css:d:r15
    encapsulation context did not separate the declarations
    firstsecond
    l15l15
    l15r15
    r15l15
    r15r15
    Relationship graph
    urn:case:css:d:l15urn:case:css:d:r15
    element-attached styles did not separate the declarations
    firstsecond
    l15l15
    l15r15
    r15l15
    r15r15
    Relationship graph
    urn:case:css:d:l15urn:case:css:d:r15
    cascade layers did not separate the declarations
    firstsecond
    l15l15
    r15r15
    Relationship graph
    urn:case:css:d:r15urn:case:css:d:l15
    declaration is sorted before the other by the cascade
    winnerloser
    r15l15
    some competing declaration wins the cascade over this one
    d
    l15
    Relationship graph
    urn:case:css:d:r15urn:case:css:d:l15
    specificity did not separate the declarations
    firstsecond
    r15r15
    l15l15

    8 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

    Proof graph

    Proof graph · 10 layer
    query_evaluationwins_cascaderule_applicationLayerDecidesForImportantrule_applicationContributingLayersKeepDeclarationOrdrule_applicationElementAttachedTiedBothMappedrule_applicationExplicitlyAssignedDeclarationIsInTharule_applicationExplicitlyAssignedDeclarationIsInTharule_applicationImportantDeclarationrule_applicationImportantDeclarationrule_applicationTopLevelLayerContributesrule_applicationTopLevelLayerContributesassertionfirst_declared_beforerule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_ruleassertionassigned_to_layerassertionassigned_to_layerassertionhas_important_annotationassertionhas_important_annotationrule_applicationExplicitLayerByLayerBlockassertiondeclared_outside_conditional_grouprule_applicationExplicitLayerByLayerBlockassertiondeclared_outside_conditional_grouprule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextassertiondeclared_by_layer_blockassertiondeclared_by_layer_blockrule_applicationComparablerule_applicationImportantAuthorBandrule_applicationImportantAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedassertiondeclaration_originassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

    Proof nodes: 82 · assertion 30, rule_application 46, candidate_closure 5, query_evaluation 1

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓
    Calendar and proof identifiers
    Proof reference
    mcp
    Original reasoning · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓
    SourcesExcerpts: 14

    section/4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4",
      "kind": "fragment",
      "locator": "section/4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
          "language": "en",
          "status": "official",
          "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
        }
      ]
    }

    section/4_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
      "kind": "fragment",
      "locator": "section/4_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
          "language": "en",
          "status": "official",
          "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
        }
      ]
    }

    section/4_2

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
      "kind": "fragment",
      "locator": "section/4_2",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
          "language": "en",
          "status": "official",
          "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
        }
      ]
    }

    section/4_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
      "kind": "fragment",
      "locator": "section/4_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
          "language": "en",
          "status": "official",
          "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
        }
      ]
    }

    section/5

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S5",
      "kind": "fragment",
      "locator": "section/5",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
          "language": "en",
          "status": "official",
          "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
        }
      ]
    }

    section/6

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6",
      "kind": "fragment",
      "locator": "section/6",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
          "language": "en",
          "status": "official",
          "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
        }
      ]
    }

    section/6_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
      "kind": "fragment",
      "locator": "section/6_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
          "language": "en",
          "status": "official",
          "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
        }
      ]
    }

    section/6_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
      "kind": "fragment",
      "locator": "section/6_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
          "language": "en",
          "status": "official",
          "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
        }
      ]
    }

    section/6_4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
      "kind": "fragment",
      "locator": "section/6_4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
          "language": "en",
          "status": "official",
          "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
        }
      ]
    }

    section/6_4_1

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4.1. Declaring Cascade Layers Cascade layers can be declared: using an @import rule with the layer keyword or layer() function, assigning the contents of the imported file into that layer. using a @layer block at-rule, assigning its child style rules into that layer. using a @layer statement at-rule, declaring a named layer without assigning any rules. Provide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f73f7da5ab24db1edcfbb517ac720af6ea90b869dea1859d4baf5c4fbeff57bf",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4_1",
      "kind": "fragment",
      "locator": "section/6_4_1",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:c3b580096f3d74ade16cb2be984ef844a3b1213a1702db95e9140c610621ca23",
          "language": "en",
          "status": "official",
          "text": "6.4.1. Declaring Cascade Layers\nCascade layers can be declared:\nusing an @import rule with the layer keyword or layer() function,\nassigning the contents of the imported file into that layer.\nusing a @layer block at-rule,\nassigning its child style rules into that layer.\nusing a @layer statement at-rule,\ndeclaring a named layer without assigning any rules.\nProvide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]"
        }
      ]
    }

    section/6_4_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
      "kind": "fragment",
      "locator": "section/6_4_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
          "language": "en",
          "status": "official",
          "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
        }
      ]
    }

    section/7

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7",
      "kind": "fragment",
      "locator": "section/7",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
          "language": "en",
          "status": "official",
          "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
        }
      ]
    }

    section/7_3

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
      "kind": "fragment",
      "locator": "section/7_3",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
          "language": "en",
          "status": "official",
          "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
        }
      ]
    }

    section/7_3_4

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

    7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
    Original data · JSON
    JSONRead only
    {
      "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
      "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
      "fragmentKind": "section",
      "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
      "kind": "fragment",
      "locator": "section/7_3_4",
      "package": "urn:w3c:clir:css-cascade",
      "texts": [
        {
          "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
          "language": "en",
          "status": "official",
          "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
        }
      ]
    }

    Packages in the snapshot

    • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
    Technical dataFull response, parameters and checksums
    Calculation status
    COMPUTED
    Full engine response
    wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:r15); important(urn:case:css:d:r15); declaration_band(urn:case:css:d:r15, ImportantAuthorDeclarations); in_layer(urn:case:css:d:r15, urn:case:css:layer:reset); syntactically_valid(urn:case:css:d:l15); applies_to(urn:case:css:d:l15, urn:case:css:element:target); declared_value_for(urn:case:css:d:l15, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:l15, urn:case:css:d:l15); revert_origin_is_author(urn:case:css:d:l15); important(urn:case:css:d:l15); declaration_band(urn:case:css:d:l15, ImportantAuthorDeclarations); in_layer(urn:case:css:d:l15, urn:case:css:layer:theme); syntactically_valid(urn:case:css:d:r15); applies_to(urn:case:css:d:r15, urn:case:css:element:target); declared_value_for(urn:case:css:d:r15, urn:case:css:element:target, urn:case:css:property:color); cascaded_value_from(urn:case:css:d:r15, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:r15, urn:case:css:d:r15); comparable(urn:case:css:d:l15, urn:case:css:d:r15); comparable(urn:case:css:d:r15, urn:case:css:d:l15); specified_value_from_cascade(urn:case:css:d:r15, urn:case:css:element:target, urn:case:css:property:color); tied_after_band(urn:case:css:d:l15, urn:case:css:d:l15); tied_after_context(urn:case:css:d:l15, urn:case:css:d:l15); tied_after_element_attached(urn:case:css:d:l15, urn:case:css:d:l15); tied_after_layer(urn:case:css:d:l15, urn:case:css:d:l15); tied_after_band(urn:case:css:d:l15, urn:case:css:d:r15); tied_after_context(urn:case:css:d:l15, urn:case:css:d:r15); tied_after_element_attached(urn:case:css:d:l15, urn:case:css:d:r15); tied_after_band(urn:case:css:d:r15, urn:case:css:d:l15); tied_after_context(urn:case:css:d:r15, urn:case:css:d:l15); tied_after_element_attached(urn:case:css:d:r15, urn:case:css:d:l15); wins_cascade(urn:case:css:d:r15, urn:case:css:d:l15); tied_after_band(urn:case:css:d:r15, urn:case:css:d:r15); tied_after_context(urn:case:css:d:r15, urn:case:css:d:r15); tied_after_element_attached(urn:case:css:d:r15, urn:case:css:d:r15); tied_after_layer(urn:case:css:d:r15, urn:case:css:d:r15); outranked_by_some(urn:case:css:d:l15); tied_after_specificity(urn:case:css:d:r15, urn:case:css:d:r15); tied_after_specificity(urn:case:css:d:l15, urn:case:css:d:l15) …и ещё 8 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, ContributingLayersKeepDeclarationOrder, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, ExplicitLayerByLayerBlock, ExplicitLayersComeBeforeTheImplicitOuterLayer, ExplicitlyAssignedDeclarationIsInThatLayer, ImportantAuthorBand, ImportantDeclaration, LayerDecidesForImportant, LayerTied, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, TopLevelLayerContributes Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 82 узлов — поле evaluation готово для law_explain

    Complete machine result · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    Execution · JSON

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    Display metadata

    This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

    Download JSON ↓

    JSON · calculations, sources and exact data

    JSONRead only
    {
      "acts": [
        {
          "contributed": true,
          "fragmentCount": 56,
          "fragments": [
            "urn:w3c:clir:css-cascade#CSS_S4",
            "urn:w3c:clir:css-cascade#CSS_S4_1",
            "urn:w3c:clir:css-cascade#CSS_S4_2",
            "urn:w3c:clir:css-cascade#CSS_S4_3",
            "urn:w3c:clir:css-cascade#CSS_S5",
            "urn:w3c:clir:css-cascade#CSS_S6",
            "urn:w3c:clir:css-cascade#CSS_S6_1",
            "urn:w3c:clir:css-cascade#CSS_S6_3",
            "urn:w3c:clir:css-cascade#CSS_S6_4",
            "urn:w3c:clir:css-cascade#CSS_S6_4_1",
            "urn:w3c:clir:css-cascade#CSS_S6_4_3",
            "urn:w3c:clir:css-cascade#CSS_S7_3_4"
          ],
          "jurisdiction": "W3C",
          "namespace": "urn:w3c:clir:css-cascade",
          "package": "w3c-css-cascade",
          "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
        }
      ],
      "caseHash": "sha256:175d6dd6602ddd2d557bd254a302bb0dc331cf4c16e57b32cc766c2f91bb5734",
      "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
      "jurisdiction": "W3C — издатель, не правопорядок",
      "legalTime": "2026-09-06",
      "mode": "audit",
      "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
      "resultHash": "sha256:aaf840809c3b64696b99fa44032ee3667900b3fbec13aa1282919e0e0769cf2a",
      "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
      "timezone": "Asia/Qyzylorda"
    }
    evaluation SHA-256
    sha256:227a1fd20627adae1f8e537d00e91c6d1997b5d0340bc4df0355f474ac21d635
    Original data · JSON
    JSONRead only
    {
      "args": [
        "urn:case:css:d:r15",
        "urn:case:css:d:l15"
      ],
      "facts": [
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            1
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "has_important_annotation"
        },
        {
          "args": [
            "urn:case:css:d:r15"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:r15",
            "urn:case:css:layer:reset"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:property:color"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            2
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "has_important_annotation"
        },
        {
          "args": [
            "urn:case:css:d:l15"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:l15",
            "urn:case:css:layer:theme"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_outside_conditional_group"
        },
        {
          "args": [
            "urn:case:css:layer:reset",
            "urn:case:css:layer:theme"
          ],
          "predicate": "first_declared_before"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:theme"
          ],
          "predicate": "declared_outside_conditional_group"
        }
      ],
      "kind": "truth",
      "legalTime": "2026-09-06",
      "package": "w3c-css-cascade",
      "predicate": "wins_cascade",
      "proof": true
    }

    Для важных объявлений порядок слоёв обратный — это отдельное правило, а не исключение из предыдущего.

    Condition

    Вне слоёв бьёт слоевое

    Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

    Calculation result

    Established

    Input parameters

    What we are finding

    declaration is sorted before the other by the cascade

    audioaudio-controls

    Input facts

    • declaration is among the declarations the case records

      d: audio
    • declaration belongs to a style sheet that currently applies to this document

      d: audio
    • every conditional rule qualifying the declaration has a true condition

      d: audio
    • the declaration's property is a known property name

      d: audio
    • the declaration's value matches the syntax for that property

      d: audio
    • declaration belongs to a style rule whose selector matches the element

      d: audioe: target
    • declaration declares this property

      d: audiop: display
    • declaration is sourced from this encapsulation context

      d: audioencapsulation: light-dom
    • specificity of the style rule the declaration appears in, as computed by the Selectors module

      d: audioa: 0b: 0c: 1
    • position of the declaration in document order

      d: audioposition: 1
    • declaration has this cascade origin

      d: audioorigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
    • declaration is mapped by means of a style rule selector

      d: audio
    • declaration is not assigned to any explicit cascade layer

      d: audio
    • declaration is among the declarations the case records

      d: audio-controls
    • declaration belongs to a style sheet that currently applies to this document

      d: audio-controls
    • every conditional rule qualifying the declaration has a true condition

      d: audio-controls
    • the declaration's property is a known property name

      d: audio-controls
    • the declaration's value matches the syntax for that property

      d: audio-controls
    • declaration belongs to a style rule whose selector matches the element

      d: audio-controlse: target
    • declaration declares this property

      d: audio-controlsp: display
    • declaration is sourced from this encapsulation context

      d: audio-controlsencapsulation: light-dom
    • specificity of the style rule the declaration appears in, as computed by the Selectors module

      d: audio-controlsa: 0b: 1c: 1
    • position of the declaration in document order

      d: audio-controlsposition: 2
    • declaration has this cascade origin

      d: audio-controlsorigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
    • declaration is mapped by means of a style rule selector

      d: audio-controls
    • declaration is explicitly assigned to this cascade layer

      d: audio-controlslayer: reset
    • layer is declared using a @layer block at-rule

      layer: reset
    • layer is not defined inside a conditional group rule

      layer: reset

    Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

    Additional details

    Include proof
    Yes
    Original data · JSON
    JSONRead only
    {
      "args": [
        "urn:case:css:d:audio",
        "urn:case:css:d:audio-controls"
      ],
      "facts": [
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            "urn:case:css:property:display"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            0,
            0,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            1
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:audio",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:audio"
          ],
          "predicate": "unlayered_declaration"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "declaration_recorded"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "in_applicable_style_sheet"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "qualifying_conditions_true"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "property_is_known"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "value_matches_property_syntax"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            "urn:case:css:element:target"
          ],
          "predicate": "selector_matches"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            "urn:case:css:property:display"
          ],
          "predicate": "declares_property"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            "urn:case:css:context:light-dom"
          ],
          "predicate": "declaration_context"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            0,
            1,
            1
          ],
          "predicate": "specificity"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            2
          ],
          "predicate": "document_order"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            "AuthorOrigin"
          ],
          "predicate": "declaration_origin"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls"
          ],
          "predicate": "mapped_by_style_rule"
        },
        {
          "args": [
            "urn:case:css:d:audio-controls",
            "urn:case:css:layer:reset"
          ],
          "predicate": "assigned_to_layer"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_by_layer_block"
        },
        {
          "args": [
            "urn:case:css:layer:reset"
          ],
          "predicate": "declared_outside_conditional_group"
        }
      ],
      "kind": "truth",
      "legalTime": "2026-09-06",
      "package": "w3c-css-cascade",
      "predicate": "wins_cascade",
      "proof": true
    }
    Why this resultApplied rules and conditions

    Derivation path48 steps

    1. 1

      declaration is among the declarations the case records

      d: urn:case:css:d:audio

      case fact
    2. 2

      declaration has this cascade origin

      d: urn:case:css:d:audio; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

      case fact
    3. 3

      declaration is mapped by means of a style rule selector

      d: urn:case:css:d:audio

      case fact
    4. 4

      declaration is not assigned to any explicit cascade layer

      d: urn:case:css:d:audio

      case fact
    5. 5

      Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

      declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:audio; layer: implicit outer layer, which unlayered style rules are added to

      sec. 6_1, sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
      rule
    6. 6

      declaration is among the declarations the case records

      d: urn:case:css:d:audio-controls

      case fact
    7. 7

      declaration belongs to a style sheet that currently applies to this document

      d: urn:case:css:d:audio-controls

      case fact
    8. 8

      every conditional rule qualifying the declaration has a true condition

      d: urn:case:css:d:audio-controls

      case fact
    9. 9

      the declaration's property is a known property name

      d: urn:case:css:d:audio-controls

      case fact
    10. 10

      the declaration's value matches the syntax for that property

      d: urn:case:css:d:audio-controls

      case fact
    11. 11

      Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      declaration is syntactically valid: d: urn:case:css:d:audio-controls

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
      rule
    12. 12

      declaration belongs to a style rule whose selector matches the element

      d: urn:case:css:d:audio-controls; e: urn:case:css:element:target

      case fact
    13. 13

      Section 5. A declaration applies to an element when all four filtering conditions hold

      declaration applies to the element: d: urn:case:css:d:audio-controls; e: urn:case:css:element:target

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
      rule
    14. 14

      declaration belongs to a style sheet that currently applies to this document

      d: urn:case:css:d:audio

      case fact
    15. 15

      declaration declares this property

      d: urn:case:css:d:audio-controls; p: urn:case:css:property:display

      case fact
    16. 16

      Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      declaration contributes a declared value for this property on this element: d: urn:case:css:d:audio-controls; e: urn:case:css:element:target; p: urn:case:css:property:display

      sec. 4_1, sec. 4

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
      rule
    17. 17

      declaration is sourced from this encapsulation context

      d: urn:case:css:d:audio-controls; encapsulation: urn:case:css:context:light-dom

      case fact
    18. 18

      declaration has this cascade origin

      d: urn:case:css:d:audio-controls; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

      case fact
    19. 19

      declaration is mapped by means of a style rule selector

      d: urn:case:css:d:audio-controls

      case fact
    20. 20

      declaration is explicitly assigned to this cascade layer

      d: urn:case:css:d:audio-controls; layer: urn:case:css:layer:reset

      case fact
    21. 21

      Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

      declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:audio-controls; layer: urn:case:css:layer:reset

      sec. 6_4_3, sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
      rule
    22. 22

      layer is declared using a @layer block at-rule

      layer: urn:case:css:layer:reset

      case fact
    23. 23

      Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

      layer is an explicitly declared cascade layer: layer: urn:case:css:layer:reset

      sec. 6_4_1

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
      rule
    24. 24

      layer is not defined inside a conditional group rule

      layer: urn:case:css:layer:reset

      case fact
    25. 25

      Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

      layer contributes to the layer order: layer: urn:case:css:layer:reset

      sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#TopLevelLayerContributes
      rule
    26. 26

      Section 6.4.3. Unlayered style rules are added to an implicit outer layer which has higher priority than (comes after) the explicit layers

      the first layer comes before the second in the layer order: early: urn:case:css:layer:reset; late: implicit outer layer, which unlayered style rules are added to

      sec. 6_4_3

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayersComeBeforeTheImplicitOuterLayer
      rule
    27. 27

      every conditional rule qualifying the declaration has a true condition

      d: urn:case:css:d:audio

      case fact
    28. 28

      the declaration's property is a known property name

      d: urn:case:css:d:audio

      case fact
    29. 29

      the declaration's value matches the syntax for that property

      d: urn:case:css:d:audio

      case fact
    30. 30

      Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      declaration is syntactically valid: d: urn:case:css:d:audio

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
      rule
    31. 31

      declaration belongs to a style rule whose selector matches the element

      d: urn:case:css:d:audio; e: urn:case:css:element:target

      case fact
    32. 32

      Section 5. A declaration applies to an element when all four filtering conditions hold

      declaration applies to the element: d: urn:case:css:d:audio; e: urn:case:css:element:target

      sec. 5

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
      rule
    33. 33

      declaration declares this property

      d: urn:case:css:d:audio; p: urn:case:css:property:display

      case fact
    34. 34

      Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      declaration contributes a declared value for this property on this element: d: urn:case:css:d:audio; e: urn:case:css:element:target; p: urn:case:css:property:display

      sec. 4_1, sec. 4

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
      rule
    35. 35

      Section 6. The cascade sorts the declared values for a given property on a given element against each other

      two declarations are sorted against each other by the cascade: first: urn:case:css:d:audio; second: urn:case:css:d:audio-controls

      sec. 6, sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#Comparable
      rule
    36. 36

      declaration is sourced from this encapsulation context

      d: urn:case:css:d:audio; encapsulation: urn:case:css:context:light-dom

      case fact
    37. 37

      band occupies this position in the origin-and-importance precedence list

      band: Normal author declarations; rank: 60

      origin not recorded
    38. 38

      the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:audio

      origin not recorded
    39. 39

      Section 6.3. All other declarations are normal (non-important)

      declaration is normal (non-important): d: urn:case:css:d:audio

      sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#NormalDeclaration
      rule
    40. 40

      Section 6.1. Normal author declarations occupy the sixth step of the precedence list

      declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:audio; band: Normal author declarations

      sec. 6_1, sec. 6_2

      Identifier
      urn:w3c:clir:css-cascade#NormalAuthorBand
      rule
    41. 41

      the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

      not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:audio-controls

      origin not recorded
    42. 42

      Section 6.3. All other declarations are normal (non-important)

      declaration is normal (non-important): d: urn:case:css:d:audio-controls

      sec. 6_3

      Identifier
      urn:w3c:clir:css-cascade#NormalDeclaration
      rule
    43. 43

      Section 6.1. Normal author declarations occupy the sixth step of the precedence list

      declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:audio-controls; band: Normal author declarations

      sec. 6_1, sec. 6_2

      Identifier
      urn:w3c:clir:css-cascade#NormalAuthorBand
      rule
    44. 44

      Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

      origin and importance did not separate the declarations: first: urn:case:css:d:audio; second: urn:case:css:d:audio-controls

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#OriginAndImportanceTied
      rule
    45. 45

      Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

      encapsulation context did not separate the declarations: first: urn:case:css:d:audio; second: urn:case:css:d:audio-controls

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ContextTied
      rule
    46. 46

      Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

      element-attached styles did not separate the declarations: first: urn:case:css:d:audio; second: urn:case:css:d:audio-controls

      sec. 6_1

      Identifier
      urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
      rule
    47. 47

      Section 6.1, Layers. For normal rules the declaration whose cascade layer is last wins

      declaration is sorted before the other by the cascade: winner: urn:case:css:d:audio; loser: urn:case:css:d:audio-controls

      sec. 6_1, sec. 6_4

      Identifier
      urn:w3c:clir:css-cascade#LayerDecidesForNormal
      rule
    48. 48

      Query evaluation

      query

    verified by the engine: 21 · case fact: 24 · origin not recorded: 3 · Full graph: 77 nodes

    Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

    Basis of this answer

    Rules on the saved proof path for this answer.

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
    • Section 6. The cascade sorts the declared values for a given property on a given element against each other

      Identifier
      urn:w3c:clir:css-cascade#Comparable
    • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#ContextTied
    • Section 5. A declaration applies to an element when all four filtering conditions hold

      Identifier
      urn:w3c:clir:css-cascade#DeclarationApplies
    • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

      Identifier
      urn:w3c:clir:css-cascade#DeclaredValueContributed
    • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
    • Section 6.4.1. A cascade layer can be declared using a @layer block at-rule, assigning its child style rules into that layer

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayerByLayerBlock
    • Section 6.4.3. Unlayered style rules are added to an implicit outer layer which has higher priority than (comes after) the explicit layers

      Identifier
      urn:w3c:clir:css-cascade#ExplicitLayersComeBeforeTheImplicitOuterLayer
    • Section 6.4.3. Declarations within each origin and context can be explicitly assigned to a cascade layer

      Identifier
      urn:w3c:clir:css-cascade#ExplicitlyAssignedDeclarationIsInThatLayer
    • Section 6.1, Layers. For normal rules the declaration whose cascade layer is last wins

      Identifier
      urn:w3c:clir:css-cascade#LayerDecidesForNormal
    • Section 6.1. Normal author declarations occupy the sixth step of the precedence list

      Identifier
      urn:w3c:clir:css-cascade#NormalAuthorBand
    • Section 6.3. All other declarations are normal (non-important)

      Identifier
      urn:w3c:clir:css-cascade#NormalDeclaration
    • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#OriginAndImportanceTied
    • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

      Identifier
      urn:w3c:clir:css-cascade#SyntacticallyValid
    • Section 6.4.3. A layer not defined inside a conditional group rule contributes to the layer order

      Identifier
      urn:w3c:clir:css-cascade#TopLevelLayerContributes
    • Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

      Identifier
      urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
    Other rules in the evaluation7

    Applied in the overall evaluation, but not on the proof path for this answer.

    Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
    • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

      Identifier
      urn:w3c:clir:css-cascade#CascadeYieldsValue
    • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

      Identifier
      urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
    • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#LayerTied
    • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

      Identifier
      urn:w3c:clir:css-cascade#OutrankedBySome
    • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

      Identifier
      urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
    • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

      Identifier
      urn:w3c:clir:css-cascade#SpecificityTied
    • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

      Identifier
      urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

    Derived result for this query

    • declaration is sorted before the other by the cascade

      winner: audioloser: audio-controls
    Other derived facts37
    • for the purpose of the revert keyword the declaration belongs to the author origin

      d: audio
    • declaration belongs to this cascade layer for the purpose of the cascade

      d: audiolayer: implicit outer layer, which unlayered style rules are added to
    • declaration is syntactically valid

      d: audio-controls
    • declaration applies to the element

      d: audio-controlse: target
    • declaration contributes a declared value for this property on this element

      d: audio-controlse: targetp: display
    • two declarations are sorted against each other by the cascade

      first: audio-controlssecond: audio-controls
    • for the purpose of the revert keyword the declaration belongs to the author origin

      d: audio-controls
    • declaration belongs to this cascade layer for the purpose of the cascade

      d: audio-controlslayer: reset
    • declaration is syntactically valid

      d: audio
    • declaration applies to the element

      d: audioe: target
    • declaration contributes a declared value for this property on this element

      d: audioe: targetp: display
    • declaration is the cascaded value for this property on this element

      d: audioe: targetp: display
    • two declarations are sorted against each other by the cascade

      firstsecond
      audio-controlsaudio
      audioaudio
      audioaudio-controls
    • the specified value is the cascaded value itself

      d: audioe: targetp: display
    • declaration is normal (non-important)

      d: audio
    • declaration belongs to this step of the origin-and-importance list

      d: audioband: Normal author declarations
    • origin and importance did not separate the declarations

      first: audiosecond: audio
    • encapsulation context did not separate the declarations

      first: audiosecond: audio
    • element-attached styles did not separate the declarations

      first: audiosecond: audio
    • cascade layers did not separate the declarations

      first: audiosecond: audio
    • specificity did not separate the declarations

      first: audiosecond: audio
    • declaration is normal (non-important)

      d: audio-controls
    • declaration belongs to this step of the origin-and-importance list

      d: audio-controlsband: Normal author declarations
    • origin and importance did not separate the declarations

      first: audiosecond: audio-controls
    • encapsulation context did not separate the declarations

      first: audiosecond: audio-controls
    • element-attached styles did not separate the declarations

      first: audiosecond: audio-controls
    • origin and importance did not separate the declarations

      first: audio-controlssecond: audio
    • encapsulation context did not separate the declarations

      first: audio-controlssecond: audio
    • element-attached styles did not separate the declarations

      first: audio-controlssecond: audio
    • origin and importance did not separate the declarations

      first: audio-controlssecond: audio-controls
    • encapsulation context did not separate the declarations

      first: audio-controlssecond: audio-controls
    • element-attached styles did not separate the declarations

      first: audio-controlssecond: audio-controls
    • cascade layers did not separate the declarations

      first: audio-controlssecond: audio-controls
    • some competing declaration wins the cascade over this one

      d: audio-controls
    • specificity did not separate the declarations

      first: audio-controlssecond: audio-controls
    for the purpose of the revert keyword the declaration belongs to the author origin
    d
    audio
    audio-controls
    declaration belongs to this cascade layer for the purpose of the cascade
    dlayer
    audioimplicit outer layer, which unlayered style rules are added to
    audio-controlsurn:case:css:layer:reset
    declaration is syntactically valid
    d
    audio-controls
    audio
    declaration applies to the element
    de
    audio-controlsurn:case:css:element:target
    audiourn:case:css:element:target
    declaration contributes a declared value for this property on this element
    dep
    audio-controlsurn:case:css:element:targeturn:case:css:property:display
    audiourn:case:css:element:targeturn:case:css:property:display
    Relationship graph
    urn:case:css:d:audio-controlsurn:case:css:d:audio
    two declarations are sorted against each other by the cascade
    firstsecond
    audio-controlsaudio-controls
    audio-controlsaudio
    audioaudio
    audioaudio-controls
    declaration is the cascaded value for this property on this element
    dep
    audiourn:case:css:element:targeturn:case:css:property:display
    the specified value is the cascaded value itself
    dep
    audiourn:case:css:element:targeturn:case:css:property:display
    declaration is normal (non-important)
    d
    audio
    audio-controls
    declaration belongs to this step of the origin-and-importance list
    dband
    audioNormal author declarations
    audio-controlsNormal author declarations
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    origin and importance did not separate the declarations
    firstsecond
    audioaudio
    audioaudio-controls
    audio-controlsaudio
    audio-controlsaudio-controls
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    encapsulation context did not separate the declarations
    firstsecond
    audioaudio
    audioaudio-controls
    audio-controlsaudio
    audio-controlsaudio-controls
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    element-attached styles did not separate the declarations
    firstsecond
    audioaudio
    audioaudio-controls
    audio-controlsaudio
    audio-controlsaudio-controls
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    cascade layers did not separate the declarations
    firstsecond
    audioaudio
    audio-controlsaudio-controls
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    specificity did not separate the declarations
    firstsecond
    audioaudio
    audio-controlsaudio-controls
    Relationship graph
    urn:case:css:d:audiourn:case:css:d:audio-controls
    declaration is sorted before the other by the cascade
    winnerloser
    audioaudio-controls
    some competing declaration wins the cascade over this one
    d
    audio-controls

    4 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

    Proof graph

    Closed list: the set of declarations carrying the !important annotation is closed by the case

    closed predicate the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important · snapshot urn:w3c:clir:css-cascade:snapshot:declarations:case · complete as of

    in the list
      not in the list (explicit negative by closure)
      • urn:case:css:d:audio
      • urn:case:css:d:audio-controls

      The list is closed by a §70 declaration: a missing record in the snapshot yields an explicit negative with an anti-membership certificate (§231.1). The lists are proof-graph nodes as recorded by the evaluation.

      Proof graph · 10 layer
      query_evaluationwins_cascaderule_applicationLayerDecidesForNormalrule_applicationElementAttachedTiedBothMappedrule_applicationExplicitLayersComeBeforeTheImplicitOrule_applicationExplicitlyAssignedDeclarationIsInTharule_applicationNormalDeclarationrule_applicationNormalDeclarationrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_rulerule_applicationExplicitLayerByLayerBlockrule_applicationTopLevelLayerContributesassertionassigned_to_layerassertiondeclaration_recordedassertionhas_important_annotationassertiondeclaration_recordedassertionhas_important_annotationassertionunlayered_declarationrule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextassertiondeclared_by_layer_blockassertiondeclared_outside_conditional_grouprule_applicationComparablerule_applicationNormalAuthorBandrule_applicationNormalAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedassertiondeclaration_originassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

      Proof nodes: 77 · assertion 29, rule_application 42, candidate_closure 5, query_evaluation 1

      This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

      Download JSON ↓
      Calendar and proof identifiers
      Proof reference
      mcp
      Original reasoning · JSON

      This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

      Download JSON ↓
      SourcesExcerpts: 15

      section/4

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S4",
        "kind": "fragment",
        "locator": "section/4",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
            "language": "en",
            "status": "official",
            "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
          }
        ]
      }

      section/4_1

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
        "kind": "fragment",
        "locator": "section/4_1",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
            "language": "en",
            "status": "official",
            "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
          }
        ]
      }

      section/4_2

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
        "kind": "fragment",
        "locator": "section/4_2",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
            "language": "en",
            "status": "official",
            "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
          }
        ]
      }

      section/4_3

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
        "kind": "fragment",
        "locator": "section/4_3",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
            "language": "en",
            "status": "official",
            "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
          }
        ]
      }

      section/5

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S5",
        "kind": "fragment",
        "locator": "section/5",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
            "language": "en",
            "status": "official",
            "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
          }
        ]
      }

      section/6

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6",
        "kind": "fragment",
        "locator": "section/6",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
            "language": "en",
            "status": "official",
            "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
          }
        ]
      }

      section/6_1

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
        "kind": "fragment",
        "locator": "section/6_1",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
            "language": "en",
            "status": "official",
            "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
          }
        ]
      }

      section/6_2

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.2. Cascading Origins Each style rule has a cascade origin, which determines where it enters the cascade. CSS defines three core origins: Author Origin The author specifies style sheets for a source document according to the conventions of the document language. For instance, in HTML, style sheets may be included in the document or linked externally. User Origin The user may be able to specify style information for a particular document. For example, the user may specify a file that contains a style sheet or the user agent may provide an interface that generates a user style sheet (or behaves as if it did). User-Agent Origin Conforming user agents must apply a default style sheet (or behave as if they did). A user agent’s default style sheet should present the elements of the document language in ways that satisfy general presentation expectations for the document language (e.g., for visual browsers, the EM element in HTML is presented using an italic font). See e.g. the HTML user agent style sheet. [HTML] Extensions to CSS define the following additional origins: Animation Origin CSS Animations [css-animations-1] generate “virtual” rules representing their effects when running. Transition Origin Like CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:6b324eff99852d174a60d90a89f75215e7e87210bf5a156817effa2ddc4c8294",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_2",
        "kind": "fragment",
        "locator": "section/6_2",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:f221ab39ebcc687e320a2336486650aa7543c9dfa742283a4214efe27251040b",
            "language": "en",
            "status": "official",
            "text": "6.2. Cascading Origins\nEach style rule has a cascade origin,\nwhich determines where it enters the cascade.\nCSS defines three core origins:\nAuthor Origin\nThe author specifies style sheets for a source document\naccording to the conventions of the document language.\nFor instance, in HTML,\nstyle sheets may be included in the document or linked externally.\nUser Origin\nThe user may be able to specify style information for a particular document.\nFor example, the user may specify a file that contains a style sheet\nor the user agent may provide an interface that generates a user style sheet\n(or behaves as if it did).\nUser-Agent Origin\nConforming user agents must apply a default style sheet\n(or behave as if they did).\nA user agent’s default style sheet should present the elements of the document language\nin ways that satisfy general presentation expectations for the document language\n(e.g., for visual browsers, the EM element in HTML is presented using an italic font).\nSee e.g. the HTML user agent style sheet. [HTML]\nExtensions to CSS define the following additional origins:\nAnimation Origin\nCSS Animations [css-animations-1] generate “virtual” rules representing their effects when running.\nTransition Origin\nLike CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running."
          }
        ]
      }

      section/6_3

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
        "kind": "fragment",
        "locator": "section/6_3",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
            "language": "en",
            "status": "official",
            "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
          }
        ]
      }

      section/6_4

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
        "kind": "fragment",
        "locator": "section/6_4",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
            "language": "en",
            "status": "official",
            "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
          }
        ]
      }

      section/6_4_1

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.4.1. Declaring Cascade Layers Cascade layers can be declared: using an @import rule with the layer keyword or layer() function, assigning the contents of the imported file into that layer. using a @layer block at-rule, assigning its child style rules into that layer. using a @layer statement at-rule, declaring a named layer without assigning any rules. Provide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:f73f7da5ab24db1edcfbb517ac720af6ea90b869dea1859d4baf5c4fbeff57bf",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_4_1",
        "kind": "fragment",
        "locator": "section/6_4_1",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:c3b580096f3d74ade16cb2be984ef844a3b1213a1702db95e9140c610621ca23",
            "language": "en",
            "status": "official",
            "text": "6.4.1. Declaring Cascade Layers\nCascade layers can be declared:\nusing an @import rule with the layer keyword or layer() function,\nassigning the contents of the imported file into that layer.\nusing a @layer block at-rule,\nassigning its child style rules into that layer.\nusing a @layer statement at-rule,\ndeclaring a named layer without assigning any rules.\nProvide an attribute for assigning link or style elements to cascade layers? [Issue #w3c/csswg-drafts#5853]"
          }
        ]
      }

      section/6_4_3

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
        "kind": "fragment",
        "locator": "section/6_4_3",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
            "language": "en",
            "status": "official",
            "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
          }
        ]
      }

      section/7

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S7",
        "kind": "fragment",
        "locator": "section/7",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
            "language": "en",
            "status": "official",
            "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
          }
        ]
      }

      section/7_3

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
        "kind": "fragment",
        "locator": "section/7_3",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
            "language": "en",
            "status": "official",
            "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
          }
        ]
      }

      section/7_3_4

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

      7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
      Original data · JSON
      JSONRead only
      {
        "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
        "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
        "fragmentKind": "section",
        "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
        "kind": "fragment",
        "locator": "section/7_3_4",
        "package": "urn:w3c:clir:css-cascade",
        "texts": [
          {
            "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
            "language": "en",
            "status": "official",
            "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
          }
        ]
      }

      Packages in the snapshot

      • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
      Technical dataFull response, parameters and checksums
      Calculation status
      COMPUTED
      Full engine response
      wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:audio); in_layer(urn:case:css:d:audio, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:audio-controls); applies_to(urn:case:css:d:audio-controls, urn:case:css:element:target); declared_value_for(urn:case:css:d:audio-controls, urn:case:css:element:target, urn:case:css:property:display); comparable(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls); revert_origin_is_author(urn:case:css:d:audio-controls); in_layer(urn:case:css:d:audio-controls, urn:case:css:layer:reset); syntactically_valid(urn:case:css:d:audio); applies_to(urn:case:css:d:audio, urn:case:css:element:target); declared_value_for(urn:case:css:d:audio, urn:case:css:element:target, urn:case:css:property:display); cascaded_value_from(urn:case:css:d:audio, urn:case:css:element:target, urn:case:css:property:display); comparable(urn:case:css:d:audio-controls, urn:case:css:d:audio); comparable(urn:case:css:d:audio, urn:case:css:d:audio); comparable(urn:case:css:d:audio, urn:case:css:d:audio-controls); specified_value_from_cascade(urn:case:css:d:audio, urn:case:css:element:target, urn:case:css:property:display); normal(urn:case:css:d:audio); declaration_band(urn:case:css:d:audio, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:audio, urn:case:css:d:audio); tied_after_context(urn:case:css:d:audio, urn:case:css:d:audio); tied_after_element_attached(urn:case:css:d:audio, urn:case:css:d:audio); tied_after_layer(urn:case:css:d:audio, urn:case:css:d:audio); tied_after_specificity(urn:case:css:d:audio, urn:case:css:d:audio); normal(urn:case:css:d:audio-controls); declaration_band(urn:case:css:d:audio-controls, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:audio, urn:case:css:d:audio-controls); tied_after_context(urn:case:css:d:audio, urn:case:css:d:audio-controls); tied_after_element_attached(urn:case:css:d:audio, urn:case:css:d:audio-controls); wins_cascade(urn:case:css:d:audio, urn:case:css:d:audio-controls); tied_after_band(urn:case:css:d:audio-controls, urn:case:css:d:audio); tied_after_context(urn:case:css:d:audio-controls, urn:case:css:d:audio); tied_after_element_attached(urn:case:css:d:audio-controls, urn:case:css:d:audio); tied_after_band(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls); tied_after_context(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls); tied_after_element_attached(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls); tied_after_layer(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls); outranked_by_some(urn:case:css:d:audio-controls); tied_after_specificity(urn:case:css:d:audio-controls, urn:case:css:d:audio-controls) …и ещё 4 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, ExplicitLayerByLayerBlock, ExplicitLayersComeBeforeTheImplicitOuterLayer, ExplicitlyAssignedDeclarationIsInThatLayer, LayerDecidesForNormal, LayerTied, NormalAuthorBand, NormalDeclaration, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, TopLevelLayerContributes, UnlayeredDeclarationIsInTheImplicitOuterLayer Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 77 узлов — поле evaluation готово для law_explain

      Complete machine result · JSON

      This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

      Download JSON ↓

      Execution · JSON

      This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

      Download JSON ↓

      Display metadata

      This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

      Download JSON ↓

      JSON · calculations, sources and exact data

      JSONRead only
      {
        "acts": [
          {
            "contributed": true,
            "fragmentCount": 56,
            "fragments": [
              "urn:w3c:clir:css-cascade#CSS_S4",
              "urn:w3c:clir:css-cascade#CSS_S4_1",
              "urn:w3c:clir:css-cascade#CSS_S4_2",
              "urn:w3c:clir:css-cascade#CSS_S4_3",
              "urn:w3c:clir:css-cascade#CSS_S5",
              "urn:w3c:clir:css-cascade#CSS_S6",
              "urn:w3c:clir:css-cascade#CSS_S6_1",
              "urn:w3c:clir:css-cascade#CSS_S6_2",
              "urn:w3c:clir:css-cascade#CSS_S6_3",
              "urn:w3c:clir:css-cascade#CSS_S6_4",
              "urn:w3c:clir:css-cascade#CSS_S6_4_1",
              "urn:w3c:clir:css-cascade#CSS_S6_4_3",
              "urn:w3c:clir:css-cascade#CSS_S7_3_4"
            ],
            "jurisdiction": "W3C",
            "namespace": "urn:w3c:clir:css-cascade",
            "package": "w3c-css-cascade",
            "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
          }
        ],
        "caseHash": "sha256:897cdb338f699c4860fd86d0d3b89c932748e63dd56802f2425f93f0be7f905b",
        "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
        "jurisdiction": "W3C — издатель, не правопорядок",
        "legalTime": "2026-09-06",
        "mode": "audit",
        "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
        "resultHash": "sha256:8db350ff1c7cd5c005da73c01d3b0c1753e83c1f587775c06a38fdc98f80a1f4",
        "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
        "timezone": "Asia/Qyzylorda"
      }
      evaluation SHA-256
      sha256:871e8f2a70cfbb70f84c818166f87a579418dd6cf49dc36d9ccbf75f091fd418
      Original data · JSON
      JSONRead only
      {
        "args": [
          "urn:case:css:d:audio",
          "urn:case:css:d:audio-controls"
        ],
        "facts": [
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "declaration_recorded"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "in_applicable_style_sheet"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "qualifying_conditions_true"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "property_is_known"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "value_matches_property_syntax"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              "urn:case:css:element:target"
            ],
            "predicate": "selector_matches"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              "urn:case:css:property:display"
            ],
            "predicate": "declares_property"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              "urn:case:css:context:light-dom"
            ],
            "predicate": "declaration_context"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              0,
              0,
              1
            ],
            "predicate": "specificity"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              1
            ],
            "predicate": "document_order"
          },
          {
            "args": [
              "urn:case:css:d:audio",
              "AuthorOrigin"
            ],
            "predicate": "declaration_origin"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "mapped_by_style_rule"
          },
          {
            "args": [
              "urn:case:css:d:audio"
            ],
            "predicate": "unlayered_declaration"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "declaration_recorded"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "in_applicable_style_sheet"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "qualifying_conditions_true"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "property_is_known"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "value_matches_property_syntax"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              "urn:case:css:element:target"
            ],
            "predicate": "selector_matches"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              "urn:case:css:property:display"
            ],
            "predicate": "declares_property"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              "urn:case:css:context:light-dom"
            ],
            "predicate": "declaration_context"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              0,
              1,
              1
            ],
            "predicate": "specificity"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              2
            ],
            "predicate": "document_order"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              "AuthorOrigin"
            ],
            "predicate": "declaration_origin"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls"
            ],
            "predicate": "mapped_by_style_rule"
          },
          {
            "args": [
              "urn:case:css:d:audio-controls",
              "urn:case:css:layer:reset"
            ],
            "predicate": "assigned_to_layer"
          },
          {
            "args": [
              "urn:case:css:layer:reset"
            ],
            "predicate": "declared_by_layer_block"
          },
          {
            "args": [
              "urn:case:css:layer:reset"
            ],
            "predicate": "declared_outside_conditional_group"
          }
        ],
        "kind": "truth",
        "legalTime": "2026-09-06",
        "package": "w3c-css-cascade",
        "predicate": "wins_cascade",
        "proof": true
      }

      Объявление вне слоёв выигрывает, даже когда его специфичность ниже.

      Condition

      Специфичность: первая компонента

      Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

      Calculation result

      Established

      Input parameters

      What we are finding

      declaration is sorted before the other by the cascade

      s17as17b

      Input facts

      • declaration is among the declarations the case records

        d: s17a
      • declaration belongs to a style sheet that currently applies to this document

        d: s17a
      • every conditional rule qualifying the declaration has a true condition

        d: s17a
      • the declaration's property is a known property name

        d: s17a
      • the declaration's value matches the syntax for that property

        d: s17a
      • declaration belongs to a style rule whose selector matches the element

        d: s17ae: target
      • declaration declares this property

        d: s17ap: color
      • declaration is sourced from this encapsulation context

        d: s17aencapsulation: light-dom
      • specificity of the style rule the declaration appears in, as computed by the Selectors module

        d: s17aa: 1b: 0c: 0
      • position of the declaration in document order

        d: s17aposition: 1
      • declaration has this cascade origin

        d: s17aorigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
      • declaration is mapped by means of a style rule selector

        d: s17a
      • declaration is not assigned to any explicit cascade layer

        d: s17a
      • declaration is among the declarations the case records

        d: s17b
      • declaration belongs to a style sheet that currently applies to this document

        d: s17b
      • every conditional rule qualifying the declaration has a true condition

        d: s17b
      • the declaration's property is a known property name

        d: s17b
      • the declaration's value matches the syntax for that property

        d: s17b
      • declaration belongs to a style rule whose selector matches the element

        d: s17be: target
      • declaration declares this property

        d: s17bp: color
      • declaration is sourced from this encapsulation context

        d: s17bencapsulation: light-dom
      • specificity of the style rule the declaration appears in, as computed by the Selectors module

        d: s17ba: 0b: 9c: 9
      • position of the declaration in document order

        d: s17bposition: 2
      • declaration has this cascade origin

        d: s17borigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
      • declaration is mapped by means of a style rule selector

        d: s17b
      • declaration is not assigned to any explicit cascade layer

        d: s17b

      Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

      Additional details

      Include proof
      Yes
      Original data · JSON
      JSONRead only
      {
        "args": [
          "urn:case:css:d:s17a",
          "urn:case:css:d:s17b"
        ],
        "facts": [
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "declaration_recorded"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "in_applicable_style_sheet"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "qualifying_conditions_true"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "property_is_known"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "value_matches_property_syntax"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              "urn:case:css:element:target"
            ],
            "predicate": "selector_matches"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              "urn:case:css:property:color"
            ],
            "predicate": "declares_property"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              "urn:case:css:context:light-dom"
            ],
            "predicate": "declaration_context"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              1,
              0,
              0
            ],
            "predicate": "specificity"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              1
            ],
            "predicate": "document_order"
          },
          {
            "args": [
              "urn:case:css:d:s17a",
              "AuthorOrigin"
            ],
            "predicate": "declaration_origin"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "mapped_by_style_rule"
          },
          {
            "args": [
              "urn:case:css:d:s17a"
            ],
            "predicate": "unlayered_declaration"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "declaration_recorded"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "in_applicable_style_sheet"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "qualifying_conditions_true"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "property_is_known"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "value_matches_property_syntax"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              "urn:case:css:element:target"
            ],
            "predicate": "selector_matches"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              "urn:case:css:property:color"
            ],
            "predicate": "declares_property"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              "urn:case:css:context:light-dom"
            ],
            "predicate": "declaration_context"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              0,
              9,
              9
            ],
            "predicate": "specificity"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              2
            ],
            "predicate": "document_order"
          },
          {
            "args": [
              "urn:case:css:d:s17b",
              "AuthorOrigin"
            ],
            "predicate": "declaration_origin"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "mapped_by_style_rule"
          },
          {
            "args": [
              "urn:case:css:d:s17b"
            ],
            "predicate": "unlayered_declaration"
          }
        ],
        "kind": "truth",
        "legalTime": "2026-09-06",
        "package": "w3c-css-cascade",
        "predicate": "wins_cascade",
        "proof": true
      }
      Why this resultApplied rules and conditions

      Derivation path46 steps

      1. 1

        declaration is among the declarations the case records

        d: urn:case:css:d:s17a

        case fact
      2. 2

        declaration has this cascade origin

        d: urn:case:css:d:s17a; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

        case fact
      3. 3

        declaration is mapped by means of a style rule selector

        d: urn:case:css:d:s17a

        case fact
      4. 4

        declaration is not assigned to any explicit cascade layer

        d: urn:case:css:d:s17a

        case fact
      5. 5

        Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

        declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:s17a; layer: implicit outer layer, which unlayered style rules are added to

        sec. 6_1, sec. 6_4_3

        Identifier
        urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
        rule
      6. 6

        declaration is among the declarations the case records

        d: urn:case:css:d:s17b

        case fact
      7. 7

        declaration belongs to a style sheet that currently applies to this document

        d: urn:case:css:d:s17b

        case fact
      8. 8

        every conditional rule qualifying the declaration has a true condition

        d: urn:case:css:d:s17b

        case fact
      9. 9

        the declaration's property is a known property name

        d: urn:case:css:d:s17b

        case fact
      10. 10

        the declaration's value matches the syntax for that property

        d: urn:case:css:d:s17b

        case fact
      11. 11

        Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

        declaration is syntactically valid: d: urn:case:css:d:s17b

        sec. 5

        Identifier
        urn:w3c:clir:css-cascade#SyntacticallyValid
        rule
      12. 12

        declaration belongs to a style rule whose selector matches the element

        d: urn:case:css:d:s17b; e: urn:case:css:element:target

        case fact
      13. 13

        Section 5. A declaration applies to an element when all four filtering conditions hold

        declaration applies to the element: d: urn:case:css:d:s17b; e: urn:case:css:element:target

        sec. 5

        Identifier
        urn:w3c:clir:css-cascade#DeclarationApplies
        rule
      14. 14

        declaration belongs to a style sheet that currently applies to this document

        d: urn:case:css:d:s17a

        case fact
      15. 15

        declaration declares this property

        d: urn:case:css:d:s17b; p: urn:case:css:property:color

        case fact
      16. 16

        Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

        declaration contributes a declared value for this property on this element: d: urn:case:css:d:s17b; e: urn:case:css:element:target; p: urn:case:css:property:color

        sec. 4_1, sec. 4

        Identifier
        urn:w3c:clir:css-cascade#DeclaredValueContributed
        rule
      17. 17

        declaration is sourced from this encapsulation context

        d: urn:case:css:d:s17b; encapsulation: urn:case:css:context:light-dom

        case fact
      18. 18

        specificity of the style rule the declaration appears in, as computed by the Selectors module

        d: urn:case:css:d:s17b; a: 0; b: 9; c: 9

        case fact
      19. 19

        declaration has this cascade origin

        d: urn:case:css:d:s17b; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

        case fact
      20. 20

        declaration is mapped by means of a style rule selector

        d: urn:case:css:d:s17b

        case fact
      21. 21

        declaration is not assigned to any explicit cascade layer

        d: urn:case:css:d:s17b

        case fact
      22. 22

        Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

        declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:s17b; layer: implicit outer layer, which unlayered style rules are added to

        sec. 6_1, sec. 6_4_3

        Identifier
        urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
        rule
      23. 23

        every conditional rule qualifying the declaration has a true condition

        d: urn:case:css:d:s17a

        case fact
      24. 24

        the declaration's property is a known property name

        d: urn:case:css:d:s17a

        case fact
      25. 25

        the declaration's value matches the syntax for that property

        d: urn:case:css:d:s17a

        case fact
      26. 26

        Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

        declaration is syntactically valid: d: urn:case:css:d:s17a

        sec. 5

        Identifier
        urn:w3c:clir:css-cascade#SyntacticallyValid
        rule
      27. 27

        declaration belongs to a style rule whose selector matches the element

        d: urn:case:css:d:s17a; e: urn:case:css:element:target

        case fact
      28. 28

        Section 5. A declaration applies to an element when all four filtering conditions hold

        declaration applies to the element: d: urn:case:css:d:s17a; e: urn:case:css:element:target

        sec. 5

        Identifier
        urn:w3c:clir:css-cascade#DeclarationApplies
        rule
      29. 29

        declaration declares this property

        d: urn:case:css:d:s17a; p: urn:case:css:property:color

        case fact
      30. 30

        Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

        declaration contributes a declared value for this property on this element: d: urn:case:css:d:s17a; e: urn:case:css:element:target; p: urn:case:css:property:color

        sec. 4_1, sec. 4

        Identifier
        urn:w3c:clir:css-cascade#DeclaredValueContributed
        rule
      31. 31

        Section 6. The cascade sorts the declared values for a given property on a given element against each other

        two declarations are sorted against each other by the cascade: first: urn:case:css:d:s17a; second: urn:case:css:d:s17b

        sec. 6, sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#Comparable
        rule
      32. 32

        declaration is sourced from this encapsulation context

        d: urn:case:css:d:s17a; encapsulation: urn:case:css:context:light-dom

        case fact
      33. 33

        specificity of the style rule the declaration appears in, as computed by the Selectors module

        d: urn:case:css:d:s17a; a: 1; b: 0; c: 0

        case fact
      34. 34

        band occupies this position in the origin-and-importance precedence list

        band: Normal author declarations; rank: 60

        origin not recorded
      35. 35

        the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

        not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:s17a

        origin not recorded
      36. 36

        Section 6.3. All other declarations are normal (non-important)

        declaration is normal (non-important): d: urn:case:css:d:s17a

        sec. 6_3

        Identifier
        urn:w3c:clir:css-cascade#NormalDeclaration
        rule
      37. 37

        Section 6.1. Normal author declarations occupy the sixth step of the precedence list

        declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:s17a; band: Normal author declarations

        sec. 6_1, sec. 6_2

        Identifier
        urn:w3c:clir:css-cascade#NormalAuthorBand
        rule
      38. 38

        the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

        not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:s17b

        origin not recorded
      39. 39

        Section 6.3. All other declarations are normal (non-important)

        declaration is normal (non-important): d: urn:case:css:d:s17b

        sec. 6_3

        Identifier
        urn:w3c:clir:css-cascade#NormalDeclaration
        rule
      40. 40

        Section 6.1. Normal author declarations occupy the sixth step of the precedence list

        declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:s17b; band: Normal author declarations

        sec. 6_1, sec. 6_2

        Identifier
        urn:w3c:clir:css-cascade#NormalAuthorBand
        rule
      41. 41

        Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

        origin and importance did not separate the declarations: first: urn:case:css:d:s17a; second: urn:case:css:d:s17b

        sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#OriginAndImportanceTied
        rule
      42. 42

        Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

        encapsulation context did not separate the declarations: first: urn:case:css:d:s17a; second: urn:case:css:d:s17b

        sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#ContextTied
        rule
      43. 43

        Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

        element-attached styles did not separate the declarations: first: urn:case:css:d:s17a; second: urn:case:css:d:s17b

        sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
        rule
      44. 44

        Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

        cascade layers did not separate the declarations: first: urn:case:css:d:s17a; second: urn:case:css:d:s17b

        sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#LayerTied
        rule
      45. 45

        Section 6.1, Specificity. The declaration with the highest specificity wins: decided on the first component

        declaration is sorted before the other by the cascade: winner: urn:case:css:d:s17a; loser: urn:case:css:d:s17b

        sec. 6_1

        Identifier
        urn:w3c:clir:css-cascade#SpecificityDecidesOnA
        rule
      46. 46

        Query evaluation

        query

      verified by the engine: 19 · case fact: 24 · origin not recorded: 3 · Full graph: 74 nodes

      Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

      Basis of this answer

      Rules on the saved proof path for this answer.

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
      • Section 6. The cascade sorts the declared values for a given property on a given element against each other

        Identifier
        urn:w3c:clir:css-cascade#Comparable
      • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

        Identifier
        urn:w3c:clir:css-cascade#ContextTied
      • Section 5. A declaration applies to an element when all four filtering conditions hold

        Identifier
        urn:w3c:clir:css-cascade#DeclarationApplies
      • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

        Identifier
        urn:w3c:clir:css-cascade#DeclaredValueContributed
      • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

        Identifier
        urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
      • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

        Identifier
        urn:w3c:clir:css-cascade#LayerTied
      • Section 6.1. Normal author declarations occupy the sixth step of the precedence list

        Identifier
        urn:w3c:clir:css-cascade#NormalAuthorBand
      • Section 6.3. All other declarations are normal (non-important)

        Identifier
        urn:w3c:clir:css-cascade#NormalDeclaration
      • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

        Identifier
        urn:w3c:clir:css-cascade#OriginAndImportanceTied
      • Section 6.1, Specificity. The declaration with the highest specificity wins: decided on the first component

        Identifier
        urn:w3c:clir:css-cascade#SpecificityDecidesOnA
      • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

        Identifier
        urn:w3c:clir:css-cascade#SyntacticallyValid
      • Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

        Identifier
        urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
      Other rules in the evaluation6

      Applied in the overall evaluation, but not on the proof path for this answer.

      Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
      • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

        Identifier
        urn:w3c:clir:css-cascade#CascadeYieldsValue
      • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

        Identifier
        urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
      • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

        Identifier
        urn:w3c:clir:css-cascade#OutrankedBySome
      • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

        Identifier
        urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
      • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

        Identifier
        urn:w3c:clir:css-cascade#SpecificityTied
      • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

        Identifier
        urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

      Derived result for this query

      • declaration is sorted before the other by the cascade

        winner: s17aloser: s17b
      Other derived facts39
      • for the purpose of the revert keyword the declaration belongs to the author origin

        d: s17a
      • declaration belongs to this cascade layer for the purpose of the cascade

        d: s17alayer: implicit outer layer, which unlayered style rules are added to
      • declaration is syntactically valid

        d: s17b
      • declaration applies to the element

        d: s17be: target
      • declaration contributes a declared value for this property on this element

        d: s17be: targetp: color
      • two declarations are sorted against each other by the cascade

        first: s17bsecond: s17b
      • for the purpose of the revert keyword the declaration belongs to the author origin

        d: s17b
      • declaration belongs to this cascade layer for the purpose of the cascade

        d: s17blayer: implicit outer layer, which unlayered style rules are added to
      • declaration is syntactically valid

        d: s17a
      • declaration applies to the element

        d: s17ae: target
      • declaration contributes a declared value for this property on this element

        d: s17ae: targetp: color
      • declaration is the cascaded value for this property on this element

        d: s17ae: targetp: color
      • two declarations are sorted against each other by the cascade

        firstsecond
        s17as17a
        s17as17b
        s17bs17a
      • the specified value is the cascaded value itself

        d: s17ae: targetp: color
      • declaration is normal (non-important)

        d: s17a
      • declaration belongs to this step of the origin-and-importance list

        d: s17aband: Normal author declarations
      • origin and importance did not separate the declarations

        first: s17asecond: s17a
      • encapsulation context did not separate the declarations

        first: s17asecond: s17a
      • element-attached styles did not separate the declarations

        first: s17asecond: s17a
      • cascade layers did not separate the declarations

        first: s17asecond: s17a
      • specificity did not separate the declarations

        first: s17asecond: s17a
      • declaration is normal (non-important)

        d: s17b
      • declaration belongs to this step of the origin-and-importance list

        d: s17bband: Normal author declarations
      • origin and importance did not separate the declarations

        first: s17bsecond: s17b
      • encapsulation context did not separate the declarations

        first: s17bsecond: s17b
      • element-attached styles did not separate the declarations

        first: s17bsecond: s17b
      • cascade layers did not separate the declarations

        first: s17bsecond: s17b
      • origin and importance did not separate the declarations

        first: s17asecond: s17b
      • encapsulation context did not separate the declarations

        first: s17asecond: s17b
      • element-attached styles did not separate the declarations

        first: s17asecond: s17b
      • cascade layers did not separate the declarations

        first: s17asecond: s17b
      • origin and importance did not separate the declarations

        first: s17bsecond: s17a
      • encapsulation context did not separate the declarations

        first: s17bsecond: s17a
      • element-attached styles did not separate the declarations

        first: s17bsecond: s17a
      • cascade layers did not separate the declarations

        first: s17bsecond: s17a
      • some competing declaration wins the cascade over this one

        d: s17b
      • specificity did not separate the declarations

        first: s17bsecond: s17b
      for the purpose of the revert keyword the declaration belongs to the author origin
      d
      s17a
      s17b
      declaration belongs to this cascade layer for the purpose of the cascade
      dlayer
      s17aimplicit outer layer, which unlayered style rules are added to
      s17bimplicit outer layer, which unlayered style rules are added to
      declaration is syntactically valid
      d
      s17b
      s17a
      declaration applies to the element
      de
      s17burn:case:css:element:target
      s17aurn:case:css:element:target
      declaration contributes a declared value for this property on this element
      dep
      s17burn:case:css:element:targeturn:case:css:property:color
      s17aurn:case:css:element:targeturn:case:css:property:color
      Relationship graph
      urn:case:css:d:s17burn:case:css:d:s17a
      two declarations are sorted against each other by the cascade
      firstsecond
      s17bs17b
      s17as17a
      s17as17b
      s17bs17a
      declaration is the cascaded value for this property on this element
      dep
      s17aurn:case:css:element:targeturn:case:css:property:color
      the specified value is the cascaded value itself
      dep
      s17aurn:case:css:element:targeturn:case:css:property:color
      declaration is normal (non-important)
      d
      s17a
      s17b
      declaration belongs to this step of the origin-and-importance list
      dband
      s17aNormal author declarations
      s17bNormal author declarations
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      origin and importance did not separate the declarations
      firstsecond
      s17as17a
      s17bs17b
      s17as17b
      s17bs17a
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      encapsulation context did not separate the declarations
      firstsecond
      s17as17a
      s17bs17b
      s17as17b
      s17bs17a
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      element-attached styles did not separate the declarations
      firstsecond
      s17as17a
      s17bs17b
      s17as17b
      s17bs17a
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      cascade layers did not separate the declarations
      firstsecond
      s17as17a
      s17bs17b
      s17as17b
      s17bs17a
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      specificity did not separate the declarations
      firstsecond
      s17as17a
      s17bs17b
      Relationship graph
      urn:case:css:d:s17aurn:case:css:d:s17b
      declaration is sorted before the other by the cascade
      winnerloser
      s17as17b
      some competing declaration wins the cascade over this one
      d
      s17b

      1 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

      Proof graph

      Closed list: the set of declarations carrying the !important annotation is closed by the case

      closed predicate the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important · snapshot urn:w3c:clir:css-cascade:snapshot:declarations:case · complete as of

      in the list
        not in the list (explicit negative by closure)
        • urn:case:css:d:s17a
        • urn:case:css:d:s17b

        The list is closed by a §70 declaration: a missing record in the snapshot yields an explicit negative with an anti-membership certificate (§231.1). The lists are proof-graph nodes as recorded by the evaluation.

        Proof graph · 11 layer
        query_evaluationwins_cascaderule_applicationSpecificityDecidesOnArule_applicationLayerTiedassertionspecificityassertionspecificityrule_applicationElementAttachedTiedBothMappedrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_ruleassertionunlayered_declarationassertionunlayered_declarationrule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextrule_applicationComparablerule_applicationNormalAuthorBandrule_applicationNormalAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyassertiondeclaration_recordedassertionhas_important_annotationassertiondeclaration_recordedassertionhas_important_annotationrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

        Proof nodes: 74 · assertion 27, rule_application 41, candidate_closure 5, query_evaluation 1

        This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

        Download JSON ↓
        Calendar and proof identifiers
        Proof reference
        mcp
        Original reasoning · JSON

        This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

        Download JSON ↓
        SourcesExcerpts: 14

        section/4

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S4",
          "kind": "fragment",
          "locator": "section/4",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
              "language": "en",
              "status": "official",
              "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
            }
          ]
        }

        section/4_1

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
          "kind": "fragment",
          "locator": "section/4_1",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
              "language": "en",
              "status": "official",
              "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
            }
          ]
        }

        section/4_2

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
          "kind": "fragment",
          "locator": "section/4_2",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
              "language": "en",
              "status": "official",
              "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
            }
          ]
        }

        section/4_3

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
          "kind": "fragment",
          "locator": "section/4_3",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
              "language": "en",
              "status": "official",
              "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
            }
          ]
        }

        section/5

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S5",
          "kind": "fragment",
          "locator": "section/5",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
              "language": "en",
              "status": "official",
              "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
            }
          ]
        }

        section/6

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6",
          "kind": "fragment",
          "locator": "section/6",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
              "language": "en",
              "status": "official",
              "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
            }
          ]
        }

        section/6_1

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
          "kind": "fragment",
          "locator": "section/6_1",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
              "language": "en",
              "status": "official",
              "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
            }
          ]
        }

        section/6_2

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6.2. Cascading Origins Each style rule has a cascade origin, which determines where it enters the cascade. CSS defines three core origins: Author Origin The author specifies style sheets for a source document according to the conventions of the document language. For instance, in HTML, style sheets may be included in the document or linked externally. User Origin The user may be able to specify style information for a particular document. For example, the user may specify a file that contains a style sheet or the user agent may provide an interface that generates a user style sheet (or behaves as if it did). User-Agent Origin Conforming user agents must apply a default style sheet (or behave as if they did). A user agent’s default style sheet should present the elements of the document language in ways that satisfy general presentation expectations for the document language (e.g., for visual browsers, the EM element in HTML is presented using an italic font). See e.g. the HTML user agent style sheet. [HTML] Extensions to CSS define the following additional origins: Animation Origin CSS Animations [css-animations-1] generate “virtual” rules representing their effects when running. Transition Origin Like CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:6b324eff99852d174a60d90a89f75215e7e87210bf5a156817effa2ddc4c8294",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6_2",
          "kind": "fragment",
          "locator": "section/6_2",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:f221ab39ebcc687e320a2336486650aa7543c9dfa742283a4214efe27251040b",
              "language": "en",
              "status": "official",
              "text": "6.2. Cascading Origins\nEach style rule has a cascade origin,\nwhich determines where it enters the cascade.\nCSS defines three core origins:\nAuthor Origin\nThe author specifies style sheets for a source document\naccording to the conventions of the document language.\nFor instance, in HTML,\nstyle sheets may be included in the document or linked externally.\nUser Origin\nThe user may be able to specify style information for a particular document.\nFor example, the user may specify a file that contains a style sheet\nor the user agent may provide an interface that generates a user style sheet\n(or behaves as if it did).\nUser-Agent Origin\nConforming user agents must apply a default style sheet\n(or behave as if they did).\nA user agent’s default style sheet should present the elements of the document language\nin ways that satisfy general presentation expectations for the document language\n(e.g., for visual browsers, the EM element in HTML is presented using an italic font).\nSee e.g. the HTML user agent style sheet. [HTML]\nExtensions to CSS define the following additional origins:\nAnimation Origin\nCSS Animations [css-animations-1] generate “virtual” rules representing their effects when running.\nTransition Origin\nLike CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running."
            }
          ]
        }

        section/6_3

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
          "kind": "fragment",
          "locator": "section/6_3",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
              "language": "en",
              "status": "official",
              "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
            }
          ]
        }

        section/6_4

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
          "kind": "fragment",
          "locator": "section/6_4",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
              "language": "en",
              "status": "official",
              "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
            }
          ]
        }

        section/6_4_3

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
          "kind": "fragment",
          "locator": "section/6_4_3",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
              "language": "en",
              "status": "official",
              "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
            }
          ]
        }

        section/7

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S7",
          "kind": "fragment",
          "locator": "section/7",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
              "language": "en",
              "status": "official",
              "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
            }
          ]
        }

        section/7_3

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
          "kind": "fragment",
          "locator": "section/7_3",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
              "language": "en",
              "status": "official",
              "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
            }
          ]
        }

        section/7_3_4

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

        7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
        Original data · JSON
        JSONRead only
        {
          "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
          "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
          "fragmentKind": "section",
          "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
          "kind": "fragment",
          "locator": "section/7_3_4",
          "package": "urn:w3c:clir:css-cascade",
          "texts": [
            {
              "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
              "language": "en",
              "status": "official",
              "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
            }
          ]
        }

        Packages in the snapshot

        • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
        Technical dataFull response, parameters and checksums
        Calculation status
        COMPUTED
        Full engine response
        wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:s17a); in_layer(urn:case:css:d:s17a, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:s17b); applies_to(urn:case:css:d:s17b, urn:case:css:element:target); declared_value_for(urn:case:css:d:s17b, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:s17b, urn:case:css:d:s17b); revert_origin_is_author(urn:case:css:d:s17b); in_layer(urn:case:css:d:s17b, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:s17a); applies_to(urn:case:css:d:s17a, urn:case:css:element:target); declared_value_for(urn:case:css:d:s17a, urn:case:css:element:target, urn:case:css:property:color); cascaded_value_from(urn:case:css:d:s17a, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:s17a, urn:case:css:d:s17a); comparable(urn:case:css:d:s17a, urn:case:css:d:s17b); comparable(urn:case:css:d:s17b, urn:case:css:d:s17a); specified_value_from_cascade(urn:case:css:d:s17a, urn:case:css:element:target, urn:case:css:property:color); normal(urn:case:css:d:s17a); declaration_band(urn:case:css:d:s17a, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:s17a, urn:case:css:d:s17a); tied_after_context(urn:case:css:d:s17a, urn:case:css:d:s17a); tied_after_element_attached(urn:case:css:d:s17a, urn:case:css:d:s17a); tied_after_layer(urn:case:css:d:s17a, urn:case:css:d:s17a); tied_after_specificity(urn:case:css:d:s17a, urn:case:css:d:s17a); normal(urn:case:css:d:s17b); declaration_band(urn:case:css:d:s17b, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:s17b, urn:case:css:d:s17b); tied_after_context(urn:case:css:d:s17b, urn:case:css:d:s17b); tied_after_element_attached(urn:case:css:d:s17b, urn:case:css:d:s17b); tied_after_layer(urn:case:css:d:s17b, urn:case:css:d:s17b); tied_after_band(urn:case:css:d:s17a, urn:case:css:d:s17b); tied_after_context(urn:case:css:d:s17a, urn:case:css:d:s17b); tied_after_element_attached(urn:case:css:d:s17a, urn:case:css:d:s17b); tied_after_layer(urn:case:css:d:s17a, urn:case:css:d:s17b); tied_after_band(urn:case:css:d:s17b, urn:case:css:d:s17a); tied_after_context(urn:case:css:d:s17b, urn:case:css:d:s17a); tied_after_element_attached(urn:case:css:d:s17b, urn:case:css:d:s17a); tied_after_layer(urn:case:css:d:s17b, urn:case:css:d:s17a); wins_cascade(urn:case:css:d:s17a, urn:case:css:d:s17b); outranked_by_some(urn:case:css:d:s17b); tied_after_specificity(urn:case:css:d:s17b, urn:case:css:d:s17b) …и ещё 1 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, LayerTied, NormalAuthorBand, NormalDeclaration, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityDecidesOnA, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, UnlayeredDeclarationIsInTheImplicitOuterLayer Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 74 узлов — поле evaluation готово для law_explain

        Complete machine result · JSON

        This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

        Download JSON ↓

        Execution · JSON

        This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

        Download JSON ↓

        Display metadata

        This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

        Download JSON ↓

        JSON · calculations, sources and exact data

        JSONRead only
        {
          "acts": [
            {
              "contributed": true,
              "fragmentCount": 56,
              "fragments": [
                "urn:w3c:clir:css-cascade#CSS_S4",
                "urn:w3c:clir:css-cascade#CSS_S4_1",
                "urn:w3c:clir:css-cascade#CSS_S4_2",
                "urn:w3c:clir:css-cascade#CSS_S4_3",
                "urn:w3c:clir:css-cascade#CSS_S5",
                "urn:w3c:clir:css-cascade#CSS_S6",
                "urn:w3c:clir:css-cascade#CSS_S6_1",
                "urn:w3c:clir:css-cascade#CSS_S6_2",
                "urn:w3c:clir:css-cascade#CSS_S6_3",
                "urn:w3c:clir:css-cascade#CSS_S6_4_3",
                "urn:w3c:clir:css-cascade#CSS_S7_3_4"
              ],
              "jurisdiction": "W3C",
              "namespace": "urn:w3c:clir:css-cascade",
              "package": "w3c-css-cascade",
              "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
            }
          ],
          "caseHash": "sha256:655a8e6d81ed416b571a0089359958148a39ffe62a79e0fb62e2a4d5ede0b7e4",
          "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
          "jurisdiction": "W3C — издатель, не правопорядок",
          "legalTime": "2026-09-06",
          "mode": "audit",
          "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
          "resultHash": "sha256:3a24759ac60e7cc9ddb621a3fb64bd8ff4a6597c75172654fc73f3b13f60374f",
          "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
          "timezone": "Asia/Qyzylorda"
        }
        evaluation SHA-256
        sha256:bed942f556454dd7bb5667dddf9019fbb05e73a232c5b03944a922e9430ab359
        Original data · JSON
        JSONRead only
        {
          "args": [
            "urn:case:css:d:s17a",
            "urn:case:css:d:s17b"
          ],
          "facts": [
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "declaration_recorded"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "in_applicable_style_sheet"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "qualifying_conditions_true"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "property_is_known"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "value_matches_property_syntax"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                "urn:case:css:element:target"
              ],
              "predicate": "selector_matches"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                "urn:case:css:property:color"
              ],
              "predicate": "declares_property"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                "urn:case:css:context:light-dom"
              ],
              "predicate": "declaration_context"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                1,
                0,
                0
              ],
              "predicate": "specificity"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                1
              ],
              "predicate": "document_order"
            },
            {
              "args": [
                "urn:case:css:d:s17a",
                "AuthorOrigin"
              ],
              "predicate": "declaration_origin"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "mapped_by_style_rule"
            },
            {
              "args": [
                "urn:case:css:d:s17a"
              ],
              "predicate": "unlayered_declaration"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "declaration_recorded"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "in_applicable_style_sheet"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "qualifying_conditions_true"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "property_is_known"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "value_matches_property_syntax"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                "urn:case:css:element:target"
              ],
              "predicate": "selector_matches"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                "urn:case:css:property:color"
              ],
              "predicate": "declares_property"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                "urn:case:css:context:light-dom"
              ],
              "predicate": "declaration_context"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                0,
                9,
                9
              ],
              "predicate": "specificity"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                2
              ],
              "predicate": "document_order"
            },
            {
              "args": [
                "urn:case:css:d:s17b",
                "AuthorOrigin"
              ],
              "predicate": "declaration_origin"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "mapped_by_style_rule"
            },
            {
              "args": [
                "urn:case:css:d:s17b"
              ],
              "predicate": "unlayered_declaration"
            }
          ],
          "kind": "truth",
          "legalTime": "2026-09-06",
          "package": "w3c-css-cascade",
          "predicate": "wins_cascade",
          "proof": true
        }

        Сравнение идёт покомпонентно: первая же различающаяся компонента решает спор.

        Condition

        Специфичность: третья компонента

        Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

        Calculation result

        Established

        Input parameters

        What we are finding

        declaration is sorted before the other by the cascade

        s19as19b

        Input facts

        • declaration is among the declarations the case records

          d: s19a
        • declaration belongs to a style sheet that currently applies to this document

          d: s19a
        • every conditional rule qualifying the declaration has a true condition

          d: s19a
        • the declaration's property is a known property name

          d: s19a
        • the declaration's value matches the syntax for that property

          d: s19a
        • declaration belongs to a style rule whose selector matches the element

          d: s19ae: target
        • declaration declares this property

          d: s19ap: color
        • declaration is sourced from this encapsulation context

          d: s19aencapsulation: light-dom
        • specificity of the style rule the declaration appears in, as computed by the Selectors module

          d: s19aa: 1b: 1c: 2
        • position of the declaration in document order

          d: s19aposition: 1
        • declaration has this cascade origin

          d: s19aorigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
        • declaration is mapped by means of a style rule selector

          d: s19a
        • declaration is not assigned to any explicit cascade layer

          d: s19a
        • declaration is among the declarations the case records

          d: s19b
        • declaration belongs to a style sheet that currently applies to this document

          d: s19b
        • every conditional rule qualifying the declaration has a true condition

          d: s19b
        • the declaration's property is a known property name

          d: s19b
        • the declaration's value matches the syntax for that property

          d: s19b
        • declaration belongs to a style rule whose selector matches the element

          d: s19be: target
        • declaration declares this property

          d: s19bp: color
        • declaration is sourced from this encapsulation context

          d: s19bencapsulation: light-dom
        • specificity of the style rule the declaration appears in, as computed by the Selectors module

          d: s19ba: 1b: 1c: 1
        • position of the declaration in document order

          d: s19bposition: 2
        • declaration has this cascade origin

          d: s19borigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
        • declaration is mapped by means of a style rule selector

          d: s19b
        • declaration is not assigned to any explicit cascade layer

          d: s19b

        Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

        Additional details

        Include proof
        Yes
        Original data · JSON
        JSONRead only
        {
          "args": [
            "urn:case:css:d:s19a",
            "urn:case:css:d:s19b"
          ],
          "facts": [
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "declaration_recorded"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "in_applicable_style_sheet"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "qualifying_conditions_true"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "property_is_known"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "value_matches_property_syntax"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                "urn:case:css:element:target"
              ],
              "predicate": "selector_matches"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                "urn:case:css:property:color"
              ],
              "predicate": "declares_property"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                "urn:case:css:context:light-dom"
              ],
              "predicate": "declaration_context"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                1,
                1,
                2
              ],
              "predicate": "specificity"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                1
              ],
              "predicate": "document_order"
            },
            {
              "args": [
                "urn:case:css:d:s19a",
                "AuthorOrigin"
              ],
              "predicate": "declaration_origin"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "mapped_by_style_rule"
            },
            {
              "args": [
                "urn:case:css:d:s19a"
              ],
              "predicate": "unlayered_declaration"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "declaration_recorded"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "in_applicable_style_sheet"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "qualifying_conditions_true"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "property_is_known"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "value_matches_property_syntax"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                "urn:case:css:element:target"
              ],
              "predicate": "selector_matches"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                "urn:case:css:property:color"
              ],
              "predicate": "declares_property"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                "urn:case:css:context:light-dom"
              ],
              "predicate": "declaration_context"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                1,
                1,
                1
              ],
              "predicate": "specificity"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                2
              ],
              "predicate": "document_order"
            },
            {
              "args": [
                "urn:case:css:d:s19b",
                "AuthorOrigin"
              ],
              "predicate": "declaration_origin"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "mapped_by_style_rule"
            },
            {
              "args": [
                "urn:case:css:d:s19b"
              ],
              "predicate": "unlayered_declaration"
            }
          ],
          "kind": "truth",
          "legalTime": "2026-09-06",
          "package": "w3c-css-cascade",
          "predicate": "wins_cascade",
          "proof": true
        }
        Why this resultApplied rules and conditions

        Derivation path46 steps

        1. 1

          declaration is among the declarations the case records

          d: urn:case:css:d:s19a

          case fact
        2. 2

          declaration has this cascade origin

          d: urn:case:css:d:s19a; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

          case fact
        3. 3

          declaration is mapped by means of a style rule selector

          d: urn:case:css:d:s19a

          case fact
        4. 4

          declaration is not assigned to any explicit cascade layer

          d: urn:case:css:d:s19a

          case fact
        5. 5

          Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

          declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:s19a; layer: implicit outer layer, which unlayered style rules are added to

          sec. 6_1, sec. 6_4_3

          Identifier
          urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
          rule
        6. 6

          declaration is among the declarations the case records

          d: urn:case:css:d:s19b

          case fact
        7. 7

          declaration belongs to a style sheet that currently applies to this document

          d: urn:case:css:d:s19b

          case fact
        8. 8

          every conditional rule qualifying the declaration has a true condition

          d: urn:case:css:d:s19b

          case fact
        9. 9

          the declaration's property is a known property name

          d: urn:case:css:d:s19b

          case fact
        10. 10

          the declaration's value matches the syntax for that property

          d: urn:case:css:d:s19b

          case fact
        11. 11

          Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

          declaration is syntactically valid: d: urn:case:css:d:s19b

          sec. 5

          Identifier
          urn:w3c:clir:css-cascade#SyntacticallyValid
          rule
        12. 12

          declaration belongs to a style rule whose selector matches the element

          d: urn:case:css:d:s19b; e: urn:case:css:element:target

          case fact
        13. 13

          Section 5. A declaration applies to an element when all four filtering conditions hold

          declaration applies to the element: d: urn:case:css:d:s19b; e: urn:case:css:element:target

          sec. 5

          Identifier
          urn:w3c:clir:css-cascade#DeclarationApplies
          rule
        14. 14

          declaration belongs to a style sheet that currently applies to this document

          d: urn:case:css:d:s19a

          case fact
        15. 15

          declaration declares this property

          d: urn:case:css:d:s19b; p: urn:case:css:property:color

          case fact
        16. 16

          Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

          declaration contributes a declared value for this property on this element: d: urn:case:css:d:s19b; e: urn:case:css:element:target; p: urn:case:css:property:color

          sec. 4_1, sec. 4

          Identifier
          urn:w3c:clir:css-cascade#DeclaredValueContributed
          rule
        17. 17

          declaration is sourced from this encapsulation context

          d: urn:case:css:d:s19b; encapsulation: urn:case:css:context:light-dom

          case fact
        18. 18

          specificity of the style rule the declaration appears in, as computed by the Selectors module

          d: urn:case:css:d:s19b; a: 1; b: 1; c: 1

          case fact
        19. 19

          declaration has this cascade origin

          d: urn:case:css:d:s19b; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

          case fact
        20. 20

          declaration is mapped by means of a style rule selector

          d: urn:case:css:d:s19b

          case fact
        21. 21

          declaration is not assigned to any explicit cascade layer

          d: urn:case:css:d:s19b

          case fact
        22. 22

          Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

          declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:s19b; layer: implicit outer layer, which unlayered style rules are added to

          sec. 6_1, sec. 6_4_3

          Identifier
          urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
          rule
        23. 23

          every conditional rule qualifying the declaration has a true condition

          d: urn:case:css:d:s19a

          case fact
        24. 24

          the declaration's property is a known property name

          d: urn:case:css:d:s19a

          case fact
        25. 25

          the declaration's value matches the syntax for that property

          d: urn:case:css:d:s19a

          case fact
        26. 26

          Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

          declaration is syntactically valid: d: urn:case:css:d:s19a

          sec. 5

          Identifier
          urn:w3c:clir:css-cascade#SyntacticallyValid
          rule
        27. 27

          declaration belongs to a style rule whose selector matches the element

          d: urn:case:css:d:s19a; e: urn:case:css:element:target

          case fact
        28. 28

          Section 5. A declaration applies to an element when all four filtering conditions hold

          declaration applies to the element: d: urn:case:css:d:s19a; e: urn:case:css:element:target

          sec. 5

          Identifier
          urn:w3c:clir:css-cascade#DeclarationApplies
          rule
        29. 29

          declaration declares this property

          d: urn:case:css:d:s19a; p: urn:case:css:property:color

          case fact
        30. 30

          Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

          declaration contributes a declared value for this property on this element: d: urn:case:css:d:s19a; e: urn:case:css:element:target; p: urn:case:css:property:color

          sec. 4_1, sec. 4

          Identifier
          urn:w3c:clir:css-cascade#DeclaredValueContributed
          rule
        31. 31

          Section 6. The cascade sorts the declared values for a given property on a given element against each other

          two declarations are sorted against each other by the cascade: first: urn:case:css:d:s19a; second: urn:case:css:d:s19b

          sec. 6, sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#Comparable
          rule
        32. 32

          declaration is sourced from this encapsulation context

          d: urn:case:css:d:s19a; encapsulation: urn:case:css:context:light-dom

          case fact
        33. 33

          specificity of the style rule the declaration appears in, as computed by the Selectors module

          d: urn:case:css:d:s19a; a: 1; b: 1; c: 2

          case fact
        34. 34

          band occupies this position in the origin-and-importance precedence list

          band: Normal author declarations; rank: 60

          origin not recorded
        35. 35

          the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

          not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:s19a

          origin not recorded
        36. 36

          Section 6.3. All other declarations are normal (non-important)

          declaration is normal (non-important): d: urn:case:css:d:s19a

          sec. 6_3

          Identifier
          urn:w3c:clir:css-cascade#NormalDeclaration
          rule
        37. 37

          Section 6.1. Normal author declarations occupy the sixth step of the precedence list

          declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:s19a; band: Normal author declarations

          sec. 6_1, sec. 6_2

          Identifier
          urn:w3c:clir:css-cascade#NormalAuthorBand
          rule
        38. 38

          the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

          not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:s19b

          origin not recorded
        39. 39

          Section 6.3. All other declarations are normal (non-important)

          declaration is normal (non-important): d: urn:case:css:d:s19b

          sec. 6_3

          Identifier
          urn:w3c:clir:css-cascade#NormalDeclaration
          rule
        40. 40

          Section 6.1. Normal author declarations occupy the sixth step of the precedence list

          declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:s19b; band: Normal author declarations

          sec. 6_1, sec. 6_2

          Identifier
          urn:w3c:clir:css-cascade#NormalAuthorBand
          rule
        41. 41

          Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

          origin and importance did not separate the declarations: first: urn:case:css:d:s19a; second: urn:case:css:d:s19b

          sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#OriginAndImportanceTied
          rule
        42. 42

          Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

          encapsulation context did not separate the declarations: first: urn:case:css:d:s19a; second: urn:case:css:d:s19b

          sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#ContextTied
          rule
        43. 43

          Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

          element-attached styles did not separate the declarations: first: urn:case:css:d:s19a; second: urn:case:css:d:s19b

          sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
          rule
        44. 44

          Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

          cascade layers did not separate the declarations: first: urn:case:css:d:s19a; second: urn:case:css:d:s19b

          sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#LayerTied
          rule
        45. 45

          Section 6.1, Specificity. The declaration with the highest specificity wins: the first two components are equal, decided on the third

          declaration is sorted before the other by the cascade: winner: urn:case:css:d:s19a; loser: urn:case:css:d:s19b

          sec. 6_1

          Identifier
          urn:w3c:clir:css-cascade#SpecificityDecidesOnC
          rule
        46. 46

          Query evaluation

          query

        verified by the engine: 19 · case fact: 24 · origin not recorded: 3 · Full graph: 74 nodes

        Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

        Basis of this answer

        Rules on the saved proof path for this answer.

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
        • Section 6. The cascade sorts the declared values for a given property on a given element against each other

          Identifier
          urn:w3c:clir:css-cascade#Comparable
        • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

          Identifier
          urn:w3c:clir:css-cascade#ContextTied
        • Section 5. A declaration applies to an element when all four filtering conditions hold

          Identifier
          urn:w3c:clir:css-cascade#DeclarationApplies
        • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

          Identifier
          urn:w3c:clir:css-cascade#DeclaredValueContributed
        • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

          Identifier
          urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
        • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

          Identifier
          urn:w3c:clir:css-cascade#LayerTied
        • Section 6.1. Normal author declarations occupy the sixth step of the precedence list

          Identifier
          urn:w3c:clir:css-cascade#NormalAuthorBand
        • Section 6.3. All other declarations are normal (non-important)

          Identifier
          urn:w3c:clir:css-cascade#NormalDeclaration
        • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

          Identifier
          urn:w3c:clir:css-cascade#OriginAndImportanceTied
        • Section 6.1, Specificity. The declaration with the highest specificity wins: the first two components are equal, decided on the third

          Identifier
          urn:w3c:clir:css-cascade#SpecificityDecidesOnC
        • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

          Identifier
          urn:w3c:clir:css-cascade#SyntacticallyValid
        • Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

          Identifier
          urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
        Other rules in the evaluation6

        Applied in the overall evaluation, but not on the proof path for this answer.

        Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
        • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

          Identifier
          urn:w3c:clir:css-cascade#CascadeYieldsValue
        • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

          Identifier
          urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
        • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

          Identifier
          urn:w3c:clir:css-cascade#OutrankedBySome
        • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

          Identifier
          urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
        • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

          Identifier
          urn:w3c:clir:css-cascade#SpecificityTied
        • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

          Identifier
          urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

        Derived result for this query

        • declaration is sorted before the other by the cascade

          winner: s19aloser: s19b
        Other derived facts39
        • for the purpose of the revert keyword the declaration belongs to the author origin

          d: s19a
        • declaration belongs to this cascade layer for the purpose of the cascade

          d: s19alayer: implicit outer layer, which unlayered style rules are added to
        • declaration is syntactically valid

          d: s19b
        • declaration applies to the element

          d: s19be: target
        • declaration contributes a declared value for this property on this element

          d: s19be: targetp: color
        • two declarations are sorted against each other by the cascade

          first: s19bsecond: s19b
        • for the purpose of the revert keyword the declaration belongs to the author origin

          d: s19b
        • declaration belongs to this cascade layer for the purpose of the cascade

          d: s19blayer: implicit outer layer, which unlayered style rules are added to
        • declaration is syntactically valid

          d: s19a
        • declaration applies to the element

          d: s19ae: target
        • declaration contributes a declared value for this property on this element

          d: s19ae: targetp: color
        • declaration is the cascaded value for this property on this element

          d: s19ae: targetp: color
        • two declarations are sorted against each other by the cascade

          firstsecond
          s19as19a
          s19bs19a
          s19as19b
        • the specified value is the cascaded value itself

          d: s19ae: targetp: color
        • declaration is normal (non-important)

          d: s19a
        • declaration belongs to this step of the origin-and-importance list

          d: s19aband: Normal author declarations
        • origin and importance did not separate the declarations

          first: s19asecond: s19a
        • encapsulation context did not separate the declarations

          first: s19asecond: s19a
        • element-attached styles did not separate the declarations

          first: s19asecond: s19a
        • cascade layers did not separate the declarations

          first: s19asecond: s19a
        • specificity did not separate the declarations

          first: s19asecond: s19a
        • declaration is normal (non-important)

          d: s19b
        • declaration belongs to this step of the origin-and-importance list

          d: s19bband: Normal author declarations
        • origin and importance did not separate the declarations

          first: s19bsecond: s19b
        • encapsulation context did not separate the declarations

          first: s19bsecond: s19b
        • element-attached styles did not separate the declarations

          first: s19bsecond: s19b
        • cascade layers did not separate the declarations

          first: s19bsecond: s19b
        • origin and importance did not separate the declarations

          first: s19asecond: s19b
        • encapsulation context did not separate the declarations

          first: s19asecond: s19b
        • element-attached styles did not separate the declarations

          first: s19asecond: s19b
        • cascade layers did not separate the declarations

          first: s19asecond: s19b
        • origin and importance did not separate the declarations

          first: s19bsecond: s19a
        • encapsulation context did not separate the declarations

          first: s19bsecond: s19a
        • element-attached styles did not separate the declarations

          first: s19bsecond: s19a
        • cascade layers did not separate the declarations

          first: s19bsecond: s19a
        • some competing declaration wins the cascade over this one

          d: s19b
        • specificity did not separate the declarations

          first: s19bsecond: s19b
        for the purpose of the revert keyword the declaration belongs to the author origin
        d
        s19a
        s19b
        declaration belongs to this cascade layer for the purpose of the cascade
        dlayer
        s19aimplicit outer layer, which unlayered style rules are added to
        s19bimplicit outer layer, which unlayered style rules are added to
        declaration is syntactically valid
        d
        s19b
        s19a
        declaration applies to the element
        de
        s19burn:case:css:element:target
        s19aurn:case:css:element:target
        declaration contributes a declared value for this property on this element
        dep
        s19burn:case:css:element:targeturn:case:css:property:color
        s19aurn:case:css:element:targeturn:case:css:property:color
        Relationship graph
        urn:case:css:d:s19burn:case:css:d:s19a
        two declarations are sorted against each other by the cascade
        firstsecond
        s19bs19b
        s19as19a
        s19bs19a
        s19as19b
        declaration is the cascaded value for this property on this element
        dep
        s19aurn:case:css:element:targeturn:case:css:property:color
        the specified value is the cascaded value itself
        dep
        s19aurn:case:css:element:targeturn:case:css:property:color
        declaration is normal (non-important)
        d
        s19a
        s19b
        declaration belongs to this step of the origin-and-importance list
        dband
        s19aNormal author declarations
        s19bNormal author declarations
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        origin and importance did not separate the declarations
        firstsecond
        s19as19a
        s19bs19b
        s19as19b
        s19bs19a
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        encapsulation context did not separate the declarations
        firstsecond
        s19as19a
        s19bs19b
        s19as19b
        s19bs19a
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        element-attached styles did not separate the declarations
        firstsecond
        s19as19a
        s19bs19b
        s19as19b
        s19bs19a
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        cascade layers did not separate the declarations
        firstsecond
        s19as19a
        s19bs19b
        s19as19b
        s19bs19a
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        specificity did not separate the declarations
        firstsecond
        s19as19a
        s19bs19b
        Relationship graph
        urn:case:css:d:s19aurn:case:css:d:s19b
        declaration is sorted before the other by the cascade
        winnerloser
        s19as19b
        some competing declaration wins the cascade over this one
        d
        s19b

        1 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

        Proof graph

        Closed list: the set of declarations carrying the !important annotation is closed by the case

        closed predicate the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important · snapshot urn:w3c:clir:css-cascade:snapshot:declarations:case · complete as of

        in the list
          not in the list (explicit negative by closure)
          • urn:case:css:d:s19a
          • urn:case:css:d:s19b

          The list is closed by a §70 declaration: a missing record in the snapshot yields an explicit negative with an anti-membership certificate (§231.1). The lists are proof-graph nodes as recorded by the evaluation.

          Proof graph · 11 layer
          query_evaluationwins_cascaderule_applicationSpecificityDecidesOnCrule_applicationLayerTiedassertionspecificityassertionspecificityrule_applicationElementAttachedTiedBothMappedrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_ruleassertionunlayered_declarationassertionunlayered_declarationrule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextrule_applicationComparablerule_applicationNormalAuthorBandrule_applicationNormalAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyassertiondeclaration_recordedassertionhas_important_annotationassertiondeclaration_recordedassertionhas_important_annotationrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

          Proof nodes: 74 · assertion 27, rule_application 41, candidate_closure 5, query_evaluation 1

          This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

          Download JSON ↓
          Calendar and proof identifiers
          Proof reference
          mcp
          Original reasoning · JSON

          This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

          Download JSON ↓
          SourcesExcerpts: 14

          section/4

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S4",
            "kind": "fragment",
            "locator": "section/4",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
                "language": "en",
                "status": "official",
                "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
              }
            ]
          }

          section/4_1

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
            "kind": "fragment",
            "locator": "section/4_1",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
                "language": "en",
                "status": "official",
                "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
              }
            ]
          }

          section/4_2

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
            "kind": "fragment",
            "locator": "section/4_2",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
                "language": "en",
                "status": "official",
                "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
              }
            ]
          }

          section/4_3

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
            "kind": "fragment",
            "locator": "section/4_3",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
                "language": "en",
                "status": "official",
                "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
              }
            ]
          }

          section/5

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S5",
            "kind": "fragment",
            "locator": "section/5",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
                "language": "en",
                "status": "official",
                "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
              }
            ]
          }

          section/6

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6",
            "kind": "fragment",
            "locator": "section/6",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
                "language": "en",
                "status": "official",
                "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
              }
            ]
          }

          section/6_1

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
            "kind": "fragment",
            "locator": "section/6_1",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
                "language": "en",
                "status": "official",
                "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
              }
            ]
          }

          section/6_2

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6.2. Cascading Origins Each style rule has a cascade origin, which determines where it enters the cascade. CSS defines three core origins: Author Origin The author specifies style sheets for a source document according to the conventions of the document language. For instance, in HTML, style sheets may be included in the document or linked externally. User Origin The user may be able to specify style information for a particular document. For example, the user may specify a file that contains a style sheet or the user agent may provide an interface that generates a user style sheet (or behaves as if it did). User-Agent Origin Conforming user agents must apply a default style sheet (or behave as if they did). A user agent’s default style sheet should present the elements of the document language in ways that satisfy general presentation expectations for the document language (e.g., for visual browsers, the EM element in HTML is presented using an italic font). See e.g. the HTML user agent style sheet. [HTML] Extensions to CSS define the following additional origins: Animation Origin CSS Animations [css-animations-1] generate “virtual” rules representing their effects when running. Transition Origin Like CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:6b324eff99852d174a60d90a89f75215e7e87210bf5a156817effa2ddc4c8294",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6_2",
            "kind": "fragment",
            "locator": "section/6_2",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:f221ab39ebcc687e320a2336486650aa7543c9dfa742283a4214efe27251040b",
                "language": "en",
                "status": "official",
                "text": "6.2. Cascading Origins\nEach style rule has a cascade origin,\nwhich determines where it enters the cascade.\nCSS defines three core origins:\nAuthor Origin\nThe author specifies style sheets for a source document\naccording to the conventions of the document language.\nFor instance, in HTML,\nstyle sheets may be included in the document or linked externally.\nUser Origin\nThe user may be able to specify style information for a particular document.\nFor example, the user may specify a file that contains a style sheet\nor the user agent may provide an interface that generates a user style sheet\n(or behaves as if it did).\nUser-Agent Origin\nConforming user agents must apply a default style sheet\n(or behave as if they did).\nA user agent’s default style sheet should present the elements of the document language\nin ways that satisfy general presentation expectations for the document language\n(e.g., for visual browsers, the EM element in HTML is presented using an italic font).\nSee e.g. the HTML user agent style sheet. [HTML]\nExtensions to CSS define the following additional origins:\nAnimation Origin\nCSS Animations [css-animations-1] generate “virtual” rules representing their effects when running.\nTransition Origin\nLike CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running."
              }
            ]
          }

          section/6_3

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
            "kind": "fragment",
            "locator": "section/6_3",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
                "language": "en",
                "status": "official",
                "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
              }
            ]
          }

          section/6_4

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
            "kind": "fragment",
            "locator": "section/6_4",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
                "language": "en",
                "status": "official",
                "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
              }
            ]
          }

          section/6_4_3

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
            "kind": "fragment",
            "locator": "section/6_4_3",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
                "language": "en",
                "status": "official",
                "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
              }
            ]
          }

          section/7

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S7",
            "kind": "fragment",
            "locator": "section/7",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
                "language": "en",
                "status": "official",
                "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
              }
            ]
          }

          section/7_3

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
            "kind": "fragment",
            "locator": "section/7_3",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
                "language": "en",
                "status": "official",
                "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
              }
            ]
          }

          section/7_3_4

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

          7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
          Original data · JSON
          JSONRead only
          {
            "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
            "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
            "fragmentKind": "section",
            "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
            "kind": "fragment",
            "locator": "section/7_3_4",
            "package": "urn:w3c:clir:css-cascade",
            "texts": [
              {
                "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
                "language": "en",
                "status": "official",
                "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
              }
            ]
          }

          Packages in the snapshot

          • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
          Technical dataFull response, parameters and checksums
          Calculation status
          COMPUTED
          Full engine response
          wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:s19a); in_layer(urn:case:css:d:s19a, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:s19b); applies_to(urn:case:css:d:s19b, urn:case:css:element:target); declared_value_for(urn:case:css:d:s19b, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:s19b, urn:case:css:d:s19b); revert_origin_is_author(urn:case:css:d:s19b); in_layer(urn:case:css:d:s19b, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:s19a); applies_to(urn:case:css:d:s19a, urn:case:css:element:target); declared_value_for(urn:case:css:d:s19a, urn:case:css:element:target, urn:case:css:property:color); cascaded_value_from(urn:case:css:d:s19a, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:s19a, urn:case:css:d:s19a); comparable(urn:case:css:d:s19b, urn:case:css:d:s19a); comparable(urn:case:css:d:s19a, urn:case:css:d:s19b); specified_value_from_cascade(urn:case:css:d:s19a, urn:case:css:element:target, urn:case:css:property:color); normal(urn:case:css:d:s19a); declaration_band(urn:case:css:d:s19a, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:s19a, urn:case:css:d:s19a); tied_after_context(urn:case:css:d:s19a, urn:case:css:d:s19a); tied_after_element_attached(urn:case:css:d:s19a, urn:case:css:d:s19a); tied_after_layer(urn:case:css:d:s19a, urn:case:css:d:s19a); tied_after_specificity(urn:case:css:d:s19a, urn:case:css:d:s19a); normal(urn:case:css:d:s19b); declaration_band(urn:case:css:d:s19b, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:s19b, urn:case:css:d:s19b); tied_after_context(urn:case:css:d:s19b, urn:case:css:d:s19b); tied_after_element_attached(urn:case:css:d:s19b, urn:case:css:d:s19b); tied_after_layer(urn:case:css:d:s19b, urn:case:css:d:s19b); tied_after_band(urn:case:css:d:s19a, urn:case:css:d:s19b); tied_after_context(urn:case:css:d:s19a, urn:case:css:d:s19b); tied_after_element_attached(urn:case:css:d:s19a, urn:case:css:d:s19b); tied_after_layer(urn:case:css:d:s19a, urn:case:css:d:s19b); tied_after_band(urn:case:css:d:s19b, urn:case:css:d:s19a); tied_after_context(urn:case:css:d:s19b, urn:case:css:d:s19a); tied_after_element_attached(urn:case:css:d:s19b, urn:case:css:d:s19a); tied_after_layer(urn:case:css:d:s19b, urn:case:css:d:s19a); wins_cascade(urn:case:css:d:s19a, urn:case:css:d:s19b); outranked_by_some(urn:case:css:d:s19b); tied_after_specificity(urn:case:css:d:s19b, urn:case:css:d:s19b) …и ещё 1 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, LayerTied, NormalAuthorBand, NormalDeclaration, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityDecidesOnC, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, UnlayeredDeclarationIsInTheImplicitOuterLayer Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 74 узлов — поле evaluation готово для law_explain

          Complete machine result · JSON

          This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

          Download JSON ↓

          Execution · JSON

          This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

          Download JSON ↓

          Display metadata

          This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

          Download JSON ↓

          JSON · calculations, sources and exact data

          JSONRead only
          {
            "acts": [
              {
                "contributed": true,
                "fragmentCount": 56,
                "fragments": [
                  "urn:w3c:clir:css-cascade#CSS_S4",
                  "urn:w3c:clir:css-cascade#CSS_S4_1",
                  "urn:w3c:clir:css-cascade#CSS_S4_2",
                  "urn:w3c:clir:css-cascade#CSS_S4_3",
                  "urn:w3c:clir:css-cascade#CSS_S5",
                  "urn:w3c:clir:css-cascade#CSS_S6",
                  "urn:w3c:clir:css-cascade#CSS_S6_1",
                  "urn:w3c:clir:css-cascade#CSS_S6_2",
                  "urn:w3c:clir:css-cascade#CSS_S6_3",
                  "urn:w3c:clir:css-cascade#CSS_S6_4_3",
                  "urn:w3c:clir:css-cascade#CSS_S7_3_4"
                ],
                "jurisdiction": "W3C",
                "namespace": "urn:w3c:clir:css-cascade",
                "package": "w3c-css-cascade",
                "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
              }
            ],
            "caseHash": "sha256:595e94680e7f7b1eded8a0670b292fcf517db01daedb573bb0374c82a2c33a1f",
            "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
            "jurisdiction": "W3C — издатель, не правопорядок",
            "legalTime": "2026-09-06",
            "mode": "audit",
            "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
            "resultHash": "sha256:e9f231e0f986b8b196ea0fe233016ba06c9441077a5abe14610c489178187907",
            "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
            "timezone": "Asia/Qyzylorda"
          }
          evaluation SHA-256
          sha256:bd6dd2cd7cd857714a02dfd564ee402f2852c9d3fa87a1265a7d27c569865e95
          Original data · JSON
          JSONRead only
          {
            "args": [
              "urn:case:css:d:s19a",
              "urn:case:css:d:s19b"
            ],
            "facts": [
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "declaration_recorded"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "in_applicable_style_sheet"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "qualifying_conditions_true"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "property_is_known"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "value_matches_property_syntax"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  "urn:case:css:element:target"
                ],
                "predicate": "selector_matches"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  "urn:case:css:property:color"
                ],
                "predicate": "declares_property"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  "urn:case:css:context:light-dom"
                ],
                "predicate": "declaration_context"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  1,
                  1,
                  2
                ],
                "predicate": "specificity"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  1
                ],
                "predicate": "document_order"
              },
              {
                "args": [
                  "urn:case:css:d:s19a",
                  "AuthorOrigin"
                ],
                "predicate": "declaration_origin"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "mapped_by_style_rule"
              },
              {
                "args": [
                  "urn:case:css:d:s19a"
                ],
                "predicate": "unlayered_declaration"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "declaration_recorded"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "in_applicable_style_sheet"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "qualifying_conditions_true"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "property_is_known"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "value_matches_property_syntax"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  "urn:case:css:element:target"
                ],
                "predicate": "selector_matches"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  "urn:case:css:property:color"
                ],
                "predicate": "declares_property"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  "urn:case:css:context:light-dom"
                ],
                "predicate": "declaration_context"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  1,
                  1,
                  1
                ],
                "predicate": "specificity"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  2
                ],
                "predicate": "document_order"
              },
              {
                "args": [
                  "urn:case:css:d:s19b",
                  "AuthorOrigin"
                ],
                "predicate": "declaration_origin"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "mapped_by_style_rule"
              },
              {
                "args": [
                  "urn:case:css:d:s19b"
                ],
                "predicate": "unlayered_declaration"
              }
            ],
            "kind": "truth",
            "legalTime": "2026-09-06",
            "package": "w3c-css-cascade",
            "predicate": "wins_cascade",
            "proof": true
          }

          Когда первые две равны, дело доходит до третьей.

          Condition

          Порядок в документе как последний довод

          Jurisdiction W3C — издатель, не правопорядокLaw as of 2026-09-06

          Calculation result

          Established

          Input parameters

          What we are finding

          declaration is sorted before the other by the cascade

          o20bo20a

          Input facts

          • declaration is among the declarations the case records

            d: o20b
          • declaration belongs to a style sheet that currently applies to this document

            d: o20b
          • every conditional rule qualifying the declaration has a true condition

            d: o20b
          • the declaration's property is a known property name

            d: o20b
          • the declaration's value matches the syntax for that property

            d: o20b
          • declaration belongs to a style rule whose selector matches the element

            d: o20be: target
          • declaration declares this property

            d: o20bp: color
          • declaration is sourced from this encapsulation context

            d: o20bencapsulation: light-dom
          • specificity of the style rule the declaration appears in, as computed by the Selectors module

            d: o20ba: 0b: 0c: 1
          • position of the declaration in document order

            d: o20bposition: 2
          • declaration has this cascade origin

            d: o20borigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
          • declaration is mapped by means of a style rule selector

            d: o20b
          • declaration is not assigned to any explicit cascade layer

            d: o20b
          • declaration is among the declarations the case records

            d: o20a
          • declaration belongs to a style sheet that currently applies to this document

            d: o20a
          • every conditional rule qualifying the declaration has a true condition

            d: o20a
          • the declaration's property is a known property name

            d: o20a
          • the declaration's value matches the syntax for that property

            d: o20a
          • declaration belongs to a style rule whose selector matches the element

            d: o20ae: target
          • declaration declares this property

            d: o20ap: color
          • declaration is sourced from this encapsulation context

            d: o20aencapsulation: light-dom
          • specificity of the style rule the declaration appears in, as computed by the Selectors module

            d: o20aa: 0b: 0c: 1
          • position of the declaration in document order

            d: o20aposition: 1
          • declaration has this cascade origin

            d: o20aorigin: Author Origin: style sheets specified for a source document according to the conventions of the document language
          • declaration is mapped by means of a style rule selector

            d: o20a
          • declaration is not assigned to any explicit cascade layer

            d: o20a

          Package: Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан

          Additional details

          Include proof
          Yes
          Original data · JSON
          JSONRead only
          {
            "args": [
              "urn:case:css:d:o20b",
              "urn:case:css:d:o20a"
            ],
            "facts": [
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "declaration_recorded"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "in_applicable_style_sheet"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "qualifying_conditions_true"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "property_is_known"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "value_matches_property_syntax"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  "urn:case:css:element:target"
                ],
                "predicate": "selector_matches"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  "urn:case:css:property:color"
                ],
                "predicate": "declares_property"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  "urn:case:css:context:light-dom"
                ],
                "predicate": "declaration_context"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  0,
                  0,
                  1
                ],
                "predicate": "specificity"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  2
                ],
                "predicate": "document_order"
              },
              {
                "args": [
                  "urn:case:css:d:o20b",
                  "AuthorOrigin"
                ],
                "predicate": "declaration_origin"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "mapped_by_style_rule"
              },
              {
                "args": [
                  "urn:case:css:d:o20b"
                ],
                "predicate": "unlayered_declaration"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "declaration_recorded"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "in_applicable_style_sheet"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "qualifying_conditions_true"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "property_is_known"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "value_matches_property_syntax"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  "urn:case:css:element:target"
                ],
                "predicate": "selector_matches"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  "urn:case:css:property:color"
                ],
                "predicate": "declares_property"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  "urn:case:css:context:light-dom"
                ],
                "predicate": "declaration_context"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  0,
                  0,
                  1
                ],
                "predicate": "specificity"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  1
                ],
                "predicate": "document_order"
              },
              {
                "args": [
                  "urn:case:css:d:o20a",
                  "AuthorOrigin"
                ],
                "predicate": "declaration_origin"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "mapped_by_style_rule"
              },
              {
                "args": [
                  "urn:case:css:d:o20a"
                ],
                "predicate": "unlayered_declaration"
              }
            ],
            "kind": "truth",
            "legalTime": "2026-09-06",
            "package": "w3c-css-cascade",
            "predicate": "wins_cascade",
            "proof": true
          }
          Why this resultApplied rules and conditions

          Derivation path49 steps

          1. 1

            declaration is among the declarations the case records

            d: urn:case:css:d:o20b

            case fact
          2. 2

            position of the declaration in document order

            d: urn:case:css:d:o20b; position: 2

            case fact
          3. 3

            declaration has this cascade origin

            d: urn:case:css:d:o20b; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

            case fact
          4. 4

            declaration is mapped by means of a style rule selector

            d: urn:case:css:d:o20b

            case fact
          5. 5

            declaration is not assigned to any explicit cascade layer

            d: urn:case:css:d:o20b

            case fact
          6. 6

            Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

            declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:o20b; layer: implicit outer layer, which unlayered style rules are added to

            sec. 6_1, sec. 6_4_3

            Identifier
            urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
            rule
          7. 7

            declaration is among the declarations the case records

            d: urn:case:css:d:o20a

            case fact
          8. 8

            declaration belongs to a style sheet that currently applies to this document

            d: urn:case:css:d:o20a

            case fact
          9. 9

            every conditional rule qualifying the declaration has a true condition

            d: urn:case:css:d:o20a

            case fact
          10. 10

            the declaration's property is a known property name

            d: urn:case:css:d:o20a

            case fact
          11. 11

            the declaration's value matches the syntax for that property

            d: urn:case:css:d:o20a

            case fact
          12. 12

            Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

            declaration is syntactically valid: d: urn:case:css:d:o20a

            sec. 5

            Identifier
            urn:w3c:clir:css-cascade#SyntacticallyValid
            rule
          13. 13

            declaration belongs to a style rule whose selector matches the element

            d: urn:case:css:d:o20a; e: urn:case:css:element:target

            case fact
          14. 14

            Section 5. A declaration applies to an element when all four filtering conditions hold

            declaration applies to the element: d: urn:case:css:d:o20a; e: urn:case:css:element:target

            sec. 5

            Identifier
            urn:w3c:clir:css-cascade#DeclarationApplies
            rule
          15. 15

            declaration belongs to a style sheet that currently applies to this document

            d: urn:case:css:d:o20b

            case fact
          16. 16

            declaration declares this property

            d: urn:case:css:d:o20a; p: urn:case:css:property:color

            case fact
          17. 17

            Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

            declaration contributes a declared value for this property on this element: d: urn:case:css:d:o20a; e: urn:case:css:element:target; p: urn:case:css:property:color

            sec. 4_1, sec. 4

            Identifier
            urn:w3c:clir:css-cascade#DeclaredValueContributed
            rule
          18. 18

            declaration is sourced from this encapsulation context

            d: urn:case:css:d:o20a; encapsulation: urn:case:css:context:light-dom

            case fact
          19. 19

            specificity of the style rule the declaration appears in, as computed by the Selectors module

            d: urn:case:css:d:o20a; a: 0; b: 0; c: 1

            case fact
          20. 20

            position of the declaration in document order

            d: urn:case:css:d:o20a; position: 1

            case fact
          21. 21

            declaration has this cascade origin

            d: urn:case:css:d:o20a; origin: Author Origin: style sheets specified for a source document according to the conventions of the document language

            case fact
          22. 22

            declaration is mapped by means of a style rule selector

            d: urn:case:css:d:o20a

            case fact
          23. 23

            declaration is not assigned to any explicit cascade layer

            d: urn:case:css:d:o20a

            case fact
          24. 24

            Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

            declaration belongs to this cascade layer for the purpose of the cascade: d: urn:case:css:d:o20a; layer: implicit outer layer, which unlayered style rules are added to

            sec. 6_1, sec. 6_4_3

            Identifier
            urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
            rule
          25. 25

            every conditional rule qualifying the declaration has a true condition

            d: urn:case:css:d:o20b

            case fact
          26. 26

            the declaration's property is a known property name

            d: urn:case:css:d:o20b

            case fact
          27. 27

            the declaration's value matches the syntax for that property

            d: urn:case:css:d:o20b

            case fact
          28. 28

            Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

            declaration is syntactically valid: d: urn:case:css:d:o20b

            sec. 5

            Identifier
            urn:w3c:clir:css-cascade#SyntacticallyValid
            rule
          29. 29

            declaration belongs to a style rule whose selector matches the element

            d: urn:case:css:d:o20b; e: urn:case:css:element:target

            case fact
          30. 30

            Section 5. A declaration applies to an element when all four filtering conditions hold

            declaration applies to the element: d: urn:case:css:d:o20b; e: urn:case:css:element:target

            sec. 5

            Identifier
            urn:w3c:clir:css-cascade#DeclarationApplies
            rule
          31. 31

            declaration declares this property

            d: urn:case:css:d:o20b; p: urn:case:css:property:color

            case fact
          32. 32

            Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

            declaration contributes a declared value for this property on this element: d: urn:case:css:d:o20b; e: urn:case:css:element:target; p: urn:case:css:property:color

            sec. 4_1, sec. 4

            Identifier
            urn:w3c:clir:css-cascade#DeclaredValueContributed
            rule
          33. 33

            Section 6. The cascade sorts the declared values for a given property on a given element against each other

            two declarations are sorted against each other by the cascade: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6, sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#Comparable
            rule
          34. 34

            declaration is sourced from this encapsulation context

            d: urn:case:css:d:o20b; encapsulation: urn:case:css:context:light-dom

            case fact
          35. 35

            specificity of the style rule the declaration appears in, as computed by the Selectors module

            d: urn:case:css:d:o20b; a: 0; b: 0; c: 1

            case fact
          36. 36

            band occupies this position in the origin-and-importance precedence list

            band: Normal author declarations; rank: 60

            origin not recorded
          37. 37

            the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

            not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:o20a

            origin not recorded
          38. 38

            Section 6.3. All other declarations are normal (non-important)

            declaration is normal (non-important): d: urn:case:css:d:o20a

            sec. 6_3

            Identifier
            urn:w3c:clir:css-cascade#NormalDeclaration
            rule
          39. 39

            Section 6.1. Normal author declarations occupy the sixth step of the precedence list

            declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:o20a; band: Normal author declarations

            sec. 6_1, sec. 6_2

            Identifier
            urn:w3c:clir:css-cascade#NormalAuthorBand
            rule
          40. 40

            the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important

            not the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important: d: urn:case:css:d:o20b

            origin not recorded
          41. 41

            Section 6.3. All other declarations are normal (non-important)

            declaration is normal (non-important): d: urn:case:css:d:o20b

            sec. 6_3

            Identifier
            urn:w3c:clir:css-cascade#NormalDeclaration
            rule
          42. 42

            Section 6.1. Normal author declarations occupy the sixth step of the precedence list

            declaration belongs to this step of the origin-and-importance list: d: urn:case:css:d:o20b; band: Normal author declarations

            sec. 6_1, sec. 6_2

            Identifier
            urn:w3c:clir:css-cascade#NormalAuthorBand
            rule
          43. 43

            Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

            origin and importance did not separate the declarations: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#OriginAndImportanceTied
            rule
          44. 44

            Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

            encapsulation context did not separate the declarations: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#ContextTied
            rule
          45. 45

            Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

            element-attached styles did not separate the declarations: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
            rule
          46. 46

            Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

            cascade layers did not separate the declarations: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#LayerTied
            rule
          47. 47

            Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

            specificity did not separate the declarations: first: urn:case:css:d:o20b; second: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#SpecificityTied
            rule
          48. 48

            Section 6.1, Order of Appearance. The last declaration in document order wins

            declaration is sorted before the other by the cascade: winner: urn:case:css:d:o20b; loser: urn:case:css:d:o20a

            sec. 6_1

            Identifier
            urn:w3c:clir:css-cascade#OrderOfAppearanceDecides
            rule
          49. 49

            Query evaluation

            query

          verified by the engine: 20 · case fact: 26 · origin not recorded: 3 · Full graph: 78 nodes

          Steps of the saved proof from the case facts to the answer. Formulas are shown as written in the norm with bound values substituted; the page recomputes nothing.

          Basis of this answer

          Rules on the saved proof path for this answer.

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
          • Section 6. The cascade sorts the declared values for a given property on a given element against each other

            Identifier
            urn:w3c:clir:css-cascade#Comparable
          • Section 6.1, Context. The declarations are sourced from the same encapsulation context: the next criterion applies

            Identifier
            urn:w3c:clir:css-cascade#ContextTied
          • Section 5. A declaration applies to an element when all four filtering conditions hold

            Identifier
            urn:w3c:clir:css-cascade#DeclarationApplies
          • Section 4.1. Each property declaration applied to an element contributes a declared value for that property associated with the element

            Identifier
            urn:w3c:clir:css-cascade#DeclaredValueContributed
          • Section 6.1, Element-Attached Styles. Both declarations are mapped via a style rule selector: the next criterion applies

            Identifier
            urn:w3c:clir:css-cascade#ElementAttachedTiedBothMapped
          • Section 6.1, Layers. Both declarations belong to the same cascade layer: the next criterion applies

            Identifier
            urn:w3c:clir:css-cascade#LayerTied
          • Section 6.1. Normal author declarations occupy the sixth step of the precedence list

            Identifier
            urn:w3c:clir:css-cascade#NormalAuthorBand
          • Section 6.3. All other declarations are normal (non-important)

            Identifier
            urn:w3c:clir:css-cascade#NormalDeclaration
          • Section 6.1, Order of Appearance. The last declaration in document order wins

            Identifier
            urn:w3c:clir:css-cascade#OrderOfAppearanceDecides
          • Section 6.1, Origin and Importance. The declarations stand on the same step of the precedence list: the next criterion applies

            Identifier
            urn:w3c:clir:css-cascade#OriginAndImportanceTied
          • Section 6.1, Specificity. The declarations have equal specificity: the next criterion applies

            Identifier
            urn:w3c:clir:css-cascade#SpecificityTied
          • Section 5. A declaration is syntactically valid when its property is a known property name and its value matches the syntax for that property

            Identifier
            urn:w3c:clir:css-cascade#SyntacticallyValid
          • Section 6.1. Any declaration not assigned to an explicit layer is added to an implicit final layer

            Identifier
            urn:w3c:clir:css-cascade#UnlayeredDeclarationIsInTheImplicitOuterLayer
          Other rules in the evaluation5

          Applied in the overall evaluation, but not on the proof path for this answer.

          Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан
          • Section 4.2. There is a cascaded value when some declaration wins the cascade for this property on this element

            Identifier
            urn:w3c:clir:css-cascade#CascadeYieldsValue
          • Section 4.2. The cascaded value is the declared value that wins the cascade: the one no competing declaration outranks

            Identifier
            urn:w3c:clir:css-cascade#CascadedValueIsTheUnbeatenDeclaration
          • Section 4.2. A declaration is outranked when some competing declaration wins the cascade over it

            Identifier
            urn:w3c:clir:css-cascade#OutrankedBySome
          • Section 7.3.4. For the purpose of revert, a declaration in the author origin belongs to the author origin

            Identifier
            urn:w3c:clir:css-cascade#RevertOriginIsAuthorForAuthorOrigin
          • Section 4.3. In many cases the specified value is the cascaded value: when the cascade produced one and it is not a CSS-wide keyword

            Identifier
            urn:w3c:clir:css-cascade#SpecifiedValueIsCascadedValue

          Derived result for this query

          • declaration is sorted before the other by the cascade

            winner: o20bloser: o20a
          Other derived facts41
          • for the purpose of the revert keyword the declaration belongs to the author origin

            d: o20b
          • declaration belongs to this cascade layer for the purpose of the cascade

            d: o20blayer: implicit outer layer, which unlayered style rules are added to
          • declaration is syntactically valid

            d: o20a
          • declaration applies to the element

            d: o20ae: target
          • declaration contributes a declared value for this property on this element

            d: o20ae: targetp: color
          • two declarations are sorted against each other by the cascade

            first: o20asecond: o20a
          • for the purpose of the revert keyword the declaration belongs to the author origin

            d: o20a
          • declaration belongs to this cascade layer for the purpose of the cascade

            d: o20alayer: implicit outer layer, which unlayered style rules are added to
          • declaration is syntactically valid

            d: o20b
          • declaration applies to the element

            d: o20be: target
          • declaration contributes a declared value for this property on this element

            d: o20be: targetp: color
          • declaration is the cascaded value for this property on this element

            d: o20be: targetp: color
          • two declarations are sorted against each other by the cascade

            firstsecond
            o20bo20a
            o20bo20b
            o20ao20b
          • the specified value is the cascaded value itself

            d: o20be: targetp: color
          • declaration is normal (non-important)

            d: o20a
          • declaration belongs to this step of the origin-and-importance list

            d: o20aband: Normal author declarations
          • origin and importance did not separate the declarations

            first: o20asecond: o20a
          • encapsulation context did not separate the declarations

            first: o20asecond: o20a
          • element-attached styles did not separate the declarations

            first: o20asecond: o20a
          • cascade layers did not separate the declarations

            first: o20asecond: o20a
          • specificity did not separate the declarations

            first: o20asecond: o20a
          • declaration is normal (non-important)

            d: o20b
          • declaration belongs to this step of the origin-and-importance list

            d: o20bband: Normal author declarations
          • origin and importance did not separate the declarations

            first: o20bsecond: o20a
          • encapsulation context did not separate the declarations

            first: o20bsecond: o20a
          • element-attached styles did not separate the declarations

            first: o20bsecond: o20a
          • cascade layers did not separate the declarations

            first: o20bsecond: o20a
          • origin and importance did not separate the declarations

            first: o20bsecond: o20b
          • encapsulation context did not separate the declarations

            first: o20bsecond: o20b
          • element-attached styles did not separate the declarations

            first: o20bsecond: o20b
          • cascade layers did not separate the declarations

            first: o20bsecond: o20b
          • origin and importance did not separate the declarations

            first: o20asecond: o20b
          • encapsulation context did not separate the declarations

            first: o20asecond: o20b
          • element-attached styles did not separate the declarations

            first: o20asecond: o20b
          • cascade layers did not separate the declarations

            first: o20asecond: o20b
          • specificity did not separate the declarations

            firstsecond
            o20bo20b
            o20ao20b
            o20bo20a
          • some competing declaration wins the cascade over this one

            d: o20a
          for the purpose of the revert keyword the declaration belongs to the author origin
          d
          o20b
          o20a
          declaration belongs to this cascade layer for the purpose of the cascade
          dlayer
          o20bimplicit outer layer, which unlayered style rules are added to
          o20aimplicit outer layer, which unlayered style rules are added to
          declaration is syntactically valid
          d
          o20a
          o20b
          declaration applies to the element
          de
          o20aurn:case:css:element:target
          o20burn:case:css:element:target
          declaration contributes a declared value for this property on this element
          dep
          o20aurn:case:css:element:targeturn:case:css:property:color
          o20burn:case:css:element:targeturn:case:css:property:color
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          two declarations are sorted against each other by the cascade
          firstsecond
          o20ao20a
          o20bo20a
          o20bo20b
          o20ao20b
          declaration is the cascaded value for this property on this element
          dep
          o20burn:case:css:element:targeturn:case:css:property:color
          the specified value is the cascaded value itself
          dep
          o20burn:case:css:element:targeturn:case:css:property:color
          declaration is normal (non-important)
          d
          o20a
          o20b
          declaration belongs to this step of the origin-and-importance list
          dband
          o20aNormal author declarations
          o20bNormal author declarations
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          origin and importance did not separate the declarations
          firstsecond
          o20ao20a
          o20bo20a
          o20bo20b
          o20ao20b
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          encapsulation context did not separate the declarations
          firstsecond
          o20ao20a
          o20bo20a
          o20bo20b
          o20ao20b
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          element-attached styles did not separate the declarations
          firstsecond
          o20ao20a
          o20bo20a
          o20bo20b
          o20ao20b
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          cascade layers did not separate the declarations
          firstsecond
          o20ao20a
          o20bo20a
          o20bo20b
          o20ao20b
          Relationship graph
          urn:case:css:d:o20aurn:case:css:d:o20b
          specificity did not separate the declarations
          firstsecond
          o20ao20a
          o20bo20b
          o20ao20b
          o20bo20a
          Relationship graph
          urn:case:css:d:o20burn:case:css:d:o20a
          declaration is sorted before the other by the cascade
          winnerloser
          o20bo20a
          some competing declaration wins the cascade over this one
          d
          o20a

          1 further derived facts are not shown: the engine keeps the ones relevant to the question in its compact answer. The full list is in the calculation JSON below.

          Proof graph

          Closed list: the set of declarations carrying the !important annotation is closed by the case

          closed predicate the last two non-whitespace, non-comment tokens in the declaration's value are the delimiter token ! followed by the identifier token important · snapshot urn:w3c:clir:css-cascade:snapshot:declarations:case · complete as of

          in the list
            not in the list (explicit negative by closure)
            • urn:case:css:d:o20a
            • urn:case:css:d:o20b

            The list is closed by a §70 declaration: a missing record in the snapshot yields an explicit negative with an anti-membership certificate (§231.1). The lists are proof-graph nodes as recorded by the evaluation.

            Proof graph · 12 layer
            query_evaluationwins_cascaderule_applicationOrderOfAppearanceDecidesrule_applicationSpecificityTiedassertiondocument_orderassertiondocument_orderrule_applicationLayerTiedassertionspecificityassertionspecificityrule_applicationElementAttachedTiedBothMappedrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationUnlayeredDeclarationIsInTheImplicitOrule_applicationContextTiedassertionmapped_by_style_ruleassertionmapped_by_style_ruleassertionunlayered_declarationassertionunlayered_declarationrule_applicationOriginAndImportanceTiedassertiondeclaration_contextassertiondeclaration_contextrule_applicationComparablerule_applicationNormalAuthorBandrule_applicationNormalAuthorBandassertionband_rankrule_applicationDeclaredValueContributedrule_applicationDeclaredValueContributedrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationNormalDeclarationassertiondeclaration_originrule_applicationDeclarationAppliesassertiondeclares_propertyrule_applicationDeclarationAppliesassertiondeclares_propertyassertiondeclaration_recordedassertionhas_important_annotationassertiondeclaration_recordedassertionhas_important_annotationrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesrule_applicationSyntacticallyValidassertionin_applicable_style_sheetassertionqualifying_conditions_trueassertionselector_matchesassertionproperty_is_knownassertionvalue_matches_property_syntaxassertionproperty_is_knownassertionvalue_matches_property_syntax

            Proof nodes: 78 · assertion 29, rule_application 43, candidate_closure 5, query_evaluation 1

            This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

            Download JSON ↓
            Calendar and proof identifiers
            Proof reference
            mcp
            Original reasoning · JSON

            This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

            Download JSON ↓
            SourcesExcerpts: 14

            section/4

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            4. Value Processing Once a user agent has parsed a document and constructed a document tree, it must assign, to every element in the tree, and correspondingly to every box in the formatting structure, a value to every property that applies to the target media type. The final value of a CSS property for a given element or box is the result of a multi-step calculation: First, all the declared values applied to an element are collected, for each property on each element. There may be zero or many declared values applied to the element. Cascading yields the cascaded value. There is at most one cascaded value per property per element. Defaulting yields the specified value. Every element has exactly one specified value per property. Resolving value dependencies yields the computed value. Every element has exactly one computed value per property. Formatting the document yields the used value. An element only has a used value for a given property if that property applies to the element. Finally, the used value is transformed to the actual value based on constraints of the display environment. As with the used value, there may or may not be an actual value for a given property on an element. Elements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing, and do not have declared, cascaded, specified, computed, used, or actual values, even if they potentially have style declarations assigned to them (for example, by a style attribute).
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:1032e4306c7274d3ee0bbf2523002057a0add9365c58f88f61d8982aa5b8b8bc",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S4",
              "kind": "fragment",
              "locator": "section/4",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:51b78361fbdaeb78dfb2656060149b495574c0a69c5117d568c79834578936a7",
                  "language": "en",
                  "status": "official",
                  "text": "4. Value Processing\nOnce a user agent has parsed a document and constructed a document tree,\nit must assign,\nto every element in the tree,\nand correspondingly to every box in the formatting structure,\na value to every property that applies to the target media type.\nThe final value of a CSS property for a given element or box\nis the result of a multi-step calculation:\nFirst, all the declared values applied to an element are collected,\nfor each property on each element.\nThere may be zero or many declared values applied to the element.\nCascading yields the cascaded value.\nThere is at most one cascaded value per property per element.\nDefaulting yields the specified value.\nEvery element has exactly one specified value per property.\nResolving value dependencies yields the computed value.\nEvery element has exactly one computed value per property.\nFormatting the document yields the used value.\nAn element only has a used value for a given property\nif that property applies to the element.\nFinally, the used value is transformed to the actual value based on constraints of the display environment.\nAs with the used value, there may or may not be an actual value for a given property on an element.\nElements that are not connected or are not part of the document’s flattened element tree do not participate in CSS value processing,\nand do not have declared, cascaded, specified, computed, used, or actual values,\neven if they potentially have style declarations assigned to them\n(for example, by a style attribute)."
                }
              ]
            }

            section/4_1

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            4.1. Declared Values Each property declaration applied to an element contributes a declared value for that property associated with the element. See Filtering Declarations for details. These values are then processed by the cascade to choose a single “winning value”.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:d3eb77b85d6f380950eabb8264aa1292b4b06e78160c509b51a08cd11ef66b75",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S4_1",
              "kind": "fragment",
              "locator": "section/4_1",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:72a3f831fcd5599e111a8de28258297f64f0b10d33b7985e18764d786198cbe6",
                  "language": "en",
                  "status": "official",
                  "text": "4.1. Declared Values\nEach property declaration applied to an element contributes a declared value for that property\nassociated with the element.\nSee Filtering Declarations for details.\nThese values are then processed by the cascade to choose a single “winning value”."
                }
              ]
            }

            section/4_2

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            4.2. Cascaded Values The cascaded value represents the result of the cascade: it is the declared value that wins the cascade (is sorted first in the output of the cascade). If the output of the cascade is an empty list, there is no cascaded value.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:680967c0335bc170bb1d3eed857cbdf65e0844c28cdb882b06f955b18b290de3",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S4_2",
              "kind": "fragment",
              "locator": "section/4_2",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:728fbf4896aa8d75ffa250decd97924c873b11dbb4feb9298215b8b007ad9772",
                  "language": "en",
                  "status": "official",
                  "text": "4.2. Cascaded Values\nThe cascaded value represents the result of the cascade:\nit is the declared value that wins the cascade\n(is sorted first in the output of the cascade).\nIf the output of the cascade is an empty list,\nthere is no cascaded value."
                }
              ]
            }

            section/4_3

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            4.3. Specified Values The specified value is the value of a given property that the style sheet authors intended for that element. It is the result of putting the cascaded value through the defaulting processes, guaranteeing that a specified value exists for every property on every element. In many cases, the specified value is the cascaded value. However, if there is no cascaded value at all, the specified value is defaulted. The CSS-wide keywords are handled specially when they are the cascaded value of a property, setting the specified value as required by that keyword, see § 7.3 Explicit Defaulting.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:18572a052bae5476779611907414d7f2bb328c5a50cac975f43175a6a8b65832",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S4_3",
              "kind": "fragment",
              "locator": "section/4_3",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:2eef2e76916e9205133507a43183a478b65d604a0290247af7c8b16590ce4fa1",
                  "language": "en",
                  "status": "official",
                  "text": "4.3. Specified Values\nThe specified value is\nthe value of a given property that the style sheet authors intended for that element.\nIt is the result of putting the cascaded value through the defaulting processes,\nguaranteeing that a specified value exists for every property on every element.\nIn many cases, the specified value is the cascaded value.\nHowever, if there is no cascaded value at all,\nthe specified value is defaulted.\nThe CSS-wide keywords are handled specially\nwhen they are the cascaded value of a property,\nsetting the specified value as required by that keyword,\nsee § 7.3 Explicit Defaulting."
                }
              ]
            }

            section/5

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            5. Filtering In order to find the declared values, implementations must first identify all declarations that apply to each element. A declaration applies to an element if: It belongs to a style sheet that currently applies to this document. It is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition. It belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.) It is syntactically valid: the declaration’s property is a known property name, and the declaration’s value matches the syntax for that property. The values of the declarations that apply form, for each property on each element, a list of declared values. The next section, the cascade, prioritizes these lists.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:4250c835138ba865333b025adf054873db60d185e1cd5c5f9be5a8802f18cbb8",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S5",
              "kind": "fragment",
              "locator": "section/5",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:b845fde7eebcda9f0d16fb5b642544b38844d58b48c032bbd643d1b6c22ac12c",
                  "language": "en",
                  "status": "official",
                  "text": "5. Filtering\nIn order to find the declared values,\nimplementations must first identify all declarations that apply to each element.\nA declaration applies to an element if:\nIt belongs to a style sheet that currently applies to this document.\nIt is not qualified by a conditional rule [CSS-CONDITIONAL-3] with a false condition.\nIt belongs to a style rule whose selector matches the element. [SELECT] (Taking scoping into account, if necessary.)\nIt is syntactically valid:\nthe declaration’s property is a known property name,\nand the declaration’s value matches the syntax for that property.\nThe values of the declarations that apply form,\nfor each property on each element,\na list of declared values.\nThe next section,\nthe cascade,\nprioritizes these lists."
                }
              ]
            }

            section/6

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6. Cascading The cascade takes an unordered list of declared values for a given property on a given element, sorts them by their declaration’s precedence as determined below, and outputs a single cascaded value.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:da05d1967ed9d40f006a13cba7727b772a337fbb1bfe6b33fec74b6263ac4082",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6",
              "kind": "fragment",
              "locator": "section/6",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:4df89230801a772d0581dcf402d0a775977299ee375b80984bc1b6e8e9ec4730",
                  "language": "en",
                  "status": "official",
                  "text": "6. Cascading\nThe cascade takes an unordered list of declared values for a given property on a given element,\nsorts them by their declaration’s precedence as determined below,\nand outputs a single cascaded value."
                }
              ]
            }

            section/6_1

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6.1. Cascade Sorting Order The cascade sorts declarations according to the following criteria, in descending order of priority: Origin and Importance The origin of a declaration is based on where it comes from and its importance is whether or not it is declared with !important (see below). The precedence of the various origins is, in descending order: Transition declarations [css-transitions-1] Important user agent declarations Important user declarations Important author declarations Animation declarations [css-animations-1] Normal author declarations Normal user declarations Normal user agent declarations Declarations from origins earlier in this list win over declarations from later origins. Context A document language can provide for blending declarations sourced from different encapsulation contexts, such as the nested tree contexts of shadow trees in the [DOM]. When comparing two declarations that are sourced from different encapsulation contexts, then for normal rules the declaration from the outer context wins, and for important rules the declaration from the inner context wins. For this purpose, [DOM] tree contexts are considered to be nested in shadow-including tree order. Note: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context, while important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context. Element-Attached Styles Separately for normal and important declarations, declarations that are attached directly to an element (such as the contents of a style attribute) rather than indirectly mapped by means of a style rule selector take precedence over declarations the same importance that are mapped via style rule. See [css-style-attr]. Note: Non-CSS presentational hints (such as presentational markup) are handled separately, see § 6.5 Precedence of Non-CSS Presentational Hints. Layers Declarations within each origin and context can be explicitly assigned to a cascade layer. For the purpose of this step, any declaration not assigned to an explicit layer is added to an implicit final layer. Cascade layers (like declarations) are ordered by order of appearance. When comparing declarations that belong to different layers, then for normal rules the declaration whose cascade layer is last wins, and for important rules the declaration whose cascade layer is first wins. Note: This follows the same logic used for layering normal and important origins, so that the !important flag maintains the same “override” purpose in both settings. Specificity The Selectors module [SELECT] describes how to compute the specificity of a selector. Each declaration has the same specificity as the style rule it appears in. The declaration with the highest specificity wins. Order of Appearance The last declaration in document order wins. For this purpose: Style sheets are ordered as in final CSS style sheets. Declarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule. Declarations from style sheets independently linked by the originating document are treated as if they were concatenated in linking order, as determined by the host document language. Declarations from style attributes are ordered according to the document order of the element the style attribute appears on, and are all placed after any style sheets. The output of the cascade is a (potentially empty) sorted list of declared values for each property on each element.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:62ff4952c56b4dcbc0912c044a09065a4f8e433b7abc2a86a833401fd4b9984b",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6_1",
              "kind": "fragment",
              "locator": "section/6_1",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:b479a434611fc00c1da90099fa4c87ef1a3edb45ff9b0594585cb95c6d6cdb9d",
                  "language": "en",
                  "status": "official",
                  "text": "6.1. Cascade Sorting Order\nThe cascade sorts declarations according to the following criteria,\nin descending order of priority:\nOrigin and Importance\nThe origin of a declaration is based on where it comes from\nand its importance is\nwhether or not it is declared with !important (see below).\nThe precedence of the various origins is, in descending order:\nTransition declarations [css-transitions-1]\nImportant user agent declarations\nImportant user declarations\nImportant author declarations\nAnimation declarations [css-animations-1]\nNormal author declarations\nNormal user declarations\nNormal user agent declarations\nDeclarations from origins earlier in this list win over declarations from later origins.\nContext\nA document language can provide for blending declarations sourced\nfrom different encapsulation contexts,\nsuch as the nested tree contexts of shadow trees in the [DOM].\nWhen comparing two declarations\nthat are sourced from different encapsulation contexts,\nthen for normal rules\nthe declaration from the outer context wins,\nand for important rules\nthe declaration from the inner context wins.\nFor this purpose, [DOM] tree contexts are considered to be nested\nin shadow-including tree order.\nNote: This effectively means that normal declarations belonging to an encapsulation context can set defaults that are easily overridden by the outer context,\nwhile important declarations belonging to an encapsulation context can enforce requirements that cannot be overridden by the outer context.\nElement-Attached Styles\nSeparately for normal and important declarations,\ndeclarations that are attached directly to an element\n(such as the contents of a style attribute)\nrather than indirectly mapped by means of a style rule selector\ntake precedence over declarations the same importance that are mapped via style rule.\nSee [css-style-attr].\nNote: Non-CSS presentational hints (such as presentational markup)\nare handled separately,\nsee § 6.5 Precedence of Non-CSS Presentational Hints.\nLayers\nDeclarations within each origin and context can be explicitly assigned to a cascade layer.\nFor the purpose of this step,\nany declaration not assigned to an explicit layer\nis added to an implicit final layer.\nCascade layers (like declarations) are ordered by order of appearance.\nWhen comparing declarations that belong to different layers,\nthen for normal rules the declaration whose cascade layer is last wins,\nand for important rules the declaration whose cascade layer is first wins.\nNote: This follows the same logic used for layering normal and important origins,\nso that the !important flag maintains the same “override” purpose in both settings.\nSpecificity\nThe Selectors module [SELECT] describes how to compute the specificity of a selector.\nEach declaration has the same specificity as the style rule it appears in.\nThe declaration with the highest specificity wins.\nOrder of Appearance\nThe last declaration in document order wins.\nFor this purpose:\nStyle sheets are ordered as in final CSS style sheets.\nDeclarations from imported style sheets are ordered as if their style sheets were substituted in place of the @import rule.\nDeclarations from style sheets independently linked by the originating document\nare treated as if they were concatenated in linking order,\nas determined by the host document language.\nDeclarations from style attributes\nare ordered according to the document order of the element the style attribute appears on,\nand are all placed after any style sheets.\nThe output of the cascade is a (potentially empty) sorted list of declared values for each property on each element."
                }
              ]
            }

            section/6_2

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6.2. Cascading Origins Each style rule has a cascade origin, which determines where it enters the cascade. CSS defines three core origins: Author Origin The author specifies style sheets for a source document according to the conventions of the document language. For instance, in HTML, style sheets may be included in the document or linked externally. User Origin The user may be able to specify style information for a particular document. For example, the user may specify a file that contains a style sheet or the user agent may provide an interface that generates a user style sheet (or behaves as if it did). User-Agent Origin Conforming user agents must apply a default style sheet (or behave as if they did). A user agent’s default style sheet should present the elements of the document language in ways that satisfy general presentation expectations for the document language (e.g., for visual browsers, the EM element in HTML is presented using an italic font). See e.g. the HTML user agent style sheet. [HTML] Extensions to CSS define the following additional origins: Animation Origin CSS Animations [css-animations-1] generate “virtual” rules representing their effects when running. Transition Origin Like CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:6b324eff99852d174a60d90a89f75215e7e87210bf5a156817effa2ddc4c8294",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6_2",
              "kind": "fragment",
              "locator": "section/6_2",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:f221ab39ebcc687e320a2336486650aa7543c9dfa742283a4214efe27251040b",
                  "language": "en",
                  "status": "official",
                  "text": "6.2. Cascading Origins\nEach style rule has a cascade origin,\nwhich determines where it enters the cascade.\nCSS defines three core origins:\nAuthor Origin\nThe author specifies style sheets for a source document\naccording to the conventions of the document language.\nFor instance, in HTML,\nstyle sheets may be included in the document or linked externally.\nUser Origin\nThe user may be able to specify style information for a particular document.\nFor example, the user may specify a file that contains a style sheet\nor the user agent may provide an interface that generates a user style sheet\n(or behaves as if it did).\nUser-Agent Origin\nConforming user agents must apply a default style sheet\n(or behave as if they did).\nA user agent’s default style sheet should present the elements of the document language\nin ways that satisfy general presentation expectations for the document language\n(e.g., for visual browsers, the EM element in HTML is presented using an italic font).\nSee e.g. the HTML user agent style sheet. [HTML]\nExtensions to CSS define the following additional origins:\nAnimation Origin\nCSS Animations [css-animations-1] generate “virtual” rules representing their effects when running.\nTransition Origin\nLike CSS Animations, CSS Transitions [css-transitions-1] generate “virtual” rules representing their effects when running."
                }
              ]
            }

            section/6_3

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6.3. Important Declarations: the !important annotation CSS attempts to create a balance of power between author and user style sheets. By default, rules in an author’s style sheet override those in a user’s style sheet, which override those in the user-agent’s default style sheet. To balance this, a declaration can be marked important, which increases its weight in the cascade and inverts the order of precedence. A declaration is important if it has a !important annotation as defined by [css-syntax-3], i.e. if the last two (non-whitespace, non-comment) tokens in its value are the delimiter token ! followed by the identifier token important. All other declarations are normal (non-important). [hidden] { display: none !important; } An important declaration takes precedence over a normal declaration. Author and user style sheets may contain important declarations, with user-origin important declarations overriding author-origin important declarations. This CSS feature improves accessibility of documents by giving users with special requirements (large fonts, color combinations, etc.) control over presentation. Important declarations from all origins take precedence over animations. This allows authors to override animated values in important cases. (Animated values normally override all other rules.) [css-animations-1] User-agent style sheets may also contain important declarations. These override all author and user declarations. The first rule in the user’s style sheet in the following example contains an !important declaration, which overrides the corresponding declaration in the author’s style sheet. The declaration in the second rule will also win due to being marked !important. However, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet (which happens to set style on a shorthand property). Also, the third author rule will lose to the second author rule since the second declaration is !important. This shows that !important declarations have a function also within author style sheets. /* From the user’s style sheet */ p { text-indent: 1em !important } p { font-style: italic !important } p { font-size: 18pt } /* From the author’s style sheet */ p { text-indent: 1.5em !important } p { font: normal 12pt sans-serif !important } p { font-size: 24pt } Property Winning value text-indent 1em font-style italic font-size 12pt font-family sans-serif
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:a024cc8d28c500147dd177f2ffff499875e9f03fa3ea02b21257534cb4120798",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6_3",
              "kind": "fragment",
              "locator": "section/6_3",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:bd1317210a37ccf99d61011c32115ad4967f2ab6363881f0514c3dda62a5ba94",
                  "language": "en",
                  "status": "official",
                  "text": "6.3. Important Declarations: the !important annotation\nCSS attempts to create a balance of power between author and user style sheets.\nBy default, rules in an author’s style sheet override those in a user’s style sheet,\nwhich override those in the user-agent’s default style sheet.\nTo balance this, a declaration can be marked important,\nwhich increases its weight in the cascade and inverts the order of precedence.\nA declaration is important if it has a !important annotation as defined by [css-syntax-3],\ni.e. if the last two (non-whitespace, non-comment) tokens\nin its value are the delimiter token ! followed by the identifier token important.\nAll other declarations are normal (non-important).\n[hidden] { display: none !important; }\nAn important declaration takes precedence over a normal declaration.\nAuthor and user style sheets may contain important declarations,\nwith user-origin important declarations\noverriding author-origin important declarations.\nThis CSS feature improves accessibility of documents\nby giving users with special requirements\n(large fonts, color combinations, etc.)\ncontrol over presentation.\nImportant declarations from all origins take precedence over animations.\nThis allows authors to override animated values in important cases.\n(Animated values normally override all other rules.) [css-animations-1]\nUser-agent style sheets may also contain important declarations.\nThese override all author and user declarations.\nThe first rule in the user’s style sheet in the following example contains an !important declaration,\nwhich overrides the corresponding declaration in the author’s style sheet.\nThe declaration in the second rule will also win due to being marked !important.\nHowever, the third declaration in the user’s style sheet is not !important and will therefore lose to the second rule in the author’s style sheet\n(which happens to set style on a shorthand property).\nAlso, the third author rule will lose to the second author rule since the second declaration is !important.\nThis shows that !important declarations have a function also within author style sheets.\n/* From the user’s style sheet */\np { text-indent: 1em !important }\np { font-style: italic !important }\np { font-size: 18pt }\n/* From the author’s style sheet */\np { text-indent: 1.5em !important }\np { font: normal 12pt sans-serif !important }\np { font-size: 24pt }\nProperty\nWinning value\ntext-indent\n1em\nfont-style\nitalic\nfont-size\n12pt\nfont-family\nsans-serif"
                }
              ]
            }

            section/6_4

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6.4. Cascade Layers In the same way that cascade origins provide a balance of power between user and author styles, cascade layers provide a structured way to organize and balance concerns within a single origin. Rules within a single cascade layer cascade together, without interleaving with style rules outside the layer. Authors can create layers to represent element defaults, third-party libraries, themes, components, overrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way, without altering selectors or specificity within each layer, or relying on source-order to resolve conflicts across layers. For example, the following generates an explicit reset layer, with lower cascade weight than any unlayered styles: audio { /* specificity of 0,0,1 - implicit (final) layer */ display: flex; } @layer reset { audio[controls] { /* specificity of 0,1,1 - explicit "reset" layer */ display: block; } } The unlayered declarations on the audio element take precedence over the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity, and come first in the source order. Name-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions. For example, authors could override the animation from a framework, by providing keyframes with the same name in a higher-priority layer: /* establish the layer order, so the "override" layer takes precedence */ @layer framework, override; @layer override { @keyframes slide-left { from { translate: 0; } to { translate: -100% 0; } } } @layer framework { @keyframes slide-left { from { margin-left: 0; } to { margin-left: -100%; } } } .sidebar { animation: slide-left 300ms; } In this case the override layer has a higher cascade priority than the framework layer, so slide-left will animate using the translate property rather than margin-left.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:0b68d835f967794dc9ca88471f74f480a71436dcf0be1011eedd0229f17b8712",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6_4",
              "kind": "fragment",
              "locator": "section/6_4",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:94d9f89eebe1b746e66c075a218c8eac54cec0ed51b4a50b211c631474adb89e",
                  "language": "en",
                  "status": "official",
                  "text": "6.4. Cascade Layers\nIn the same way that cascade origins provide a balance of power\nbetween user and author styles, cascade layers provide a structured way\nto organize and balance concerns within a single origin.\nRules within a single cascade layer cascade together,\nwithout interleaving with style rules outside the layer.\nAuthors can create layers to represent element defaults,\nthird-party libraries, themes, components,\noverrides, and other styling concerns—and are able to re-order the cascade of layers in an explicit way,\nwithout altering selectors or specificity within each layer,\nor relying on source-order to resolve conflicts across layers.\nFor example, the following generates an explicit reset layer,\nwith lower cascade weight than any unlayered styles:\naudio {\n/* specificity of 0,0,1 - implicit (final) layer */\ndisplay: flex;\n}\n@layer reset {\naudio[controls] {\n/* specificity of 0,1,1 - explicit \"reset\" layer */\ndisplay: block;\n}\n}\nThe unlayered declarations on the audio element take precedence\nover the explicitly layered declarations on audio[controls] —even though the unlayered styles have a lower specificity,\nand come first in the source order.\nName-defining at-rules such as @keyframes or @font-face that are defined inside cascade layers also use the layer order when resolving name collisions.\nFor example,\nauthors could override the animation from a framework,\nby providing keyframes with the same name in a higher-priority layer:\n/* establish the layer order, so the \"override\" layer takes precedence */\n@layer framework, override;\n@layer override {\n@keyframes slide-left {\nfrom { translate: 0; }\nto { translate: -100% 0; }\n}\n}\n@layer framework {\n@keyframes slide-left {\nfrom { margin-left: 0; }\nto { margin-left: -100%; }\n}\n}\n.sidebar { animation: slide-left 300ms; }\nIn this case the override layer\nhas a higher cascade priority than the framework layer,\nso slide-left will animate\nusing the translate property rather than margin-left."
                }
              ]
            }

            section/6_4_3

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            6.4.3. Layer Ordering Cascade layers are sorted by the order in which they first are declared, with nested layers grouped within their parent layers before any unlayered rules. Given the following layer rules: /* unlayered styles come last in the layer order */ h1 { color: darkslateblue; } @layer reset.type { strong { font-weight: bold; } } @layer framework { .title { font-weight: 100; } @layer theme { h1, h2 { color: maroon; } } } @layer reset { [hidden] { display: none; } } The outer layers are sorted first, with any unlayered style rules added to an implicit outer layer which has higher priority than (comes after) the explicit layers: reset framework (implicit outer layer) Within each layer, nested layers are sorted in appearance order, and style rules without further nesting are similarly added to an implicit sub-layer after the explicitly nested layers: reset.type reset (implicit sub-layer) framework.theme framework (implicit sub-layer) (implicit outer layer) Layers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true or unless the conditional group rule can evaluate differently for different elements in the document. Note: Since the layer order is global to the document, any layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order, regardless of the rule’s condition. Conditions that are global to the document, however (such as @media and @supports) can accommodate such @layer rules conditionally. For example, the following layer order will depend on which media conditions match: @media (min-width: 30em) { @layer layout { .title { font-size: x-large; } } } @media (prefers-color-scheme: dark) { @layer theme { .title { color: white; } } } @layer theme, layout; If the first media-query matches based on viewport dimensions, then the layout layer will come first in the layer order. If the color-scheme preference query matches, or if neither condition is true, then theme will come first in the layer order. Authors who want to avoid this behavior can establish an explicit ordering of layers in advance, and avoid defining new layers inside conditional rules. Note: Cascade layers are scoped to their origin and context, so the ordering of layers in the light DOM has no impact on the order of identically-named layers in the shadow DOM (and vice versa). Allow authors to explicitly place unlayered styles in the layer order [Issue #6323]
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:7e326980bfd03ace3a7629bcd6c0159c20288fc7443037f29258c419e7015e72",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S6_4_3",
              "kind": "fragment",
              "locator": "section/6_4_3",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:423c8d9abc7b4b538a234b0911b2cd098c448661321d0904fc0f1a2c9b4f2012",
                  "language": "en",
                  "status": "official",
                  "text": "6.4.3. Layer Ordering\nCascade layers are sorted\nby the order in which they first are declared,\nwith nested layers grouped within their parent layers\nbefore any unlayered rules.\nGiven the following layer rules:\n/* unlayered styles come last in the layer order */\nh1 { color: darkslateblue; }\n@layer reset.type {\nstrong { font-weight: bold; }\n}\n@layer framework {\n.title { font-weight: 100; }\n@layer theme {\nh1, h2 { color: maroon; }\n}\n}\n@layer reset {\n[hidden] { display: none; }\n}\nThe outer layers are sorted first,\nwith any unlayered style rules\nadded to an implicit outer layer which\nhas higher priority than (comes after) the explicit layers:\nreset\nframework\n(implicit outer layer)\nWithin each layer,\nnested layers are sorted in appearance order,\nand style rules without further nesting\nare similarly added to an implicit sub-layer\nafter the explicitly nested layers:\nreset.type\nreset (implicit sub-layer)\nframework.theme\nframework (implicit sub-layer)\n(implicit outer layer)\nLayers that are defined inside of a conditional group rule do not contribute to the layer order unless the condition is true\nor unless the conditional group rule can evaluate differently\nfor different elements in the document.\nNote: Since the layer order is global to the document,\nany layers defined inside an element-sensitive conditional group rule need to be accommodated when establishing the global layer order,\nregardless of the rule’s condition.\nConditions that are global to the document, however\n(such as @media and @supports)\ncan accommodate such @layer rules conditionally.\nFor example,\nthe following layer order\nwill depend on which media conditions match:\n@media (min-width: 30em) {\n@layer layout {\n.title { font-size: x-large; }\n}\n}\n@media (prefers-color-scheme: dark) {\n@layer theme {\n.title { color: white; }\n}\n}\n@layer theme, layout;\nIf the first media-query matches based on viewport dimensions,\nthen the layout layer will come first in the layer order.\nIf the color-scheme preference query matches,\nor if neither condition is true,\nthen theme will come first in the layer order.\nAuthors who want to avoid this behavior can establish\nan explicit ordering of layers in advance,\nand avoid defining new layers inside conditional rules.\nNote: Cascade layers are scoped to their origin and context,\nso the ordering of layers in the light DOM has no impact\non the order of identically-named layers in the shadow DOM\n(and vice versa).\nAllow authors to explicitly place unlayered styles in the layer order [Issue #6323]"
                }
              ]
            }

            section/7

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            7. Defaulting When the cascade does not result in a value, the specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance; all other properties take their initial value. Authors can explicitly request inheritance or initialization via the inherit and initial keywords.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:f0444555d0fe01d36d5b6350e957503e5bfa9478f992ad952091ee9992d04dab",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S7",
              "kind": "fragment",
              "locator": "section/7",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:ef9632ae537908328c0990f6ad4fc60fd6e32e5dc47947dfbe31526e1197d966",
                  "language": "en",
                  "status": "official",
                  "text": "7. Defaulting\nWhen the cascade does not result in a value,\nthe specified value must be found some other way. Inherited properties draw their defaults from their parent element through inheritance;\nall other properties take their initial value.\nAuthors can explicitly request inheritance or initialization\nvia the inherit and initial keywords."
                }
              ]
            }

            section/7_3

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            7.3. Explicit Defaulting Several CSS-wide property values are defined below; declaring a property to have these values explicitly specifies a particular defaulting behavior. As specified in CSS Values and Units [css-values-3], all CSS properties can accept these values.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:f259ae221bd4ab6775e42b189fc717daeb295c00304c5ad6ebfb692d25d7190b",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S7_3",
              "kind": "fragment",
              "locator": "section/7_3",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:2c9a0c61a35084c4cb57ce479d688d037655c4c5fed1fa24b0b2ee5a9c325e43",
                  "language": "en",
                  "status": "official",
                  "text": "7.3. Explicit Defaulting\nSeveral CSS-wide property values are defined below;\ndeclaring a property to have these values explicitly specifies a particular defaulting behavior.\nAs specified in CSS Values and Units [css-values-3],\nall CSS properties can accept these values."
                }
              ]
            }

            section/7_3_4

            Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1

            7.3.4. Rolling Back Cascade Origins: the revert keyword If the cascaded value of a property is the revert keyword, the behavior depends on the cascade origin to which the declaration belongs: user-agent origin Equivalent to unset. user origin Rolls back the cascaded value to the user-agent level, so that the specified value is calculated as if no author-origin or user-origin rules were specified for this property on this element. author origin Rolls back the cascaded value to the user level, so that the specified value is calculated as if no author-origin rules were specified for this property on this element. For the purpose of revert, this origin includes the Animation origin.
            Original data · JSON
            JSONRead only
            {
              "contentHash": "sha256:2c0dc8bb4155586ca80391621fa221a1e4dbc765b8fec045caf564eb9ec6d7f3",
              "edition": "urn:w3c:clir:css-cascade#CSS_CASCADE_5_EN",
              "fragmentKind": "section",
              "id": "urn:w3c:clir:css-cascade#CSS_S7_3_4",
              "kind": "fragment",
              "locator": "section/7_3_4",
              "package": "urn:w3c:clir:css-cascade",
              "texts": [
                {
                  "contentHash": "sha256:93ccc25f0643cf0eae5ca7b86594f868b1ec46b0b0b74aaa655cf3cfaf128447",
                  "language": "en",
                  "status": "official",
                  "text": "7.3.4. Rolling Back Cascade Origins: the revert keyword\nIf the cascaded value of a property is\nthe revert keyword,\nthe behavior depends on the cascade origin to which the declaration belongs:\nuser-agent origin\nEquivalent to unset.\nuser origin\nRolls back the cascaded value to the user-agent level,\nso that the specified value is calculated\nas if no author-origin or user-origin rules were specified\nfor this property on this element.\nauthor origin\nRolls back the cascaded value to the user level,\nso that the specified value is calculated\nas if no author-origin rules were specified\nfor this property on this element.\nFor the purpose of revert, this origin includes the Animation origin."
                }
              ]
            }

            Packages in the snapshot

            • Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1
            Technical dataFull response, parameters and checksums
            Calculation status
            COMPUTED
            Full engine response
            wins_cascade: TRUE_ONLY — установлено Выведено правом: revert_origin_is_author(urn:case:css:d:o20b); in_layer(urn:case:css:d:o20b, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:o20a); applies_to(urn:case:css:d:o20a, urn:case:css:element:target); declared_value_for(urn:case:css:d:o20a, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:o20a, urn:case:css:d:o20a); revert_origin_is_author(urn:case:css:d:o20a); in_layer(urn:case:css:d:o20a, ImplicitOuterLayer); syntactically_valid(urn:case:css:d:o20b); applies_to(urn:case:css:d:o20b, urn:case:css:element:target); declared_value_for(urn:case:css:d:o20b, urn:case:css:element:target, urn:case:css:property:color); cascaded_value_from(urn:case:css:d:o20b, urn:case:css:element:target, urn:case:css:property:color); comparable(urn:case:css:d:o20b, urn:case:css:d:o20a); comparable(urn:case:css:d:o20b, urn:case:css:d:o20b); comparable(urn:case:css:d:o20a, urn:case:css:d:o20b); specified_value_from_cascade(urn:case:css:d:o20b, urn:case:css:element:target, urn:case:css:property:color); normal(urn:case:css:d:o20a); declaration_band(urn:case:css:d:o20a, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:o20a, urn:case:css:d:o20a); tied_after_context(urn:case:css:d:o20a, urn:case:css:d:o20a); tied_after_element_attached(urn:case:css:d:o20a, urn:case:css:d:o20a); tied_after_layer(urn:case:css:d:o20a, urn:case:css:d:o20a); tied_after_specificity(urn:case:css:d:o20a, urn:case:css:d:o20a); normal(urn:case:css:d:o20b); declaration_band(urn:case:css:d:o20b, NormalAuthorDeclarations); tied_after_band(urn:case:css:d:o20b, urn:case:css:d:o20a); tied_after_context(urn:case:css:d:o20b, urn:case:css:d:o20a); tied_after_element_attached(urn:case:css:d:o20b, urn:case:css:d:o20a); tied_after_layer(urn:case:css:d:o20b, urn:case:css:d:o20a); tied_after_band(urn:case:css:d:o20b, urn:case:css:d:o20b); tied_after_context(urn:case:css:d:o20b, urn:case:css:d:o20b); tied_after_element_attached(urn:case:css:d:o20b, urn:case:css:d:o20b); tied_after_layer(urn:case:css:d:o20b, urn:case:css:d:o20b); tied_after_band(urn:case:css:d:o20a, urn:case:css:d:o20b); tied_after_context(urn:case:css:d:o20a, urn:case:css:d:o20b); tied_after_element_attached(urn:case:css:d:o20a, urn:case:css:d:o20b); tied_after_layer(urn:case:css:d:o20a, urn:case:css:d:o20b); tied_after_specificity(urn:case:css:d:o20b, urn:case:css:d:o20b); tied_after_specificity(urn:case:css:d:o20a, urn:case:css:d:o20b); tied_after_specificity(urn:case:css:d:o20b, urn:case:css:d:o20a); wins_cascade(urn:case:css:d:o20b, urn:case:css:d:o20a); outranked_by_some(urn:case:css:d:o20a) …и ещё 1 выведенных фактов вне предмета вопроса (полный вывод — law_explain) Применены правила: CascadeYieldsValue, CascadedValueIsTheUnbeatenDeclaration, Comparable, ContextTied, DeclarationApplies, DeclaredValueContributed, ElementAttachedTiedBothMapped, LayerTied, NormalAuthorBand, NormalDeclaration, OrderOfAppearanceDecides, OriginAndImportanceTied, OutrankedBySome, RevertOriginIsAuthorForAuthorOrigin, SpecificityTied, SpecifiedValueIsCascadedValue, SyntacticallyValid, UnlayeredDeclarationIsInTheImplicitOuterLayer Право (W3C — издатель, не правопорядок): Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — EXECUTABLE 22 §33.1 (programHash sha256:16a3aec85364…) proof-граф: 78 узлов — поле evaluation готово для law_explain

            Complete machine result · JSON

            This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

            Download JSON ↓

            Execution · JSON

            This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

            Download JSON ↓

            Display metadata

            This block is too large for inline viewing. It is included in full in the document JSON, without truncation.

            Download JSON ↓

            JSON · calculations, sources and exact data

            JSONRead only
            {
              "acts": [
                {
                  "contributed": true,
                  "fragmentCount": 56,
                  "fragments": [
                    "urn:w3c:clir:css-cascade#CSS_S4",
                    "urn:w3c:clir:css-cascade#CSS_S4_1",
                    "urn:w3c:clir:css-cascade#CSS_S4_2",
                    "urn:w3c:clir:css-cascade#CSS_S4_3",
                    "urn:w3c:clir:css-cascade#CSS_S5",
                    "urn:w3c:clir:css-cascade#CSS_S6",
                    "urn:w3c:clir:css-cascade#CSS_S6_1",
                    "urn:w3c:clir:css-cascade#CSS_S6_2",
                    "urn:w3c:clir:css-cascade#CSS_S6_3",
                    "urn:w3c:clir:css-cascade#CSS_S6_4_3",
                    "urn:w3c:clir:css-cascade#CSS_S7_3_4"
                  ],
                  "jurisdiction": "W3C",
                  "namespace": "urn:w3c:clir:css-cascade",
                  "package": "w3c-css-cascade",
                  "title": "Каскад и умолчания CSS: шесть критериев сортировки объявлений, происхождения, !important и слои каскада (W3C CSS Cascading and Inheritance Level 5) — юрисдикция W3C, НЕ Республика Казахстан — EXECUTABLE 22 §33.1"
                }
              ],
              "caseHash": "sha256:efe76466ea543307f09f4e68dd781bd667644298c534a5b347943950a20b9191",
              "codeHash": "sha256:9bcca6a33805c1c364ca1bc8e9d39d6a9c51ba44203c0406bafbf397b96be699",
              "jurisdiction": "W3C — издатель, не правопорядок",
              "legalTime": "2026-09-06",
              "mode": "audit",
              "programHash": "sha256:16a3aec853641d93baf8b975f4049939810d60a17ec2b8885d7cf40c74cbbaf5",
              "resultHash": "sha256:aead401636778476b28d918e2d4b7e02ab5c827ca111749ded126651d92d02d5",
              "rustCodeHash": "sha256:d368cafc7162ed7a6563df5e5c943a57be26fa8aeb3179b530fe3bdd67fe9be4",
              "timezone": "Asia/Qyzylorda"
            }
            evaluation SHA-256
            sha256:7bea3ab9430c296dc6c6da591c2b19c5be47355e020a1ef8690958d27ee6fb86
            Original data · JSON
            JSONRead only
            {
              "args": [
                "urn:case:css:d:o20b",
                "urn:case:css:d:o20a"
              ],
              "facts": [
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "declaration_recorded"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "in_applicable_style_sheet"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "qualifying_conditions_true"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "property_is_known"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "value_matches_property_syntax"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    "urn:case:css:element:target"
                  ],
                  "predicate": "selector_matches"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    "urn:case:css:property:color"
                  ],
                  "predicate": "declares_property"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    "urn:case:css:context:light-dom"
                  ],
                  "predicate": "declaration_context"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    0,
                    0,
                    1
                  ],
                  "predicate": "specificity"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    2
                  ],
                  "predicate": "document_order"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b",
                    "AuthorOrigin"
                  ],
                  "predicate": "declaration_origin"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "mapped_by_style_rule"
                },
                {
                  "args": [
                    "urn:case:css:d:o20b"
                  ],
                  "predicate": "unlayered_declaration"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "declaration_recorded"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "in_applicable_style_sheet"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "qualifying_conditions_true"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "property_is_known"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "value_matches_property_syntax"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    "urn:case:css:element:target"
                  ],
                  "predicate": "selector_matches"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    "urn:case:css:property:color"
                  ],
                  "predicate": "declares_property"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    "urn:case:css:context:light-dom"
                  ],
                  "predicate": "declaration_context"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    0,
                    0,
                    1
                  ],
                  "predicate": "specificity"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    1
                  ],
                  "predicate": "document_order"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a",
                    "AuthorOrigin"
                  ],
                  "predicate": "declaration_origin"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "mapped_by_style_rule"
                },
                {
                  "args": [
                    "urn:case:css:d:o20a"
                  ],
                  "predicate": "unlayered_declaration"
                }
              ],
              "kind": "truth",
              "legalTime": "2026-09-06",
              "package": "w3c-css-cascade",
              "predicate": "wins_cascade",
              "proof": true
            }

            При полном равенстве побеждает последнее объявление в документе.

            How to cite

            The snapshot is immutable: the SHA-256 of the downloadable JSON pins it, so no access date is needed.

            Citation
            “Два объявления претендуют на одно свойство. Как каскад решает спор через слои, важность, происхождение и специфичность селектора?”. Arxo Lens, as of 2026-09-06. https://lens.arxo.io/a/a_BxJJ9C7lEPlGjAxdsAGubVQJ. Snapshot SHA-256: 91c051244f839f3b83de5571e0e191dc6fed2487817fbd7b86faf85925402a4a.
            BibTeX
            @misc{arxo-lens-a_BxJJ9C7lEPlG,
              title = {Два объявления претендуют на одно свойство. Как каскад решает спор через слои, важность, происхождение и специфичность селектора?},
              howpublished = {Arxo Lens},
              url = {https://lens.arxo.io/a/a_BxJJ9C7lEPlGjAxdsAGubVQJ},
              note = {as of 2026-09-06; SHA-256 91c051244f839f3b83de5571e0e191dc6fed2487817fbd7b86faf85925402a4a}
            }
            Embed code

            The card shows the result and links to the full analysis; it sets no cookies.

            <iframe src="https://lens.arxo.io/embed/a_BxJJ9C7lEPlGjAxdsAGubVQJ?lang=en" width="100%" height="390" loading="lazy" title="The CSS cascade: which declaration wins and why — Arxo Lens" style="border:0"></iframe>

            Anonymous visit statistics, no cookies.