Don't transition visibility
when using transition
#18795
Merged
+7
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We introduced an accidental breaking change a few months ago in 4.1.5 with #17812.
We added
visibility
to the property list intransition
which unfortunately only applies its change instantly when going from invisible -> visible.I've checked
display
,content-visibility
, andpointer-events
and they apply their change instantly (as best I can tell) when transitioning by default. Andoverlay
only "applies" for discrete transitions so it can stay as well.The spec has this to say about animating
visibility
:This means that for visible (t=0) -> hidden (t=1) the timeline looks like this:
This means that for invisible (t=0) -> visible (t=1) the timeline looks like this:
So the value is instantly applied if the element is initially invisible but when going the other direction this is not the case. This happens whether or not the transition type is discrete.
While the spec calls out
display
as working similarly in practice this is only the case whentransition-behavior
is explicitly set toallow-discrete
otherwise the change is instant for both directions.Fixes #18793