Skip to content

chore(design-sync): import shadcn/ui primitives to Claude Design#97

Merged
lyfuci merged 1 commit into
mainfrom
chore/design-sync
Jun 22, 2026
Merged

chore(design-sync): import shadcn/ui primitives to Claude Design#97
lyfuci merged 1 commit into
mainfrom
chore/design-sync

Conversation

@lyfuci

@lyfuci lyfuci commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Sets up /design-sync so the Claude Design agent builds with the toolbox's
actual themed primitives.

What's synced

The 12 stock shadcn/ui primitives in src/components/ui/ (Button, Card,
Command, Dialog, Input, Label, ScrollArea, Separator, Tabs, Textarea, Toaster,
Tooltip) + the zinc/dark Tailwind v4 theme. Uploaded to the Toolbox Design
System
Claude Design project — 12 components, render check clean, every
preview graded good.

Why it's unusual

The toolbox is an app, not a library (private, no exports), so the converter
runs in synth-entry package shape off a committed entry.ts, with the
app's compiled CSS as the stylesheet (components carry no static CSS — it's
Tailwind utilities compiled at build). Details + re-sync gotchas in
.design-sync/NOTES.md.

Contents (all under .design-sync/, reproducible re-sync inputs)

  • config.json — componentSrcMap, hand-written dtsPropsFor contracts
    (synth-entry .d.ts are hollow), group taxonomy, overlay/grid overrides
  • entry.ts — re-exports the 12 components (+ sonner toast) to window.Toolbox
  • previews/ — authored dark-themed preview cards
  • conventions.md — design-agent guide (dark wrapper, semantic-token vocab,
    build-snapshot CSS caveat), wired via readmeHeader
  • NOTES.md — shape, CSS strategy, chromium + portaled-color gotchas, risks

Scope / safety

No src/app changes. .design-sync/ excluded from eslint; regenerated
artifacts gitignored. lint, build, and 388 tests all green.

🤖 Generated with Claude Code

Set up /design-sync for the toolbox's 12 shadcn/ui primitives. The app has no
library dist, so this runs the converter in synth-entry package shape off a
committed re-export entry, with PKG_DIR resolving to the repo root.

Reproducible sync inputs:
- config.json: componentSrcMap (the 12 ui files), dtsPropsFor (hand-written
  prop contracts since synth-entry .d.ts are hollow), a group taxonomy via
  docsMap stubs, and overlay/grid overrides.
- entry.ts: re-exports the 12 components (+ sonner `toast`) to window.Toolbox.
- previews/: authored, dark-themed preview cards (all graded good; real toasts,
  open dialog/tooltip/command).
- conventions.md: the design-agent guide (dark wrapper, semantic-token vocab,
  build-snapshot CSS caveat), wired via readmeHeader.
- NOTES.md: synth-entry shape, app-CSS strategy, chromium/playwright + portaled
  color gotchas, re-sync risks.

Tooling hygiene: scope .design-sync/ out of eslint; gitignore the regenerated
.ds-sync/ scripts, ds-bundle/ output, and .design-sync/.cache machine state.

Uploaded to the "Toolbox Design System" Claude Design project — 12 components,
render check clean, all previews graded good. No app/src changes; build, lint,
and 388 tests stay green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012gT1Vn216uvrJRGC8DbvVZ
@lyfuci lyfuci merged commit c909850 into main Jun 22, 2026
2 checks passed
@lyfuci lyfuci deleted the chore/design-sync branch June 22, 2026 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant