open-ui
open-ui copied to clipboard
[popover=hint] Are `popover-show-delay` and `popover-hide-delay` needed? Can they be abstracted?
Pulling this out from https://github.com/openui/open-ui/pull/766/files/2232ac991582913f820d1a50709963a3d1f55c9c
@keithamus These two properties feel useful for more than this. What intrinsic behaviours are needed for these?
Another curiosity;
popover-show-delayis somewhat replicable withanimation-delayortransition-delaybutpopover-hide-delayis not. I wonder if there's a bigger problem that can be solved here, for example adding animation-exit states which trigger when a node moves out of a CSS state?
@mfreed7 Interesting feedback! I had envisioned these to work with popovers (and maybe dialogs?) only. How do you envision making them more general?
As to
popover-show-delayI'm not sure this can be done withanimation-delay- can you prove me wrong? My concern is that the behavior wouldn't be de-bounced in that case. I.e. setpopover-show-delayto 0.5 seconds, and have the user hover and then de-hover the element only for 0.2 seconds. Nothing should happen, but I thinkanimation-delaywould cause the popover to just be shown after 0.5 seconds, right?
@keithamus https://codepen.io/keithamus/pen/yLQabJK this uses
animation-delayto ensure that as you hover and de-hover (or focus/defocus) thebuttonfor less than0.5s, thedivwill not be shown. I believe this is properly debounced as you describe. I don't know how to get the same effect upon exit of that state; transitions don't work quite the same, I believe.
@mfreed7 Ahh nice - I see that you get that by adding
:focusto clear the animation if you de-hover. But you're right - not possible on the de-hover side of things.Do you think this is worth opening a CSSWG issue to discuss? I mean about the "more general problem" question?
I've also filed https://github.com/w3c/csswg-drafts/issues/9062 to solicit some discussion from CSSWG about this.
There hasn't been any discussion on this issue for a while, so we're marking it as stale. If you choose to kick off the discussion again, we'll remove the 'stale' label.
Still relevant. Also related to #992
There hasn't been any discussion on this issue for a while, so we're marking it as stale. If you choose to kick off the discussion again, we'll remove the 'stale' label.