Bolt Design System

Bolt Design System

From inherited chaos to a living, easy to use and agent ready component library.

From inherited chaos to a living, easy to use and agent ready component library.

Overview

Bolt is a design system documented in code and used by developers long before it existed properly in Figma. When I joined the project, there was a partial library started by an intern: inconsistent, incomplete, and largely ignored by the design team. I rebuilt it from the ground up, and have maintained and evolved it ever since.


What started as a cleanup task became an ongoing ownership role; spanning component architecture, visual design decisions, accessibility improvements, and most recently, preparing the system for AI-native workflows.

The challenge

The challenge

Bolt existed as a developer resource (code repo + documentation) but had no reliable Figma counterpart.

The existing Figma library was missing half the components and had significant inconsistencies

Designers had learned to work around it, detaching components and customizing manually, which broke the connection to the codebase and introduced visual drift.

With designers working across products, the lack of a trusted system meant every project started from a different baseline.

Building the library

Building the library

I rebuilt nearly all ~60 components from scratch, prioritizing fidelity to the code repository so that what designers used in Figma matched what developers shipped.

Key decisions I made during the rebuild:

Properties over detach – I structured every component with Figma properties and variables so designers could customize within guardrails, without breaking the component. This was a deliberate response to the "detach culture" that had developed – making the right behavior easier than the workaround.


Figma Variables – Introduced a token layer for color and spacing, enabling consistent theming and making future updates easier to propagate across the library.


Slots – Built components to accept content through slots rather than being rigidly defined, giving designers flexibility without sacrificing structure.

Properties over detach – I structured every component with Figma properties and variables so designers could customize within guardrails, without breaking the component. This was a deliberate response to the “detach culture” that had developed – making the right behavior easier than the workaround.


Figma Variables – Introduced a token layer for color and spacing, enabling consistent theming and making future updates easier to propagate across the library.


Slots – Built components to accept content through slots rather than being rigidly defined, giving designers flexibility without sacrificing structure.

Selected screens

A closer look at the system

A closer look at the system

01 / 04

The Hardest Part: Changing Designer Behavior

The Hardest Part: Changing Designer Behavior

Rebuilding the components was the easier half of the job. The harder part was convincing a team of designers who had spent years detaching and customizing to trust the system instead. The shift was gradual. Rather than mandating change, I focused on making the system genuinely better than the workaround - adding properties that covered real use cases, documenting clearly, and being available to support designers when they ran into friction.

Accessibility & Ongoing Maintenance

Accessibility & Ongoing Maintenance

Design system work is never finished. In addition to regular bug fixes and component updates, I continuously improve Bolt with accessibility in mind – contrast ratios, focus states, touch targets, and interaction patterns that work across contexts.

Designing for AI

Designing for AI

As tools like Figma Make and Claude Design become part of design workflows, the quality and structure of a design system directly affects how well AI agents can interpret and use it. I've been working with developers and UX designers focused on agentic design to improve how Bolt's components are named, described, and structured so they can be correctly read and applied by LLMs.

As tools like Figma Make and Claude Design become part of design workflows, the quality and structure of a design system directly affects how well AI agents can interpret and use it. I’ve been working with developers and UX designers focused on agentic design to improve how Bolt’s components are named, described, and structured so they can be correctly read and applied by LLMs.

What I learned

A design system is only as good as the trust people put in it.

A design system is only as good as the trust people put in it.

Owning a design system means owning the gap between design and development – and the gap between what a team is used to and what they should be doing. The technical work is visible; the cultural work isn't. But it's equally important.

Owning a design system means owning the gap between design and development – and the gap between what a team is used to and what they should be doing. The technical work is visible; the cultural work isn’t. But it’s equally important.

Thank you for reading!

Thank you for reading!

Create a free website with Framer, the website builder loved by startups, designers and agencies.