Gestalt

Pinterest's system, tuned for a visual, image-first product and tight React integration.

Why we like it

Gestalt's best idea is turning its own guidelines into lint rules you can't skip. Its ESLint plugin blocks hardcoded token strings and makes you import from the tokens package, requires the Heading component with an accessibility level in place of raw h1 to h6, and disallows the smaller form-field size that fails accessibility, several rules autofixing native HTML into system components as you type.

It pairs that with a continuous-release model where every breaking change ships with a codemod, so consumers upgrade mechanically rather than by hand. Encoding the rules into tooling is how it stays consistent without a review bottleneck: the system enforces itself, so people don't have to police it.

Where it fits

Gestalt fits React web and mobile products at scale where accessibility and consistency have to be enforced automatically, and where teams accept opinionated primitives like Box and Flex. It's still on a 0.x version line despite its maturity, so read its releases before pinning.

Ideas to borrow

  1. 01.

    Governance

    Move governance into the editor: a lint plugin that blocks raw token strings and un-semantic headings, and autofixes them to system components, does more than any review checklist.

  2. 02.

    Contribution

    Ship a codemod with every breaking release, so consumers upgrade mechanically instead of by hand.

Screenshots

Fig. 1Gestalt's color usage page, showing primary and secondary tokens as labeled swatches paired for light and dark mode.
Fig. 2Gestalt's messaging guidance, with a table ranking status types by priority from error down to info, so competing messages don't stack up.
Fig. 3A right-to-left layout diagram: a Pinterest interface on a tablet with eight numbered elements and an arrow tracing reading order from the right margin.
Fig. 4Gestalt's expressive ease documentation, pairing an easing curve plot with its cubic-bezier function and the product transitions it applies to.

Further reading

Related