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

Open
#9,062 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
css
Domain
frontend

Research direction

Start with the linked Open-UI popover=hint proposal and the CodePen example, then review the discussion about using animation-delay with :hover and :focus-within. Determine whether transitions can reproduce the exit behavior; if not, clarify a viable CSS mechanism for animations when a state selector is left.

Written by the indexing model from the issue text.

Description

css-animations-2 css-transitions-2

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?

Dominant language
Bikeshed
Stars
4.9k
Forks
816
Avg merge
2d 18h
Merged PRs (30d)
24

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from w3c/csswg-drafts

All issues in w3c/csswg-drafts

Similar issues

More Web Dev issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.