feat(bull_ui): design-system package + component catalogue - #2302
Conversation
|
Claude finished @ethicnology's task in 3m 21s —— View job Claude PR review
Reviewed for correctness bugs, security issues, and regressions. This is a clean, well-documented, almost entirely additive PR: a new 🟠 Findings1. New package tests don't run in CI (test-rot risk) — 🟡 Minor / confirm-intent2. 3. 4. Style divergence from the original (intentional?) — ✅ Verified OK
Nice groundwork for #760. The architecture note in the PR body (sanctioning Flutter-UI packages under |
… input text role, sweep package tests in CI
|
@claude is it better now ? |
|
Claude finished @ethicnology's task in 1m 13s —— View job Re: "is it better now?" — yes, mostly ✅I checked commit
🟠 One thing to tighten on the CI fix
@for p in packages/*/; do \
if [ -d "$${p}test" ]; then \
echo "🏃 running $${p}test"; \
( cd "$$p" && fvm flutter test --reporter=compact ); \
fi; \
doneThe whole @for p in packages/*/; do \
if [ -d "$${p}test" ]; then \
echo "🏃 running $${p}test"; \
( cd "$$p" && fvm flutter test --reporter=compact ) || exit 1; \
fi; \
done(or Everything else from the prior review still stands as ✅. Once the loop propagates failures, the safety net is fully load-bearing. Nice iteration. |

Summary
Introduces
bull_ui— the project's first melos workspace package, a Flutter design-system kit — andbull_ui_catalogue, a local Widgetbook to browse it. Groundwork for the UTXO/Coins view (#760); the feature itself is not in this PR.bull_ui— the design systemlib/core/widgets/**asBull*(buttons, inputs, controls, cards/tiles/tables/badges, feedback, layout, overlays, chrome). TheBB*originals are untouched — provenance:BB*= legacy core,Bull*= go-forward. No existing app code changes.BullThemeis a 1:1 mirror ofAppColors, injected by the app per brightness (light/dark) via aThemeExtension;BullRadius/BullSpacingadopt the design-system scales (0/4/8/12/16/28/32/999and0/4/8/12/16/24/32/48/64); type comes from the MaterialTextTheme(AppFonts). No hardcoded colours.LayoutBuilder, max-width); text honoursMediaQuery.textScaler.withValues,MediaQuery.sizeOf, super-params),Semantics+ 44px tap targets,BullTheme.lerp/copyWithcover every field. 14 widget tests.import 'package:bull_ui/bull_ui.dart';.bull_ui_catalogue— the catalogue (dev-only)Bull*component plus aFoundation/section (Colours, Radius, Spacing, TextStyles).BullTheme) + text-scale addon.make cataloguebuilds and renders it locally; never shipped, not in the APK, zero reproducible-build impact.Coverage vs the design (#760 UTXO design)
UtxoTile,KeychainBadge,ConfPill,SummaryBar,SortFilterSheet,FreezeConfirmDialog,CoinsScreen) are the Add UTXOs View #760 feature, built on top ofbull_ui— deferred to a later PR.BullCardand a2pxradius step (mockups use 2px; the foundation scale starts at 4px).bull_uiis a Flutter UI package underpackages/, whereasARCHITECTURE.mdcurrently reservespackages/for pure-Dart foundation. This is the intentional start of the design-system migration; sanctioning the new category inARCHITECTURE.md/AGENTS.md+ a rootCHANGELOGentry is a small follow-up kept out of this PR to stay focused — say if you'd rather it land here.Out of scope / follow-ups
appBuilder/OverflowBox; v4 is a full authoring-model rewrite).core/widgets(those importing app services / l10n / Assets), listed in the package README.Test plan
make analyze— clean (--fatal-warnings --fatal-infos, whole workspace);fvm dart fix --dry-run— "Nothing to fix!".fvm flutter testinpackages/bull_ui(14 pass) andpackages/bull_ui_catalogue.make catalogue— renders in light/dark, incl. theFoundation/section.bull_uidependency).Relates to #760.