Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustdoc: add interaction delays for tooltip popovers #111892

Merged
merged 3 commits into from
Jun 1, 2023

Commits on May 23, 2023

  1. rustdoc: add interaction delays for tooltip popovers

    Designing a good hover microinteraction is a matter of guessing
    user intent from what are, literally, vague gestures. In this case,
    guessing if hovering in our out of the tooltip base is intentional
    or not.
    
    To figure this out, a few different techniques are used:
    
    * When the mouse pointer enters a tooltip anchor point, its hitbox
      is grown on the bottom, where the popover is/will appear. This was
      already there before this commit: search "hover tunnel" in
      rustdoc.css for the implementation.
    
    * This commit adds a delay when the mouse pointer enters the base
      anchor, in case the mouse pointer was just passing through and the
      user didn't want to open it.
    
    * This commit also adds a delay when the mouse pointer exits the
      tooltip's base anchor or its popover, before hiding it.
    
    * A fade-out animation is layered onto the pointer exit delay to
      immediately inform the user that they successfully dismissed the
      popover, while still providing a way for them to cancel it if
      it was a mistake and they still wanted to interact with it.
    
    * No animation is used for revealing it, because we don't want
      people to try to interact with an element while it's in the
      middle of fading in: either they're allowed to interact with
      it while it's fading in, meaning it can't serve as mistake-
      proofing for opening the popover, or they can't, but they
      might try and be frustrated.
    
    See also:
    
    * https://www.nngroup.com/articles/timing-exposing-content/
    * https://www.nngroup.com/articles/tooltip-guidelines/
    * https://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown
    notriddle committed May 23, 2023
    Configuration menu
    Copy the full SHA
    c1d72de View commit details
    Browse the repository at this point in the history

Commits on May 24, 2023

  1. Configuration menu
    Copy the full SHA
    b9302d7 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2023

  1. Configuration menu
    Copy the full SHA
    d7d497a View commit details
    Browse the repository at this point in the history