Skip to content

[css-animations] or [css-selectors] Abiliity to invoke an animation on the "exit" of a state selector #9062

@keithamus

Description

@keithamus

The Open-UI WG proposal on popover=hint includes two new CSS properties: popover-show-delay and popover-hide-delay. These are designed to allow a debouncing delay for showing and hiding a tooltip-style popover.

In the discussion, I claimed that popover-show-delay is replicable today using animation-delay. I have an example codepen which demonstrates the effect by using :hover and :focus-within to set an animation, with an animation-delay. This, as I understand it, negates the need for a popover-show-delay, however I can't find a way within CSS to trigger an animation when a CSS state is "exited".

Transitions might be the answer, but I can't figure out how to make the same effect with transitions. If someone can I'm happy to close this issue out!

If it's not possible with transitions, perhaps one way to resolve this is to add properties which allow defining an animation for when an element leaves a state. This might look like adding exit-animation-* for each animation-* property.

Another proposal would be to add stateful selectors such as :hover-out, :focus-leave, :focus-within-leave. These could apply to elements that were recently in their respective states, but have "recently" left. I suppose the mechanics for this would need to reason about how long these states apply for, based on the duration of any animation properties applied to them?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions