- Displaying icons that don't have actions associated with them. Use an Icon instead
- Displaying multiple IconButtons on a surface that uses the same icon for different actions
- Text is better suited to convey the action and/or the icon isn't quickly recognizable by users
- For destructive, high-emphasis actions, for example "delete" or "remove"
- Avoid using a floating IconButton if it obscures important information on the screen
- IconButton on mobile should primarily utilize the LG (44px) size as the increased size will better accommodate tapping with a finger
- When using IconButton on top of images, use a variant with background to ensure readability and accessible contrast
For general IconButton best practices, refer to the IconButton web documentation.
Ensure IconButton have a label describing the intent of the action. For example, use "Add Pin to board" instead of "Add icon".
People use Apple’s accessibility features, such as reduced transparency, VoiceOver, and increased text size to personalize how they interact with their device. Supporting these personalizations ensures that everyone has a great user experience. See Apple’s Human Interface Guidelines and documentation about accessibility for iOS:
Use these tokens for applying size and color styles to IconButton.
IconButtons use icons instead of text to convey available actions on a screen. Some buttons are specialized for particular tasks, such as navigation or presenting menus. Icons(.svg viewbox) dimensions are the same for all icons regardless of the size of the vector asset inside of the container. See Icon for more information.
1. Icon | 2. Container
Size specs: Container
Size specs: Icon
Size use cases
- LG (44px)
Large is the only size that should be used on Pinner surfaces.
- MD (32px)
Medium is the size used on more dense UI such as business surfaces or internal tools.
- SM (24px)
Small IconButton should be used sparingly and only in places where the UI is very dense.
IconButton colors are semantic - they have a specific meaning and aren’t arbitrary. There is no disabled color for icons, as that is handled by the button state that an icon is in.
For elevated IconButton, we suggest using the IconButtonFloating component (iOS documentation in progress). See the web IconButtonFloating for reference.
For writing best practices, refer to the content standards.