diff --git a/loader/resources/blanks/baseCircle_BigAlt_Blue.png b/loader/resources/blanks/baseCircle_BigAlt_Blue.png
index ef69e647..953f7383 100644
Binary files a/loader/resources/blanks/baseCircle_BigAlt_Blue.png and b/loader/resources/blanks/baseCircle_BigAlt_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_BigAlt_Cyan.png b/loader/resources/blanks/baseCircle_BigAlt_Cyan.png
index 40130cba..8f2f1da4 100644
Binary files a/loader/resources/blanks/baseCircle_BigAlt_Cyan.png and b/loader/resources/blanks/baseCircle_BigAlt_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_BigAlt_Gray.png b/loader/resources/blanks/baseCircle_BigAlt_Gray.png
index aa77f001..64c5c240 100644
Binary files a/loader/resources/blanks/baseCircle_BigAlt_Gray.png and b/loader/resources/blanks/baseCircle_BigAlt_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_BigAlt_Green.png b/loader/resources/blanks/baseCircle_BigAlt_Green.png
index d22bc68f..ee3f545d 100644
Binary files a/loader/resources/blanks/baseCircle_BigAlt_Green.png and b/loader/resources/blanks/baseCircle_BigAlt_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_BigAlt_Pink.png b/loader/resources/blanks/baseCircle_BigAlt_Pink.png
index 4891b1f5..d40d434d 100644
Binary files a/loader/resources/blanks/baseCircle_BigAlt_Pink.png and b/loader/resources/blanks/baseCircle_BigAlt_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_Big_Blue.png b/loader/resources/blanks/baseCircle_Big_Blue.png
index 128d1331..8913ab1e 100644
Binary files a/loader/resources/blanks/baseCircle_Big_Blue.png and b/loader/resources/blanks/baseCircle_Big_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_Big_Cyan.png b/loader/resources/blanks/baseCircle_Big_Cyan.png
index 5b6a0bea..834f543e 100644
Binary files a/loader/resources/blanks/baseCircle_Big_Cyan.png and b/loader/resources/blanks/baseCircle_Big_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_Big_Gray.png b/loader/resources/blanks/baseCircle_Big_Gray.png
index 1cc9c125..3bb96f9f 100644
Binary files a/loader/resources/blanks/baseCircle_Big_Gray.png and b/loader/resources/blanks/baseCircle_Big_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_Big_Green.png b/loader/resources/blanks/baseCircle_Big_Green.png
index ec3f451c..74134ffe 100644
Binary files a/loader/resources/blanks/baseCircle_Big_Green.png and b/loader/resources/blanks/baseCircle_Big_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_Big_Pink.png b/loader/resources/blanks/baseCircle_Big_Pink.png
index 889eeee1..e55c4002 100644
Binary files a/loader/resources/blanks/baseCircle_Big_Pink.png and b/loader/resources/blanks/baseCircle_Big_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_Large_Blue.png b/loader/resources/blanks/baseCircle_Large_Blue.png
index 3a42af72..4a9a73eb 100644
Binary files a/loader/resources/blanks/baseCircle_Large_Blue.png and b/loader/resources/blanks/baseCircle_Large_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_Large_Cyan.png b/loader/resources/blanks/baseCircle_Large_Cyan.png
index cea77e2f..902a477a 100644
Binary files a/loader/resources/blanks/baseCircle_Large_Cyan.png and b/loader/resources/blanks/baseCircle_Large_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_Large_Gray.png b/loader/resources/blanks/baseCircle_Large_Gray.png
index 3cecc3ab..62e4cb53 100644
Binary files a/loader/resources/blanks/baseCircle_Large_Gray.png and b/loader/resources/blanks/baseCircle_Large_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_Large_Green.png b/loader/resources/blanks/baseCircle_Large_Green.png
index 6100ff10..4eb4cd73 100644
Binary files a/loader/resources/blanks/baseCircle_Large_Green.png and b/loader/resources/blanks/baseCircle_Large_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_Large_Pink.png b/loader/resources/blanks/baseCircle_Large_Pink.png
index 97b3d246..5793b4c9 100644
Binary files a/loader/resources/blanks/baseCircle_Large_Pink.png and b/loader/resources/blanks/baseCircle_Large_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_MediumAlt_Blue.png b/loader/resources/blanks/baseCircle_MediumAlt_Blue.png
index b5cdf449..372da7ea 100644
Binary files a/loader/resources/blanks/baseCircle_MediumAlt_Blue.png and b/loader/resources/blanks/baseCircle_MediumAlt_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_MediumAlt_Cyan.png b/loader/resources/blanks/baseCircle_MediumAlt_Cyan.png
index daed179f..d78d6a09 100644
Binary files a/loader/resources/blanks/baseCircle_MediumAlt_Cyan.png and b/loader/resources/blanks/baseCircle_MediumAlt_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_MediumAlt_Gray.png b/loader/resources/blanks/baseCircle_MediumAlt_Gray.png
index aa7a993f..43373211 100644
Binary files a/loader/resources/blanks/baseCircle_MediumAlt_Gray.png and b/loader/resources/blanks/baseCircle_MediumAlt_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_MediumAlt_Green.png b/loader/resources/blanks/baseCircle_MediumAlt_Green.png
index d1afa1f0..0b7ec5d9 100644
Binary files a/loader/resources/blanks/baseCircle_MediumAlt_Green.png and b/loader/resources/blanks/baseCircle_MediumAlt_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_MediumAlt_Pink.png b/loader/resources/blanks/baseCircle_MediumAlt_Pink.png
index 9717f081..dc230c6e 100644
Binary files a/loader/resources/blanks/baseCircle_MediumAlt_Pink.png and b/loader/resources/blanks/baseCircle_MediumAlt_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_Medium_Blue.png b/loader/resources/blanks/baseCircle_Medium_Blue.png
index 964b312d..215ae638 100644
Binary files a/loader/resources/blanks/baseCircle_Medium_Blue.png and b/loader/resources/blanks/baseCircle_Medium_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_Medium_Cyan.png b/loader/resources/blanks/baseCircle_Medium_Cyan.png
index 01589f7a..4836f7b6 100644
Binary files a/loader/resources/blanks/baseCircle_Medium_Cyan.png and b/loader/resources/blanks/baseCircle_Medium_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_Medium_Gray.png b/loader/resources/blanks/baseCircle_Medium_Gray.png
index 663f92ce..30b1e9b0 100644
Binary files a/loader/resources/blanks/baseCircle_Medium_Gray.png and b/loader/resources/blanks/baseCircle_Medium_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_Medium_Green.png b/loader/resources/blanks/baseCircle_Medium_Green.png
index ecf70e53..98d73ccf 100644
Binary files a/loader/resources/blanks/baseCircle_Medium_Green.png and b/loader/resources/blanks/baseCircle_Medium_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_Medium_Pink.png b/loader/resources/blanks/baseCircle_Medium_Pink.png
index 8ca18621..4306bde4 100644
Binary files a/loader/resources/blanks/baseCircle_Medium_Pink.png and b/loader/resources/blanks/baseCircle_Medium_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_SmallAlt_Blue.png b/loader/resources/blanks/baseCircle_SmallAlt_Blue.png
index a72d42c8..350c22fe 100644
Binary files a/loader/resources/blanks/baseCircle_SmallAlt_Blue.png and b/loader/resources/blanks/baseCircle_SmallAlt_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_SmallAlt_Cyan.png b/loader/resources/blanks/baseCircle_SmallAlt_Cyan.png
index 1e1583bd..c2313642 100644
Binary files a/loader/resources/blanks/baseCircle_SmallAlt_Cyan.png and b/loader/resources/blanks/baseCircle_SmallAlt_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_SmallAlt_Gray.png b/loader/resources/blanks/baseCircle_SmallAlt_Gray.png
index 5319559a..4855b3e7 100644
Binary files a/loader/resources/blanks/baseCircle_SmallAlt_Gray.png and b/loader/resources/blanks/baseCircle_SmallAlt_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_SmallAlt_Green.png b/loader/resources/blanks/baseCircle_SmallAlt_Green.png
index 811f2fc3..44d44c68 100644
Binary files a/loader/resources/blanks/baseCircle_SmallAlt_Green.png and b/loader/resources/blanks/baseCircle_SmallAlt_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_SmallAlt_Pink.png b/loader/resources/blanks/baseCircle_SmallAlt_Pink.png
index 41c6334b..ba13ae83 100644
Binary files a/loader/resources/blanks/baseCircle_SmallAlt_Pink.png and b/loader/resources/blanks/baseCircle_SmallAlt_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_Small_Blue.png b/loader/resources/blanks/baseCircle_Small_Blue.png
index 49eed3bc..2709e8f5 100644
Binary files a/loader/resources/blanks/baseCircle_Small_Blue.png and b/loader/resources/blanks/baseCircle_Small_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_Small_Cyan.png b/loader/resources/blanks/baseCircle_Small_Cyan.png
index 3f539bc0..681110a0 100644
Binary files a/loader/resources/blanks/baseCircle_Small_Cyan.png and b/loader/resources/blanks/baseCircle_Small_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_Small_Gray.png b/loader/resources/blanks/baseCircle_Small_Gray.png
index be7b3608..529350f9 100644
Binary files a/loader/resources/blanks/baseCircle_Small_Gray.png and b/loader/resources/blanks/baseCircle_Small_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_Small_Green.png b/loader/resources/blanks/baseCircle_Small_Green.png
index 34830d5d..9f482e12 100644
Binary files a/loader/resources/blanks/baseCircle_Small_Green.png and b/loader/resources/blanks/baseCircle_Small_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_Small_Pink.png b/loader/resources/blanks/baseCircle_Small_Pink.png
index ecbf9d99..94d5e059 100644
Binary files a/loader/resources/blanks/baseCircle_Small_Pink.png and b/loader/resources/blanks/baseCircle_Small_Pink.png differ
diff --git a/loader/resources/blanks/baseCircle_Tiny_Blue.png b/loader/resources/blanks/baseCircle_Tiny_Blue.png
index f6f5e734..d021baf6 100644
Binary files a/loader/resources/blanks/baseCircle_Tiny_Blue.png and b/loader/resources/blanks/baseCircle_Tiny_Blue.png differ
diff --git a/loader/resources/blanks/baseCircle_Tiny_Cyan.png b/loader/resources/blanks/baseCircle_Tiny_Cyan.png
index ea69dd86..7fc8e5bd 100644
Binary files a/loader/resources/blanks/baseCircle_Tiny_Cyan.png and b/loader/resources/blanks/baseCircle_Tiny_Cyan.png differ
diff --git a/loader/resources/blanks/baseCircle_Tiny_Gray.png b/loader/resources/blanks/baseCircle_Tiny_Gray.png
index 4d3d9d53..ed3009f5 100644
Binary files a/loader/resources/blanks/baseCircle_Tiny_Gray.png and b/loader/resources/blanks/baseCircle_Tiny_Gray.png differ
diff --git a/loader/resources/blanks/baseCircle_Tiny_Green.png b/loader/resources/blanks/baseCircle_Tiny_Green.png
index 8be15fca..0a8705b9 100644
Binary files a/loader/resources/blanks/baseCircle_Tiny_Green.png and b/loader/resources/blanks/baseCircle_Tiny_Green.png differ
diff --git a/loader/resources/blanks/baseCircle_Tiny_Pink.png b/loader/resources/blanks/baseCircle_Tiny_Pink.png
index afa3f94a..97746afd 100644
Binary files a/loader/resources/blanks/baseCircle_Tiny_Pink.png and b/loader/resources/blanks/baseCircle_Tiny_Pink.png differ
diff --git a/loader/resources/blanks/svgs/baseCircle_Big.svg b/loader/resources/blanks/svgs/baseCircle_Big.svg
new file mode 100644
index 00000000..9081cb98
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_Big.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_BigAlt.svg b/loader/resources/blanks/svgs/baseCircle_BigAlt.svg
new file mode 100644
index 00000000..c797d7ce
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_BigAlt.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_Large.svg b/loader/resources/blanks/svgs/baseCircle_Large.svg
new file mode 100644
index 00000000..d99d20ce
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_Large.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_Medium.svg b/loader/resources/blanks/svgs/baseCircle_Medium.svg
new file mode 100644
index 00000000..d97126a3
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_Medium.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_MediumAlt.svg b/loader/resources/blanks/svgs/baseCircle_MediumAlt.svg
new file mode 100644
index 00000000..704526f8
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_MediumAlt.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_Small.svg b/loader/resources/blanks/svgs/baseCircle_Small.svg
new file mode 100644
index 00000000..9a945e53
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_Small.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_SmallAlt.svg b/loader/resources/blanks/svgs/baseCircle_SmallAlt.svg
new file mode 100644
index 00000000..55702ba1
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_SmallAlt.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/baseCircle_Tiny.svg b/loader/resources/blanks/svgs/baseCircle_Tiny.svg
new file mode 100644
index 00000000..23950ef4
--- /dev/null
+++ b/loader/resources/blanks/svgs/baseCircle_Tiny.svg
@@ -0,0 +1,27 @@
+
diff --git a/loader/resources/blanks/svgs/gen.py b/loader/resources/blanks/svgs/gen.py
new file mode 100644
index 00000000..c67f6908
--- /dev/null
+++ b/loader/resources/blanks/svgs/gen.py
@@ -0,0 +1,42 @@
+import subprocess
+
+# you must run this in the same directory as the script!
+# and also you must have rsvg-convert
+# on ubuntu you can get this with `apt install librsvg2-bin`
+
+sizes = [
+ "Large",
+ "Big",
+ "BigAlt",
+ "Medium",
+ "MediumAlt",
+ "Small",
+ "SmallAlt",
+ "Tiny",
+]
+
+# the green gradient colors we are replacing in the base svgs
+color_from = ["#D6FF5A", "#66CC11", "#90FF44", "#449906"]
+
+# each pair of colors represents a gradient,
+# first pair is for the top part of the button,
+# second pair is for the bottom.
+colors = {
+ "Green": ["#D6FF5A", "#66CC11", "#90FF44", "#449906"],
+ "Pink": ["#FACCFC", "#FF71FF", "#FBB1FF", "#FB58FF"],
+ "Cyan": ["#58FDFA", "#13D5EA", "#44F9F6", "#0B9FBE"],
+ "Blue": ["#1AF1F8", "#0AB4FF", "#23DCFA", "#0077FA"],
+ "Gray": ["#DEDEE0", "#979997", "#CACCCA", "#747472"],
+ # "DarkPurple": ["#41384b", "#2f2937", "#393142", "#221e28"],
+}
+
+for size in sizes:
+ with open(f"baseCircle_{size}.svg", "r") as file:
+ svg_base = file.read()
+ for name, cols in colors.items():
+ svg = svg_base
+ out = f"../baseCircle_{size}_{name.title()}.png"
+ print(f"Generating {out}")
+ for color_orig, color_to in zip(color_from, cols):
+ svg = svg.replace(color_orig, color_to)
+ subprocess.run(["rsvg-convert", "-o", out], input=svg.encode())