About this site
design.petanque.life is the internal, single source of truth
for every shared primitive we ship. It is generated directly from
@petanque-life/shared so what you see here is exactly what
www, web, app, admin, and
sys render in production.
Who can see this
The site is gated behind the same sys-auth as the sys console. If you reached this page without a sys session you were redirected to sys.petanque.life/login.
How it stays in sync
- A build-time script reads the shared registries (icons, illustrations, celebrations, errors) and emits a catalogue blob.
- GitHub Actions redeploys the site on every push to
packages/shared/**ordesign/**. - Playwright visual regression compares every primitive in light/dark and mobile/desktop against committed baselines — breaking changes fail the deploy.
- Each app's deploy pipeline runs
audit:parityto verify the primitive inventory matches this catalogue; mismatches block merge.
Contributing a new primitive
Read docs/product/design-system/adding-new-primitive.md for the workflow. In short:
- Ship the primitive in
packages/shared. - Add an entry to
design/scripts/build-catalog.mjs. - Create a preview page under
design/src/pages/primitives/. - Run
npm run visual:updateonce locally and commit the baseline.
Anti-scope
- No Figma plugin — tokens live in code.
- No live token editing — tokens change through PR review only.
- No per-primitive version history — git is the historical record.
- No public URL — this is an internal tool.