What's New

Follow along to learn about documentation updates, new components, events, and more!
To get the full details for each version, view the changelog in GitHub.

Filter posts by

Month of March

Gestalt March Newsletter

Engineering
Design

A recap of significant changes from March.

ESLint plugin for tokens!

Engineering

The new 'only-valid-tokens' ESLint rule prevents the consumption of Gestalt tokens via hard-coded strings p.e. var(--color-border-error). Instead import constant from 'gestalt-design-tokens' p.e. import { TOKEN_COLOR_BORDER_ERROR } from 'gestalt-design-tokens'. Comes with autofix!

Dropdown new features!

Design
Engineering
Gestalt dropdown menu showing a disabled item

Disabled item states are now available on dropdown menus

SideNavigation new features!

Design
Engineering
Gestalt SideNavigation showing a collapsible variant

The collapsible SideNavigation, in web code, is now available. Many have been waiting for this BIG update, and it’s finally here. Hooray! The update is also available in our SideNavigation Figma component

Android Banners

Design
A Banner illustration in geometric shapes representing our Android banners

We’ve published Android Banners in our Figma library.


Month of February

Gestalt February Newsletter

Engineering
Design

A recap of significant changes from February.

TextField

Engineering

TextField now supports all autocomplete prop values.

Small component updates

Engineering
Image of RadioGroup with a Banner

Some component updates:

Banner it up!

Design
Engineering
Light blue graphic with the words in navy blue: “Banner it up!

Banner it up! Naming refresh: Callout is now BannerCallout, SlimBanner is now BannerSlim, Upsell is now BannerUpsell, and UpsellOverlay (guess what?) is now BannerOverlay

Icons

Design
Engineering
Visuals in black of the six new icons added to the Gestalt iconography collection

New icons available for you: collapse, expand, face-tryon, fade (for animation effects), speech-heart (for commenting), and clock-checked (for time indication)

SearchGuide

Design
SearchGuides displayed on mobile

New iOS and Android docs for SearchGuide.

ButtonToggle

Design
ButtonToggle variants on Figma

ButtonToggle specs added to Figma — docs are also available for iOS and Android.

Dark Mode updates

Design
Figma feature showing the option to switch between themes using variables

Dark Mode variants (Figma) were deprecated. We will now rely on variables to switch between modes. New to variables? Check out our mini-tutorial How to use variables


Month of January

Gestalt January Newsletter

Engineering
Design

A recap of significant changes from January (& December!) .

BannerOverlay & BannerUpsell

Engineering
Image of BannerOverlay

BannerOverlay is a new component for short floating educational messages. Learn more about BannerOverlay.

Also, Upsell was renamed to BannerUpsell! More additions to the Banner family coming soon. Stay tuned!

Support for denser Gestalt components

Engineering
Animated image changing List component sizing

Denser layouts are supported with new small sizes for Accordion (previously named as Module), SegmentedControl, List, Textfield, and Tag.

Default cursor pointer available in TapArea

Engineering

Use the 'default' cursor over non-interactive elements. The 'default' cursor should change to a pointer if the element it hovers over is also clickable or indicates functionally.

New icons

Engineering
Full list of icons rendered

We added a whole lot of new cross-platform icons to our iconography collection: scissors, clock, clock-checked, 360, alphabetical, arrow-counter-clockwise, arrow-up-left, arrows-vertical, camera-flip, chevron-up-circle, collapse, color-solid, color-split, expand, fade, face-tryon, file-box, forward, forward, insights-conversion, layout, lips, overlay-text-outline, rewind, service-dropbox, service-etsy, service-messenger, service-outlook, service-yahoo, service-youtube, share, shrink, skintone, spread, view-type-space, and x!

Accordion

Design
Illustration of Gestalt’s accordion component

The Module component is now called Accordion to better align with the industry standards naming convention.

Density variants

Design
Density visual representation indicating different sizes and spaces

Density variants for SegmentedControl, Tag, and Accordion (web) are now live and available on Figma. Density variants are also available for TextFields in Figma.

BannerOverlay

Design
Illustration of Gestalt’s banner overlay component

Our BannerOverlay web component (former UpsellOverlay) is now code-ready for you! We changed the component name to better align with our message patterns, but don’t worry; the component function is still the same.

Layout guidelines

Design
Layout graphics simulating a page structure

Layout guidelines are now live. Check it out!

iOS Documentation updates

Design
Gestalt’s avatar group and icon floating button components representation

iOS Documentation updates and Figma refinements on the following components: Avatar, Button, ButtonGroup.

New iOS Figma components

Design
Gestalt’s avatar group and icon floating button components representation

Net-new Figma components and iOS docs for AvatarGroup and IconFloatingButton.

New International Design guidelines

Design
International design graphic representation showing pluralization and number localization

Number localization and Pluralization guidelines are published under International Design.

Icon fixes

Design
Directional-arrow-left, arrow-back and heart-outline Gestalt icons

Fix on duplicated icons: directional-arrow-left, arrow-back and heart-outline.


Month of November

Gestalt November Newsletter

Engineering
Design

A recap of significant changes from November.

More, better PDocs for Gestalt!

Engineering

Other component updates

Engineering
Image of the new icons
  • Status supports new locked' status.
  • SideNavigation supports controlled group display for collapsing/expanding groups.
  • Icons. We added 4 new cross-platform icons to our iconography collection: captions, captoins-outlined, sticker, upload-feed.

Color variables full rollout

Design
Examples of variables matching our library cover

We migrated ALL of our components to use color variables instead of styles so that you can enable modes, meaning it is super easy to switch between light and dark modes without relying on extra variants. You can use variables in your files by enabling our variables library in your Figma files.

More chart guidelines

Design
Line and Bar chart examples in geometric shapes'

New Bar graph and Line graph guidelines are available!

Locked Status

Design
New lock icon and deprecated sunset icon

New status variant for campaigns and workflows in a locked status. In addition, we deprecated the workflow-status-sunset icon as it isn’t part of our status component.

DateField

Design
DateField component graphic

DateField component added to the Figma web library.

More iOS docs!

Design
iOS textArea component along the iOS apple logo

New docs for iOS TextArea

and more Figme web component improvements!

Design
Web library Figma cover

We revamped our web components (Figma) to better match our web docs. Keep your Figma files updated with Gestalt’s libraries to get our latest fixes!


Month of October

Gestalt October Newsletter

Engineering
Design

A recap of significant changes from October.

ChartGraph & tabular data

Engineering
Animation of Chart and tabular data modal

ChartGraph supports tabular representation for accessibility Check it out!

Docs: Localization & Experimentation

Engineering
Snapshot of ChartGraph localized to German

More Docs improvements! We standardized the Localization section in our web components. Inside the Localization section, you'll find information regarding DefaultLabelProvider as well as locale support. Check it out!.

We also added an Experimentation section as guidalines for approved contributions.

PDocs integrated into Gestalt Docs

Engineering
Image of the DOcs for ButtonLink and an arrow pointing to the PDocs link'

PDocs is now accessible from our Docs in our Internal documentation section.

In PDocs, we document Pinboard-specific implementations for Gestalt Providers, component extensions, and ads logging extensions.

Check ButtonLink to see an example of PDocs integrated in our Docs.

Other component updates

Engineering
Image of the new icons
  • Link finally supports dataTestId prop. In Pinboard, we also deprecated SterlingLink and added Link to the adsLoggingExtension extension
  • TagData, TileData support multi-line Tooltips.
  • NumberField support labelDisplay prop for consistency with TextField.
  • Icons. We added 6 new icons added to our iconography collection. They are:

Cross-platform icons: speech-outline, speech-exclamation-point
Web-only icons (campaign insights, media planing and measurement): api, data-source, hearth-health, diagnostics.

RTL and international design guidelines

Design
Image of Buttons with RTL language

RTL and international design guidelines are now available for you! Check it out!

iOS doc updates

Design
Image of IconButton UI'

iOS Badge and iOS IconButton docs are now available. Guidelines, best practices, accessibility and much more!

ListAction updates

Design
Image of ListAction UI

We updated our ListAction component to better support you. You can find it by checking our iOS and Android docs.

New icons

Design
Image of the new icons

We added 6 new icons added to our iconography collection. They are:

  • Cross-platform icons: speech-outline, speech-exclamation-point
  • Web-only icons (campaign insights, media planing and measurement): api, data-source, hearth-health, diagnostics

Month of September

Gestalt Eng September Newsletter

Engineering

A recap of significant changes from September.

ChartGraph

Engineering
Screenshot of ChartGraph UI

Another month, another new component — this time it's ChartGraph! This component is used for displaying various types of graphs plotted on an x and y axis.

Button/ButtonLink, no more role='link'

Engineering
Screenshot of Button and ButtonLink UI'

Button, IconButton and TapArea no longer support link behavior. Instead, use ButtonLink, IconButtonLink, and TapAreaLink.

Tokens

Engineering
Screenshot of spacing token UI'

Spacing token values are changing to a new scale. This updates old and also adds new values. In order to maintain consistency with our Figma designs and offer more flexibility in spacing, we're using spacing on a 4pt scale.


Week of September 22, 2023

ListAction, our newest component 🎉

Design
Examples of the Figma ListAction component.

The ListAction component is now available on Figma! You can get it from our iOS and Android libraries 🙌

Please note: Table in iOS for Figma is being deprecated. We ask you to kindly update to ListAction.

ListAction documentation is now available for you

Design
Engineering
Example of the new ListAction component.

We have brand new docs for you. Meet the ListAction component!

The ListAction is a continuous vertical group of list items that can include text, icons, images, and actions.

  • Go to iOS documentation

  • Go to Android documentation

New AvatarGroup documentation for Android

Design
Engineering
AvatarGroup components examples

In this doc you can find AvatarGroup best practices, variants, specs, and more!


Week of September 8, 2023

Handoff Kit updates

Design
Engineering
Examples of the Figma Handoff Kit accessibility annotation components.

We made refinements in our Handoff Kit library to bettersupport you! 🙌

What changed:

  • Assets are using color variables instead of styles, it will make it easier for you to switch between themes (light and dark mode)
  • New accessibility annotations are available for you (keyboard navigation and error specs), plus, we added a section to explain how to use them
  • Did you know we have an accessibility checklist component for you? We recommend you to use it to check if your design meets accessibility standards!
  • Sizes and auto-layout issues were fixed

Enable our Handoff Kit library in your files to use it all!

Toast updates

Design
Engineering
Example of the new Toast component design.

The Toast component for iOS and Android now have the same smaller and slicker design and styling as web. It was also simplified, so a few variants have been deprecated and will be deleted on 09/31/2023.

Our ask: If you notice Toast doesn't show the new design after updating your file, please replace the component. Thank you!

Icon updates

Design
Engineering
A fill star icon, a hollow star icon and a half-filled star icon.

Thanks to Amanda Peterson, we found inconsistenciesbetween star icons on web vs mobile, in addition to a missing outlined version of the star icon. They are now availablein our Figma Foundations library, Web Github repo, Android Github repo and will soon be available in our iOS Github repo!


Month of August

Gestalt Eng August Newsletter

Engineering

A recap of significant changes from August.

TableOfContents

Engineering
Screenshot of TableOfContents UI

Another month, another new component — this time it's TableOfContents! This component enables users to navigate to anchors on a page. It also serves as an outline of a page’s content.

TapAreaLink, IconButtonLink

Engineering
Screenshot of IconButtonLink UI with a visit icon or an arrow to the top-right corner and a tooltip that reads 'Visit Pinterest!'

Button, IconButton and TapArea can behave like buttons and links. Last month, we added ButtonLink to the library. This month, we just released TapAreaLink and IconButtonLink: these components are only links. Stay tunned, we'll be deprecating the role prop soon.

Testing id support

Engineering

