Give Color/Style to Small ButtonSize

This commit is contained in:
ashilkn 2022-12-15 14:52:39 +05:30
parent a930c887a7
commit d59863670c
2 changed files with 48 additions and 33 deletions

View file

@ -65,26 +65,30 @@ class ButtonWidget extends StatelessWidget {
buttonStyle.defaultButtonColor = buttonType.defaultButtonColor(colorScheme);
buttonStyle.pressedButtonColor = buttonType.pressedButtonColor(colorScheme);
buttonStyle.disabledButtonColor =
buttonType.disabledButtonColor(colorScheme);
buttonStyle.defaultBorderColor = buttonType.defaultBorderColor(colorScheme);
buttonType.disabledButtonColor(colorScheme, buttonSize);
buttonStyle.defaultBorderColor =
buttonType.defaultBorderColor(colorScheme, buttonSize);
buttonStyle.pressedBorderColor = buttonType.pressedBorderColor(
colorScheme: colorScheme,
inverseColorScheme: inverseColorScheme,
buttonSize: buttonSize,
);
buttonStyle.disabledBorderColor =
buttonType.disabledBorderColor(colorScheme);
buttonType.disabledBorderColor(colorScheme, buttonSize);
buttonStyle.defaultIconColor = buttonType.defaultIconColor(
colorScheme: colorScheme,
inverseColorScheme: inverseColorScheme,
);
buttonStyle.pressedIconColor = buttonType.pressedIconColor(colorScheme);
buttonStyle.disabledIconColor = buttonType.disabledIconColor(colorScheme);
buttonStyle.pressedIconColor =
buttonType.pressedIconColor(colorScheme, buttonSize);
buttonStyle.disabledIconColor =
buttonType.disabledIconColor(colorScheme, buttonSize);
buttonStyle.defaultLabelStyle = buttonType.defaultLabelStyle(
textTheme: textTheme,
inverseTextTheme: inverseTextTheme,
);
buttonStyle.pressedLabelStyle =
buttonType.pressedLabelStyle(textTheme, colorScheme);
buttonType.pressedLabelStyle(textTheme, colorScheme, buttonSize);
buttonStyle.disabledLabelStyle =
buttonType.disabledLabelStyle(textTheme, colorScheme);
buttonStyle.checkIconColor = buttonType.checkIconColor(colorScheme);

View file

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:photos/theme/colors.dart';
import 'package:photos/theme/text_style.dart';
import 'package:photos/ui/components/button_widget.dart';
enum ButtonType {
primary,
@ -10,7 +11,8 @@ enum ButtonType {
critical,
tertiaryCritical,
trailingIconPrimary,
trailingIconSecondary;
trailingIconSecondary,
tertiary;
bool get isPrimary =>
this == ButtonType.primary || this == ButtonType.trailingIconPrimary;
@ -57,31 +59,42 @@ enum ButtonType {
}
//Returning null to fallback to default color
Color? disabledButtonColor(EnteColorScheme colorScheme) {
Color? disabledButtonColor(
EnteColorScheme colorScheme,
ButtonSize buttonSize,
) {
if (buttonSize == ButtonSize.small &&
(this == ButtonType.primary ||
this == ButtonType.neutral ||
this == ButtonType.critical)) {
return colorScheme.fillMuted;
}
if (isPrimary || this == ButtonType.critical || isNeutral) {
return colorScheme.fillFaint;
}
return null;
}
Color defaultBorderColor(EnteColorScheme colorScheme) {
if (this == ButtonType.tertiaryCritical) {
Color defaultBorderColor(EnteColorScheme colorScheme, ButtonSize buttonSize) {
if (this == ButtonType.tertiaryCritical && buttonSize == ButtonSize.large) {
return colorScheme.warning700;
}
return Colors.transparent;
}
//Returning null to fallback to default color
Color? pressedBorderColor(
{required EnteColorScheme colorScheme,
required EnteColorScheme inverseColorScheme}) {
Color? pressedBorderColor({
required EnteColorScheme colorScheme,
required EnteColorScheme inverseColorScheme,
required ButtonSize buttonSize,
}) {
if (isPrimary) {
return colorScheme.strokeMuted;
}
if (isSecondary || this == ButtonType.tertiaryCritical) {
return colorScheme.strokeBase;
if (buttonSize == ButtonSize.small && this == ButtonType.tertiaryCritical) {
return null;
}
if (isCritical) {
if (isSecondary || isCritical) {
return colorScheme.strokeBase;
}
if (isNeutral) {
@ -91,8 +104,11 @@ enum ButtonType {
}
//Returning null to fallback to default color
Color? disabledBorderColor(EnteColorScheme colorScheme) {
if (this == ButtonType.tertiaryCritical) {
Color? disabledBorderColor(
EnteColorScheme colorScheme,
ButtonSize buttonSize,
) {
if (this == ButtonType.tertiaryCritical && buttonSize == ButtonSize.large) {
return colorScheme.strokeMuted;
}
return null;
@ -105,9 +121,6 @@ enum ButtonType {
if (isPrimary || this == ButtonType.critical) {
return strokeBaseDark;
}
if (isSecondary) {
return colorScheme.strokeBase;
}
if (this == ButtonType.neutral || this == ButtonType.trailingIcon) {
return inverseColorScheme.strokeBase;
}
@ -119,16 +132,19 @@ enum ButtonType {
}
//Returning null to fallback to default color
Color? pressedIconColor(EnteColorScheme colorScheme) {
if (this == ButtonType.tertiaryCritical) {
Color? pressedIconColor(EnteColorScheme colorScheme, ButtonSize buttonSize) {
if (this == ButtonType.tertiaryCritical && buttonSize == ButtonSize.large) {
return colorScheme.strokeBase;
}
return null;
}
//Returning null to fallback to default color
Color? disabledIconColor(EnteColorScheme colorScheme) {
if (isPrimary || isSecondary || isNeutral) {
Color? disabledIconColor(EnteColorScheme colorScheme, ButtonSize buttonSize) {
if (isPrimary ||
isSecondary ||
isNeutral ||
buttonSize == ButtonSize.small) {
return colorScheme.strokeMuted;
}
if (isCritical) {
@ -144,9 +160,6 @@ enum ButtonType {
if (isPrimary || this == ButtonType.critical) {
return textTheme.bodyBold.copyWith(color: textBaseDark);
}
if (isSecondary) {
return textTheme.bodyBold;
}
if (this == ButtonType.neutral || this == ButtonType.trailingIcon) {
return inverseTextTheme.bodyBold;
}
@ -161,8 +174,9 @@ enum ButtonType {
TextStyle? pressedLabelStyle(
EnteTextTheme textTheme,
EnteColorScheme colorScheme,
ButtonSize buttonSize,
) {
if (this == ButtonType.tertiaryCritical) {
if (this == ButtonType.tertiaryCritical && buttonSize == ButtonSize.large) {
return textTheme.bodyBold.copyWith(color: colorScheme.strokeBase);
}
return null;
@ -173,10 +187,7 @@ enum ButtonType {
EnteTextTheme textTheme,
EnteColorScheme colorScheme,
) {
if (isPrimary || isSecondary || isCritical || isNeutral) {
return textTheme.bodyBold.copyWith(color: colorScheme.textFaint);
}
return null;
return textTheme.bodyBold.copyWith(color: colorScheme.textFaint);
}
//Returning null to fallback to default color