summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Color.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/Color.cs b/Color.cs
new file mode 100644
index 0000000..583327e
--- /dev/null
+++ b/Color.cs
@@ -0,0 +1,25 @@
+namespace HyperBooru.Client;
+
+public record Color {
+ public static Color AccentPrimary => new Color("accent-pri");
+ public static Color Background => new Color("bg");
+ public static Color ButtonPrimary => new Color("button-pri");
+ public static Color ButtonSecondary => new Color("button-sec");
+ public static Color ButtonWarning => new Color("button-warning");
+ public static Color DialogBackground => new Color("dialog-bg");
+ public static Color ErrorPrimary => new Color("error-pri");
+ public static Color SwitchBackground => new Color("switch-bg");
+ public static Color SwitchForeground => new Color("switch-fg");
+
+ public string CssString { get; private init; }
+
+ public Color(int r, int g, int b) {
+ if(r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255)
+ throw new ArgumentOutOfRangeException();
+
+ CssString = $"rgba({r}, {g}, {b}, 1)";
+ }
+
+ private Color(string varName) =>
+ CssString = $"var(--col-{varName})";
+}