From c1010e9c2c6d82bd3f40c246e45cfe8e9b039d7b Mon Sep 17 00:00:00 2001 From: nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> Date: Thu, 26 May 2022 18:05:16 +0100 Subject: Color Utils fixes and more --- .../cc/polyfrost/oneconfig/utils/ColorUtils.java | 70 +++++++++++++++------- 1 file changed, 50 insertions(+), 20 deletions(-) (limited to 'src/main/java/cc/polyfrost/oneconfig/utils') diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/ColorUtils.java b/src/main/java/cc/polyfrost/oneconfig/utils/ColorUtils.java index 0d8ae6d..ee9fe3e 100644 --- a/src/main/java/cc/polyfrost/oneconfig/utils/ColorUtils.java +++ b/src/main/java/cc/polyfrost/oneconfig/utils/ColorUtils.java @@ -8,38 +8,68 @@ import java.awt.*; * A class to help with color manipulation. */ public class ColorUtils { + /** Always returns transparent. */ + public static final int TRANSPARENT = -10; + /**

Primary Color Scheme

Normal: Primary 600,
Hover: Primary 700,
Clicked: Primary 700 (80%) */ + public static final int PRIMARY = 1; + /**

Secondary Color Scheme

Normal: Gray 500,
Hover: Gray 400,
Clicked: Gray 400 (80%) */ + public static final int SECONDARY = 2; + /**

Secondary (Transparent) Color Scheme

Normal: Transparent,
Hover: Gray rgba(229, 229, 229, 77),
Clicked: Gray rgba(229, 229, 229, 51) */ + public static final int SECONDARY_TRANSPARENT = 0; + /**

Tertiary Color Scheme

Normal: Transparent (Text=White 90%),
Hover: Transparent (Text=White 100%),
Clicked: Transparent (Text=White 80%) + *

NOTICE this returns the text colors as it is always transparent.

*/ + public static final int TERTIARY = 3; + /**

Primary Destructive Color Scheme

Normal: Error 700,
Hover: Error 600,
Clicked: Error 600 (80%) */ + public static final int PRIMARY_DESTRUCTIVE = -1; + /**

Secondary Destructive Color Scheme

Normal: Gray 500,
Hover: Error 800,
Clicked: Error 800 (80%) */ + public static final int SECONDARY_DESTRUCTIVE = -2; + /**

Tertiary Destructive Color Scheme

Normal: Transparent (Text=White 90%),
Hover: Transparent (Text=Error 300),
Clicked: Transparent (Text=Error 300 80%) + *

NOTICE this returns the text colors as it is always transparent.

*/ + public static final int TERTIARY_DESTRUCTIVE = -3; + public static int getColor(int currentColor, int colorPalette, boolean hover, boolean click) { float[] color = splitColor(currentColor); + if(colorPalette == TRANSPARENT) { + return OneConfigConfig.TRANSPARENT; + } if (click) { switch (colorPalette) { - case -2: - return new Color(0.9f, 0.9f, 0.9f, 0.2f).getRGB(); - case -1: - return OneConfigConfig.GRAY_500_80; + case PRIMARY_DESTRUCTIVE: + return OneConfigConfig.ERROR_600_80; + case SECONDARY_DESTRUCTIVE: + return OneConfigConfig.ERROR_800_80; + case TERTIARY_DESTRUCTIVE: + return OneConfigConfig.ERROR_300_80; + case TERTIARY: + return OneConfigConfig.WHITE_80; default: - case 2: - case 0: + case SECONDARY: return OneConfigConfig.GRAY_400_80; - case 1: - return OneConfigConfig.PRIMARY_600_80; + case SECONDARY_TRANSPARENT: + return new Color(0.9f, 0.9f, 0.9f, 0.2f).getRGB(); + case PRIMARY: + return OneConfigConfig.PRIMARY_700_80; } } switch (colorPalette) { - case -2: - return getColorComponents(color, splitColor(OneConfigConfig.TRANSPARENT), new float[]{0.9f, 0.9f, 0.9f, 0.3f}, hover, 50f); - case -1: - return getColorComponents(color, splitColor(OneConfigConfig.TRANSPARENT), splitColor(OneConfigConfig.GRAY_500), hover, 50f); + case SECONDARY_TRANSPARENT: // Formally -2 + return getColorComponents(color, new float[]{0f,0f,0f,0f}, new float[]{0.9f, 0.9f, 0.9f, 0.3f}, hover, 50f); + case PRIMARY: // Formally 1 + return hover ? OneConfigConfig.PRIMARY_700 : OneConfigConfig.PRIMARY_600; + //return getColorComponents(color, splitColor(OneConfigConfig.PRIMARY_600), splitColor(OneConfigConfig.PRIMARY_700), hover, 100f); default: - case 0: - return getColorComponents(color, splitColor(OneConfigConfig.GRAY_600), splitColor(OneConfigConfig.GRAY_300), hover, 50f); - case 1: - return getColorComponents(color, splitColor(OneConfigConfig.PRIMARY_600), splitColor(OneConfigConfig.PRIMARY_500), hover, 150f); - case 2: - return getColorComponents(color, splitColor(OneConfigConfig.GRAY_500), splitColor(OneConfigConfig.GRAY_300), hover, 50f); - case 3: - return getColorComponents(color, splitColor(OneConfigConfig.GRAY_500), splitColor(OneConfigConfig.GRAY_300), hover, 150f); + case SECONDARY: // Formally 0 + return getColorComponents(color, splitColor(OneConfigConfig.GRAY_500), splitColor(OneConfigConfig.GRAY_400), hover, 100f); + case TERTIARY: + return getColorComponents(color, splitColor(OneConfigConfig.WHITE_90), splitColor(OneConfigConfig.WHITE), hover, 150f); + case PRIMARY_DESTRUCTIVE: + return getColorComponents(color, splitColor(OneConfigConfig.ERROR_700), splitColor(OneConfigConfig.ERROR_600), hover, 100f); + case SECONDARY_DESTRUCTIVE: + return getColorComponents(color, splitColor(OneConfigConfig.GRAY_500), splitColor(OneConfigConfig.ERROR_800), hover, 100f); + case TERTIARY_DESTRUCTIVE: + return getColorComponents(color, splitColor(OneConfigConfig.WHITE_90), splitColor(OneConfigConfig.ERROR_300), hover, 100f); } } -- cgit