Skip to content

Extract a shared design-system package for gittensory-ui and gittensory-miner-ui #4966

Description

@JSONbored

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:

  • apps/gittensory-ui renders pixel-identical to today after the extraction — this is a pure move, not a redesign.
  • The design system is a real, versioned workspace dependency, not a copy-pasted duplicate.
  • Both light and dark themes still render correctly end-to-end.

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.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.roadmapOn the Wave-2 agent-layer roadmap board (project 9)

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions