← Back

Monospace Design System — code-first UI system

Design system — principles, tokens, primitives, patterns, and shadcn registry

Role: Design System Lead · Client: Monospace Studio (self-initiated)

uivisualdesign-systems

Problem

Most design systems start in Figma — tokens in a shared library, components in a published file, handed to engineering as an interpretation. The code always comes second, a loose reading of whatever the design file intended. For SaaS and AI-native products that ship fast, the gap between the documented system and the running product is where consistency quietly leaks away.

Solution

MDS is built backwards: it starts in code and ships as a working, interactive site you can actually use — no Figma file, no mockups. Five principles act as architectural constraints across three layers: typed tokens, eight accessible primitives, and nine interactive product patterns. A shadcn registry item lets any project adopt the whole theme with one command, so the system and the product surface stay the same thing.

Code-first, not Figma-first

01 The brief

The Figma file doesn't exist. MDS is a starting point for SaaS and AI-native products, built on product patterns rather than a catalogue of buttons. The reference points are Apple HIG, Arc, and iOS-native apps — deliberately free of enterprise heaviness and border-heavy Material layouts. Building from code first means the system and the product surface are the same artifact, not a design file and its later interpretation.

Five constraints

02 Principles

Friendly — warm by default, speaks plainly, never shouts. Calm — quiet surfaces, motion that soothes rather than startles. Clear — one obvious next step, hierarchy you can feel. Fast — instant feedback, nothing in the way. Forgiving — easy to undo, mistakes are never dead ends. The five run through everything as architectural constraints, not just copy on a principles page.

Tokens, primitives, patterns

03 Three layers

Foundations are spacing, radius, type, motion, shadow, and colour as CSS custom properties — a typed source of truth in TypeScript, light and dark out of the box. Building blocks are eight accessible primitives (Text, Icon, Button, Input, Card, Sheet, Surface, Stack) built on Base UI for the accessible plumbing, with Lucide icons and Motion animation wired through every component.
Monospace Design System — desktop reference site spanning Overview, Tokens, Components, Patterns, and Dashboard
001
MDS Tokens — colour exposed as CSS variables: warm neutrals, one calm accent, and clear status hues
002
MDS Components — eight accessible primitives including Text, Icon, and Button, typed end to end
003

Nine interactive screens

04 Patterns

The point of the whole system: nine live product screens you can lift straight into a real product — App Shell, Settings, Profile, List + Detail, Search, AI Chat, Empty State, Loading State, and a keyboard-navigable Command Bar (⌘K). Not documentation for what you might build; screens that already work, live at mds.monospace.studio/patterns.
Monospace Design System — nine interactive product patterns including App Shell, AI Chat, and Command Bar
004

One-command adoption

05 shadcn registry

MDS ships a shadcn registry item, so any project already on shadcn/ui pulls in the full theme with a single command — IBM Plex Sans, JetBrains Mono, warm paper neutrals, one calm accent, and soft radius, all as CSS variables wired into Tailwind v4. Light and dark, no copy-paste token archaeology: shadcn fetches the JSON, applies the variables, and the project is on MDS.

Live and AI-native

06 Stack & status

Built on Next.js (App Router), React 19, TypeScript strict, Tailwind v4, Base UI, Lucide, and Motion, deployed on Vercel. Live docs at mds.monospace.studio, with a full write-up at /studio/monospace-design-system. AI-native from the first commit — built with and for AI-assisted product teams.
MDS Dashboard pattern — a complete app surface built entirely from MDS primitives: account menu, live filter and sort, and a responsive grid of cards
005