@@ -119,6 +119,10 @@ ThemeData _phoenixTheme({
119119 drawerTheme: _drawerTheme (colorScheme),
120120 inputDecorationTheme: _inputDecorationTheme (colorScheme),
121121 listTileTheme: _createListTileTheme (colorScheme),
122+ chipTheme: _createChipTheme (
123+ selectedColor: colorScheme.primary,
124+ colorScheme: colorScheme,
125+ ),
122126 );
123127}
124128
@@ -571,3 +575,40 @@ ListTileThemeData _createListTileTheme(ColorScheme colorScheme) {
571575 ),
572576 );
573577}
578+
579+ ChipThemeData _createChipTheme ({
580+ required Color selectedColor,
581+ required ColorScheme colorScheme,
582+ }) {
583+ final isHC = colorScheme.primary == Colors .black ||
584+ colorScheme.primary == Colors .white;
585+ final selectedBackgroundColor =
586+ isHC ? colorScheme.inverseSurface : selectedColor;
587+ final selectedForeGroundColor =
588+ isHC ? colorScheme.onInverseSurface : colorScheme.onSurface;
589+
590+ return ChipThemeData (
591+ selectedColor: selectedBackgroundColor.withOpacity (isHC ? 1 : 0.4 ),
592+ labelStyle: TextStyle (
593+ color: colorScheme.onSurface,
594+ ),
595+ checkmarkColor: selectedForeGroundColor,
596+ secondaryLabelStyle: TextStyle (
597+ color: selectedForeGroundColor,
598+ fontWeight: isHC ? FontWeight .bold : FontWeight .normal,
599+ ),
600+ side: WidgetStateBorderSide .resolveWith (
601+ (s) => BorderSide (
602+ color: s.contains (WidgetState .selected)
603+ ? selectedBackgroundColor.withOpacity (isHC ? 1 : 0.1 )
604+ : (isHC ? colorScheme.outlineVariant : colorScheme.outline)
605+ .withOpacity (
606+ s.contains (WidgetState .disabled) ? (isHC ? 0.3 : 0.7 ) : 1 ,
607+ ),
608+ ),
609+ ),
610+ shape: RoundedRectangleBorder (
611+ borderRadius: BorderRadius .circular (100 ),
612+ ),
613+ );
614+ }
0 commit comments