aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md37
-rw-r--r--colors/colors.sh29
-rwxr-xr-xcolors/foot.sh27
3 files changed, 93 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a4d3952
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+# Starlight
+Starlight is an ansi color theme focused on usability.
+
+It was made after I made the discovery that I have a color perception deficiency: I have trouble differentiating between hues of blue (a greater one than the average person, making it impossible for me to read typical default blue text on black backgrounds).
+I also have a mild deficiency along the same lines for red, but not nearly as bad.
+I set out to make a high contrast theme that would work for me (a non-normative survey helped discover that some others have no issues with this content, while a few others do still struggle, but due to not struggling as much as I do, they simply live with it).
+This repository is me sharing it.
+
+You can find the exact rgb data in `colors/colors.sh`.
+Other files inside of `colors/*.sh` are generators for various applications I use.
+The goal is for me to only need to modify `colors/colors.sh` and the explanation/implementation section whenever I make adjustments.
+
+## Screenshots
+
+## Goals
+* All base colors (black, red, green, yellow, blue, magenta, cyan, white) should be easily uniquely identifiable.
+* Bright variants should be identifiable side by side, but do not need to be uniquely identifiable.
+* Text in any color (except black) should be legible on the black, even when not bold.
+
+## Implementation
+Non black/white colors are picked mathematically using a six-tone model, then tweaked individually by HSL.
+On the baseline, the hue used to generate the six tones is 180, the saturation 80-100 (regular/bright) and lightness +/-5% (45-55, regular/bright).
+
+* Red is tweaked away from blue, to a hue of 195.
+* Green is too vibrant, so the regular saturation is pushed down to 70.
+* Yellow is not as easily differentiable, so the bright version is tweaked towards green (185).
+* Blue is illegible, so it's tweaked towards green, to 165.
+* Regular blue is also bumped up to 90 saturation, to compensate for the extra effect lightness has.
+* Magenta is tweaked away from blue, to 195, lower saturation (70-90) and higher in lightness to compensate (0-10).
+* Cyan is tweaked similar to blue hue-wise (to 165), but is otherwise normal.
+
+Black and white are then hand-picked just to be mostly pleasant on the eyes.
+We use bright black and bright white for background/foreground.
+Both black and white are defined by hsl L % (with H and S both being 0).
+
+Black: 5% and 14%.
+White: 90% and 100%.
diff --git a/colors/colors.sh b/colors/colors.sh
new file mode 100644
index 0000000..5267f87
--- /dev/null
+++ b/colors/colors.sh
@@ -0,0 +1,29 @@
+theme=starlight
+
+# define all of the colors in hex (rgb)
+black=0D0D0D
+brblack=242424
+
+red=CF1745
+brred=FF1A53
+
+green=73C322
+brgreen=8CFF1A
+
+yellow=CFCF17
+bryellow=ECFF1A
+
+blue=0BA6DA
+brblue=1AC6FF
+
+magenta=D926AC
+brmagenta=F53DC7
+
+cyan=17CFA1
+brcyan=1AFFC6
+
+white=E6E6E6
+brwhite=FFFFFF
+
+background=$brblack
+foreground=$brwhite
diff --git a/colors/foot.sh b/colors/foot.sh
new file mode 100755
index 0000000..6ab66af
--- /dev/null
+++ b/colors/foot.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+. ./colors.sh
+
+cat <<HEREDOC
+# $theme
+[colors]
+foreground = $foreground
+background = $background
+
+regular0 = $black
+regular1 = $red
+regular2 = $green
+regular3 = $yellow
+regular4 = $blue
+regular5 = $magenta
+regular6 = $cyan
+regular7 = $white
+
+bright0 = $brblack
+bright1 = $brred
+bright2 = $brgreen
+bright3 = $bryellow
+bright4 = $brblue
+bright5 = $brmagenta
+bright6 = $brcyan
+bright7 = $brwhite
+HEREDOC