We are working on expanding support to data-test-id in our components. This improvement helps engineers building better tests: faster and more reliable. Check TapArea's, TapAreaLink's, and IconButtonLink's new dataTestId prop. You can also use the name prop in Button and IconButton to build better testing queries.

Component updates: Text, Heading

Engineering
Screenshot breakAll in Text where the text string is justified

Text and Heading now support breakAll in the overflow prop.

Docs updates

Engineering
Screenshot of a Sandpack example

Finally, ALL our component examples and live code editors use Sandpack! Sandpack provides a better documentation experience. Try it out!


Week of August 11, 2023

New components and Figma updates, plus a very special announcement

Generate Tables easily in Figma

Design
Screenshot of the plug-in that shows how to creat a Table.

We have added the ability to quickly create a Table in Figma via our Pinterest Design plug-in

Navigation for long pages and forms

Design
Engineering
Example of the TableofContents component with a task list to navigate through.

Our TableofContents component offers a simple way to jump between sections of a page or a long form. It has been available in Figma for a while, and is now in our codebase and ready to go.

Link via a button

Design
Engineering
A primary button with text and a visit link icon.

Sometimes you want to use a stronger affordance to let people visit a helpful page or something. Now you can with ButtonLink. It allows developers to use a button as a link without going through any extra work.

Figma Module component fixes

Design
A Module with a panel showing that a max width has been added.

Our Figma component was having issues with text alignment. That has been fixed, and we've also added a max width to be more consistent with code and help with alignment.

Go to the Figma Accordion component

Figma Popover update

Design
A popover with the caret being cut off by a pair of scissors.

The caret was removed from the Popover to be consistent with our web codebase. It also means you can now place the popover without having to worry about moving the caret around. Win win!

Go to the Figma Popover component

Save the Date! October 20 means Design Systems Day!

Design
Engineering
A calendar icon with the Gestalt logo in the middle of it, surrounded by circle and square ornaments.

Save the Date! October 20 means Design Systems Day!*
We are planning this year's Design Systems Day and can't wait to share all the details. We'll keep you posted as things are in finalized. It's going to be fabulous!


Month of July

Gestalt Eng July Newsletter

Engineering

A recap of significant changes from July.

DateRange

Engineering
Screenshot of DateRange UI

Another month, another new component — this time it's DateRange! This component enables users to select a date range in multiple ways: from a calendar, typing the date or choosing from a preselected range with RadioGroup.

ButtonLink

Engineering
Screenshot of ButtonLinmk UI with text Visit Pinterest and an icon with an upper arrow conveying that it's an external link

Button, IconButton and TapArea can behave like buttons or links. We are going to start decoupling these two behaviors: Button will be a button and ButtonLink will be only a link. Stay tunned to our progress!

Testing id support

Engineering

We are working on expanding support to data-test-id in our components. This improvement helps engineers building better tests: faster and more reliable. Check Button's, ButtonLink's, and IconButton's new dataTestId prop. Stay tuned, there are more to come!

Component updates: Box, Table, Popover, DateField, DatePicker

Engineering
Screenshot of before and after in DateField showing new support to locale format translations. In Italian, placeholders was DD/MM/YYYY and now is GG/MM/AAAA

Box now supports <p> in as prop. Table.SortableHeaderCell finally supports right aligment correctly. Popover no longer supports showcaret and blue in color. Use PopoverEducational instead. However, Popover now supports forceDown in idealDirection for cases where Popover's positioning might cause issues. DateField now supports locale format translations. DatePicker is finally a fully controlled component.

Docs updates

Engineering
Screenshot of the Known issues section within Popover's documentation page

We added a new section in our component docs section: Known issues. Check the new information under Component quality checklist for Text, Heading, Popover, PopoverEducational, Tooltip or DatePicker.


Week of July 21, 2023

New/improved components, updated color tokens, docs improvements and Figma plugin feature enhancements.

New DateRange component

Design
Engineering
Example of the DateRange component.

New and fresh off the press is DateRange. A component that, you guessed it, allows you to select a date range. DateRange is still in pilot status, meaning expect design/development iterations and breaking API changes.

We plan to publish the Figma DateRange component in next sprint, so stay tuned.

Support for Text type in Callout component

Design
Engineering
A Callout with bold and italicized text in its message.

Callout's message prop now supports types of string and Text to enable rich text (e.g., bold, italic). This enables better emphasis of content with message strings and allows the component to work more consistently with its related SlimBanner component.

End-aligned Table header treatments

Design
Engineering
A table with an end-aligned table header.

It's been a long-time ask to support end-aligned header treatments and we're excited to say it's now supported. End-aligned headers will be especially helpful for columns displaying numeric values.

Updated $selected-strong and $selected-weak color token values

Design
Engineering
Two color swatches that represent Gestalt's $selected-strong and $selected-weak color token values.

The color values for $color-background-selected-strong and $color-background-selected-weak were inadvertently inverted according to our color guidelines. We were able to address that issue earlier this month. Apologies for the mixup!

Docs improvements

Design
Engineering
A screenshot of Gestalt's Android Badge component documentation.

We have loads of docs updates to share:

  • We published Android Badge documentation in preparation of component buildout.

  • We continue to migrate our code samples to Sandpack, with Column, Label, Letterbox, Masonry and Mask recently converted.

    • Lastly, but not leastly, we overhauled our component status page to now be three pages ( Android, iOS and Web). There remains some content updates necessary related to Figma status, but our goal was to publish these new pages with up-to-date code component status for all platforms.

New linter functionality in the Pinterest Design Figma plugin

Design
A screenshot of the Pinterest Design Figma plugin's linter feature.

We shipped a big feature within the Pinterest Design Figma plugin which helps you clean up your design files so that you're using color / type styles in your designs. This is important because by using Gestalt styles, any updates to color / type tokens will be automatically applied to your designs without having to manually update. Check it out!


Month of June

Gestalt Eng June Newsletter

Engineering

A recap of significant changes from June.

TagData

Engineering
Screenshot of TagData UI

Another month, another new data viz component — this time it's TagData! This component enables users to select multiple categories for comparison in a graph or chart.

GlobalEventsHandlerProvider

Engineering

We also introduced GlobalEventsHandlerProvider, a new way to share global event handlers. This replaces the previous OnLinkNavigationProvider, but also does so much more. The other use case we currently support handles opening and closing a SheetMobile when Dropdown or Modal are used on a mobile device. We'll expand this in the future to support other use cases as well.

Masonry 2-column module prototype

Engineering
Screenshot of Masonry UI showing 2-column module

We've been working for a while to support 2-column modules within Masonry. In June we merged a prototype of that support! We'll continue to iterate on this prototype as we integrate it into Pinboard, and we hope to launch this as an experiment soon.

Component updates: Callout, DefaultLabelProvider, SheetMobile

Engineering
Screenshot of Callout with a rich message

Callout now supports rich message text using our Text component. SheetMobile's onOutsideClick handler returns the event to match our convention and allow for more precise event handling. And we added a slew of new strings to DefaultLabelProvider, reducing the number of required labels on a number of components!

Docs updates

Engineering

We added a ton of Masonry documentation: an updated docs page, a README that explains how Masonry works internally, and Pinboard-specific implementation details (Pinployees only). We continued our migration to use the more reliable and beautiful Sandpack code editor, with 5 more docs pages converted. Unfortunately that code editor doesn't work with dev changes to components, so we added a query param that we can use when sharing links of dev builds. We revamped our About Us page. For Android, we added IconButtonFloating documentation and updated specs across a number of components. And we greatly expanded our guidelines for data visualizations.


Week of June 30, 2023

Update on Figma variables support.

Gestalt + Figma variables update

Design
Figma variables symbol.

Figma variables were a hit during Config 2023, and we couldn’t be more excited to test it out on Gestalt’s libraries to improve your workflow by tokenizing design assets and creating semantic experiences!

We just added color and space variables to our Foundations library, which is being tested. So if you see them around, don’t worry; we will let you know when they are ready to make magic 🔮. Stay tuned for updates!

Tip: Learn more about variables


Week of June 23, 2023

Big big updates with the addition of the TagData component and Card guidelines.

New TagData component

Design
Engineering
Example of TagData component.

Fresh off the press is our new TagData component. TagData enables users to select multiple categories to compare with each other in a graph or chart. This component is going to be a helpful companion to our upcoming data visualization components.

New Card component guidelines

Design
Engineering
Screenshot of the Card component documentation.

We wrapped up a big collaboration with the Browse team where we worked to unify the design and content of in-feed modules. This work resulted in finalized Card component/content designs along with Card component guidelines as well as guidelines for Boards and Pins preview blocks.

This work should enable a more unified and consistent experience when Pinners are presented with in-feed recommendations.


Week of June 16, 2023

iOS in-app Gestalt tools, DefaultLabelProvider improvements, Figma library updates and a bunch of updates to our Figma plugin.

iOS in-app color and icon browsers

Design
Engineering
Screenshots of the iOS in-app color and icon browsers.

We continue to build out the foundation of Gestalt for mobile. A nice step forward is the inclusion of our MVP color and icon browsers in the iOS pre-release mobile app builds. You can find both browsers in the Product Design Standards section of dev tools.

DefaultLabelProvider improvements

Engineering
Screenshot of DefaultLabelProvider code and example of how it renders.

We greatly expanded the use of DefaultLabelProvider by adding 26 new strings and updating 7 existing strings. We also cleaned up the Video component API so you no longer have to set up accessibility labels manually for mute, pause, play, and so on.

Figma RadioGroup component improvements

Design
Example of Figma RadioGroup component.

We continue to refine our Figma libraries with quality-of-life improvements. This week, we fixed up RadioGroup to be simpler and more consistent to use across all platforms.

Pinterest Design plugin updates

Design
Promo picture of the Pinterest Design Figma plugin.

We've added a ton of improvements to our Pinterest Design Figma plugin. Here's a rundown of the highlights:

  • Added a Re-Run button to the top of the Color Converter module so you don't have to navigate back to run again
  • Improved Color Converter success rate by linting and pre-autofixing some text and fill color styles
  • Now showing Pin title on hover in the Pinsert module Pin grid
  • Added empty search results text to the Pinsert module indicating when search is complete but yielded no results
  • Now using the highest available Pin image resolution for fills
  • Refined the logic for centering and zooming selections when inserting images

Many, many more improvements are coming, so we suggest giving it a go!


Week of June 9, 2023

ActionBar component added to Figma libraries.

Updated ActionBar Figma components

Design
Example of the Figma ActionBar component

Fresh off the press is our new Figma ActionBar component for Android, iOS and Web! Three things you need to know:

  1. It's a “pilot” component, meaning we are still improving this component. Changes might occur in the future; so make sure to keep your files up to date with Gestalt updates, and you will be good to go! This component is only available on Figma at this moment.
  2. ActionBar uses 48 px height elements. We plan to unify our SM Button and LG IconButton size from 44 to 48 in all platforms, to meet accessibility standards and improve the experience for the broadest range of Pinners. We have decided to maintain this height to clarify our long-term direction for this component.

Week of June 2, 2023

Major data visualization updates, significant Android docs improvements and advertising safe zone guidelines.

Data visualization guidelines

Design
Engineering
Illustration of data visualizations.

We are beyond excited to share the release of our expanded data visualization guidelines. These guidelines cover charts and graphs, micro-visualizations, available components, color palette and color usage. This was a major lift by the team and we're stoked it's available.

Data visualization Figma components

Design
Screenshots of Figma bar chart component.

We're not done on the topic of data visualization. We also added new data viz component to our Figma data viz library! In there you'll find bar charts, line charts, tiles and tags specifically for the purpose of (you guessed it) data visualization. This, along with our guidelines is going to set us up nicely to deliver code-backed React components in H2 of this year.

Gobs of Android docs improvements

Design
Engineering
The Android logo.

