AppButton Widget
Component Detail
User Interface
medium complexity
Shared Component
mobile
2
Dependencies
1
Dependents
0
Entities
0
Integrations
Description
Accessible, reusable button widget used throughout the Flutter app. Enforces minimum 24x24 logical pixel touch targets per WCAG 2.2, requires semantic label as a constructor parameter to prevent accidental omission, and supports disabled, loading, and destructive states with correct contrast ratios.
app-button-widget
Responsibilities
- Enforce minimum touch target size (24x24 logical pixels) for all button variants
- Require accessibility label as mandatory constructor parameter
- Provide primary, secondary, destructive, and ghost button variants with 4.5:1 contrast
- Emit Semantics widget with correct role and state for VoiceOver and TalkBack
- Support loading and disabled states with appropriate visual and semantic indicators
Interfaces
AppButton({required String semanticLabel, required VoidCallback? onPressed, required String label})
AppButton.primary()
AppButton.secondary()
AppButton.destructive()
AppButton.ghost()
AppButton.icon({required IconData icon, required String semanticLabel})
setLoading(bool loading)
setDisabled(bool disabled)
Relationships
Dependencies (2)
Components this component depends on