aboutsummaryrefslogtreecommitdiff
path: root/colors.lua
diff options
context:
space:
mode:
Diffstat (limited to 'colors.lua')
-rw-r--r--colors.lua193
1 files changed, 193 insertions, 0 deletions
diff --git a/colors.lua b/colors.lua
new file mode 100644
index 0000000..846129c
--- /dev/null
+++ b/colors.lua
@@ -0,0 +1,193 @@
+local dark_text_color = 0xD1CDD5
+local light_text_color = 0x1D1D1D
+
+local dark_or_light = "dark" -- dark / light
+
+function build_color(bg, fg, text, warn, critic, bg_alpha, fg_alpha)
+ return {
+ bg = bg,
+ fg = fg,
+ text = text,
+ warn = warn or 0xFF9000,
+ critic = critic or 0xFF0000,
+ bg_alpha = bg_alpha or 0.2,
+ fg_alpha = fg_alpha or 0.8,
+ }
+end
+
+C = {
+ blue = {
+ dark = build_color(0xA6A6A6, 0x5594FF, dark_text_color),
+ light = build_color(0x252525, 0x151515, light_text_color),
+ },
+ deepblue = {
+ dark = build_color(0xA6A6A6, 0x0000a8, 0x55ffff, nil, nil, 0.1),
+ light = build_color(0x180047, 0x00008B, 0x180047, nil, nil, 0.1),
+ },
+ green = {
+ dark = build_color(0xA6A6A6, 0x00ff00, dark_text_color),
+ light = build_color(0x252525, 0x00ff00, light_text_color),
+ },
+ emerald = {
+ dark = build_color(0xD3FACD, 0x539950, 0xD3FACD, nil, nil, 0.1),
+ light = build_color(0x8bff85, 0x3f753d, 0x1a3019, nil, nil, 0.1),
+ },
+ yellow = {
+ dark = build_color(0xA6A6A6, 0xfafa37, dark_text_color),
+ light = build_color(0x252525, 0xfdff00, light_text_color),
+ },
+ purple = {
+ dark = build_color(0xA6A6A6, 0xbc00bc, dark_text_color),
+ light = build_color(0x252525, 0x800080, light_text_color),
+ },
+ violet = {
+ dark = build_color(0xA6A6A6, 0x7028E5, dark_text_color),
+ light = build_color(0x252525, 0x5329AE, light_text_color),
+ },
+ crimson = {
+ dark = build_color(0xA6A6A6, 0xdc143c, dark_text_color),
+ light = build_color(0x252525, 0xd11339, light_text_color),
+ },
+ orange = {
+ dark = build_color(0xA6A6A6, 0xffa500, dark_text_color, 0xff4f00),
+ light = build_color(0x252525, 0xffa500, light_text_color, 0xff4f00),
+ },
+ maroon = {
+ dark = build_color(0xA6A6A6, 0xae0000, dark_text_color),
+ light = build_color(0x252525, 0x940000, light_text_color),
+ },
+ pink = {
+ dark = build_color(0xffccdd, 0xff3377, 0xffccdd),
+ light = build_color(0xffccdd, 0xff3377, 0xff0055),
+ },
+ cyan = {
+ dark = build_color(0xA6A6A6, 0x48FFE7, dark_text_color),
+ light = build_color(0x252525, 0x00C9AF, light_text_color),
+ },
+ aquamarine = {
+ dark = build_color(0xA6A6A6, 0x76EDC3, dark_text_color),
+ light = build_color(0x252525, 0x64C8A5, light_text_color),
+ },
+ monochrome = {
+ dark = build_color(0x484848, 0xDEDEDE, 0xDEDEDE, 0xFF0000, 0xDEDEDE),
+ light = build_color(0x252525, 0x151515, 0x151515, 0xFF0000, 0x1D1D1D)
+ },
+ gruvbox = {
+ dark = build_color(0x282828, 0xEBDBB2, 0xFBF1C7, 0xFE8019, 0xCC241D),
+ light = build_color(0xFBF1C7, 0x3C3836, 0x282828, 0xD65D0E, 0xCC241D),
+ },
+ contrast = {
+ dark = build_color(0x000000, 0xffffff, 0xffffff, 0xf36910, 0xFF0000, 0.5, 1),
+ light = build_color(0xffffff, 0x000000, 0x000000, 0xf36910, 0xFF0000, 0.3, 1)
+ },
+}
+
+
+
+function choose_random_theme()
+ dark_themes = dark_themes or {}
+ light_themes = dark_themes or {}
+
+ if #dark_themes == 0 and #light_themes == 0 then
+ for _, v in pairs(C) do
+ for kk, vv in pairs(v) do
+ if kk == "dark" then
+ dark_themes[#dark_themes + 1] = vv
+ elseif kk == "light" then
+ light_themes[#dark_themes + 1] = vv
+ end
+ end
+ end
+ end
+
+ if dark_or_light == "dark" then
+ return dark_themes[math.random(#dark_themes)]
+ end
+
+ return light_themes[math.random(#light_themes)]
+end
+
+
+function get_color_table(theme)
+ if type(theme) ~= "string" then
+ io.stderr:write("No theme provided. Defaulting to blue dark")
+ return C.blue.dark
+ end
+
+ theme = string.lower(theme)
+
+ if string.find(theme, "light") then
+ dark_or_light = "light"
+ else
+ dark_or_light = "dark"
+ end
+
+ if theme == "monochrome dark" then
+ return C.monochrome.dark
+ elseif theme == "monochrome light" then
+ return C.monochrome.light
+ elseif theme == "blue dark" then
+ return C.blue.dark
+ elseif theme == "blue light" then
+ return C.blue.light
+ elseif theme == "deepblue dark" then
+ return C.deepblue.dark
+ elseif theme == "deepblue light" then
+ return C.deepblue.light
+ elseif theme == "green dark" then
+ return C.green.dark
+ elseif theme == "green light" then
+ return C.green.light
+ elseif theme == "emerald dark" then
+ return C.emerald.dark
+ elseif theme == "emerald light" then
+ return C.emerald.light
+ elseif theme == "yellow dark" then
+ return C.yellow.dark
+ elseif theme == "yellow light" then
+ return C.yellow.light
+ elseif theme == "purple dark" then
+ return C.purple.dark
+ elseif theme == "purple light" then
+ return C.purple.light
+ elseif theme == "violet dark" then
+ return C.violet.dark
+ elseif theme == "violet light" then
+ return C.violet.light
+ elseif theme == "crimson dark" then
+ return C.crimson.dark
+ elseif theme == "crimson light" then
+ return C.crimson.light
+ elseif theme == "orange dark" then
+ return C.orange.dark
+ elseif theme == "orange light" then
+ return C.orange.light
+ elseif theme == "maroon dark" then
+ return C.maroon.dark
+ elseif theme == "maroon light" then
+ return C.maroon.light
+ elseif theme == "pink dark" then
+ return C.pink.dark
+ elseif theme == "pink light" then
+ return C.pink.light
+ elseif theme == "cyan dark" then
+ return C.cyan.dark
+ elseif theme == "cyan light" then
+ return C.cyan.light
+ elseif theme == "aquamarine dark" then
+ return C.aquamarine.dark
+ elseif theme == "aquamarine light" then
+ return C.aquamarine.light
+ elseif theme == "gruvbox dark" then
+ return C.gruvbox.dark
+ elseif theme == "gruvbox light" then
+ return C.gruvbox.light
+ elseif theme == "contrast dark" then
+ return C.contrast.dark
+ elseif theme == "contrast light" then
+ return C.contrast.light
+ else
+ io.stderr:write("ERROR. the provided theme does not exist. Defaulting to 'blue dark")
+ return C.blue.dark
+ end
+end