One system, three brands

Everything our apps are built from: the tokens, the components, the composition rules and the decisions behind them. Switch the brand in the header — only the accent moves.

Primitives
31
shadcn, patched
Registry items
51
installable with one command
Documents
23
every number measured
Modes
6
three brands × two themes
Sections
Using it

Two channels, on purpose. The tokens are an npm dependency, because a colour fix has to reach every app without anyone re-running a CLI. The components are a shadcn registry, because a primitive is a starting point each app patches — and both of ours already have.

1 · the tokens
pnpm add @8020rei-com/tokens

@import "tailwindcss";
@import "@8020rei-com/tokens";

Then data-brand and data-theme on the html element. That is the whole integration.

2 · the components
pnpm dlx shadcn@latest add @8020iq/base
pnpm dlx shadcn@latest add @8020iq/site-shell
pnpm dlx shadcn@latest add @8020iq/dashboard-screen

A block brings its own files plus the registry items they import — nothing is listed by hand.