Skip to content

Commit 2a144f1

Browse files
committed
feat: chipzzz
1 parent adbc04c commit 2a144f1

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

lib/src/theme.dart

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)