Popover
Tooltip and Popover share the same component base. Both display contextual information, but their behaviour and purpose differ.
- Tooltip: Short contextual hints that appear on hover or focus, and disappear automatically.
- Popover: Persistent overlays that provide extra information or actions, such as links or preferences.
Both components follow the same tokenised structure for colours, spacing, and elevation to ensure consistency across brands and devices.
When to use it (and when not to)
Section titled “When to use it (and when not to)”Use a Tooltip when:
- You need to provide brief, contextual information about an element.
- The information helps clarify a label, icon, or control without interrupting the flow.
- The content is short, non-essential, and disappears automatically after focus or hover ends.
Use a Popover when:
- You need to display additional information, options, or actions that require user interaction.
- The content is richer (e.g. includes title, link, or button) and must persist until dismissed.
- The user needs time to read or interact with the content before closing it.
Avoid using both when:
- The content is critical to complete a task — use a modal instead.
- The message is too long to be displayed in a small floating container.
- The user might miss the message due to automatic disappearance or poor trigger placement.
Quick summary of accessibility & consistency
Section titled “Quick summary of accessibility & consistency”- Both Tooltip and Popover must comply with WCAG 2.1 (1.4.3, 1.4.13, 2.1.1) and EN 301 549 standards.
- Ensure a minimum contrast ratio of 4.5:1 between text and background.
- Tooltip: Triggered by hover or focus, dismissed on blur or Escape. Must be accessible via keyboard and announced using
aria-describedby. - Popover: Triggered by click or tap, dismissed via close button or external click. Must trap focus and be dismissed with Escape. Include
aria-labelledbywhen a title is present. - Always position the pointer or arrow so it clearly references the triggering element.
- Maintain consistent spacing and elevation across brands and viewports.
Properties
Section titled “Properties”Anatomy
Section titled “Anatomy”Bg Blur/Bg blur 30 (30px)
C-HR/C-HR BG Blur (30px)
States : Tooltip
Section titled “States : Tooltip”The Tooltip variant supports arrow placement in four directions. It does not include a close button or link.
Top
Left
Right
Bottom
States : Popover
Section titled “States : Popover”The Popover variant supports arrow placement in four directions and includes a close button, title, and link.
Top
Left
Right
Bottom
Variants
Section titled “Variants”The component includes two visual variants to ensure legibility across different background contexts.
Contrast (True)
Contrast (False)
Both variants share identical behaviour, spacing, and accessibility rules. Use the Contrast (True) variant by default. Use the Contrast (False) variant when the component appears on dark backgrounds or over elements where higher contrast is required for readability and WCAG 2.1 AA compliance.
Toyota
Lexus
Minimum touch area
Section titled “Minimum touch area”The Tooltip–Popover itself is not a directly interactive component. However, interactive elements inside it must respect the system’s minimum touch area standards:
- Icon Button: Minimum 44×44 px (EN 301 549 / WCAG 2.5.5 Level AA)
- Link / Text Link: Must remain fully focusable and tappable across devices
Composition
Section titled “Composition”Layout and spacing
Section titled “Layout and spacing”Width behaviour
Section titled “Width behaviour”Tooltip and Popover components use vertical auto layout with responsive width behaviour.
- The main container (Bubble) resizes with hug contents.
- A min-width of 150px ensures legibility for short tooltips or labels.
- A max-width of 320px prevents excessively long lines and improves readability.
- Text should wrap within these constraints and never be truncated or scroll horizontally.
- These values ensure optimal legibility, responsive resizing, and support for localisation (e.g. longer words in German or Finnish).
Styling
Section titled “Styling”Colors
Section titled “Colors”| Name | Applied as | Applied to |
|---|---|---|
color-surface-neutral-default | Background color | Bubble (Neutral) |
color-surface-neutral-default | Background color | Bubble (Neutral) |
color-surface-dim-neutral-subtle | Background color | Bubble (Contrast) |
color-surface-dim-neutral-subtle | Background color | Bubble (Contrast) |
color-foreground-neutral-emphasis | Text color | Content (Neutral) |
color-foreground-neutral-emphasis | Text color | Content (Neutral) |
color-border-contrast-emphasis | Border color / Text color | Bubble (Contrast) |
color-border-contrast-emphasis | Border color / Text color | Bubble (Contrast) |
color-surface-dim-neutral-default | Backdrop color | Backdrop |
color-surface-dim-neutral-default | Backdrop color | Backdrop |
Spacing
Section titled “Spacing”| Name | Applied as | Applied to |
|---|---|---|
spacing-xl | Padding top / left / right | Bubble |
spacing-xl | Padding top / left / right | Bubble |
spacing-2xl | Padding bottom | Bubble |
spacing-2xl | Padding bottom | Bubble |
spacing-xl | Margin bottom | Title |
spacing-xl | Margin bottom | Title |
spacing-sm | Margin top | Link |
spacing-sm | Margin top | Link |
Other tokens
Section titled “Other tokens”| Name | Applied as | Applied to |
|---|---|---|
radius-sm | Border radius | Bubble |
radius-sm | Border radius | Bubble |
stroke-sm | Border weight | Bubble (Neutral / Contrast) |
stroke-sm | Border weight | Bubble (Neutral / Contrast) |
Accessibility
Section titled “Accessibility”For Design
Section titled “For Design”- Ensure sufficient colour contrast between text, icons, and background (minimum ratio 4.5:1, WCAG 2.1 AA).
- Both Tooltip and Popover must remain fully readable and dismissible across light and dark themes.
- Tooltip text should not rely solely on colour or animation to convey meaning.
- Maintain clear spacing between Tooltip or Popover and the triggering element.
- Avoid placing interactive elements too close to the Tooltip or Popover to prevent focus traps.
- Ensure consistent alignment, padding, and border radius according to tokenised structure.
For Dev
Section titled “For Dev”- Tooltip and Popover must be fully accessible via keyboard.
- Tooltips should appear on focus and hover, and dismiss on blur or Escape.
- Popovers must be focus-trapped while open and restore focus to the trigger element when closed.
- Use
aria-describedbyfor tooltips andaria-labelledbyoraria-controlsfor popovers when referencing content. - Decorative icons must be marked with
aria-hidden="true". - Each interactive element inside a Popover must be reachable and operable via keyboard.
- Ensure all instances are tested through automated accessibility tools (e.g. Axe, Lighthouse) before release.
- Manually verify focus order and visibility in both themes to confirm expected behaviour.
Focus behaviour
Section titled “Focus behaviour”Tooltip
Section titled “Tooltip”- The Tooltip appears when its trigger element receives focus or hover.
- The Tooltip never receives focus itself — focus must always remain on the trigger element.
- It disappears automatically when focus moves away, the element is blurred, or the user presses Escape.
- When the trigger regains focus, the Tooltip reappears automatically to preserve context.
- The focus indicator on the trigger must remain visible and clearly distinguishable while the Tooltip is active.
- Tooltips must contain only short, non-interactive text. If the content requires links, buttons, or other actions, use a Popover instead.
Popover
Section titled “Popover”- Focus starts on the trigger element — The trigger element (e.g. a button, icon, or link with
aria-haspopup="true") must receive focus first. The trigger must have a visible focus indicator. - When the popover opens — If the popover contains interactive elements, focus should automatically move to the first focusable element inside it. If the popover contains only informational content, focus must remain on the trigger element. The popover content must be associated with the trigger using
aria-labelledbyoraria-describedby. - Focus trapping while open — Focus must be trapped within the popover. Tab and Shift + Tab should cycle through focusable elements inside the popover only. Pressing Escape must close the popover immediately.
- When the popover closes — Focus must return to the original trigger element automatically. The trigger’s focus ring should remain visible.
Best Practices
Section titled “Best Practices”- Use Tooltips for short, non-interactive explanations triggered on hover or focus.
- Use Popovers for extended or actionable content (such as links, settings, or preferences).
- Avoid using Tooltips on mobile. They are not reliable on touch devices and should be replaced by inline text or contextual help patterns.
- Replace Popovers with a Bottom Sheet (Modal) on mobile to maintain accessibility and usability on touch interfaces.
- Do not include interactive elements inside Tooltips. Tooltips are purely informative and must disappear when focus or hover is lost.
- Ensure clear close and dismissal actions for Popovers, with proper focus management and keyboard accessibility.
Responsive Behaviour
Section titled “Responsive Behaviour”- Use Popovers on desktop and tablet to display contextual or interactive content without leaving the current view.
- On mobile, replace both with a Bottom Sheet (modal-style overlay) to ensure tactile accessibility and usability on touch screens.
- The Bottom Sheet version keeps the same hierarchy and purpose but adapts the layout and interaction to smaller viewports.
Content / Copy Guidelines
Section titled “Content / Copy Guidelines”Tooltip
Section titled “Tooltip”- Keep text short and precise, ideally one short sentence or phrase (max. 80–100 characters in English).
- If the content exceeds the space, the text must wrap to a new line — never be truncated.
- Avoid formatting, links, or interactive elements inside tooltips.
- Use simple punctuation and sentence case.
- Keep language easy to translate and consistent across markets.
Popover
Section titled “Popover”- Designed for longer content that may include short paragraphs, titles, or links.
- Recommended length: up to 300–350 characters to maintain readability and accessibility across viewports.
- If additional content is required, consider using a modal or side panel instead.
- When text length expands in other languages, the popover should resize dynamically to accommodate the content without truncation or horizontal scroll.
- Always check text wrapping behaviour in mobile and tablet layouts.
Internationalisation and readability
Section titled “Internationalisation and readability”- The component must adapt to longer languages by expanding vertically or horizontally when needed.
- Avoid setting fixed heights for text areas.
- Keep the same visual hierarchy (title > body > link) regardless of language or text length.