getColorImpl method Null safety
- dynamic colorScheme,
- dynamic materialColor,
- ColorDestination colorDestination
Returns a shade of a materialColor
For instance, if you want to display a red button, you'll use Colors.red as root color, the destination will be ColorDestination.BUTTON_BACKGROUND, and you'll specify the current ColorScheme. For the moment, the ColorScheme matters only for the light/dark switch.
Implementation
@protected
Color? getColorImpl(
final ColorScheme colorScheme,
final MaterialColor materialColor,
final ColorDestination colorDestination,
) {
if (colorScheme.brightness == Brightness.light) {
switch (colorDestination) {
case ColorDestination.APP_BAR_BACKGROUND:
case ColorDestination.SURFACE_FOREGROUND:
case ColorDestination.BUTTON_BACKGROUND:
return materialColor[800]!;
case ColorDestination.APP_BAR_FOREGROUND:
case ColorDestination.SURFACE_BACKGROUND:
case ColorDestination.BUTTON_FOREGROUND:
return materialColor[100]!;
}
}
switch (colorDestination) {
case ColorDestination.APP_BAR_BACKGROUND:
return null;
case ColorDestination.SURFACE_BACKGROUND:
case ColorDestination.BUTTON_BACKGROUND:
return materialColor[900]!.withOpacity(ADDITIONAL_OPACITY_FOR_DARK);
case ColorDestination.APP_BAR_FOREGROUND:
case ColorDestination.SURFACE_FOREGROUND:
case ColorDestination.BUTTON_FOREGROUND:
return materialColor[100]!;
}
}