Our team has been putting a lot of work expanding our mobile documentation. We recently published a major update so that all our Android component docs now include full design specs (including anatomy, token breakdowns, and variant details). As we continue active development of Android components, these updates should make that process smoother and awesomer.

Advertising safe area

Design
An example of advertising safe zones added to the Figma Pin component.

We've begun the introduction of defining advertising safe zones within the Pin component to ensure content is not occluded by UI. These specifications are currently only in our Figma Web Library, but we are actively discussing how we can make these guidelines more available across Pinterest.


Month of May

Gestalt Eng May Newsletter

Engineering

A recap of significant changes from May.

TileData

Engineering
Screenshot of TileData UI

Introducing our newest component, TileData! TileData enables users to select multiple categories to compare with each other in a graph or chart view, while still being able to see all of the data points. We plan to release more data viz components later this year — keep an eye on our Roadmap page for updates!

TypeScript declarations

Engineering
Decorative TypeScript logo with Seattle skyline

We now include TypeScript declarations for gestalt and gestalt-datepicker! Long requested by internal tools folks, this means that you can use Gestalt in TypeScript projects without needing to install any additional packages. We added a types field to our package.json files, so that TypeScript projects can automatically find the declarations. While we don't have specific plans to migrate to TypeScript yet, this is a big step towards making TypeScript a first-class citizen in Gestalt.

Mobile web adaptive components

Engineering
Screenshot of mobile Dropdown UI

As teased previously, we've started to roll out mobile-specific UI for certain components. Supported components will automatically adapt to the user's device type to show the preferred UI (though this can be overridden when needed). We've started with Dropdown and Modal, and will continue to add more components over time. This means that for most UIs, you can use the same Gestalt components on both web and mobile, and they'll automatically do the right thing. This will bring a much more native feel to our mobile experience!

Component updates: Dropdown.Link, Icon, List, OverlayPanel, PageHeader, PopoverEducational, SheetMobile, Status, Table.Row

Engineering
Screenshot of Status with `queued` status

We added a new lint rule to encourage List usage, which has already been enabled in Pinboard. Status now has a new queued status available. PageHeader also now has a full complement of badge types available. Table.Row and related subcomponents gained two new props, hoverStyle and selected. SheetMobile also got a new prop, onOutsideClick. We updated the icon used in Dropdown.Link for external links. SheetMobile and OverlayPanel got improved animations, and we fixed a bug with PopoverEducational's zIndex prop. Finally, pour one out (again!) for Google Plus — we finally removed the google-plus icon from our icon library.

Docs updates

Engineering

We added and updated content for our Android ButtonGroup and TextField pages. We also continue to refactor web component pages using our old code editor to use Sandpack instead — two more this month!


Week of May 26, 2023

New TileData component, updates to PageHeader, more Figma library updates and better documentation code examples.

New TileData component

Design
Engineering
Example of Gestalt's TileData component.

Say hello TileData! This component is part of our effort to provide greater support for data visualization within Gestalt. TileData is for selecting categories in a graph or chart. And we plan to ship graphs/charts within Gestalt the second half of this year.

PageHeader badge update

Design
Engineering
Gestalt PageHeader component with a success badge.

We've increased the awesomosity of PageHeader by enabling the title badge to be set to different types (like success). To see this in action, have a look at the PageHeader title variant example.

Figma library updates

Design
Gestalt text displayed with line height called out.

We continue to make Figma library updates by the buckets. Here are the highlights:

  • The line height for Android and iOS text styles were updated to more accurately reflect what’s in code
  • We implemented simplified component instances for our iOS and Android components
  • Lastly, we updated our mobile Contextual Menu component to be, well, an actual component. Sorry about that!

Code example updates

Engineering
Screenshot of Gestalt example code.

Our old documentation code samples have some issues - specifically around selecting text. We're fixing that by migrating our code examples to Sandpack. We just shipped shiny new examples for Callout, which brings us close to 60% of components migrated over. We plan to keep this going by migrating SlimBanner and Table in the next couple weeks.


Week of May 17, 2023

Improved search results, new Pin aspect ratios and Android icons in the Gestalt codebase

Docs search improvements

Design
Engineering
A search field with text entered that says, 'It works now'.

We've dramatically improved the relevance of search results in our documentation. This has admittedly been an issue for some time and has been a frequently shared pain point by folks who use our documentation. We're super excited to say that our search improvements should alleviate a lot of those frustrations. We apologize it took so long to get this fix out, but we're so glad it's landed.

Figma Pin component aspect ratios

Design
Example of the Pin Figma component and list of supported aspect ratios.

We've added landscape Pin image aspect ratio variants to our Figma Android, iOS and Web libraries. Specifically, 16:9, 3:2 and 4:3. This enables better support for alternative ways Pins are displayed.

Gestalt icons added for Android

Design
Engineering
Thumbs up icon.

We've added the full Gestalt icon set in Android format to our codebase. This is a major step towards creating a centralized, unified, cross platform icon collection. Doing so will allow us to make macro-level visual iconography improvements across all platforms with near zero operational overhead. This is just the first step, but a big one.


Week of May 12, 2023

Dropdown updates, smoother animations, new guidelines to help with design file hygiene, more Figma library updates and mobile documentation.

Dropdown updates

Design
Engineering
Examples of Dropdown in desktop and mobile web contexts.

Gestalt's Web Dropdown now is mWeb adaptive. This is awesome because now using Dropdown will just work in any situation. For desktop, the menu will display as a Popover and on mobile, it'll reveal as a Sheet. This means just one less thing for you to do when building experiences. So make sure to treat yourself to something nice with all the extra time you now have

Note: Dropdown mobile adaptation is not set as default yet. We are still improving SheetMobile to support additional functionality. Once the refinements are finished, we'll set mobile adaptation to SheetMobile as default.

We also switched out the link affordance to our new standard visit icon. This will ensure greater visual continuity throughout the product.

Animation improvements for Sheet and OverlayPanel

Design
Engineering

We implemented window.requestAnimationFrame to SheetMobile and OverlayPanel so our browsers can be smarter and more performant managing the animations in these components. This means silkier and smooth-ier in-product transitions.

Design hygiene guidelines

Design

Keeping our design files clean and organized is one of those unspoken, yet absolutely critical things to help maintain focus and flow. We've put together a set of guidelines to help ensure we're all keeping our files clear and tidy. These guidelines include naming conventions, organizing layout, Figma branches and last but definitely not least, design handoff.

We are really hopeful these guidelines will help everyone's day to day work and would love your feedback on this!

Figma library updates

Design

It seems like every week comes with a bunch of Figma library updates and this week is no exception.

  • We are super excited to share that we've implemented simplified component instances in most of the Figma web library components. This update means only editable layers for our components are visible in the layers panel. We started with Web to get your feedback and plan to roll out to all libraries once we hear your feedback.

  • We also have a new component on the web Figma library: our trusty List component. Using List will ensure that you're following the standard spacing and bullets used for our React components.

  • Lastly, we added disabled variants to the Android and iOS Switch components.

ButtonGroup Android docs

Design
Engineering

Lastly, we've added component docs for Android ButtonGroup. This is our first step towards getting this component built and available in the Android codebase.


Week of May 5, 2023

Official TypeScript support, mweb-adaptive Dropdowns, TextField Android docs and boatloads of Figma library updates.

Official TypeScript declarations

Engineering
Gestalt and TypeScript logos.

This is a big, big update. Gestalt now officially supports TypeScript as of v111.0.0. Gestalt will also now maintain TS types internally. With that said, this is an initial release, so if you run into any incorrect types, please reach out to #gestalt-eng-web or send us a PR with a fix!

TextField Android docs

Design
Engineering
Screenshot of TextField's Android docs.

The team published design specs for our Android TextField component. We're now up to 13 Android component docs as of this month, which is a major accomplishment for the team.

Figma library updates

Design
Examples of Tag, Tabs, AvatarGroup and Modal components.

We have a boatload of Figma library updates:

  • Image fills for all components across all libraries now use our imagery styles from our Foundations library.
  • We made numerous improvements to our Modal and Sheet Figma components across all platforms to more closely represent Gestalt's current specs and guidelines.
  • The Tabs component now can display a numeric indicator.
  • We added a missing warning variant to the Tag component in our Web library.

Month of April

Gestalt Eng April Newsletter

Engineering

A recap of significant changes from April.

SheetMobile

Engineering
Screenshot of SheetMobile UI

Remember when we renamed Sheet to OverlayPanel? Here's why: introducing our new mobile-only component, SheetMobile! This mweb-specific component is a generic container for a variety of content. It animates up from the bottom of the screen, and back down when dismissed. You can use this component to create mweb experiences with a more native feel. But don't go too crazy with it yet — we plan to make several of our existing components "adaptive" on mobile, automatically switching to use this new UI instead. Also this component is still in pilot, so expect possible breaking changes in the near future.

DateField

Engineering
Screenshot of DateField UI

We recently released an experimental new component, DateField! Built to help support Project Protect, this component allows the user to easily input a date using only the keyboard. Keep in mind that this component is experimental, and may see breaking changes in the near future.

Component updates: DatePicker, IconButtonFloating, NumberField, Popover, Table, TextField, TextField, TextArea

Engineering
Screenshot of DatePicker UI with month and year dropdowns

DatePicker now supports dropdowns for "month" and "year" for faster date selection. TextField nows allows specification of the input mode, and along with NumberField has mobile-only props indicated by a prefix, like mobileEnterKeyHint and mobileInputMode. TextArea now uses its existing rows prop to indicate both the minimum and the maximum number of rows shown, with scrollable overflow. Table saw a couple of changes: headers and footers now have a border, and Table.RowExpanded can be used in a controlled manner using the expanded prop. We also added a number of icons: briefcase, sun, and moon on web; and arrow-circle-back, add-section, briefcase, move-pin, and workflow-queued on Android. Finally, we've been upgrading Flow versions and are nearly at the most current version. This will greatly increase type safety for all our components!

Docs updates

Engineering
Screenshot of code example UI showing new dark mode and text direction buttons

You can now toggle dark mode and text direction for each code example! No need to change settings for the entire site just for one example. Toast and TextArea for Android both saw updates, as did Text on iOS. And we converted 3 more web component pages to use Sandpack for code examples.

Shoutouts

Engineering

Special shoutout to Yen-Wei Liu for a change to how we handle sourcemaps, leading to ~50% bundle size decrease!


Week of April 21, 2023

New SheetMobile and DateField Web components, various docs additions/improvements, a new alpha release pipeline and new Figma components.

New SheetMobile component (pilot version)

Design
Engineering
Example of Gestalt's SheetMobile component.

We've shipped a pilot version of our SheetMobile component. This represents one of our highest priorities for H1, so we're super excited for this initial launch. We're still working on some kinks, but it's well on its way to being ready to use. We look forward to having more updates on this topic.

New DateField component (experimental version)

Design
Engineering
Example of Gestalt's DateField component.

We shipped an experimental DateField component to address a pressing need within product. This component also has some kinks to iron out, but we felt it was ready to ship in an experimental state. This was a great team effort to get a workable solution out the door in such a short time, so big congrats to all involved!

Alpha release pipeline

Engineering
Greek alpha symbol.

We're super excited to announce that we've implemented an alpha release pipeline for Gestalt. This means we'll be able to ship new/improved features to Gestalt much sooner through alpha releases.

Want to learn more about this? Of course you do! We've added an alpha releases guide to our docs just for you.

Mobile docs updates

Design
Engineering
Screenshot of Gestalt's iOS Text documentation.

Our mobile documentation continues to grow at a steady pace. We recently added the following component docs:

There's more where this came from, so stay tuned.

Dark mode and RTL for component code examples

Design
Engineering
Screenshot of the Gestalt Button component example in dark mode.

Sometimes you just need to see how a component example looks in RTL and/or dark mode. Well, now our component examples have toggles for dark mode and RTL. No more fiddling with site-wide settings!

