Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css-transitions-2] Add spec for @starting-style #8174 #8876

Merged
merged 6 commits into from
Jun 22, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions css-transitions-2/Overview.bs
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,78 @@ Each time a new transition is generated, the current value of the (already
incremented) <a>current transition generation</a> is stored as the
transition's <dfn>transition generation</dfn>.

## Defining [=before-change style=]: the ''@starting-style'' rule

Transitions can only start during a [=style change event=] for elements which
has a defined [=before-change style=] established by the previous
[=style change event=], which means that newly inserted elements or elements
that change from not [=being rendered=] to being rendered do not start
transitions. Still, doing transitions starting from the initial rendering is a
valid use case.
lilles marked this conversation as resolved.
Show resolved Hide resolved

The <dfn at-rule id="at-ruledef-starting-style">@starting-style</dfn> rule is a
conditional group rule with the implicit condition that it matches if the
lilles marked this conversation as resolved.
Show resolved Hide resolved
previous [=style change event=] did not establish a [=before-change style=] for
the element whose styles are being computed. This is used to establish a
[=before-change style=] for the current [=style change event=].
lilles marked this conversation as resolved.
Show resolved Hide resolved

If any rules in ''@starting-style'' are applied, the resulting style must be
used as the [=before-change style=] for the current [=style change event=] and
the computed styles must be re-computed without ''@starting-style'' rules
applied.
lilles marked this conversation as resolved.
Show resolved Hide resolved

<div class=example>

Transitioning background-color of an h1 element from transparent to green
lilles marked this conversation as resolved.
Show resolved Hide resolved
from initial rendering:

<pre class=lang-css>
h1 {
transition: background-color 1.5s;
background-color: green;
}
@starting-style {
h1 {
background-color: transparent;
}
}
</pre>

Conditional rules can be used with CSS Nesting:

<pre class=lang-css>
h1 {
transition: background-color 1.5s;
background-color: green;
@starting-style {
background-color: transparent;
}
}
</pre>
</div>
dbaron marked this conversation as resolved.
Show resolved Hide resolved

Global, name-defining at-rules such as ''@keyframes'', ''@font-face'', and
''@layer'' are not constrained by ''@starting-style''.
lilles marked this conversation as resolved.
Show resolved Hide resolved

### The <code>CSSStartingStyleRule</code> interface

The {{CSSStartingStyleRule}} interface represents a ''@starting-style'' rule.

<pre class='idl'>
[Exposed=Window]
interface CSSStartingStyleRule : CSSConditionRule {
lilles marked this conversation as resolved.
Show resolved Hide resolved
};
</pre>

<dl class='idl-attributes'>
<dt><code>conditionText</code> of type <code>CSSOMString</code>
(CSSStartingStyle-specific definition for attribute on CSSConditionRule)
<dd>The <code>conditionText</code> attribute (defined on the
<code>CSSConditionRule</code> parent rule), on getting, must return the
empty string.
</dl>


# Application of transitions # {#application}

## Animation composite order ## {#animation-composite-order}
Expand Down