IconButton ready Storybook
ready
IconButtons are actionable buttons that show only an icon. Since there is no regular label it’s critical to include a tooltip with all IconButtons so the label can be accessible on hover.
Do’s
- Always include the button label in a tooltip
- In exceptional cases where the tooltip does not make sense and the icon is unambiguous (e.g for expanding a folder): add aria-label and the tooltip will be removed.
- When using
IconButtontogether with text make sure to align them by adding a wrapper withdisplay: flexandalign-items: center - Use in areas that are limited in space and are low-context
- Ensure the meaning of the icon is well understood and unambiguous
- Use
IconButtoninstead of Button with only an icon
Don’ts
- Do not use in hight-context situations
Variants
| Type | Style | Purpose |
|---|---|---|
| Primary | Ghost | Used for primary-based actions, only use one per section. If there is no primary action, all Button components should be secondary. |
| Secondary | Ghost | Default-styling of buttons, this style is used the most within Grafana and can trigger various actions. |
| Destructive | Ghost | Used for delete actions |
| Disabled | Ghost | If the functionality the IconButton provides is not available but the IconButton is supposed to show that there is this kind of functionality. |
Formatting
Anatomy
- Icon
- Container (on hover)
Placement
IconButtons are best used in areas that are limited in space and are action-heavy. These could be toolbars or in areas that provide inline editing such as tables or cards.
Button Sizes
| icon size | name & size in Figma | name & size in code |
|---|---|---|
| 12px | small: 20px | xs: 20px |
| 14px | sm: 22px | |
| 16px | medium: 28px | md: 24px |
| 18px | lg: 26px | |
| 24px | large: 48px | xl: 32px |
| 24px | xxl: 32px | |
| 24px | xxxl: 32px |
Accessibility
- Add a text for tooltip (it will also be used as the aria-label)
- In exceptional cases where the tooltip does not make sense add the aria-label.
Behaviours
Hover
On hover, the IconButton displays a tooltip that includes the IconButton’s label.