New TagData and TableOfContents Figma components

Design
Example of the TagData Figma component.

The M10n component train keeps chugging with the addition of two M10n-centric Figma components. First is TagData which is a Tag component specifically made for the context of data visualizations. You can find this component in our Data viz Figma component library.

The other component is our new TableOfContents, which is used to navigate to anchors on a page. It also serves as an outline of a page’s content. TableOfContents is available for use in our Figma Web library.


Week of April 7, 2023

Updates related to date/number entry, new unauth Figma components, Table enhancements and additional color tokens.

mobileInputMode and mobileEnterKeyHint options for TextField and NumberField

Engineering
Example of decimal keypad for TextField.

TextField and NumberField got two helpful mobile enhancements. mobileInputMode allows you to specify the type of data that might be entered by the user while editing the element or its contents. This allows mobile browsers to display an appropriate virtual keyboard.

mobileEnterKeyHint allows to you specify the action label to present for the enter key on virtual keyboards.

You can see examples of these props in our Mobile Textfield examples.

Year/Month dropdown options to DatePicker

Design
Engineering
Screenshot of DatePicker component.

We shipped a less-than-perfect, yet better-than-nothing update to DatePicker for simpler date selection on mobile devices. This variant will allow for a much simpler date selection experience on mobile devices. We hope to refine this variant further in future sprints.

New Figma OverlayUpsell component and Feedcard variant

Design
Screenshots of OverlayUpsell and FeedCard Figma components.

We're super excited to share that we just shipped two nice updates to our Web Figma library made specifically for unauth experiences. We've created a new OverlayUpsell component to display short messages when users have performed actions that indicate some intent, such as a related pin tap or idea pin swipe.

We also shipped a new variant of FeedCard that displays a simple background color for simple in-feed messages.

Table enhancements

Design
Engineering
Example of Table with sticky header and footer.

Table saw two nice updates this week. First we implement a controlled Table.RowExpanded with expanded prop. This allows rows to be expanded without user direct input.

We also shipped a visual refinement to Table's sticky footer to include a drop shadow for greater visual clarity.

Text subtle update

Design
Examples of new subtle gray color options.

We updated our subtle color value to be lighter, and added a disabled color for inactive text/icons needs! Also, we added a subtle-accent value to support text over lightGray contrast needs.

Please note: This update is only available on Figma at the moment. We will update our tokens/docs soon. Stay tuned!


Month of March

Gestalt Eng March Newsletter

Engineering

A recap of significant changes from March.

HelpButton

Engineering
Screenshot of HelpButton UI

Introducing our newest component, HelpButton! This component used alongside another UI element to help explain the element to the user.

OverlayPanel.DismissingElement

Engineering
Screenshot of OverlayPanel.DismissingElement UI

We re-architected how animation works in OverlayPanel (formerly known as "Sheet"), abstracting it to a new subcomponent: OverlayPanel.DismissingElement. This simplifies implementation of closing animations and will be useful in other components in the future.

Component updates: Button, Dropdown, Icon, IconButton, IconButtonFloating, Masonry, ModalAlert, Pog, Popover

Engineering
Screenshot of new icons added

We removed Masonry's deprecated Item prop — you should now be using renderItem instead. Button and ModalAlert now have dataTestIds. Dropdown has a new maxHeight prop that can help address visual bugs with long lists of items. We fixed a right-to-left (RTL) bug with Pog and IconButton that caused some icons to disappear on iPhone (it was a fun one-liner 😅). IconButtonFloating got a few new props, which you'll recognize from IconButton: disabled, dangerouslySetSvgPath, and (required!) tooltip. We removed Popover's 'orange' color option. And finally we added four new icons: add-section, arrow-circle-back, move-pin, and workflow-status-queued.

Docs updates

Engineering
Screenshot of Team Support page

We added a number of new pages this month! Team Support includes resources and guidelines for collaborating with us. We added guidelines for both Forms and Illustration use in product. We also updated our Development Process page. We added docs for Android's SearchField component and updated Icon and IconButton pages for both mobile platforms. Finally, we converted 12 existing web component pages to use our new Sandpack inline code editor.


Week of March 31, 2023

New team support section in our docs, new/improved Android documentation and Popover updates in our Figma Web library.

Team support resources + Component request/updates process

Design
Engineering
illustration of glasses clinking

We know the design system is all about collaboration and service. And, to improve our collaboration process, we just published a set of resources and guidelines to help you build consistent product surfaces and collaborate with us!

We defined a straightforward process to receive, centralize and manage your component’s requests and updates, making it easier for you to follow your request’s progress and understand how it fits in our roadmap. Yay!

Check it out!

Android SearchField and Toast docs

Design
Engineering
example of searchfield component

We added new Android SearchField component documentation and made updates to our Android Toast component documentation. They both include design guidelines as well as specifications for development. We have plans to ship much more documentation in the following quarter, so stay tuned for more updates.

Figma Popover caret positioning and new PopoverEducational

Design
example of popovereducational component

We finally added PopoverEducational to our Figma Web library which should speed up designing education or onboarding experiences moving forward. We also added the ability to position the caret on all sides in our Popover and PopoverEducational Figma components. Note, these updates are only for our Web library at the moment, but we plan to make the same changes to Android and iOS shortly. Rejoice!


Week of March 24, 2023

Illustration best practices, Figma extended color palette styles, Card components, icons and more!

Illustration guidelines

Design
Engineering
examples of gestalt illustrations

We're super excited to announce our newly-published Illustration guidelines. We shipped our first set of official Gestalt illustrations in late 2022 and this update is another step towards a richer Pinterest product experience.

Extended color palette for Figma library

Design
different shades of red from gestalt's color palette

We just added Gestalt's entire extended color palette as color styles in our Figma Foundations library. This means you now have the full suite of colors available for use in your design. You can find them grouped under 'Extended color palette'

Please note: you might encounter a style issue with text and icons. We are fixing all related issues early next week.

Figma Card library

Design
example of a card component with carousel

We've partnered with the the Browse team to develop a pilot Gestalt Card Figma library. This work will go a long way towards a more consistent and predictable Pinterest experience.

This is a soft launch and there's a long way to go, but it's a huge step forward for the team.

Icon additions to Figma/codebase

Design
Engineering
four icons of an hourglass, folder with plus sign, circle with an arrow pointing left and a rectangle with a right-facing arrow inside of it

We know you like icons, so we added more to our library! We added workflow-status-queued and add-section icons to our Figma library as well as arrow-circle-back and move-pin to our codebase.

Even more Figma library updates

Design
mobile sheet component and android keyboard

And yes, there are even more Figma updates to share. We added a mWeb specific Sheet Figma component to our Web library. This work is leading up to shipping our new mWeb Sheet component in the React codebase.

We also published handy Android keyboard components in our Foundations library to remove just one more step from your design process.


Week of March 17, 2023

New TileData Figma component, components to annotate components and a new Figma plugin coming...

New TileData Figma component

Design
screenshot of tiledata component

As development of our new TileData component is getting ready to kick off, we shipped the Figma component to the Figma Data viz library. We're excited to continue to expand Gestalt into data visualization and TileData is just the beginning of our work in this space.

Component annotations now available in our Handoff kit

Design
example of component annotations

OK, this is a little meta, but our Handoff kit now has Figma components to annotate your components. Somewhere Xzibit is smiling.

Now that we're including design specs in our mobile component documentation (see Android IconButton as an example), we thought it would be helpful to provide this resource to everyone.

Coming soon: A bigger/better Pinterest Figma plugin

Design
preview of pinterest figma plugin

We're sharing this one a little early because we're just too darned excited not to. We've been cooking up what we hope is a huge improvement in our Figma plugin tooling. It represents the first step towards making Pinterest's design process smoother, faster and awesomer. As mentioned, this is just our first step and bigger things are on the horizon. If you're curious (and we hope you are), reach out and we'll loop you in to early access.


Week of March 10, 2023

Form guidelines, a new HelpButton component, IconButton docs updates and bunches of Figma library improvements

Form guidelines

Design
Engineering
screenshot of form guidelines

We're very excited to announce that Form guidelines have been published in Gestalt's documentation. Creating a usable form is no easy feat and we're hopeful these guidelines will help make the process just that much easier.

HelpButton

Design
Engineering
example of helpbutton component

Need to provide a little context to something on the screen? Well, we've got you covered with our new HelpButton component. This component represents a change in approach for providing in-page context as it utilizes a popover as opposed to a tooltip to display help text so that the message can contain a link while remaining accessible.

IconButton Android docs

Design
Engineering
design specs for iconbutton component

We made some nice enhancements to our Android IconButton component docs to include design specs ahead of its implementation. Go check it out!

Figma library updates

Design
examples of toast, montage and imagery fill style

We continue to plow through Figma updates like it's going out of style. Here's the big highlights from this week:

  • The Web library Toast component has been updated to reflect its slick new style. We also added our new Success and Loading types, plus an optional dismiss button for better accessibility.
  • MontageGrid and MontageRow components are now available in our Android and iOS libraries
  • We fixed an issue with our Foundations imagery styles so that they now always fill the bounds of the shape they're in

Month of February

Gestalt Eng February Newsletter

Engineering

A recap of significant changes from February.

PopoverEducational

Engineering
Screenshot of PopoverEducational UI

Introducing our newest component, PopoverEducational! This component is a specialized version of Popover for use in educational or onboarding experiences. Check it out!

Component updates: Badge, OverlayPanel, ScrollBoundaryContainer, SideNavigation, Table, Toast, BannerUpsell, WashAnimated

Engineering
Screenshot of redesigned Toast

We shipped new treatments for Badge and Toast. We also renamed a couple of components to make room for future component development: Sheet is now OverlayPanel, and Card is now WashAnimated. OverlayPanel now also has the ability to add a dismiss confirmation modal. ScrollBoundaryContainer's overflow prop now has a 'visible' option, preventing visual bugs in certain situations. SideNavigation.TopItem and SideNavigation.Group can accept a primaryAction, adding an icon button to the list item. Table.Footer can be just as sticky as the header. And BannerUpsell's message prop now accepts Text in addition to strings, allowing for more flexibility in the content.

Docs updates

Engineering
Screenshot of Android icons

We added specs for Android icons, which can be downloaded from this repo.


Week of March 3, 2023

Big updates to Toast and Badge, a new educational popover component, design specs in Gestalt's docs and new Figma components.

Update to Web Toast and Badge components

Design
Engineering
examples of the toast and badge components

We're excited to announce that we've officially shipped our updates for Toast and Badge on Web.

We've dramatically slimmed down Toast to create a smaller footprint on the screen for less occlusion. We're hoping this enables Toasts to give Pinners helpful updates while staying out of the way.

On the other side, we've increased the size of Badge to assist with legibility. We've also included the ability to add a tooltip to allow you to add context.

The updated Badge is already available to use in our Figma components and Toast is not far behind.

New PopoverEducational components

Design
Engineering
example of the popovereducational component

We are making some big updates to some of our most highly-used components in H1 and in order to do so, we're doing some necessary restructuring. As a part of this work, we've created a new PopoverEducational component which is essentially an opinionated version of Popover, designed specifically for in-product education. This component still has some moving parts, so expect some iterations in the future.

Android Icon component docs

Design
Engineering
screenshot of android icon component specs

As Android component development picks up, we're trying out the practice of publishing our design specs in our docs. You can see this in the latest version of our Android Icon component docs. Expect more updates like these in the weeks to come and let us know if you think this is helpful.

New Figma Reaction, ReactionCount and mWeb unauth primary nav components

Design
examples of reaction, reactioncount and mweb unauth primary nav component

