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. + +
+ Note: Subtraction is used exclusively to produce + relative + effect values. +
+ 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: