feat(ui): migrate to @ossrandom/design-system 0.2.1#5
Merged
Conversation
Replace the in-repo radix-ui + shadcn shim layer with the published design system (@ossrandom/design-system@^0.2.1). This also removes class-variance-authority and the @fontsource Inter / JetBrains Mono / Playfair Display packages — typography now ships with the design system as self-hosted variable woff2 (Bricolage Grotesque, Plus Jakarta Sans, Geist Mono — all OFL-1.1). Component swaps: - Tabs: shadcn TabsList/TabsTrigger/TabsContent → DS Tabs items[] API - Drawer: radix Sheet → DS Drawer (DiffSheet, RevertSheet, SettingsDrawer) - Modal: radix Dialog → DS Modal (NewSessionModal — uses rcs-pop-in) - Skeleton: shadcn → DS Skeleton (7 consumers) - Button: shadcn → DS Button / IconButton (Dashboard chrome, etc.) - PageHeader: custom <header> → DS PageHeader with size="xs", inlineSubtitle, backInline. Slim ~34px detail header on session pages; "ctm · claude tmux manager" inline-subtitle on dashboard. Layout robustness: - 100dvh root + flex-shrink chrome so the input bar stays pinned and the tabs content claims height correctly (fixes mobile overlap). - iOS auto-zoom guard: SessionInputBar text-base on mobile (<sm), tiny on desktop. The DS Input/Textarea also pin font-size 16px under pointer:coarse, so future migrations off raw <input> are zoom-safe. Bundle delta: −46 KB JS (radix gone), −9 KB CSS (shadcn gone). Net diff: +2955 / −4713 lines (−1758 net), 46 files. 110/110 vitest tests pass; 0 audit findings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@ossrandom/design-system@^0.2.1).class-variance-authorityand the@fontsource/*packages — typography now ships with the DS as self-hosted variable woff2 (Bricolage Grotesque · Plus Jakarta Sans · Geist Mono, all OFL-1.1).size="xs"+backInlinefor a slim ~34px app-bar; dashboard usesinlineSubtitlefor the "ctm · claude tmux manager" brand row.Net diff: +2955 / −4713 lines across 46 files (−1758 net). Bundle: −46 KB JS, −9 KB CSS.
Component swaps
TabsList/TabsTrigger/TabsContentTabsitems[] APISheet(DiffSheet · RevertSheet · SettingsDrawer)DrawerDialog(NewSessionModal)Modal(rcs-pop-in)Skeleton(7 consumers)SkeletonButton(Dashboard chrome)Button/IconButton<header>on SessionDetailPageHeader(xs + backInline)Test plan
pnpm test— 110/110 vitest tests passpnpm audit— 0 findingsmake build— UI bundle + Go binary build cleanrcs-pop-in(no zoom-in)🤖 Generated with Claude Code