We added some small, but mighty updates to our Figma libraries.

  • Reaction is, well, a reaction icon. We've migrated over to one component with each different sentiment as a variant.
  • ReactionCount is a new Figma component which provides a ready-to-use element for displaying reaction counts.
  • Lastly, we added a variant to our primary navigation component to cover the unath mWeb use case.

Reaction and ReactionCount are available for Android, iOS and Web whereas, the unauth primary nav variant (as expected) is only available for Web.


Week of February 22, 2023

Updated roadmap, Table component updates and a slew of Figma improvements.

2023 H1 roadmap added to docs

Design
Engineering
screenshot of gestalt roadmap

We published our H1 2023 roadmap to the docs site. This roadmap contains all major work that we can publicly disclose. Feel free to reach out directly if you have any questions or are curious what else is on our radar for this half.

Sticky footer variant for Table component

Design
Engineering
screenshot of table component with sticky footer

Our team continues to make improvements to our Table component; this time with the addition of a sticky footer option. We also added a sticky footer variant to our Figma Web Table component.

New MontageGrid and MontageRow components added to Web Figma library

Design
examples of montagegrid and montagerow components

We use a ton of images in the product and we wanted to begin supporting more of those use cases. We've started with Figma Web components for two core cases. We're calling them Montages and we've published MontageGrid and MontageRow. These are our first explorations in this space, so we're looking forward to getting your feedback on how they work for you.

Updated mWeb nav bar

Design
screenshot of nav bar component

We updated the Figma Web primary nav component to reflect the latest iteration of primary navigation in the mobile web product.

Fixes to icons in Figma Foundations library

Design
screenshot of icons

There were some booboos with some of our icons; specifically, we had nested components and not all were sized to 24x24. The following icons have been unboobooed in our latest release:

  • apple
  • arrow-back
  • board
  • calendar-check
  • desktop
  • hand-pointing
  • mobile
  • save
  • saved
  • video-rewind-10-seconds
  • 3D

Sheet renamed to OverlayPanel in Figma library

Design
screenshot of overlaypanel figma component

Lastly, we renamed our Sheet component to OverlayPanel in Figma. We're renaming Sheet to OverlayPanel so we can make room for our new mWeb Sheet component. Which, you'll be happy to hear is the sheet that everyone thinks of when they think of sheet.


Month of January

Gestalt Eng January Newsletter

Engineering

A recap of significant changes from January.

Mobile Modal

Engineering
Screenshot of mobile Modal UI

Modal now supports mweb! Using DeviceTypeProvider, Modal now responds to more than just the viewport size — it renders a full-screen UI when shown on mobile devices. In the near future, we'll deprecate the existing MobileModal component and begin replacing current usages. If you're building a new feature using a modal on mweb, give Modal another look!

TextField password visibility

Engineering
Screenshot of TextField component showing password visibility toggle

TextField with type="password" now shows an icon button that allows the user to see their password as they're entering it. This is a win for accessibility and improves the UX for all Pinterest users.

Masonry's `Item` becomes `renderItem`

Engineering
Screenshot of Masonry component

We recently replaced Masonry's Item prop with renderItem. This prevents subtle bugs where the Item component unmounts+remounts on every render. Check out the React docs for more info on why this happens.

Component updates: Link, Icon, IconButton

Engineering
Screenshot of invoice icon

We added 22 new icons to our icon library. IconButton now supports our Pinterest red brand color ('brandPrimary'). And we replaced Link's inline prop with display, to allow for both 'inline' and 'inlineBlock' layouts.

Docs updates

Engineering
Screenshot of icon library using keywords to search

We added keywords to our icon library, improving search results if you don't know the name of the icon you're looking for. We also added a new section on Pinterest content guidelines for any writing you need to do. We updated our data visualization palette with new colors and error tokens. And finally we added a link to every component page that links to our changelog, filtered by that component name. This allows you to quickly see what's changed recently.


Week of January 20, 2023

Updated dataviz palette and Figma library quality-of-life improvements.

Improved data visualization color palette

Design
Engineering
bar chart with new dataviz colors

We made updates to our data visualization color palette based on internal feedback. These updates focus on improving visual appeal, while also making some minor improvements for color blindness. We also added an example to the docs of what poor color pairing can mean for someone with red/green color blindness. Last but not least, we streamlined naming in our Figma file so that it matches the web tokens.

This work unlocks our ability to begin building official Gestalt dataviz components!

More/better Figma imagery styles for inclusive pins

Design
collection of pins with new imagery styles

We updated our imagery styles in the Gestalt foundations Figma library to bring more realistic and diverse pins. It also includes two new categories, Beauty and DYI. All the images are drawn from our brand assets, so they are rights-ready for mock-ups that need to be shown in external docs or marketing campaigns.

These new imagery styles should enable designers to quickly and effectively include relevant imagery content into their designs.

Handoff kit flow component improvements

Design
example of flow component in dark mode

We made some fixes to nested components in our flow connectors to link to the main source file and included support for dark mode.

This is yet another step towards helping make design specifications clear, consistent and easy to produce.


Week of January 13, 2023

More icons, better docs readability and Figma library cleanups.

20+ new icons added to the codebase

Design
Engineering
wireframe of docs site

What's better than icons? More icons. We've added a bunch of icons to our codebase that were previously only available in our Figma library.

Which icons you ask? Well, these:
3D, 3D-move, apple, arrow-left-curved, board, calendar-check, desktop, flame, image-portrait, instagram, live, magic-pen, manage-access, mobile, person-add, save-outline, saved, thumbs-down, thumbs-up, video-advance-10-seconds, video-rewind-10-seconds, whats-app and wifi-no.

Improved content widths in docs

Design
Engineering
grid of icons

Content widths across the site have been adjusted to a max of 1200 for better readability. The right-side content navigator is also now closer to the content so it’s easier to discover and reach in order to quickly jump to the content you are looking for.

Hygiene improvements to our Figma Web library

Design
emoji broom

A clean library is an awesome library, and we sure do like awesome. So, to better achieve awesomeness, we cleaned up our Figma Web library by renaming random layers to make search within layers possible, fixing our files/layers to follow naming convention, reordering layers, deleting empty/duplicated layers and fixing group/frame inconsistencies. We're planning to make the same improvements to our Android and iOS libraries shortly.


Month of December

Gestalt Eng December Newsletter

Engineering

A recap of significant changes from December.

2022 Year in Review

Engineering
Screenshot of Year in Review page header graphic

We accomplished a lot in 2022, so we created a special recap page — see what you might have missed over the past year!

New component: IconButtonFloating

Engineering
Screenshot of IconButtonFloating component

We released our new IconButtonFloating component! Also known as a floating action button or FAB, this icon button floats over content and remains in place as content scrolls beneath it. We'll soon begin replacing existing floating action buttons in the app with this new component.

New component: List

Engineering
Screenshot of List component

This one's been a long time coming — we finally released our List component! Essentially a wrapper around the <ol>/<ul> elements, this component allows for easy creation of accessible lists, even deeply-nested ones.

Component updates: Dropdown, Modal, Popover, Tag, Text

Engineering
Screenshot of Tag warning state

We finally fixed a long-running issue with Dropdown/ Popover, where long lists of items could render partially off-screen. We tweaked the internal padding of Modal to more closely match OverlayPanel's styling. Tag now has a warning state. And finally, we added forwardRef to Text to help with certain specific situations.

Docs updates

Engineering
Screenshot of Spinner best practice

We converted 4 pages to use Sandpack code examples ( Popover, Pulsar, Spinner, Tag) and added Best Practices guidelines for 3 pages ( Pulsar, Spinner, Tag).


Week of December 02, 2022

New Gestalt illustrations, experimental components and tons of Figma library updates

New Illustration components

Design
gestalt illustrations

The Gestalt team is kicking off the holidays in style with the release of our first official illustrations! This is our initial release and so they're only available in our Figma Foundations library at the moment, but we plan to publish guidelines as well as create a code-backed component. These illustrations cover four core use-cases, Empty, Error, Loading and Success. Expect more on this topic soon.

New experimental versions of Toast and Badge

Design
Engineering
screenshots of new toast and badge components

We're super excited to share some experimental updates to Toast and Badge.

  • Toast is getting a little more svelte and a little less round. These changes should allow Toasts to take less room on the screen and get out of the way.
  • On the opposite end, Badge is getting a little bigger - specifically its text size is being increased to improve legibility. We've also added the option to add a tooltip to our info Badge to provide extra context.

You can preview both of these updates in our docs by clicking the "Activate experiments" button at the top of the page. Please holler if you see any issues or have any feedback.

Loads of Figma library updates

Design
screenshots of figma components
  • Update PrimaryNavigation for Web: We added the Create dropdown next to the tabs to match the current experience. Expect more updates to this component in the near/mid future.
  • Support for agency imagery styles: We added the Big 6 agencies avatars as imagery styles in our Foundations library.
  • Major Table component updates:
    Table is one of our most frequently-detached components because it's historically been a pain to use. The following updates should fix that:
    • Added the ability to left and right align all cells including headers
    • Added cells for buttons
    • Added the new table row drawer feature
    • All cells can be replaced with custom content without having to detach the instance
    • Added the ability to include subtext in all text cells

Month of November

Gestalt Eng November Newsletter

Engineering

A recap of significant changes from November.

New icon library UI

Engineering
Screenshot of icon library

We overhauled our icon library! Icons are searchable by name and description. Click the icon card to copy the icon name to your clipboard for easy use within Icon or IconButton.

Rich text styling in SlimBanner

Engineering
Screenshot of SlimBanner rich text styling

SlimBanner's message prop now accepts Text in addition to strings, allowing for rich text styling — including links!

New Table.RowDrawer subcomponent

Engineering
Screenshot of Table.RowDrawer

Table now includes a new Table.RowDrawer subcomponent to allow for expandable content within a row. In this example, closing the SlimBanner would collapse the expanded row to be indistinguishable from the other rows.

Component updates: Box, Button, Flex, IconButton, Image, Link, TapArea, Popover

Engineering
Screenshot of Popover with dismiss button

Button, IconButton, Link, and TapArea have improved accessibility for screen readers when opening in a new tab/window, providing the user with necessary context to understand the element's behavior. Image now passes through the event object in onLoad and onError to allow for more precise responses to these events. We replaced Image's importance prop with fetchPriority for use in performance tweaks in Chromium-based browsers. Image also now always outputs <img> — previously it would output a <div> when the image was scaled, as a hack to support IE11. Popover has a new prop, showDismissButton, to give users an obvious affordance to close the element. Finally, Box and Flex now include responsive props for alignItems to enable flexbox layouts that vary by viewport width.

Docs updates

Engineering
Screenshot of messaging guidelines

We added guidelines for animation and messaging to our docs site. More specific components for these purposes will follow next year. Also a huge shout-out to Christian Vuerings for fixing the annoying bug on Modal and OverlayPanel where focus would get stolen as code examples lazy-loaded!


Week of November 18, 2022

Image component improvements and quality-of-life updates to docs / Figma libraries

New Brand expression guidelines are online

Design
Engineering
screenshot of brand expression guidelines

We've just published our pilot version of brand expression guidelines to our documentation. We currently cover general guidelines as well as color fill guidance. We have plans to add upon this subject, so please let us know what additional information you'd like to see here.

SlimBanner now allows formatted text

Design
Engineering
screenshot of slimbanner

If you're itching to bold or italicize some text within SlimBanner, well now you can! SlimBanner's message prop now accepts String or Text node types. You can read all about it in our SlimBanner's message prop documentation.

More Figma library updates

Design
screenshot Figma page navigation
  • We updated all the components names by removing the category prefix to improve the assets search experience and match our docs structure. This should not affect design files, but please let us know if you run into any issues.
  • We cleaned some empty layers inside components to provide a cleaner Figma file structure.

Week of November 11, 2022

Image component improvements and quality-of-life updates to docs / Figma libraries

Enhancements to Image component

Engineering
screenshot of image component

