shadcn-flutter: porting a design system, not a theme
Copying a web design system into Flutter fails when you only copy colors. shadcn-flutter is useful because it forces a layered story: tokens → primitives → composites → your app.
Steal this
- Own the source (copy-in model) so you can edit without fork pain.
- Keep accessibility and focus rings as first-class primitives.
- Document variants; do not hide them in one mega-widget.
Pitfalls
Web CSS assumptions (cascading, :hover) do not map 1:1. Budget for desktop pointer polish separately from mobile touch.
Use this when Material defaults fight your brand.