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

nimble-tooltip Component #309

Open
2 of 13 tasks
Tracked by #857
m-akinc opened this issue Jan 28, 2022 · 11 comments
Open
2 of 13 tasks
Tracked by #857

nimble-tooltip Component #309

m-akinc opened this issue Jan 28, 2022 · 11 comments
Labels
enhancement New feature or request needs investigation Further research is needed to identify solution new component Request for a new component

Comments

@m-akinc
Copy link
Contributor

m-akinc commented Jan 28, 2022

😯 Problem to Solve

Nimble should provide a tooltip component.

Current status

We have the beginnings of a tooltip component thanks to Aiden's intern work (PRs listed below). There have been some concerns around potential issues of the current implementation that we would like to validate and, if needed, resolve before recommending this component be adopted for our users.

Some potential issues for the current implementation noted:

  • Usability concerns of using ID's
  • Challenges of it being used in Shared Libraries, due to many and potentially duplicate ID's

Previous work

  1. Spec for nimble-tooltip #595
  2. Tooltip Blazor Integration #664
  3. Tooltip angular integration #654
  4. Tooltip spec - states update #622
  5. Nimble tooltip implementation #608

External References

Angular Material Tooltip - Uses Angular specific functionality (Directive)
Carbon Design System - Uses tooltip component as a wrapper over content.
Atlassian Design System - Also uses a wrapper component
Adobe Spectrum (React) - Uses a "Trigger" wrapper along with a standalone component.
FAST - Uses "anchor" attribute and id. This is our current implementation.

💁 Proposed Solution

📋 Tasks

  1. visual design
    NIbokeefe

Related PRs

@m-akinc m-akinc added the enhancement New feature or request label Jan 28, 2022
@jattasNI
Copy link
Contributor

@rajsite suggested we should do some research on:

  1. how to make a tooltip accessible
  2. how to extend existing templates to use tooltips

@rajsite
Copy link
Member

rajsite commented Mar 1, 2022

Secretly @rajsite is holding out to see how much progress the popup spec makes hoping it'll make tooltips a less invasive to add and more accessible. Also will help with interactions between components: https://github.com/mfreed7/popup#classes-of-ui---dismiss-behavior-and-interactions

@aidendk aidendk self-assigned this Jun 8, 2022
aidendk added a commit that referenced this issue Jun 9, 2022
@aidendk aidendk mentioned this issue Jun 9, 2022
1 task
aidendk added a commit that referenced this issue Jun 10, 2022
aidendk added a commit that referenced this issue Jun 10, 2022
aidendk added a commit that referenced this issue Jun 13, 2022
aidendk added a commit that referenced this issue Jun 13, 2022
aidendk added a commit that referenced this issue Jun 13, 2022
aidendk added a commit that referenced this issue Jun 14, 2022
aidendk added a commit that referenced this issue Jun 14, 2022
aidendk added a commit that referenced this issue Jun 14, 2022
aidendk added a commit that referenced this issue Jun 14, 2022
aidendk added a commit that referenced this issue Jun 15, 2022
rajsite pushed a commit that referenced this issue Jun 16, 2022
# Pull Request

## 🤨 Rationale

Completed spec for nimble-tooltip (#309)


## ✅ Checklist

- [x] I have updated the project documentation to reflect my changes or determined no changes are needed.
aidendk added a commit that referenced this issue Jun 20, 2022
aidendk added a commit that referenced this issue Jun 22, 2022
aidendk added a commit that referenced this issue Jun 22, 2022
aidendk added a commit that referenced this issue Jul 26, 2022
aidendk added a commit that referenced this issue Jul 27, 2022
aidendk added a commit that referenced this issue Jul 29, 2022
aidendk added a commit that referenced this issue Aug 1, 2022
aidendk added a commit that referenced this issue Aug 1, 2022
rajsite pushed a commit that referenced this issue Aug 8, 2022
* initial commit

* updates

* updates

* tests and html updates

* updates

* FAST update

* public api updates (#309)

* formatting

* updates

* Change files

* visible fix (#309)

* tooltip angular integration (#309)

* html updates (#309)

* delay updates
aidendk added a commit that referenced this issue Aug 10, 2022
aidendk added a commit that referenced this issue Aug 10, 2022
@fredvisser fredvisser added the new component Request for a new component label Aug 10, 2022
mollykreis pushed a commit that referenced this issue Aug 12, 2022
# Pull Request

## 🤨 Rationale

Adds Blazor support for nimble-tooltip #309 

## 👩‍💻 Implementation

Implemented Blazor support for tooltip states `default`, `fail`, `information`, `fail icon`, and `information icon`. Each tooltip is anchored to their own nimble-button in the example app.

## 🧪 Testing

Ran unit tests and the example app successfully.

## ✅ Checklist

- [X] I have updated the project documentation to reflect my changes or determined no changes are needed.
@jattasNI
Copy link
Contributor

jattasNI commented Nov 4, 2022

This web.dev article came across my feed from a couple different sources: How to write an accessible tooltip. I haven't read it in detail but when we pick up this component again it would be good to ensure our component is accessible and this may give hints about the right way to do that.

@nate-ni
Copy link
Contributor

nate-ni commented Dec 16, 2022

In this AzDO HLD one of the mockups shows a tooltip with formatted content (bold text and a simple table). Have we considered whether/how clients could achieve this via the nimble-tooltip?

@jattasNI, this type of layout appears possible with the FAST Tooltip as it seems to support arbitrary content within the tooltip. We'll need to consider the visual design implications since we provide some variations.

@jattasNI
Copy link
Contributor

Nice, turns out we even have an example of that now in our storybook.

@nate-ni nate-ni added the needs investigation Further research is needed to identify solution label Jan 4, 2023
@msmithNI
Copy link
Contributor

For details on the failing tests in Firefox, see #1075

@m-akinc
Copy link
Contributor Author

m-akinc commented Mar 2, 2023

I enumerated some potential approaches for the tooltip API, and as a team we came to the consensus that what we want (slot-based API) is not worth implementing now, but may become easier in the future when FAST makes it easier to extend component templates. As such, we're deprioritizing this component. Refer to the spec for details about the approach options.

@jattasNI
Copy link
Contributor

jattasNI commented Nov 7, 2023

The LiMo project has a use case for a tooltip to briefly show a toast-like success message next to a button that was clicked. They would use the visible attribute to show it when the button is clicked and hide automatically a few seconds later. They might want to be able to control the padding between the tooltip and its anchor and control which side of the anchor the tooltip is shown from (looks like this is possible in FAST but not documented in Nimble). In future they may also want a success severity and the ability to slot a ✅ icon next to the text.

Some of this sounds a bit like a "toggle-tip button" that is programmatically dismissed after a delay.

image

@jattasNI
Copy link
Contributor

SLE had another use case for a rich text tooltip in this PR. They're using a multi-line title in the calendar / scheduling workflow.

@jattasNI
Copy link
Contributor

jattasNI commented Oct 1, 2024

Just leaving a comment to link this issue with #2406. The proposal there was to reconsider this component's long term home as part of #1876.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs investigation Further research is needed to identify solution new component Request for a new component
Projects
Status: Backlog
Development

No branches or pull requests

7 participants