We've made the following improvements to Image

  • We now pass the event through the onError and onLoad handlers, so you can better react to the successful/failed load of an image
  • We now always use the element under the hood, regardless of the value for the fit prop

Quality-of-life improvements to the Gestalt docs

Design
Engineering
screenshot of gestalt component overview
  • We made the sorting affordance in our Components Overview pages clearer for those of you who want to group components by category.
  • We fixed a quite-annoying page jump issue on our OverlayPanel & Modal pages
    • We converted code samples for Tabs and Icon over to our new-and-improved structure.

Figma Gestalt library enhancements

Design
screenshot of primary navigation component
  • FeedCard components have been added to our Figma Web/Android Gestalt libraries
  • We updated our iconography page in the Figma Foundations library to mimic our new Iconography library on the Gestalt docs
  • Updates to made to the Primary Navigation business variant to better reflect its current state in the product

Week of November 4, 2022

New Icon library, accessibility enhancements to clickable components and Figma library updates

Updated Icon library page

Design
Engineering
screenshot of gestalt icon library

The big update for this week is our newly enhanced Icon library page in our Gestalt docs. We've also updated our Gestalt Figma Foundations library to follow this same structure.

The goal of this work is to make the process of finding a Gestalt icon much easier. We have more enhancements on the way, so stay tuned.

Accessibility enhancements to Link, Button, TapArea and IconButton components

Design
Engineering
screenshot describing how screen readers see a gestalt external link

The vast majority of screen readers don't inform users that target='_blank' links open in new tabs, so we added functionality to Link, Button, TapArea and IconButton to ensure it's explicitly called out. This is yet another update to ensure Pinterest can be equally enjoyed by all.

New/improved Gestalt Figma components

Design
screenshot of figma gestalt components
  • We dramatically simplified the PageHeader component to a svelte 4 variants, which should make for a much simpler experience.
  • We added a FeedCard Figma components for iOS (with Android and Web not far behind). Note: FeedCard is not an official Gestalt component at this point

Month of October

Gestalt Eng October Newsletter

Engineering

A recap of significant changes from October.

Search improvements

Engineering
Screenshot of search improvements

We know, our docs search feature has been a bit…lackluster. We feel that pain too. This month we made a couple of changes to improve that experience. We added an 'also known as' section to the top of every component page, helping you find the component you're looking for even if you know it by a different name. And we removed the Component Overview and Component Status pages from the search results, improving the relevance of the hits. And we'll continue to improve search in the future!

New components: ModalAlert and DefaultLabelProvider

Engineering
Screenshot of ModalAlert

We released two new components: ModalAlert and DefaultLabelProvider.

ModalAlert is a focused, simple alert dialog that fulfills one of the most common modal usages in a much simpler way than our Modal component. Check it out, and look for other focused user messaging components in the near future.

You probably won't need to interact directly with DefaultLabelProvider much, unless you maintain a repo using Gestalt. It's an root-level Provider that supplies default values for common labels, like ModalAlert's accessibilityDismissButtonLabel. This means fewer props are required at the component callsite, making implementation faster and easier. Apps that require translations, like Pinboard, can pass those in where DefaultLabelProvider is implemented. Apps that do not require translations can implement the Provider with no additional work needed, getting the labels for free!

Component updates: Flex, Text, all inputs

Engineering
Screenshot of TextField error state

For a more consistent user experience, we standardized error states across all our input components: Checkbox, ComboBox, NumberField, RadioGroup, SearchField, SelectList, TextArea, and TextField. We also added a dataTestId prop to Flex (and Flex.Item) to allow for easier testing without needing to wrap with additional Boxes. Look for more dataTestIds to be added to other components in the future. Finally, we also removed the rarely-used 'justify' option for Text's align prop to match design guidance.


Week of October 28, 2022

New animation guidelines, additional icons added to Figma and upcoming accessibility training

Pilot animation guidelines available in Gestalt docs

Design
Engineering
image symbolizing animation

We are super excited to announce that pilot animation guidelines are now available in our documentation. We've broken up the content by principles, guidelines and implementation.

Keep in mind this is our first iteration on these guidelines and we plan to continue improving in the weeks/months ahead.

New icons added to Figma

Design
examples of gestalt icons

We've added some new icons to our Gestalt Foundations Figma library:

  • captions: to denote closed captions for media
  • copy-to-clipboard: for copying to your clipboard. currently used in 2FA
  • face-neutral: adds to our set of facial expressions for survey responses
  • insights-audience: to signify Audience insights
  • insights-conversion: to signify Conversion insights
  • overview: for business overview and dashboards
  • trending: a generic icon to denote trends—updated to match the 3px stroke weight and dimensions of other icons.

Design accessibility training on November 16th

Design
image of accessibility symbol

Save the date! On Wednesday, November 16th, we will be providing accessibility training for designers. Come learn about how to ensure your designs can be used (and loved) by everyone.


Week of October 21, 2022

A brand new component, improvements to our Figma libraries and accessibility improvements to our input components

New ModalAlert component for confirmation and acknowledgment

Design
Engineering
screenshot of modalalert component

Fresh off the press is our new ModalAlert component which takes the pain out of presenting users with Yes/No decisions.

Simplified Gestalt Web Figma library

Design
cover image for gestalt web figma library

We've pared back our Gestalt Web Figma library to make components easier to find and (most importantly) more searchable.

Error icons added to all component error messages

Design
Engineering
screenshot of textfield with error message

Gestalt component error messages were not the most accessible due to a reliance on color. We've added error icons next to error messages for Checkbox, ComboxBox, DatePicker, FieldSet, NumberField, RadioGroup, SearchField, SelectList, TextArea and TextField to improve the visual accessibility for people with forms of color blindness.

Design Tokens: Added transparent token

Design
Engineering
a hollow circle with a dotted outline

We made a minor update to our opacity design tokens with the addition of a fully transparent value.


Week of October 14, 2022

Token updates and motion guidelines for review

Updated error color tokens for dark mode

Design
Engineering
error message on dark background

We lightened our error colors for dark mode to display with higher contrast. These changes are now reflected in our token codebase as well as our Figma Foundations library.

Gestalt motion guidelines working proposal is open for feedback

Design
Engineering
a series of circles meant to infer movement

We've completed our first draft for Gestalt's official motion guidelines. But before we published them in our docs, we wanted to make them available for review and feedback. Please share your thoughts.


Month of September

Gestalt Eng September Newsletter

Engineering

A recap of significant changes from September.

TextField / TextArea max length

Engineering
Screenshot of TextField / TextArea max length

TextField and TextArea now support a maxLength prop to allow for communication and enforcement of character limits for user input. Check out the docs for more details on how to use this new feature.

SelectList groups

Engineering
Screenshot of SelectList groups

SelectList now supports grouping of items with a revamped API using two sub-components, SelectList.Option and SelectList.Group. This allows for more complex dropdown menus without needing to create a more custom experience using Dropdown, improving mobile support and accessibility. Check out the docs to learn more about these new sub-components.

Device-specific UI

Engineering
Screenshot of mobile SideNavigation UI

Earlier this year we quietly introduced a Context Provider to allow Gestalt components to use specific UI based on the user's device type (desktop vs mobile). With the launch of SideNavigation last month, we're making this Provider public. Expect to see more updates in the future for device-specific UI in Gestalt components!

Component updates: Checkbox, IconButton, RadioGroup, TextField

Engineering
Screenshot of Checkbox

We standardized the style and props used for helper text and error messages on Checkbox and RadioGroup to match TextField, for a more consistent UI and developer experience (DX). We also improved DX by updating IconButton's default size to match design guidance, for one fewer prop that needs to be set in the default usage. Badge now supports a new 'recommendation' type. And we improved security for the end user by turning off autocomplete for all TextFields of type 'password' or 'email'. Special thanks to Brian Lee for the heads-up on that fix!

Docs updates

Engineering
Screenshot of button to copy Flow type

When creating wrapper components that pass props through to Gestalt components, what Flow type should you use? Copy/pasting types from Gestalt source misses any future updates, leading to stale types. Reaching into Gestalt internals isn't allowed or recommended, as those types are subject to breaking changes without warning. Thankfully Flow provides utility types for this situation: $ElementType<React$ElementConfig<typeof ComponentName>, 'propName'>. Since this syntax isn't easy to remember, we added a note in our FAQ as well as a button that appears next to every prop in the Props tables that will copy the correct syntax to your clipboard.

We also updated the code examples for Avatar, AvatarGroup, Box, Button, ComboBox, Flex, and IconButton to use the new Sandpack editor.


Week of September 23, 2022

Improvement to Gestalt form fields, Figma quality-of-life improvements and Flow types improvements

Checkbox/RadioGroup improvements

Design
Engineering
screenshot of checkboxes

We made three substantial improvements to Checkbox and RadioGroup.

  • We updated the size of helperText to be consistent with other input components such as TextField
  • We adjusted the vertical alignment of multi-line labels so that the first line is vertically centered with the checkbox/radio control
  • Lastly, we adjusted the horizontal alignment of errorMessage on Checkbox to be aligned with the label

These three updates should make Pinterest forms just that much cleaner and easier to parse.

TextArea/TextField maxLength

Design
Engineering
screenshot of textarea

We added the ability limit the amount of characters allowed in TextField and TextArea. This feature will enable you to enforce strict character counts for form submissions.

Flow types quality of life improvements

Engineering
screenshot of flow types button in props table

We've added a button to our Props table to allow for easy copying of the correct Flow syntax to access a component's prop type. We've also added more info to our FAQ for how to import Flow types from Gestalt.

Android Figma library update

Design
Gestalt for android cover art

We mentioned in our 9/9 update that we began simplifying our Gestalt Figma libraries. We were able to finish the simplification of our Gestalt Figma Android library and plan to finish this work up by converting our Web library in October.

This work will help our Figma libraries be more focused and aligned with how designers want to use them.

General Figma library improvements

Design
screenshot of Gestalt figma components

We continue to make solid quality-of-life improvements to our Figma libraries. This week we completed the following:

  • Simplified our Web Searchfield component to have less variants for simpler use
  • Updated the IconButton component on iOS and Android to contain all standard sizes/colors
  • Hid the notification dot on the Tabs component by default to be more aligned with most common use cases.

Week of September 16, 2022

New component variants, component bug fixes and improved doc code samples

New Recommendation type for Badge

Design
Engineering
screenshot of Recommendation Badge

With the introduction of recommendation types for Callout and SlimBanner, we added a Recommendation type for Badge. This update will open up Badge to new uses within the product to help make in-product recommendations quickly recognizable.

Popover now limits its height to fit the viewport

Engineering
screenshot of popover

Sometime content in a Popover just tall. Sometime too tall... Well, never fear, we fixed a bug where the height of Popover would be higher than the viewport. Now, it limits its height to fit in the viewport.

SlimBanner now adjusts layouts in small viewports

Engineering
screenshot of SlimBanner for small viewports

We made some fixes to SlimBanner to display more elegantly on smaller viewports. This fix will make SlimBanner much more usable in the mobile context.

More Improved code examples

Engineering
screenshot of a Gestalt code example

As promised, we continue to convert our docs over to use our improved code samples. We made updates to Avatar, Box and Flex. We will continue to work on fixing code samples with the most frequently viewed component docs getting the highest priority.


Week of September 09, 2022

Figma library improvements and upgrades to documentation code samples

New iOS Figma library structure

Design
iOS library cover art

We've been listening to designers' feedback and, by a large margin, there's a strong preference to add Gestalt components to design from the Assets panel or the new Resources popover. We've also excited to hear that designers' prefer to learn about how to use our components from our documentation site. We're going all-in with this feedback to focus our libraries on a search-first experience while also removing the confusion regarding where to go to learn how to design with Gestalt. To do so, we're paring back our libraries to focus only on components/styles and removing non-essential pages/resources. This should make our libraries clearer and more focused on your desired workflow. It also has the added benefit of reducing the overall maintenance of these libraries, meaning we can focus our efforts on new/improve components, better documentation, etc.

