Zen is the design system and React component collection used by Umami. It contains the design tokens, layout primitives, controls, and interface patterns used across Umami products.
The components follow shadcn conventions, use Base UI primitives for interactive behavior, and are styled with Tailwind CSS and CSS custom properties.
Documentation · Component source
- Design tokens for color, typography, spacing, borders, and shadows
- Layout and typography primitives
- Form controls and interactive components
- Reusable interface patterns from Umami products
pnpm install @umami/react-zenFor projects using Tailwind CSS v4, add the Zen preset and include the package in the content paths:
import zenPreset from '@umami/react-zen/tailwind-preset';
export default {
presets: [zenPreset],
content: [
'./src/**/*.{ts,tsx}',
'./node_modules/@umami/react-zen/dist/**/*.{js,mjs}',
],
};Import the theme variables and component animations:
import '@umami/react-zen/styles.css';Import the full stylesheet:
import '@umami/react-zen/styles.full.css';Wrap the application with ZenProvider, then import components from the package:
import { Button, ZenProvider } from '@umami/react-zen';
export function App() {
return (
<ZenProvider>
<Button variant="primary">Save</Button>
</ZenProvider>
);
}See the documentation for component APIs, design tokens, and patterns.
This repository is a pnpm and Turborepo monorepo:
packages/react-zencontains the component packageapps/docscontains the documentation site
Install dependencies:
pnpm installRun the workspace in development:
pnpm devBuild all packages and apps:
pnpm buildLint the workspace:
pnpm lintTo run a command for one workspace:
pnpm --filter @umami/react-zen build
pnpm --filter react-zen-docs devThe documentation development server runs at http://localhost:9001.