Skip to content

Design system

The framework-agnostic foundation for every interface Filip builds. Its tokens, components, and rules are plain HTML and CSS: the UI library implements them in Vue, new apps and libraries start from them, and Claude and Codex follow them for visual work.

This design system is published as filipgutica/design-system. It is the default for UX and visual work, unless you ask for another or the repository has its own. Browse it on the design system site.

Installed to
~/design-system
Installed by
filip-stack apply
Theme
Graphite Indigo

Component catalogue

The catalogue shows every component in each state that applies. It uses only tokens.css, and its markup carries the roles and states each implementation copies. @filipgutica/ui builds these components in Vue; a React library or a new app builds the same ones from here.

How agents use it

The shared guidance tells agents to read ~/design-system/DESIGN.md before UX or visual work. For interaction, flows, states, interface copy, and accessibility, they also use the interface-design skill. DESIGN.md owns the look; interface-design owns the behavior and its checks.

  1. Your request wins over everything else.

  2. A repository's own design system owns its tokens and components.

  3. filipgutica/design-system is the default for all other UX and visual work. Use its palette, type, and components consistently across projects.

Pick the format first

Choose the format before styling. It determines the density and what the reader sees first.

FormatLead with
Product pagePurpose, one primary action, and a real product image.
Docs or CLI toolThe setup command or the information the task needs.
ApplicationWorking content and its actions.
Inline visualThe comparison or explanation itself, in the host's theme.

Reuse it in a new project

The design system has two layers. The core covers tokens, quiet depth, controls and their states, focus, motion, and accessibility, and a new project adopts it as is. The identity layer is the personal sites' terminal look: the ~/name header, mono headings, and command plates. A new project replaces it with its own.

To start, keep tokens.css unchanged and set your own hue and fonts on :root in a stylesheet loaded after it. Then build components from the catalogue and the component specs.

Theme and token names

Graphite surfaces separate regions. Indigo marks primary actions; blue marks links. Focus is one indigo ring with a 3px gap. Switch the appearance in the header to compare light and dark.

Graphite Indigo tokens

From @filipgutica/ui
--color-bgPage
--color-surfaceRegions
--color-surface-raisedControls
--color-textBody text
--color-mutedSecondary
--color-accentPrimary action
--color-linkLinks
--color-successState
--color-warningState
--color-errorState

The labels above are token names. Standalone HTML and library sites use the same names. The values come from @filipgutica/design-system, which generates tokens.css and the @filipgutica/ui theme. See the components in the UI library.

Rules and examples in the folder

FileUse it for
DESIGN.mdRules for choosing a format, styling the work, and checking the result.
tokens.cssTheme values to import or inline in standalone HTML. The project hue and fonts sit in one block at the top.
components.mdOne spec for each component, marked core or identity.
components.htmlEvery component in each of its states, in plain HTML and CSS.
decisions.mdWhy each component looks the way it does, and the options it replaced.
docs.htmlExample documentation shell with a compact setup command.
product.htmlExample product page hierarchy.
reference.htmlExample application, and a catalogue of type, color, spacing, shape, borders, elevation, focus, and motion.

Where to make changes

Edit the rules, examples, and tokens in filipgutica/design-system, which publishes them as @filipgutica/design-system. filip-stack pins one published version in host-config/design-system.json. After a release, bump the pin with node scripts/pin-design-system.mjs <version>, merge it, then run filip-stack update on each machine.