We couldn't be more excited about this change. We just rolled out this update for the iOS library and plan to apply the same changes to our Android and Web libraries in the weeks to come.

More Figma component search improvements

Design
screenshot of Figma's resource popover

Speaking of updates to our Gestalt Figma libraries, we've continued to make improvements to the component search experience. We've added keywords to all components to make finding the component you need just that much easier.

Improved code examples

Engineering
screenshot of a Gestalt code example

Last, but definitely not least, we have begun to upgrade the code blocks in our Gestalt docs to a new solution that should fix the long-standing issues with selecting text. So far we've updated AvatarGroup, ComboBox, Modal, OverlayPanel and SideNavigation. We have many more updates planned through September.


Week of September 02, 2022

Handoff kit updates, Figma search improvements, and more mobile docs

Design handoff kit split!

Design

We divided the Gestalt handoff kit into two files: the library and the Figma file setup + handoff guide. It will help you have a better experience when dealing with the assets panel and our Gestalt Figma libraries.

Don't worry! The file you have linked to your designs ( Gestalt handoff kit) still provides you access to all assets and components to do design handoffs and annotations. And if you are looking for file setup and structure guidance, we invite you to check out our File setup + Handoff standards guide.

Bonus: We added some file hygiene standards and naming conventions we are starting to adopt, and we believe it can help you as well to optimize your design files and workflow. Check it out!

Figma component search improvements

Design
Graphic showing shift + i search

Thanks to a recent Figma update, you can now filter search results in the Assets panel! Try typing .web, for example, and you’ll notice the results are contained to web options. You can also type button.web to quickly find the Web version of Button. You can do the same for iOS (.ios) and Android (.and). We’ll be coming out with a Figma Search guide soon for more tips and tricks, so keep an eye out!

More mobile docs!

Design
Engineering
Screenshot of iOS Component overview page

As promised, we've added more iOS and Android component guidelines to the site. This past week we added some exciting ones, like Button and Sheet, so take a look when you can!

Keep in mind, these docs are still a little light, but we wanted to get them out the door in order to get your feedback. So please let us know how we can improve these and we'll get on it!


Month of August

Introducing SideNavigation, a monthly Eng newsletter, and new Box colors

Gestalt Eng August Newsletter

Engineering

From feedback in our latest survey, we're starting a monthly newsletter to recap engineering changes you should know about.

New docs site and code example style

Engineering
Screenshot of new docs site

If you've used our docs site over the past few weeks, you may have noticed that we completely overhauled the structure! These changes accommodate our expansion to include design guidance (and soon eng components!) for iOS and Android. This also allowed us to de-clutter the side nav, helping you find what you're looking for more quickly. Also check out the new code example style we're migrating to on the Modal or OverlayPanel pages. This will finally fix the persistent and annoying problems we've had with our existing code examples.

New component: SideNavigation

Engineering
Illustration of SideNavigation component

Developed for our docs site and with M10n teams, our new SideNavigation component can be used to build a variety of rich navigation experiences, and supports mWeb out of the box. You'll start to see this in action on M10n product surfaces soon!

Component updates: Flex, IconButton, Masonry

Engineering
Illustration of Flex/Masonry component

We reworked Flex's gap prop to support row and column spacing, making the component much more useful in situations where items could wrap to the next row or column. We adjusted IconButton's default values for size and iconColor to match design guidance, so you have less code to type for the default treatment. We also renamed Masonry's comp prop to Item, to better communicate that the prop value needs to be a stable component reference. (We'll address this further with a lint rule in the near future.) And finally, Masonry now supports RTL (right-to-left)! In RTL layouts, Masonry's first item now appears in the top right, rather than the top left. This better supports localization needs for pinners around the world.

Token migrations: Box

Engineering
Illustration of Box component

Continuing with our long-running design tokens project, we converted Box's color prop to use semantic names. This makes it easier to find the right color for a given purpose, and gets dark mode support for free!


Week of August 26, 2022

New messaging guidelines, Figma cleanups, and mobile docs

Gestalt now has mobile component docs!

Design
Engineering
a screenshot of Avatar's mobile documentation

It has been a long time coming, but it's (finally) here. We have begun to ship mobile-specific documentation for high-use components. So far, we've shipped hot-off-the-press docs for Avatar and IconButton. Expect many more dropping in the weeks to come. And yeah, before you ask, these docs are available for both Android and iOS. Our goal is to prioritize the most high-frequency components to cover components that constitute the top 80% most frequently used.

Keep in mind, these docs are still a little light, but we wanted to get them out the door in order to get your feedback. So please let us know how we can improve these and we'll get on it!

Messaging pattern guidelines

Design
Engineering
a screenshot of Gestalt's Messaging guidelines

This is another effort that's been a long time coming. We shipped out pilot version of Messaging pattern guidelines, and it's meaty! This first iteration contains three separate pages: Overview, Available components, and Priority and placement.

We have plans to introduce more design patterns in the future and look forward to hearing your feedback on how to improve them.

Popover a11y bug fix

Engineering
an example of Popover

We updated Popover (and its inner components) to always include a role and aria-label - a requirement for accessibility. We also now allow you to specify an accessibilityLabel for your Popover.

Figma link styles

Design
a sample of Gestalt's Figma link text style

Adding underlined links to designs was a pain in the butt because it meant you needed to detach a Gestalt style to manually add the underlined treatment. Well, no more! Gestalt for Web now has link styles for all of body text styles.

Figma cleanups

Design
examples of the Gestalt Figma components

On top of all of that good stuff, we also fixed a ton of things in our Figma libraries. Given this update is already running long, we're going to cram all the updates in this one post.

For our Android Figma library we fixed the height of our tappable components (e.g. Button, IconButton, etc.) to be 48dp.

For our Web library, we significantly simplified our Callout, ComboBox, Accordion, TextArea, TextField, SelectList components. This should make these components easier for you all to use and easier for us to maintain.

Lastly, for our Foundations library, we added some missing icons to our library. Specifically ads-overview, dash, file-unknown, folder, heart-outline and history.


Week of August 19, 2022

Save the date! Design Systems Day 2022 on September 30!

Design
Engineering
Design Systems Day invitation

We are super excited to announce the Design System Day! 🎉

Yes, that's right! A full day of talks and training covering multiple themes to help you build the best product experience and create an effective design using Gestalt components, no matter your area within the product. We will have guest speakers from Procter & Gamble, Meta, and Spotify, and other fantastic folks from Pinterest. We're preparing a mini-conference for you! So clear your calendar, and join us on this special day.

You can see more details about the event in our CODA doc and sign up for the sections in our sign up sheet. Stay tuned for more updates! We will be posting more about it next week.

Success and recommendation variants for Callout

Design
Engineering
Screenshot of SlimBanner's success and recommendation variants

Callout is now just that much more awesome with the addition of success and recommendation variants. Psst... We also updated our Callout Figma component to include these variants as well.

Updated Figma Pin component for Web

Design
Screenshot of Gestalt's Figma Pin component for Web

At long last, we landed the final stage of our Figma Pin component rehaul (emphasis on haul). We now have implemented and published new and improved Figma Pin components for Android, iOS and Web.

Simplified Figma Web components

Design
Screenshot of simplified Figma components

Who likes a bazillion variants to wade through? No one, that's who. We've made improvements to our ComboBox, SelectList, TextField and TextArea components to be easy-to-use, lean, mean reusable machines.

Save another date! Accessibility Training for Designers on August 24

Design

Our last accessibility training was a hit. So much so that we're making the magic happen again on Wednesday, August 24 at 10-11:30am PST. So save the date and come on by!


Week of August 12, 2022

Major Gestalt site updates

Design
Engineering
Screenshot of the Gestalt docs site

We've stayed mum about this update, but if you've dropped by the Gestalt docs site since the past week or so, you've probably noticed some things have changed. We've shipped a major IA update to the Gestalt docs site which opens the door for Android and iOS guidelines. This was our top goal for the year as it lays the foundation for Gestalt to expand to mobile platforms.

Specifically of note, we now have a top navigation which breaks up our content into (what we hope is) logical sections. Specifically within 'Components', we now have a platform switcher which, you guessed it, allows you to view a specific platform's component documentation. We also have a handy footer nav on the home page with quick links to important things like our Figma libraries, plugins, Slack channels and engineering resources.

Things are still a bit empty at the moment, but expect that to change soon.

Spacer components added to Gestalt handoff kit

Design
Engineering
Screenshot of design using spacer components

There's nothing better than a well documented design and we made a little addition to our handoff kit to help make doing that (even) easier with the addition of spacer annotation components.

Figma Web IconButton improvements

Design
Screenshot of Figma Web IconButton components

OK, we'll own up to it, our IconButton Figma components were a smidge lacking. We took the first step towards a better IconButton by adding background color variants to the Web Figma library.

Vastly simplified Figma Web BannerUpsell component

Design
Screenshot comparing before and after examples of the Figma Web BannerUpsell simplification

We don't want to oversell our work, but the Figma Web BannerUpsell component is in a much better place now. We cut down the number of variants by over 32x! And to be clear, you have all the same options as before, they're now available in the component's properties panel. That said, we have a bit of retrofitting to do after this major overhaul, so expect another update to tune things up in the next two weeks.

Figma listening session in August's Gestalt Open Forum

Design

We just went on and on about Figma, but honestly, we want to hear what you think on the subject. We've spent a lot of time these least six months working to improve the experience of using our Gestalt Figma libraries, but we know there's still so much that can be improved. So, if you're hankering to share your thoughts on ways to improve your Figma/Gestalt experience, we're hankering to hear it! Join us on Thursday, August 18 @ 10am PST. We'll be there with our listening ears on.


Week of August 5, 2022

No updates this week

Design
Engineering

But we're coming strong next week. Promise.


Week of July 29, 2022

Popover placeholder slots in Android and iOS Figma libraries

Design
A screenshot of the Gestalt Popover component

We added placeholder slots for Popover in our Android and iOS Figma libraries. This feature allows you to add add complex content without detaching or building from scratch.

Improvements to TextField and Tabs in the Figma iOS library

Design
A screenshot of the Gestalt TextField and Tabs components

It's been a long time coming, but we finally made updates to our iOS TextField component to better represent a mobile-centric affordance. We also added an underlined variant to the iOS Tabs component. We're hoping to move towards the underlined treatment across all platforms, and so we want to begin representing this change in our Figma libraries. Note: Both of these components are only available for our iOS libraries. We will be updating our Android libraries with these changes shortly.

Improvements to Modal in Figma for Web & Mobile Web

Design
A screenshot of Gestalt's Modal Figma component

Lastly, we made some more refinements to Modal in our Figma for Web library. The changes should reflect a more organized and refined component structure to improve ease of use.


Week of July 22, 2022

Gestalt for Android Figma library update

Design
A picture of the Gestalt logo, Figma logo and Android logo

We're super happy to announce that our big update to the Gestalt for Android Figma library has landed! This library should be at parity with our iOS Figma library, including dark mode variants for each component. We haven't added reference pages yet, but each component should work exactly like its iOS counterpart. So have a look and let us know what you think!

SideNavigation component pre-release

Design
Engineering
A screenshot of the Gestalt SideNavigation component

In some more exciting news, we shipped a pre-release of our fancy new SideNavigation component. This component is still in alpha and not (quite) ready for production, but we wanted to give y'all a sneak peek ahead of time. We also created a SideNavigation Figma component that's ready to use today. Again, keep in mind that this component is currently in alpha.

Gestalt Iconography guidelines

Design
Engineering
A screenshot of Gestalt's Iconography guidelines

