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.

Feature: Design System & Accessibility (WCAG 2.2 AA)

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

Dependents (1)

Components that depend on this component