feat(design-system): establish independent UI foundation - #2482
Merged
Conversation
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
design-systemworkspace with design tokens, BitFun themes, reusable UI packages, package contracts, and Design Lab.@bitfun/ui, introduce the shared TabGroup/scene navigation foundation, and connect product Appearance values through a semantic token projection bridge.Fixes: N/A
Type and Areas
Type: Feature / refactor / UI/UX / docs / test
Areas: design system, web UI, Appearance/theme infrastructure, scene shell, repository tooling
Motivation / Impact
This establishes a package-owned design-system foundation instead of continuing to duplicate control anatomy and styling inside the product Web UI. Product-specific Appearance remains in the Web UI adapter layer, while
@bitfun/uiowns reusable component anatomy and behavior.The change was reviewed for redundancy: legacy Button/Switch implementations and obsolete Appearance action parts were removed rather than kept as parallel owners. Compatibility migration drops retired surfaces from older persisted Appearance packages instead of rejecting those packages after upgrade.
Verification
Completed before the final rebase:
pnpm run design-system:check— passed (package builds, Design Lab build, 64 tests)pnpm run theme:color-audit:all— passedpnpm run appearance:contract-audit— passedpnpm run i18n:audit— passedpnpm run motion:audit— completed; only the existing PortForwardDialog intent reminder was reportedgit diff --check— passedKnown baseline:
pnpm run type-check:webremains blocked by the pre-existingwebsocket-adapter.ts(21,3)error:GitTrustReportis not exported from@/generated/api; the failing file is outside this diff.Skipped by request:
Reviewer Notes
tone="danger", so destructive meaning is preserved across visual variants.Checklist