The Gestalt team is working to up its icon game and our first big step is publishing an MVP our of Iconography guidelines. Keep in mind, this is our first step towards greater clarity around using icons within Gestalt. So please send us your feedback and stay tuned for future updates.

Gestalt for iOS Figma library improvements

Design
Screenshot of Gestalt Figma iOS components

We made some nice improvements to our iOS library including an overhaul of Button to have smarter defaults, more capabilities (like an end icon) and, most importantly, be simpler to use. We also made some simplifications and quality-of-life improvements to SearchField. Lastly, we implemented a nice enhancement to hide components in our library that aren't intended for everyday use. This should make the overall component discovery experience much simpler.

Gestalt for Web Figma library improvements

Design
Screenshot of Gestalt Figma Web components

Similar to the iOS library, we make enhancements to Button which should closer mimic the API of our React Button. We also made a near-complete overhaul to Dropdown to again better mimic its React counterpart. One note on Dropdown - we ran into so Figma limitations which prevented us from implementing text truncation in the Dropdown list components, so you'd need to manually truncate text until we can determine a solution. Lastly, we made updates to the Figma Web library's page strucure/organization to more closely resemble our documentation.


Week of July 15, 2022

Makeathon props!

Design
Engineering
Makeathon logo

A big congrats to all the fine folks who contributed to Makeathon this year! It was fabulous (and dare we say inspiring) to see Gestalt power so many projects. Great job, all. It was a pleasure supporting your amazing work!

Gestalt Figma Android library pre-release

Design
A picture that shows Gestalt plus Figma plus Android equaling a heart

You've been asking for it, we've been working on it and it's almost here. That's right, a full overhaul to our Gestalt Figma Android library. It's not ready quite yet, but you can see a preview of what we're cooking up in this branch. We cannot wait to get this out the door and in your hands!

Video caption support

Design
Engineering
A screenshot of the Video component displaying captions

Chalk this up as another big win for accessibility; Video now has support for captions. Learn more about this new capability in our Video captions documentation.

Figma iOS Modal improvements

Design
A screenshot of the Figma iOS Modal component

We made a sizable update to our iOS Modal component to both reduce the number of variants while making it far easier to place content within it. A large focus for us is to make our components significantly simpler to use, so expect more of these updates throughout 2022.

Gestalt July Open Forum canceled

Design

July has been a bit of a whirlwind and so we're going to cancel our Open Forum for this month. We look forward to seeing you all at next months Open Forum!


Week of July 08, 2022

Take action with SlimBanner

Design
Engineering
Examples of Recommendation SlimBanner

SlimBanner now supports a primary action! We've also added the ability to dismiss these banners with the dismissButton prop. And if that wasn't enough for one update, we've introduced a new style called Recommendation that can be used to inform people of quick things they can do to improve their experience.

Figma cleanup week

Design
Screenshot showcasing out figma libraries

We did a little cleanup and reorganization in our Figma folders to help you scan all the supportive files and libraries you need more efficiently. We archived outdated and deprecated resources to avoid confusion with their usage, and moved some files around to reinforce a semantic structure. All the must-have folders and files, such as libraries, helpful resources, product surfaces, and experimental resources are under Gestalt. And if you are curious about what the team is baking, feel free to check out our Design Systems Figma collection. Feel free to reach out if you have any questions about it!

Say goodbye to food coloring 🍉

Design
Engineering

In the spirit of consistent, accessible visuals across Pinterest, and better support for dark mode, we've officially deprecated the old, literal colors on Box in favor of our semantic, design-token-based options. This means watermelon is out and primary is in! Check out the Box documentation to see all the options, and feel free to reach out if you think a color is missing.

More ways to view code in our docs

Engineering
Screenshot of docs site showing code under the page header

We made an update to view the code behind our top-most example on each page. Simply use the expand code button to see the code behind our main page header example. We've also added the ability to view the code behind our Best Practice Do's in a code sandbox (with a future update coming to make it visible on the page itself). Both of these requests came from feedback in our Eng survey, so a huge thank you to everyone who filled it out, and a reminder that we love feedback anytime, not just during survey season!


Week of July 01, 2022

Semibold or bust!

Engineering
Design

In order to get Pinterest one step closer to a more unified visual experience, we've update bold fonts on web to be semibold, meaning our native mobile and web experiences are now aesthetically closer. We've updated our Gestalt for web Figma library with the new treatments so if you're using our type styles, just accept the latest library update and you should be good to go. See PJ's post in Slack for full details.

Component status and quality checklist added to the docs

Design
Engineering

Ever wondered if a component on the docs is available in Figma? Curious if Toast is fully accessible? Fear not, the answer is now readily available on every component page via the status overview and quality checklist. The overview at the top of the page gives you quick details about Figma availability, Platform readiness and Accessibility status. You can then drill into any of these statuses for further details. We hope this helps answer questions around availability and usability, and we'd love your feedback, so check it out!

Dark mode for Figma iOS

Design
Screenshot of iOS Modal component

We simplified our light mode components with Figma’s new boolean visibility and text property variants. We then made their dark mode equivalents and sticker sheets for the most used components. The remaining components will be updated for dark mode after Android components have similar coverage as compared to iOS.

Figma placeholders for OverlayPanel and Modal components

Design
Screenshot of Modal and OverlayPanel components

Who loves a good placeholder component? We do! Placeholder components will enable you to more easily utilize our container-esque components, like Modal and OverlayPanel. And now, besides our Web Modal component, the placeholder is also available to test in our OverlayPanel component, and Module component. Check it out! We would love to hear your feedback.

Figma IconButton on iOS and Web

Design

Thanks to our design friends, we realized the interior icon size for IconButton wasn't always using a multiple of 4. We've corrected this sizing issue and updated the component in the respective libraries. Thanks for the feedback, and please keep it coming!

Figma library deprecation

Design

The day finally came, and the following Gestalt Figma libraries have now been taken offline: 04. Gestalt Icons, 06. Platform Extras, PDS 3.0 Styles: Light Mode, and WIP 02. Mobile Library WIP. If you have a file that depends on any of these libraries, you will need to migrate the components/styles over to the corresponding active file. See PJ's post in Slack for the conversion details.


Week of June 24, 2022

Figma mobile web Bar component

Design
Screenshot of Figma Bar component

We're working to grow out our Gestalt Figma web library to include more mobile web use cases. A first step towards that goal is the creation of a mobile web Bar component. This component is our first iteration, so please send us your feedback on ways to improve it.

Iconography open forum next steps

Design
Iconography open forum next steps

We wanted to thank everyone who participated in the iconography open forum session and give you a peak into what we'll be doing next. We're going to be using your feedback to publish a baseline set of iconography guidelines in our documentation which we plan to begin work on next sprint. We are also going to use your feedback to develop refinements to our Iconography & SVGs page. Once again, thank you so much for your support. We look forward to sharing updates soon.

Gestalt tutorials on Pinterest

Engineering
Design
Idea pin of a Figma tutorial

Last but not least, we created our first Idea Pin tutorial on how to create a resizable progress bar component in Figma. This is our first toe-dip into Gestalt tutorials and we're excited to create all sorts of helpful tips and tricks for both designers and engineers. So, if you're interested in more tutorials, make sure to follow our Tutorials board and give us feedback on what tips you'd like to see.


Week of June 17, 2022

Dark mode Figma variants, Phase 1

Design
A dark mode variant of Popover

This has been a long time coming, but we've shipped our first phase of dark mode variants in our Gestalt Figma libraries! This first phase has focused on core components for our Gestalt for iOS library (e.g., Button, Avatar, Popover, etc.). Our next phase will be to offer dark mode for more complex components like Pin, Board, and other reps. We look forward to sharing many more updates soon.

Data visualization guidelines

Engineering
Design
Screenshot of Gestalt's data visualization guidelines

We recently shipped our data visualization color palette which was our building block to deliver data visualization guidelines. This is a major milestone for us and unlocks our ability to provide even more in this space later this year.

Design guidelines for Text and Heading components

Engineering
Design
Screenshots of Gestalt's Text and Heading documentation

We added typography guidelines a couple weeks ago and now we're coming in hot with design guidelines for Text and Heading. Our goal for these updates is to develop a strong foundation of typographic guidance that we can build upon in future releases.

Gestalt Learning released

Engineering
Design
Screenshots of Gestalt Learning

We know that getting up to speed with Gestalt can take some work and we're constantly working to improve the onboarding process. That's why we released Gestalt Learning to offer a self-service learning path for important Gestalt topics. We have thoughts for additional content, but we'd love to hear your ideas! So, please reach out and give us your requests.

Note: This resource is available to Pinterest employees only.

Handoff kit screen/device templates added

Design
Screenshot of Handoff kit's screen/device templates

We made nice update to our Figma Handoff kit with the addition of screen/device templates. This should give designers a faster starting point for designing their features. We have templates for web, mobile web, handset and tablet (for iOS and Android).


Week of June 10, 2022

No updates this week due to KnitCon

Engineering
Design
KnitCon logo

The Gestalt team is busy knitting, so there are no updates for this week. We hope you all enjoy KnitCon!


Week of June 3, 2022

New Typography guidelines

Engineering
Design
Screenshot of typography guidelines

To keep the momentum going on our release of guidelines in 2022, we just published the first iteration of our Typography guidelines. This is intended to serve as the foundation for much more detail and updates in the future. We look forward to sharing many more typography-related updates in the near future.

Major updates to our Pin and Masonry Figma components

Design
Anatomy of Figma Pin component

The Gestalt team has been busy iterating on a new revs of the Pin component and Masonry component in our Figma iOS library. Our focus for this iteration was to drastically simplify the experience of using it in designs. This new component leverages all the new fancy bells and whistles Figma recently released, which drastically reduced the number of variants for this component. We also added a built-in introduction to the component and guides on common use-cases. We think it's going to be big improvement.

However, big improvements sometimes lead to (dun dun dunnn) breaking changes. This Pin is so different that we needed to essentially build it from scratch as a new component. Don't fret though, we've kept our previous version of the Pin component in our library for backward compatibility. That component will be sunset on September 30, 2022.

An Updated What's New page

Engineering
Design
Screenshot of updated What's new page

In an effort to make our Gestalt docs the single source of truth, it's now the home for our weekly updates. We know it's hard to keep track of everything we ship, so we want to provide an easily accessible and digestible synopsis of all the new goodies our team cooks up.

And for all you fans of our Changelog, never fear — it's not gone, it's just in a happier place now. You can view our full changelog on Gestalt Web Github repo.

Gestalt is on Pinterest!

Engineering
Design
Screenshot of Gestalt Pinterest account

Given Gestalt is built for Pinterest, it only seemed right to be on... Pinterest. So if you're feeling inspired to be inspired, check out our Gestalt Pinterest account. We pin all sorts of cool things (mostly about design systems, because well, duh). We have some cool stuff up our sleeve for this account, so stay tuned.


Week of May 26, 2022

Data visualization tokens added to Gestalt

Engineering
Design
Full color palette for data viz

The team is super excited to share that we shipped data visualization tokens to Gestalt this week! We’re hoping to build upon this work to develop dataviz components and guidelines in future sprints, so stay tuned!

New RadioButton Component

Engineering
RadioGroup depiction

We recently shipped a new RadioGroup component which will make building forms easier and faster. The big change is that this component allows you to create a group of radio buttons as opposed to having to create each one independently. This may not have a ton of impact on your day-to-day, but we’re sharing it with you so that you remind your XFN buddies in case they aren’t aware. On that note, we’ve also deprecated our RadioButton component in favor of RadioGroup.

Gestalt Open Forum — Iconography workshop!

Design

We know you care a lot about icons, and it’s a hot topic and priority for Gestalt! So we’re planning an icon “workshop” that will happen during our next Gestalt Open Forum meeting (June 16th). Please join us and help us evolve our iconography guidelines — we need your input!