Take it with you

Install the React package from npm, or link the stylesheets straight from this site. Either way, add a theme file and the system is yours.

Install from npm

@dovetail-ds/react has every component, typed, with the stylesheets. React 18 or newer is the only peer dependency; install react-dom alongside, since your app renders with it and npm won't add it for you.

npm install @dovetail-ds/react react react-dom

Import the stylesheets once at your app's root, your theme last:

import "@dovetail-ds/react/fonts.css"; // optional: Geist from Google Fonts
import "@dovetail-ds/react/styles.css";
import "./dovetail-theme.css"; // from Configure, or written by the setup skill

import { Button, Section, Stack } from "@dovetail-ds/react";

Set up with Claude Code

The package ships a Claude Code skill that asks about your brand, or takes a theme you downloaded from Configure, then writes the theme and wires it into your app. Copy it in, then ask Claude to “set up Dovetail with our brand”.

mkdir -p .claude/skills
cp -r node_modules/@dovetail-ds/react/skills/dovetail-setup .claude/skills/

The whole system is served from this site under system/, at the paths it was authored with. Link one stylesheet and you have the tokens.

<link rel="stylesheet" href="system/styles.css">
<link rel="stylesheet" href="system/tokens/themes/theme-editorial.css">

Dark mode needs no second stylesheet. Put class="dark" on <html>.

Stylesheets

FileWhat it is
styles.cssThe single entry point. Import lines only.
tokens/base.cssMinimal element defaults.
tokens.cssEvery token as flat custom properties.
components/bundle.cssThe global sheets joined into one file.

Tokens

FileWhat it is
tokens/dovetail.tokens.jsonDTCG source of truth.
tokens.jsonThe token list this site renders from.
templates/_support/style-dictionary.config.cjsStyle Dictionary build config.

Themes

FileWhat it is
tokens/themes/base-dark.cssDark mode. Re-points the same semantic names.
tokens/themes/theme-editorial.cssWarm primary colour, serif headings, pill controls.
tokens/themes/theme-mono.cssNo brand hue, square corners, borders over shadows.
tokens/themes/density-compact.cssCompact control heights and insets.
tokens/themes/theme-custom.cssWhere the configurator commits a theme.

Components

FileWhat it is
components/bundle.jsEvery component, pre-built, assigned to one global.
components/lib/react.production.min.jsReact 18.3.1, as the previews load it.
components/lib/react-dom.production.min.jsReact DOM 18.3.1.

Templates and tools

FileWhat it is
templates/settings-page/SettingsPage.dc.htmlA product settings screen, composed from Dovetail only.
theme-configurator.htmlTune a theme live and export the CSS.

Everything else

Component sources, typed contracts, per-component guides, the foundation spec cards and the templates all sit under system/ in the repository, unchanged from how they were authored. The preview documents in previews/ are the same cards with three script tags added so each one runs on its own.