All projects
Figma · React · Storybook

Ávila Design System

An independent design system, from Figma variables to React components.

Ávila Design System: project interface, view 1
Ávila Design System: project interface, view 2
For whom

Teams designing and building web products

Scope

Design System · Ávila and Base · Light and dark

Tools

Design tokens / React components / Storybook

The idea

Keep Figma and code speaking the same language.

Ávila is my own design system. I built it to align Figma variables and component properties with their React implementations. The library supports four themes and is documented in Storybook, where I can review the components in action.

Screenshots are taken from the system's Storybook, using sample data.

Primitives

Define the foundational values.

I organized eight color ramps alongside spacing, radius, blur, stroke, and typography scales in a primitive layer. Components use the semantic layer.

Semantic roles

Give every token a purpose.

I defined roles whose names stay consistent across four themes. Primary maps to Valle in Ávila and Blue in Base; dark mode also adjusts the surface hierarchy.

Spacing

Name the spacing scale.

I organized fourteen steps with usage-oriented names, such as Medium for 12 px. Samples appear at actual size against a 128 px guide.

Radius and elevation

Define corner radii and elevation.

I created seven radius levels from None to Full, plus six shadows with specific offsets, blurs, and spreads to distinguish surfaces.

Typography

Organize type styles.

I used Poppins for Display, Headline, Body, and UI roles, with defined sizes, line heights, and weights for each style.

Documentation

Document working components.

I documented usage, accessibility, implementation, and resources in Storybook, including links to Figma nodes. Documentation responds to the active theme.

Ávila Design System: Document working components.

Guides

Give every discipline a starting point.

I wrote getting-started guides for design, engineering, and content, alongside foundational concepts and token references.

Ávila Design System: Give every discipline a starting point., view 1
Ávila Design System: Give every discipline a starting point., view 2

Patterns

Test components together.

I built screen patterns with navigation, search, filters, and metrics to review how components work together. Appearance changes are driven by tokens.

Ávila Design System: Test components together.

Themes

Combine themes on one screen.

I implemented theme boundaries with data-brand and data-appearance. A card can use Base inside an Ávila page and have a different appearance mode.

Ávila Design System: Combine themes on one screen.

Home

Bring the system into a real product view.

I created a workspace home with metrics, search, projects, favorites, and activity to test the system in a product context.

Ávila Design System: Bring the system into a real product view.

Implementation

How I built it.

Tokens sourced from Figma

I used a DTCG snapshot of Figma variables to generate CSS and Tailwind utilities. Components consume semantic tokens, and an automated check catches differences between the snapshot and the code.

Attribute-based themes

I implemented theme boundaries with data-brand and data-appearance. Elements inherit both attributes, and boundaries can be nested to combine brands on a single screen.

Documentation in Storybook

I documented each component in Storybook with usage, accessibility, implementation guidance, and resources, plus a link to the corresponding Figma node.

Ávila Design System

An independent design system, from Figma variables to React components.

React 19
Native HTML, keyboard support, and ARIA.
TypeScript
Strict types and discriminated variant unions.
Tailwind CSS v4
Utilities named after design tokens.
Storybook 10
Live component catalog and accessibility review.
Lucide
One icon set registered by name.
Next projectComando