@@ -119,6 +119,10 @@ ThemeData _phoenixTheme({
119
119
drawerTheme: _drawerTheme (colorScheme),
120
120
inputDecorationTheme: _inputDecorationTheme (colorScheme),
121
121
listTileTheme: _createListTileTheme (colorScheme),
122
+ chipTheme: _createChipTheme (
123
+ selectedColor: colorScheme.primary,
124
+ colorScheme: colorScheme,
125
+ ),
122
126
);
123
127
}
124
128
@@ -571,3 +575,40 @@ ListTileThemeData _createListTileTheme(ColorScheme colorScheme) {
571
575
),
572
576
);
573
577
}
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