82 lines
1.6 KiB
Dart
82 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
extension ColorExtension on Color {
|
|
Color get opacity80 {
|
|
return withAlpha(204);
|
|
}
|
|
|
|
Color get opacity60 {
|
|
return withAlpha(153);
|
|
}
|
|
|
|
Color get opacity50 {
|
|
return withAlpha(128);
|
|
}
|
|
|
|
Color get opacity38 {
|
|
return withAlpha(97);
|
|
}
|
|
|
|
Color get opacity30 {
|
|
return withAlpha(77);
|
|
}
|
|
|
|
Color get opacity15 {
|
|
return withAlpha(38);
|
|
}
|
|
|
|
Color get opacity10 {
|
|
return withAlpha(15);
|
|
}
|
|
|
|
Color get opacity3 {
|
|
return withAlpha(76);
|
|
}
|
|
|
|
Color get opacity0 {
|
|
return withAlpha(0);
|
|
}
|
|
|
|
Color darken([double amount = .1]) {
|
|
assert(amount >= 0 && amount <= 1);
|
|
final hsl = HSLColor.fromColor(this);
|
|
final hslDark = hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0));
|
|
return hslDark.toColor();
|
|
}
|
|
|
|
Color blendDarken(
|
|
BuildContext context, {
|
|
double factor = 0.1,
|
|
}) {
|
|
final brightness = Theme.of(context).brightness;
|
|
return Color.lerp(
|
|
this,
|
|
brightness == Brightness.dark ? Colors.white : Colors.black,
|
|
factor,
|
|
)!;
|
|
}
|
|
|
|
Color blendLighten(
|
|
BuildContext context, {
|
|
double factor = 0.1,
|
|
}) {
|
|
final brightness = Theme.of(context).brightness;
|
|
return Color.lerp(
|
|
this,
|
|
brightness == Brightness.dark ? Colors.black : Colors.white,
|
|
factor,
|
|
)!;
|
|
}
|
|
}
|
|
|
|
extension ColorSchemeExtension on ColorScheme {
|
|
ColorScheme toPureBlack(bool isPrueBlack) => isPrueBlack
|
|
? copyWith(
|
|
surface: Colors.black,
|
|
surfaceContainer: surfaceContainer.darken(
|
|
0.05,
|
|
),
|
|
)
|
|
: this;
|
|
}
|