Popovers are containers used to display transient content such as menus, options, additional actions, and more. They visually stand out through stroke and drop shadow and float on top of the interface.
A popover’s width and height can be customized appropriately for its context.
By default, popovers do not have a tip. Popovers without a tip should be used when the source has a visually distinct down state, in order to show the connection between the popover and its source.
Popovers can have a tip. A tip should be used to help show the connection to its source, in cases where the source does not have a visually distinct down state.
A popover is positioned in relation to its source. The placement property values are the following: top, top left, top right, top start, top end, bottom, bottom left, bottom right, bottom start, bottom end, left, left top, left bottom, start, start top, start bottom, right, right top, right bottom, end, end top, end bottom. The default placement value is at the top.
The offset is the distance between the source and the popover edge (or the end of the tip, when there is a tip). The default value is 6 px on desktop and 8 px on mobile, but this should be adjusted depending on the perceived bounding box of the source.
The cross offset is the placement offset on the cross axis (x-axis for top and bottom, y-axis for left and right). The default value is 0 px.
To make sure that a popover will stay within certain boundaries (e.g., a browser window) it’s possible to define a container, and a container padding value, to respect. The default value is 8 px.
From the design point of view, each component has a number of options. These options and their names are platform agnostic, and each implementation should adapt these to fit into their framework.
Property | Values | Default Value |
---|---|---|
width | number | – |
height | number | – |
show tip | yes / no | no |
placement | top / top left / top right / top start / top end / bottom / bottom left / bottom right / bottom start / bottom end / left / left top / left bottom / start / start top / start bottom / right / right top / right bottom / end / end top / end bottom | bottom |
offset | number | 6 px (desktop) or 8 px (mobile) |
cross offset | number | 0 |
container padding | number | 8 px |
When displaying a popover, it should animate from its source to reinforce the connection between popover and source. It fades in and slides with a subtle motion from the source.
A popover can be dismissed by either clicking or tapping anywhere outside of the popover (including clicking or tapping the source again), or by selecting an option or taking an action inside the popover.
Trays can be used as alternatives to popovers on small screens. Use a tray when showing a volume of content that is too overwhelming to put in a popover.
When the source that triggers the popover does not have a visually distinct down state, use a popover with a tip to clearly indicate the connection to its source.
Date | Number | Notes |
---|---|---|
Jan 13, 2021 | 6.0.0 |
|
Apr 19, 2019 | 5.0.0 |
|
Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).
Includes relevant options (variant, style, size, orientation, optional iconography, decorations, selection, error state, etc.)
Works properly across all four color themes (lightest, light, dark, darkest).
Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).
Includes guidelines for layout (wrapping, truncation, overflow), animation, interactions, etc.
Includes a list of dos and don’ts that highlight best practices and common mistakes.
Follows WCAG 2.0 standards for contrast (AA).
Works properly across various locales and includes guidelines for bi-directionality (RTL).
Follows WCAG 2.0 standards for keyboard accessibility guidelines and includes a description of the keyboard interactions.
All design attributes (color, typography, layout, animation, etc.) are included in Spectrum DNA.
Includes a downloadable XD file that has been generated by code and shows multiple variations, states, color themes, and scales.
Component is included in the Spectrum for Adobe XD plugin.