From e2d7fe7553a09282d31c178ce9bbcf27cd740d92 Mon Sep 17 00:00:00 2001
From: Kevin Doughty
Date: Mon, 7 Dec 2020 22:27:03 -0500
Subject: [PATCH 1/2] CompositeOperation relative and subtraction procedure
---
css-values-4/Overview.bs | 21 ++++++++++++++++++++-
web-animations-1/Overview.bs | 25 ++++++++++++++++++++-----
2 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/css-values-4/Overview.bs b/css-values-4/Overview.bs
index 7d69131b9e6..be995e16e66 100644
--- a/css-values-4/Overview.bs
+++ b/css-values-4/Overview.bs
@@ -354,7 +354,7 @@ Property Value Examples
-Combining Values: Interpolation, Addition, and Accumulation
+Combining Values: Interpolation, Addition, Accumulation, and Subtraction
Some procedures, for example
transitions
@@ -432,6 +432,25 @@ Combining Values: Interpolation, Addition, and Accumulation
when added together would produce ''blur(2) blur(3)'',
but when accumulated would produce ''blur(5)''.
+
+ subtraction
+
+ Given two property values
+ Va and VB,
+ returns the difference of the two properties,
+ Vresult.
+ Va represents
+ the first term of the operation and
+ VB represents
+ the second. This is performed as accumulation
+ of the first term with the negated value of the second.
+
+
+
These operations are only defined on computed values.
diff --git a/web-animations-1/Overview.bs b/web-animations-1/Overview.bs
index 8f408d45fed..68a6a2af253 100644
--- a/web-animations-1/Overview.bs
+++ b/web-animations-1/Overview.bs
@@ -3185,7 +3185,7 @@ in each property's property definition table:
by computed value
Corresponding individual components of the computed values
- are combined (interpolated, added, or accumulated)
+ are combined (interpolated, added, accumulated, or subtracted)
using the indicated procedure for that value type
(see [[css-values-4#combining-values]]).
If the number of components or the types of corresponding components
@@ -3544,7 +3544,11 @@ given iteration progress, current iteration and
keyframe effect.
1. Let value to combine be the property value of
target property specified on
- keyframe.
+ keyframe, unless the composite operation to use
+ is relative in
+ which it is the same property value subtracted
+ from the last keyframe in the keyframe effect .
1. Replace the property value of target property
on keyframe with the result of combining
underlying value (Va) and
@@ -3792,7 +3796,7 @@ The specific operation used to combine an effect value with an
composite operation of the keyframe effect that
produced the effect value.
-This specification defines three composite operations as
+This specification defines four composite operations as
follows:
: replace
@@ -3814,6 +3818,8 @@ follows:
accumulation operation is
defined such that it is not commutative, the order of the operands
is underlying value followed by effect value.
+: relative
+:: The effect value is composited identically to accumulate.
### Applying the composited result ### {#applying-the-composited-result}
@@ -5804,7 +5810,7 @@ composition behavior are represented by the
CompositeOperation enumeration.
-enum CompositeOperation { "replace", "add", "accumulate" };
+enum CompositeOperation { "replace", "add", "accumulate", "relative" };
: replace
@@ -5830,12 +5836,21 @@ enum CompositeOperation { "replace", "add", "accumulate" };
lt="value accumulation">accumulated on to the
underlying value.
+: relative
+:: Corresponds to the relative
+ composite operation value such that
+ the effect value is calculated as described
+ in [[#the-effect-value-of-a-keyframe-animation-effect]]
+ and accumulated on to the
+ underlying value.
+
The possible values of a [=keyframe=]'s composition behavior share the same
values as the {{CompositeOperation}} enumeration along with the additional
{{CompositeOperationOrAuto/auto}} value.
-enum CompositeOperationOrAuto { "replace", "add", "accumulate", "auto" };
+enum CompositeOperationOrAuto { "replace", "add", "accumulate", "relative", "auto" };
: auto
From f5feafbbbc0b89cac60914ebd88952f1405728a9 Mon Sep 17 00:00:00 2001
From: Kevin Doughty
Date: Wed, 13 Apr 2022 00:54:44 -0400
Subject: [PATCH 2/2] transition-interrupt
---
css-transitions-1/Overview.bs | 57 ++++++++++++++++++++++++++++-------
1 file changed, 46 insertions(+), 11 deletions(-)
diff --git a/css-transitions-1/Overview.bs b/css-transitions-1/Overview.bs
index a9e5ae2eeee..aa92955d9e1 100644
--- a/css-transitions-1/Overview.bs
+++ b/css-transitions-1/Overview.bs
@@ -376,6 +376,40 @@ Value Definitions {#values}
Animation type: not animatable
+The 'transition-interrupt' Property {#transition-interrupt-property}
+-------------------------------------------------------------------------------------------------------------
+
+
+ The 'transition-interrupt' property specifies if relative conversion of values and accumulative compositing should be used.
+
+
+ Name: transition-interrupt
+ Value: <>#
+ Initial: regular
+ Applies to: all elements
+ Inherited: no
+ Percentages: N/A
+ Computed value: as specified
+ Animation type: not animatable
+
+ <single-transition-interrupt> = regular | special
+
+ - regular
+
-
+ If this property is set to ''regular'',
+ interruption of an in-progress transition is
+ handled by replacing the previous with a new
+ transition that begins where the previous left off.
+
- special
+
-
+ If this property is set to ''special'',
+ interruption of an in-progress transition
+ is handled by blending together existing
+ transitions with a new one, using
+ accumulative compositing of relative values.
+
+
+
The 'transition' Shorthand Property {#transition-shorthand-property}
-------------------------------------------------------------------------------------------------------------------------
@@ -655,8 +689,8 @@ Starting of transitions {#starting}
the element does not have a completed transition
for the property
- or the end value of the completed transition
- is different from the after-change style for the property,
+ with an end value
+ the same as the after-change style for the property,
there is a matching transition-property value, and
@@ -666,7 +700,8 @@ Starting of transitions {#starting}
then implementations must
- remove the completed transition (if present) from the set
+ remove all completed transitions
+ for the property (if present) from the set
of completed transitions and
start a transition whose: