Button:
- Add aria-busy={loading} for assistive technology
- Add visually-hidden "Loading" text for screen readers
- Mark CircularProgress as aria-hidden (decorative)
Card:
- Add tabIndex={0} and role="button" when interactive
- Fix Record<string, any> → Theme type for type safety
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bump small chip label padding from MUI default 8px to 12px (spacing.3)
to match medium size — pill border-radius eats into perceived spacing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Interactive tag for filtering, selection, and dismissible labels
- Wraps MUI Chip with FA tokens: 12 component tokens (height, padding, font, icon sizes)
- Two variants (filled/outlined) × two colours (default/primary) × two sizes (sm/md)
- Custom `selected` prop promotes to brand colour with warm bg (outlined)
- MUI theme overrides: soft tonal fills, branded outlines, hover/focus states
- 10 Storybook stories including interactive filter and removable tag demos
- Preflight passed all 5 checks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add lg tokens: height 32px, paddingX 16px, fontSize 14px, iconSize 16px
- Refactor component to use size map instead of ternary
- Update stories: Sizes now shows all three, CompleteMatrix includes large
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Reserve 2px border on all cards (transparent for elevated, coloured
for outlined) so selected state only changes colour, not width
- Add 150ms ease-in-out transitions for border-color and background-color
consistent with Button/Input interactive timing
- Remove borderWidth/borderStyle from selected sx (now handled by theme)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Runs 5 checks before commit: TypeScript compilation, Storybook build,
token sync verification, hardcoded values scan, and component exports.
Integrates with the git workflow to catch issues before they hit the repo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>