# How Thumbtack Structures Their Design System - Figma
Synced: [[2023_11_30]] 6:03 AM
Last Highlighted: [[2023_08_31]]
Tags: [[design]] [[Design]] [[software]] [[Software]]

## Highlights
[[2023_08_31]] [View Highlight](https://read.readwise.io/read/01h95c9zm5wdnjb4rxj5eh9va6)
> Finally, at the top of the system is [Thumbprint Components](https://thumbprint.design/components/overview/), which provides accessible solutions to our most common UI patterns, such as alerts, buttons, date pickers, and the beloved star rating. These pre-built components save developers time and effort, allowing them to focus on building the core product features. If they need a component that doesn't exist, Thumbprint Atomic allows them to build their own. And if that's not sufficient (or if they're working on a native platform), they can use Thumbprint Tokens.
> 
[[2023_08_31]] [View Highlight](https://read.readwise.io/read/01h95cg813pmn0gecjtfyqtvp7)
> As part of that documentation, maintainers can add notices to specific components in the documentation, prompting developers to contact them before using them. They can also document the “happy path” prominently and the “escape hatch” subtly, as we did with our [Modal component](https://thumbprint.design/components/modal/react/) that includes built-in padding. To encourage collaboration and conversation between developers, designers, and system maintainers, our documentation for ModalCurtain, for example, has [a note](https://thumbprint.design/components/modal-curtain/react/) asking developers to reach out before using the component if the “happy path” doesn't work.
[[2023_08_31]] [View Highlight](https://read.readwise.io/read/01h95cjtxya35kaw6v3kf03j90)
> Systems work best when their consumers fall into the “pit of success,” a term coined by software engineer Rico Mariani. Jeff Atwood, founder of StackOverflow, [expanded upon this](https://blog.codinghorror.com/falling-into-the-pit-of-success/), stating that systems should make it “easy to do the right things and annoying (but not impossible) to do the wrong things.” Building a design system in layers helps designers and engineers do just that. The layers provide flexibility, increasing adoption and reducing the pressure on our team. This, in turn, creates space for us to roll out brand changes and make more thoughtful architecture decisions. Additionally, the layers create a [separation of concerns](https://en.wikipedia.org/wiki/Separation_of_concerns), simplifying the way we to build and maintain the system.