Problem: apps/gittensory-miner-ui was scaffolded with Vite's default styling and never wired to the main site's actual design system — it has a 17-line stylesheet (generic system fonts, two hardcoded hex colors, forced dark-only, zero design tokens), while apps/gittensory-ui has a full, deliberate OKLCH-based dual-theme token system (the "Lovable Lime" palette, Space Grotesk/DM Sans/JetBrains Mono type pairing) plus a 46-component shadcn/ui-style primitive library (button, card, dialog, form, table, etc.) — currently living only inside apps/gittensory-ui with no shared package. Left as-is, this is two unrelated design systems to maintain going forward.
Area: Design system / Frontend
Proposal: Extract the design tokens (the @theme block plus light/dark CSS variables from apps/gittensory-ui/src/styles.css) and the primitive component library (apps/gittensory-ui/src/components/ui/, 46 components) into a new shared workspace package, then migrate apps/gittensory-ui itself to consume it instead of its local copies — establishing one real source of design truth before anything else depends on it.
Deliverables:
- A new shared package containing the extracted design tokens and the 46 component primitives.
apps/gittensory-ui migrated to import from the shared package, with its local duplicate copies removed.
- Font loading, dark-mode toggle (
.dark class), and Tailwind v4 @theme wiring all confirmed working identically through the shared package.
Acceptance criteria:
Test scenarios:
- Visual diff of key pages (home, docs, dashboard) before/after the extraction in both themes.
- A fresh
npm ci + build from a clean clone succeeds with the new package structure.
Resources:
apps/gittensory-ui/src/styles.css (the token system to extract).
apps/gittensory-ui/src/components/ui/ (46 primitive components to extract).
Boundaries:
- Pure extraction only — no visual or behavioral changes to
gittensory-ui in this issue. Migrating gittensory-miner-ui onto the new package is a separate, follow-up issue.
Problem:
apps/gittensory-miner-uiwas scaffolded with Vite's default styling and never wired to the main site's actual design system — it has a 17-line stylesheet (generic system fonts, two hardcoded hex colors, forced dark-only, zero design tokens), whileapps/gittensory-uihas a full, deliberate OKLCH-based dual-theme token system (the "Lovable Lime" palette, Space Grotesk/DM Sans/JetBrains Mono type pairing) plus a 46-component shadcn/ui-style primitive library (button, card, dialog, form, table, etc.) — currently living only insideapps/gittensory-uiwith no shared package. Left as-is, this is two unrelated design systems to maintain going forward.Area: Design system / Frontend
Proposal: Extract the design tokens (the
@themeblock plus light/dark CSS variables fromapps/gittensory-ui/src/styles.css) and the primitive component library (apps/gittensory-ui/src/components/ui/, 46 components) into a new shared workspace package, then migrateapps/gittensory-uiitself to consume it instead of its local copies — establishing one real source of design truth before anything else depends on it.Deliverables:
apps/gittensory-uimigrated to import from the shared package, with its local duplicate copies removed..darkclass), and Tailwind v4@themewiring all confirmed working identically through the shared package.Acceptance criteria:
apps/gittensory-uirenders pixel-identical to today after the extraction — this is a pure move, not a redesign.Test scenarios:
npm ci+ build from a clean clone succeeds with the new package structure.Resources:
apps/gittensory-ui/src/styles.css(the token system to extract).apps/gittensory-ui/src/components/ui/(46 primitive components to extract).Boundaries:
gittensory-uiin this issue. Migratinggittensory-miner-uionto the new package is a separate, follow-up issue.