Component overview
Not sure which component you need? Take a look below or set up time with the Gestalt team.
Foundations
Accessibility
Accessibility best practices at Pinterest.
Color palette
Color palettes shared between Brand and Gestalt.
Design tokens
Values used within Gestalt to construct layouts and components.
Iconography and SVGs
Symbolic representations of an action or information.
Layouts
A list of easy-to-copy layouts which have best battle tests.
Screen sizes
The screen sizes that Pinterest operates on.
Fields & Forms
ComboBox
ComboBox is the combination of a Textfield and an associated Dropdown that allows the user to filter a list when selecting an option.
DatePicker
DatePicker is used when the user has to select a date or date range.
Dropdown
Dropdown displays a list of actions, options or links.
Fieldset
Fieldset creates a fieldset and legend for a group of related form items in order to clearly indicate related form items.
Label
Label is used to connect a label with a form component in an accessible way.
NumberField
NumberField allows for numerical input.
SearchField
SearchField allows users to search for free-form content.
SelectList
SelectList displays a list of actions or options using the browser’s native select.
TextArea
TextArea allows for multi-line input.
TextField
TextField allows for multiple types of text input.
Messaging
ActivationCard
ActivationCards are used in groups to communicate a user’s stage in a series of steps toward an overall action.
Badge
Badge is a label that indicates status or importance.
Callout
Callout is a banner displaying short messages with helpful information for a task on the page, or something that requires the user’s attention.
Modal
Modal displays content that requires user interaction.
Module
Module is a container that holds content about one subject.
Popover
Popover is a floating view that contains a task related to the content on screen.
Sheet
Sheets are surfaces that allow users to view optional information or complete sub-tasks in a workflow while keeping the context of the current page.
Status
Status is a graphic indicator of an element's state.
Toast
Toasts educate users on the content of the screen, provide confirmation when people complete an action, or simply communicate a short message.
Tooltip
Tooltip is a floating text label that succinctly describes the function of an interactive element.
Upsell
Upsells are banners that display short messages that focus on promoting an action or upgrading something the user already has.
Pins & Imagery
Collage
Collage, similarly to Masonry, creates a deterministic grid layout that can absolutely position and virtualize images.
Image
Image is used to represent images.
Masonry
Masonry creates a deterministic grid layout, positioning items based on available vertical space.
Video
Video is used for media layout.
Building blocks
Box
Box is a component primitive that can be used to build the foundation of pretty much any other component.
Column
Column implements a 12-column system.
Container
Containers are useful in responsively laying out content on different screens.
Flex
Flex is a layout component with a very limited subset of the props available to Box.
Layer
Layers allow you to render children outside the DOM hierarchy of the parent.
Letterbox
Letterboxes are useful if you have some source media which is larger than the area you want to display it in.
Mask
Mask is used to display content in a specific shape.
Pog
Pog is a lower-level functional component to show the active, hovered, & focused states of IconButton.
ScrollBoundaryContainer
ScrollBoundaryContainer is needed for proper positioning when Popover is anchored to an element that is located within a scrolling container.
Sticky
Sticky allows an element to become fixed when it reaches a threshold.
TapArea
TapArea allows components to be clickable and touchable in an accessible way.
Z-Index Classes
FixedZIndex and CompositeZIndex are utility classes that generate z-indices for Gestalt components.
Utilities
ColorSchemeProvider
ColorSchemeProvider is an optional React context provider to enable dark mode.
OnLinkNavigationProvider
OnLinkNavigationProvider is a React context provider to externally control the link behavior of components further down the tree.
useFocusVisible
useFocusVisible manages focus interactions on the page and determines whether a focus ring should be shown.
useReducedMotion
useReducedMotion allows a user to request that the system minimize the amount of non-essential motion.