EQTY's design system — a shared component library and demo app.
- Node 18+ (Vite 5 requires Node ≥ 18)
- pnpm 9.x (workspace uses
packageManager: [email protected])
Verify versions:
node -v
pnpm -vFrom the repository root:
pnpm installThis installs all workspace packages under packages/.
-
Start demo (Vite dev server):
pnpm dev
-
Build everything (UI lib and any other packages):
pnpm build
-
Build only the UI library package:
pnpm -F @eqtylab/equality build
-
Format code with Prettier:
pnpm format pnpm format:check
You can also run commands within individual packages, e.g. the demo:
pnpm -F demo devpackages/ui— the published component library@eqtylab/equalitypackages/demo— Vite + React demo app consuming the library
- Install the package (within your app workspace):
pnpm add @eqtylab/equality- Import
ThemeProviderin your app entry:
import React from 'react';
import { createRoot } from 'react-dom/client';
import { ThemeProvider } from '@eqtylab/equality';
import App from './App';
createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<ThemeProvider>
<App />
</ThemeProvider>
</React.StrictMode>
);- Import and use components:
import { Button, Card } from '@eqtylab/equality';
const Test = () => {
return (
<Card>
<CardContent>
<p>This is a test card with button</p>
<Button>Click me</Button>
</CardContent>
</Card>
)
}Notes:
- The prebuilt CSS works without configuring Tailwind in the consuming app.
- Source:
packages/ui/src(components undersrc/components, exports insrc/index.ts) - Styles/Tokens:
packages/ui/src/theme/theme.module.css
Build the library locally:
pnpm -F @eqtylab/equality buildWatch mode (library only):
pnpm -F @eqtylab/equality watchThen, in another terminal, run the demo to test changes:
pnpm -F demo devThe root has a convenience script that builds and publishes the UI package:
pnpm releaseRequirements:
- You must be authenticated with npm and have publish rights.
- Ensure you have updated the version in
packages/ui/package.jsonbefore releasing.
Alternatively, run the package-level release:
pnpm -F @eqtylab/equality run release- If the demo doesn’t start, ensure Node ≥ 18 and pnpm ≥ 9.
- If styles don’t appear, confirm the CSS import:
import '@eqtylab/equality/styles/style.css'.