├── .gitignore
├── LICENSE.txt
├── OhMyREPL.jl
├── Penumbra.jl
├── Penumbra_Dark++.jl
└── Penumbra_Dark+.jl
├── README.md
├── examples
├── penumbra_example_dark.png
├── penumbra_example_dark_contrast++.png
├── penumbra_example_dark_contrast+.png
├── penumbra_example_dark_header.png
├── penumbra_example_dark_small.png
├── penumbra_example_dark_smaller.png
├── penumbra_example_header.png
├── penumbra_example_light.png
├── penumbra_example_light_header.png
├── penumbra_example_light_small.png
└── penumbra_example_light_smaller.png
├── iTerm2
├── penumbra_dark++.itermcolors
├── penumbra_dark+.itermcolors
├── penumbra_dark.itermcolors
└── penumbra_light.itermcolors
├── logo
├── penumbra_6.png
├── penumbra_6.svg
├── penumbra_7.png
└── penumbra_7.svg
├── penumbra.tsv
└── swatches
├── penumbra_swatch_base_balanced.png
├── penumbra_swatch_base_balanced.svg
├── penumbra_swatch_base_contrast++.png
├── penumbra_swatch_base_contrast++.svg
├── penumbra_swatch_base_contrast+.png
├── penumbra_swatch_base_contrast+.svg
├── penumbra_swatch_dark_balanced.png
├── penumbra_swatch_dark_balanced.svg
├── penumbra_swatch_dark_contrast++.png
├── penumbra_swatch_dark_contrast++.svg
├── penumbra_swatch_dark_contrast+.png
├── penumbra_swatch_dark_contrast+.svg
├── penumbra_swatch_light_balanced.png
└── penumbra_swatch_light_balanced.svg
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | .DS_Store
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2021 Neal McKee
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/OhMyREPL.jl/Penumbra.jl:
--------------------------------------------------------------------------------
1 | #=
2 | execute
3 | ] add OhMyREPL
4 | ] add Crayons
5 | in your REPL, then copy the code below into your startup.jl file at ~\.julia\config\
6 | =#
7 |
8 | try
9 | @eval using OhMyREPL
10 | catch e
11 | @warn "error while importing OhMyREPL" e
12 | end
13 |
14 | import OhMyREPL: Passes.SyntaxHighlighter
15 | using Crayons
16 |
17 | penumbra = SyntaxHighlighter.ColorScheme()
18 | SyntaxHighlighter.symbol!(penumbra, crayon"#00A0BE")
19 | SyntaxHighlighter.comment!(penumbra, crayon"#636363")
20 | SyntaxHighlighter.string!(penumbra, crayon"#46A473")
21 | SyntaxHighlighter.call!(penumbra, crayon"#7E87D6")
22 | SyntaxHighlighter.op!(penumbra, crayon"#CB7459")
23 | SyntaxHighlighter.keyword!(penumbra, crayon"#BD72A8")
24 | SyntaxHighlighter.function_def!(penumbra, crayon"#7E87D6")
25 | SyntaxHighlighter.error!(penumbra, crayon"#CB7459")
26 | SyntaxHighlighter.argdef!(penumbra, crayon"#00A0BE")
27 | SyntaxHighlighter.macro!(penumbra, crayon"#7E87D6")
28 | SyntaxHighlighter.number!(penumbra, crayon"#A38F2D")
29 | SyntaxHighlighter.text!(penumbra, crayon"#8F8F8F")
30 | SyntaxHighlighter.add!("Penumbra", penumbra)
31 |
32 | colorscheme!("Penumbra")
33 |
--------------------------------------------------------------------------------
/OhMyREPL.jl/Penumbra_Dark++.jl:
--------------------------------------------------------------------------------
1 | #=
2 | execute
3 | ] add OhMyREPL
4 | ] add Crayons
5 | in your REPL, then copy the code below into your startup.jl file at ~\.julia\config\
6 | =#
7 |
8 | try
9 | @eval using OhMyREPL
10 | catch e
11 | @warn "error while importing OhMyREPL" e
12 | end
13 |
14 | import OhMyREPL: Passes.SyntaxHighlighter
15 | using Crayons
16 |
17 | penumbra_darkest = SyntaxHighlighter.ColorScheme()
18 | SyntaxHighlighter.symbol!(penumbra_darkest, crayon"#1AC2E1")
19 | SyntaxHighlighter.comment!(penumbra_darkest, crayon"#636363")
20 | SyntaxHighlighter.string!(penumbra_darkest, crayon"#61C68A")
21 | SyntaxHighlighter.call!(penumbra_darkest, crayon"#97A6FF")
22 | SyntaxHighlighter.op!(penumbra_darkest, crayon"#F48E74")
23 | SyntaxHighlighter.keyword!(penumbra_darkest, crayon"#E18DCE")
24 | SyntaxHighlighter.function_def!(penumbra_darkest, crayon"#97A6FF")
25 | SyntaxHighlighter.error!(penumbra_darkest, crayon"#F48E74")
26 | SyntaxHighlighter.argdef!(penumbra_darkest, crayon"#1AC2E1")
27 | SyntaxHighlighter.macro!(penumbra_darkest, crayon"#97A6FF")
28 | SyntaxHighlighter.number!(penumbra_darkest, crayon"#C7AD40")
29 | SyntaxHighlighter.text!(penumbra_darkest, crayon"#AEAEAE")
30 | SyntaxHighlighter.add!("Penumbra Dark Contrast+", penumbra_darkest)
31 |
32 | colorscheme!("Penumbra Dark Contrast+")
33 |
--------------------------------------------------------------------------------
/OhMyREPL.jl/Penumbra_Dark+.jl:
--------------------------------------------------------------------------------
1 | #=
2 | execute
3 | ] add OhMyREPL
4 | ] add Crayons
5 | in your REPL, then copy the code below into your startup.jl file at ~\.julia\config\
6 | =#
7 |
8 | try
9 | @eval using OhMyREPL
10 | catch e
11 | @warn "error while importing OhMyREPL" e
12 | end
13 |
14 | import OhMyREPL: Passes.SyntaxHighlighter
15 | using Crayons
16 |
17 | penumbra_darker = SyntaxHighlighter.ColorScheme()
18 | SyntaxHighlighter.symbol!(penumbra_darker, crayon"#00B0D2")
19 | SyntaxHighlighter.comment!(penumbra_darker, crayon"#636363")
20 | SyntaxHighlighter.string!(penumbra_darker, crayon"#4EB67F")
21 | SyntaxHighlighter.call!(penumbra_darker, crayon"#8C96EC")
22 | SyntaxHighlighter.op!(penumbra_darker, crayon"#E18163")
23 | SyntaxHighlighter.keyword!(penumbra_darker, crayon"#D07EBA")
24 | SyntaxHighlighter.function_def!(penumbra_darker, crayon"#8C96EC")
25 | SyntaxHighlighter.error!(penumbra_darker, crayon"#E18163")
26 | SyntaxHighlighter.argdef!(penumbra_darker, crayon"#00B0D2")
27 | SyntaxHighlighter.macro!(penumbra_darker, crayon"#8C96EC")
28 | SyntaxHighlighter.number!(penumbra_darker, crayon"#B49E33")
29 | SyntaxHighlighter.text!(penumbra_darker, crayon"#9E9E9E")
30 | SyntaxHighlighter.add!("Penumbra Dark Contrast+", penumbra_darker)
31 |
32 | colorscheme!("Penumbra Dark Contrast+")
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 
6 |
7 | # Penumbra
8 |
9 | Penumbra is a mathematically balanced colour scheme constructed in a perceptually uniform colour space with base colours inspired by the shades of colour occurring in nature due to the light of the sun and the sky. It cleanly separates the perceptual properties of colours while optimally utilizing the available colour space of typical displays.
10 |
11 | The nine base colours are (almost fully, see below) symmetric and used to build the main light and dark theme, drawing from differently sized accent colour palettes as necessary. Additionally, there are two variants of the dark theme with enhanced contrast, ideal for anyone with mild to moderate visual impairments. Due to the constraints of the design principles, they are even particularly *unsuitable* for people with colour vision deficiency.
12 |
13 | The accent colour palettes also lend themselves to encoding quantitative information in data visualizations.
14 |
15 | 
16 | 
17 | 
18 |
19 | [penumbra.tsv](penumbra.tsv) contains all colours given below as `rgb_hex`, `r` `g` `b` and `h` `s` `l` in the sRGB colour space, as well as their `oklab_luminance`, indexed by `set`, which is either of `balanced`, `contrast+` and `contrast++`, and `palette`, which is either of `base`, `six`, `seven` and `eight`.
20 |
21 | ## Features
22 |
23 | The goal of this colour scheme is to cleanly separate the use of each of the three perceptual properties of colour — luminance, chroma and hue — and optimally utilize the typically available colour space to encode information with each of them. Function is put before aesthetics, but the base colours inspired by nature and low but sufficient contrast attempt to make the overall scheme pleasing to the eye.
24 |
25 | ### 1. Base Colours Inspired By Nature
26 |
27 | The base colours are derived from the CIE D series of standard illuminants that are modeled after natural daylight (and also used to calibrate the white point of almost all consumer displays), ranging from the evening sun through neutrally white summer daylight to shade and overcast skies. Dark colours appearing like shade and light colours like paper illuminated by sunlight creates an overall pleasing aesthetic that still fades into the background as that’s what you are used to when going outside.
28 |
29 | ### 2. Just Enough Contrast
30 |
31 | Designed to exactly meet the minimum contrast level for legibility on electronic visual displays specified in ISO-9241-3. While legibility is important to reduce eye strain, for many people, too much contrast is also subjectively contributing to it. Enhanced contrast versions -- for anyone with mild or moderate visual impairments respectively -- exceed the minimum contrast recommended by the W3C.
32 |
33 | ### 3. Optimal Hue Differentiability
34 |
35 | By using the perceptually uniform colour space [Oklab](https://bottosson.github.io/posts/oklab), I was able to achieve perceptually uniform hue differences between each of the accent colours, ensuring maximum differentiability between highlighted words. Constant chroma ensures none of them stand out from or recede into the page more than others.
36 |
37 | ### 4. Fluidly Readable Code
38 |
39 | Because the text and accent colours have identical luminance, it’s easier to read code like a continuous text and follow logical syntax while maintaining the ability to scan it for highlighted words with higher chroma.
40 |
41 | ### 5. Easily Nameable Colours
42 |
43 | Within the constraints described above, the colour hues are optimized to produce colours as close as possible to intuitively named colours as found in the [xkcd Color Survey](https://blog.xkcd.com/2010/05/03/color-survey-results/). This makes communicating about the colours just that tiny bit easier and quicker.
44 |
45 | ## Examples
46 |
47 | ### Dark
48 |
49 | 
50 |
51 | ### Light
52 |
53 | 
54 |
55 | ### Dark Contrast+
56 |
57 | 
58 |
59 | ### Dark Contrast++
60 |
61 | 
62 |
63 | ## Available For / Installation
64 |
65 | ### Editors and IDEs
66 |
67 | * **VS Code** available from the [extension marketplace](https://marketplace.visualstudio.com/items?itemName=PenumbraTheme.penumbra), [Open VSX](https://open-vsx.org/extension/PenumbraTheme/penumbra) or its own [repository](https://github.com/nealmckee/penumbra_vscode)
68 | * **Vim** Currently in early draft phase, please help out by testing it [here](https://github.com/nealmckee/penumbra/issues/6)
69 |
70 | ### Terminal Emulators
71 |
72 | * **iTerm2** import itermcolour files from this repository in the preferences pane
73 |
74 | ### Other
75 |
76 | * **JuliaREPL with OhMyREPL** add the Packages OhMyREPL.jl and Crayons.jl to your (base) environment and copy the code from one of the files (corresponding to the desired contrast level) into your startup.jl file
77 | * **R Plotting** install from its own [repository](https://github.com/hughjonesd/penumbra) with `remotes::install_github("hughjonesd/penumbra")`
78 |
79 | ## Intended Usage
80 |
81 | The recommended font is `Fira Code`.
82 |
83 | ### Base Colours
84 |
85 | #### For a dark theme
86 |
87 | * **Sun+** “white”, text in highlighted sections, emphasized borders
88 | * **Sun** selections, light borders, strongly emphasized content
89 | * **Sun-** optional
90 | * **Sky+** emphasized content and emphasized UI text
91 | * **Sky** foreground, code, main content colour, text both in editors and UI elements
92 | * **Sky-** comments, de-emphasized content
93 | * **Shade+** foreground UI elements, rulers, indentation guides and similar
94 | * **Shade** main background colour
95 | * **Shade-** “black”, de-emphasized/receded background elements, selections, dark UI elements
96 |
97 | #### For a light theme
98 |
99 | * **Shade-** “white”, text in highlighted sections, emphasized borders
100 | * **Shade** selections, light borders, strongly emphasized content
101 | * **Shade+** optional
102 | * **Sky-** emphasized content and emphasized UI text
103 | * **Sky** foreground, code, main content colour, text both in editors and UI elements
104 | * **Sky+** comments, de-emphasized content
105 | * **Sun-** foreground UI elements, rulers, indentation guides and similar
106 | * **Sun** main background colour
107 | * **Sun+** “black”, de-emphasized/receded background elements, selections, dark UI elements
108 |
109 | When additional in-between shades are desired, it’s recommended to use transparency to blend other appropriate base colours with the background colour.
110 |
111 | See the VS Code theme for an example of canonical usage.
112 |
113 | ### Accent Colour Palettes
114 |
115 | Used for syntax highlighting and wherever colour is required in the UI. If avoidable, do not use additional colours in the UI that aren’t required for content highlighting. Usually, context is enough to not confuse their uses -- each additional colour just reduces differentiability.
116 |
117 | **Choose one palette (as large as necessary, as small as possible) and never mix and match!** Otherwise, the advantages of hue optimization are lost.
118 |
119 | If palettes smaller than 6 are desired, choose subsets as following:
120 |
121 | * **5** omit one colour from a six colour palette (**not recommended**)
122 | * **4** every other colour from an eight colour palette (two possible sets)
123 | * **3** every other colour from a six colour palette (two possible sets)
124 | * **2** every third colour from a six colour palette (three possible sets)
125 | * **1** any one colour from a six colour palette (or any palette)
126 |
127 | #### Data Visualizations
128 |
129 | For qualitative data, choose a palette as described above (balanced for optimum contrast, contrast++ for optimum chroma) for the number of categories in the data. Additionally, if there is adjacency like in a bar chart or pie chart, choose adjacent colours so that the hue difference is maximized. For example for six categories: the colours of a palette of half the size (3), then the other three beginning with the one that is not adjacent to the last (and ending with the one that is not adjacent to the first if adjacency is circular).
130 |
131 | This is all meant for your own exploratory visualizations, for publications it is better to use a palette that's safe for people with colour vision deficiency. Penumbra was also specifically designed for electronic displays and not made to be print safe.
132 |
133 | ## Construction
134 |
135 | I implemented transformations from the XYZ colour space to [Oklab](https://bottosson.github.io/posts/oklab/) and from Oklab to sRGB in Julia (and LCH based on Oklab respectively). Combined with Colors.jl, this allowed conversion from any supported colour space to Oklab.
136 |
137 | ### Base Colors
138 |
139 | xy values for a range of correlated colour temperatures (CCT, will be added to the main tsv file in the future) were obtained from an online conversion tool.
140 |
141 | For each luminance value, the largest circle of constant luminance and constant chroma colours with varying hues around D65 neutral grey in OKlab still within the sRGB Gamut was approximated numerically (small hue steps instead of a continuous circle, increasing chroma in small increments until reaching the edge). This gave a roughly linear relationship for maximum chroma from 0.0 at L=0.0 to a maximum at approximately L=0.75 back to 0.0 at L=1.0.
142 |
143 | Therefore, in order to be able to maximize chroma and with that the distances between the accent colours, the central base colour should be chosen to have as high luminance as possible while still maintaining sufficient contrast (3:1 in accordance with ISO-9241-3) when used for text on the light background colour.
144 |
145 | xyY luminance (Y) was tuned by hand (to sufficient precision to exceed integer differences in 8bit sRGB values) for each base colour to achieve symmetrical luminance levels in Oklab. The second-lightest colour was chosen to be roughly the lightest colour with CCT 5000K within the sRGB gamut, again tuned by hand. Every other colour was arranged symmetrically with few decimal luminance values to obtain the intended contrast for its usage.
146 |
147 | This meant that the lightest two colours then would be outside the sRGB gamut, so they were chosen with the correct Oklab hue for the CCT but reduced chroma to fit within sRGB gamut while maintaining approximately the same perceptual differences between neighbors as in the dark colours (in the end slightly larger).
148 |
149 | For the higher contrast palettes, some of the medium (including the central colour) and dark colours were moved to multiples of previously used luminance intervals, with matching new CCTs for the dark ones. The exact choices of which luminance differences to maintain and which to increase were dependent on intended usage. This made standard text to background relationships compliant (or very close to it) with W3C guidelines for contrast (AA for contrast+, AAA for contrast+++) without further effort.
150 |
151 | ### Accent Colour Palettes
152 |
153 | The accent colours were obtained by performing the chroma optimization described above, only with a set of n (=palette size) equally spaced colours on a circle of equal chroma and luminance (the latter matching the central base colour) giving mostly slightly higher chroma maxima.
154 |
155 | These were repeated with small hue rotation increments (0.1°) and each evaluated according to their CIED2000 colour distance to a hue ordered selection of the most common named colours (red, green, blue, their inverses and the two next most common colours differentiated by hue, not luminance) according to the [xkcd Color Survey](https://blog.xkcd.com/2010/05/03/color-survey-results/).
156 |
157 | For each of the three Oklab luminance values and palette sizes, the palette with the least sum root mean squared distances was chosen. For the smaller palettes, the subsets of colours were chosen by hand for 6 (to match terminal colours) and to minimize the minimum sum RMS distances for 7.
158 |
159 | ## Limitations
160 |
161 | Because some base colours have non-zero chroma, the perceptual difference to the accent colours will not be truly uniform. All the base colours are still low in chromaticity though so this was deemed an acceptable trade-off for improved aesthetics. (Compensating for this would break the clean separation of colour properties.)
162 |
163 | More generally, Oklab was derived from CAM16 *under normal/average viewing conditions*. When these are not met, uniformity is no longer guaranteed and the balanced dark theme is probably closest to achieving the design goals perfectly. Improvements could only be made by directly using CAM16 to choose colours for every background, screen brightness, ambient light etc. separately. This would explode the complexity of this endeavor. Similar to the rationale given for the derivation of Oklab, it’s in most cases better and more efficient to aim for average viewing conditions rather than provide a myriad of options for any possible scenario.
164 |
165 | The xkcd colour survey did not have a representative sample of the world population and the colour names were all in English. Colour naming is strongly influenced by culture, so someone from a very different background might find the choices based on the survey a lot less intuitive. I was not able to find truly representative data of similar quality though any tips would be appreciated. On the plus side, the demographic of potential users of this colour scheme is very likely to largely overlap with the demographic of xkcd readers.
166 |
167 | Because differences between the accent colours are solely in hue, people with colour vision deficiency (CVD) will have more difficulty discriminating between them compared to using differences in all properties. Luminance (slightly) and chroma also no longer appear constant since colours are projected onto a plane compared to a trichromat 3D colour space in people with complete bichromacy. In order to provide adequate syntax highlighting, one would have to use both chroma and luminance, making the latter unavailable to encode other information like emphasis and UI structure. This would require a different approach from the ground up.
168 |
169 | Some terminal applications rely on the luminance differences between the “traditional” terminal colors both between each other and to foreground and background, most of which are purposefully broken in this color scheme. Nothing becomes entirely unreadable but legibility might suffer drastically. There is no way to account for this while still adhering to the overall design philosophy of this colour scheme. If you regularly use such applications, this scheme is sadly just not for you. Terminal themes also purposefully don’t include “bright” colours as most modern terminal emulators use bold text instead in most cases where these would be required.
170 |
171 | ## The Colours
172 |
173 | ### Accent Colour Palettes
174 |
175 | |colour | 6 balanced | 7 balanced | 8 balanced
176 | --- | --- | --- | ---
177 | |red | #CB7459 | #CA7081 | #CA736C |
178 | |orange | | #C27D40 | #BA823A |
179 | |yellow | #A38F2D | #92963A | #8D9741 |
180 | |green | #46A473 | #3EA57B | #47A477 |
181 | |cyan | #00A0BE | #00A0BA | #00A2AF |
182 | |blue | #7E87D6 | #6E8DD5 | #5794D0 |
183 | |purple | | #AC78BD | #9481CC |
184 | |magenta| #BD72A8 | | #BC73A4 |
185 |
186 | ### Base Colours
187 |
188 | |name | balanced
189 | --- | ---
190 | |sun+ | #FFFDFB |
191 | |sun | #FFF7ED |
192 | |sun- | #F2E6D4 |
193 | |sky+ | #BEBEBE |
194 | |sky | #8F8F8F |
195 | |sky- | #636363 |
196 | |shade+ | #3E4044 |
197 | |shade | #303338 |
198 | |shade- | #24272B |
199 |
200 | ### Accent Colour Palettes with Enhanced Brightness and Chroma
201 |
202 | |colour | 6 contrast+ | 7 contrast+ | 8 contrast+ | 6 contrast++ | 7 contrast++ | 8 contrast++
203 | --- | --- | --- | --- | --- | --- | ---
204 | |red | #E18163 | #DF7C8E | #DF7F78 | #F48E74 | #F18AA1 | #F58C81 |
205 | |orange | | #D68B47 | #CE9042 | | #EA9856 | #E09F47 |
206 | |yellow | #B49E33 | #A1A641 | #9CA748 | #C7AD40 | #B4B44A | #A9B852 |
207 | |green | #4EB67F | #44B689 | #50B584 | #61C68A | #58C792 | #54C794 |
208 | |cyan | #00B0D2 | #00B1CE | #00B3C2 | #1AC2E1 | #16C3DD | #00C4D7 |
209 | |blue | #8C96EC | #7A9BEC | #61A3E6 | #97A6FF | #83ADFF | #6EB2FD |
210 | |purple | | #BE85D1 | #A48FE1 | | #CC94E6 | #B69CF6 |
211 | |magenta| #D07EBA | | #D080B6 | #E18DCE | | #E58CC5 |
212 |
213 | ### Base Colours with Enhanced Contrast
214 |
215 | |name | contrast+ | contrast ++
216 | --- | --- | ---
217 | |sun+ | #FFFDFB | #FFFDFB |
218 | |sun | #FFF7ED | #FFF7ED |
219 | |sun- | #F2E6D4 | #F2E6D4 |
220 | |sky+ | #CECECE | #DEDEDE |
221 | |sky | #9E9E9E | #AEAEAE |
222 | |sky- | #636363 | #636363 |
223 | |shade+ | #3E4044 | #3E4044 |
224 | |shade | #24272B | #181B1F |
225 | |shade- | #181B1F | #0D0F13 |
226 |
227 | ## Contributions
228 |
229 | Any implementations or ports, as well as improvements and additional feature for existing ones are very welcome. Just submit a pull request here or in the respective repository or create your own.
230 |
231 | ## Acknowledgments
232 |
233 | The search for a theme led me to [Solarized](https://github.com/altercation/solarized) by Ethan Schoonover, which I was ultimately not satisfied with but inspired me to try and improve on its ideas.
234 |
235 | [Oklab](https://bottosson.github.io/posts/oklab/) by Björn Ottosson gave me the tools to be able to painlessly design the colours.
236 |
237 | The [xkcd Color Survey](https://blog.xkcd.com/2010/05/03/color-survey-results/) provided a quantitative basis for colour names.
238 |
239 | [Pluto Notebooks](https://github.com/fonsp/Pluto.jl) with [Colors.jl](https://github.com/JuliaGraphics/Colors.jl) for the Julia language made it effortless to work with colour in a systematic but visual way.
240 |
241 | ## Contact
242 |
243 | TODO
244 |
--------------------------------------------------------------------------------
/examples/penumbra_example_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark.png
--------------------------------------------------------------------------------
/examples/penumbra_example_dark_contrast++.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark_contrast++.png
--------------------------------------------------------------------------------
/examples/penumbra_example_dark_contrast+.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark_contrast+.png
--------------------------------------------------------------------------------
/examples/penumbra_example_dark_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark_header.png
--------------------------------------------------------------------------------
/examples/penumbra_example_dark_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark_small.png
--------------------------------------------------------------------------------
/examples/penumbra_example_dark_smaller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_dark_smaller.png
--------------------------------------------------------------------------------
/examples/penumbra_example_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_header.png
--------------------------------------------------------------------------------
/examples/penumbra_example_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_light.png
--------------------------------------------------------------------------------
/examples/penumbra_example_light_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_light_header.png
--------------------------------------------------------------------------------
/examples/penumbra_example_light_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_light_small.png
--------------------------------------------------------------------------------
/examples/penumbra_example_light_smaller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/examples/penumbra_example_light_smaller.png
--------------------------------------------------------------------------------
/iTerm2/penumbra_dark++.itermcolors:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ansi 0 Color
6 |
7 | Alpha Component
8 | 1
9 | Blue Component
10 | 0.12156862765550613
11 | Color Space
12 | sRGB
13 | Green Component
14 | 0.10588235408067703
15 | Red Component
16 | 0.094117648899555206
17 |
18 | Ansi 1 Color
19 |
20 | Alpha Component
21 | 1
22 | Blue Component
23 | 0.45490196347236633
24 | Color Space
25 | sRGB
26 | Green Component
27 | 0.55686277151107788
28 | Red Component
29 | 0.95686274766921997
30 |
31 | Ansi 10 Color
32 |
33 | Alpha Component
34 | 1
35 | Blue Component
36 | 0.54117649793624878
37 | Color Space
38 | sRGB
39 | Green Component
40 | 0.7764706015586853
41 | Red Component
42 | 0.3803921639919281
43 |
44 | Ansi 11 Color
45 |
46 | Alpha Component
47 | 1
48 | Blue Component
49 | 0.25098040699958801
50 | Color Space
51 | sRGB
52 | Green Component
53 | 0.67843139171600342
54 | Red Component
55 | 0.78039216995239258
56 |
57 | Ansi 12 Color
58 |
59 | Alpha Component
60 | 1
61 | Blue Component
62 | 1
63 | Color Space
64 | sRGB
65 | Green Component
66 | 0.65098041296005249
67 | Red Component
68 | 0.59215688705444336
69 |
70 | Ansi 13 Color
71 |
72 | Alpha Component
73 | 1
74 | Blue Component
75 | 0.80784314870834351
76 | Color Space
77 | sRGB
78 | Green Component
79 | 0.55294120311737061
80 | Red Component
81 | 0.88235294818878174
82 |
83 | Ansi 14 Color
84 |
85 | Alpha Component
86 | 1
87 | Blue Component
88 | 0.88235294818878174
89 | Color Space
90 | sRGB
91 | Green Component
92 | 0.7607843279838562
93 | Red Component
94 | 0.10196078568696976
95 |
96 | Ansi 15 Color
97 |
98 | Alpha Component
99 | 1
100 | Blue Component
101 | 0.9843137264251709
102 | Color Space
103 | sRGB
104 | Green Component
105 | 0.99215686321258545
106 | Red Component
107 | 1
108 |
109 | Ansi 2 Color
110 |
111 | Alpha Component
112 | 1
113 | Blue Component
114 | 0.54117649793624878
115 | Color Space
116 | sRGB
117 | Green Component
118 | 0.7764706015586853
119 | Red Component
120 | 0.3803921639919281
121 |
122 | Ansi 3 Color
123 |
124 | Alpha Component
125 | 1
126 | Blue Component
127 | 0.25098040699958801
128 | Color Space
129 | sRGB
130 | Green Component
131 | 0.67843139171600342
132 | Red Component
133 | 0.78039216995239258
134 |
135 | Ansi 4 Color
136 |
137 | Alpha Component
138 | 1
139 | Blue Component
140 | 1
141 | Color Space
142 | sRGB
143 | Green Component
144 | 0.65098041296005249
145 | Red Component
146 | 0.59215688705444336
147 |
148 | Ansi 5 Color
149 |
150 | Alpha Component
151 | 1
152 | Blue Component
153 | 0.80784314870834351
154 | Color Space
155 | sRGB
156 | Green Component
157 | 0.55294120311737061
158 | Red Component
159 | 0.88235294818878174
160 |
161 | Ansi 6 Color
162 |
163 | Alpha Component
164 | 1
165 | Blue Component
166 | 0.88235294818878174
167 | Color Space
168 | sRGB
169 | Green Component
170 | 0.7607843279838562
171 | Red Component
172 | 0.10196078568696976
173 |
174 | Ansi 7 Color
175 |
176 | Alpha Component
177 | 1
178 | Blue Component
179 | 0.92941176891326904
180 | Color Space
181 | sRGB
182 | Green Component
183 | 0.9686274528503418
184 | Red Component
185 | 1
186 |
187 | Ansi 8 Color
188 |
189 | Alpha Component
190 | 1
191 | Blue Component
192 | 0.38823530077934265
193 | Color Space
194 | sRGB
195 | Green Component
196 | 0.38823530077934265
197 | Red Component
198 | 0.38823530077934265
199 |
200 | Ansi 9 Color
201 |
202 | Alpha Component
203 | 1
204 | Blue Component
205 | 0.45490196347236633
206 | Color Space
207 | sRGB
208 | Green Component
209 | 0.55686277151107788
210 | Red Component
211 | 0.95686274766921997
212 |
213 | Background Color
214 |
215 | Alpha Component
216 | 1
217 | Blue Component
218 | 0.12156862765550613
219 | Color Space
220 | sRGB
221 | Green Component
222 | 0.10588235408067703
223 | Red Component
224 | 0.094117648899555206
225 |
226 | Badge Color
227 |
228 | Alpha Component
229 | 0.5
230 | Blue Component
231 | 0.29803922772407532
232 | Color Space
233 | sRGB
234 | Green Component
235 | 0.61176472902297974
236 | Red Component
237 | 0.89803922176361084
238 |
239 | Bold Color
240 |
241 | Alpha Component
242 | 1
243 | Blue Component
244 | 0.87058824300765991
245 | Color Space
246 | sRGB
247 | Green Component
248 | 0.87058824300765991
249 | Red Component
250 | 0.87058824300765991
251 |
252 | Cursor Color
253 |
254 | Alpha Component
255 | 1
256 | Blue Component
257 | 0.92941176891326904
258 | Color Space
259 | sRGB
260 | Green Component
261 | 0.9686274528503418
262 | Red Component
263 | 1
264 |
265 | Cursor Guide Color
266 |
267 | Alpha Component
268 | 0.25
269 | Blue Component
270 | 0.7764706015586853
271 | Color Space
272 | sRGB
273 | Green Component
274 | 0.60784316062927246
275 | Red Component
276 | 0.20784313976764679
277 |
278 | Cursor Text Color
279 |
280 | Alpha Component
281 | 1
282 | Blue Component
283 | 0.38823530077934265
284 | Color Space
285 | sRGB
286 | Green Component
287 | 0.38823530077934265
288 | Red Component
289 | 0.38823530077934265
290 |
291 | Foreground Color
292 |
293 | Alpha Component
294 | 1
295 | Blue Component
296 | 0.68235296010971069
297 | Color Space
298 | sRGB
299 | Green Component
300 | 0.68235296010971069
301 | Red Component
302 | 0.68235296010971069
303 |
304 | Link Color
305 |
306 | Alpha Component
307 | 1
308 | Blue Component
309 | 0.98039215803146362
310 | Color Space
311 | sRGB
312 | Green Component
313 | 0.70980393886566162
314 | Red Component
315 | 0.3803921639919281
316 |
317 | Selected Text Color
318 |
319 | Alpha Component
320 | 1
321 | Blue Component
322 | 0.38823530077934265
323 | Color Space
324 | sRGB
325 | Green Component
326 | 0.38823530077934265
327 | Red Component
328 | 0.38823530077934265
329 |
330 | Selection Color
331 |
332 | Alpha Component
333 | 1
334 | Blue Component
335 | 0.92941176891326904
336 | Color Space
337 | sRGB
338 | Green Component
339 | 0.9686274528503418
340 | Red Component
341 | 1
342 |
343 |
344 |
345 |
--------------------------------------------------------------------------------
/iTerm2/penumbra_dark+.itermcolors:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ansi 0 Color
6 |
7 | Alpha Component
8 | 1
9 | Blue Component
10 | 0.12156862765550613
11 | Color Space
12 | sRGB
13 | Green Component
14 | 0.10588235408067703
15 | Red Component
16 | 0.094117648899555206
17 |
18 | Ansi 1 Color
19 |
20 | Alpha Component
21 | 1
22 | Blue Component
23 | 0.38823530077934265
24 | Color Space
25 | sRGB
26 | Green Component
27 | 0.5058823823928833
28 | Red Component
29 | 0.88235294818878174
30 |
31 | Ansi 10 Color
32 |
33 | Alpha Component
34 | 1
35 | Blue Component
36 | 0.49803921580314636
37 | Color Space
38 | sRGB
39 | Green Component
40 | 0.7137255072593689
41 | Red Component
42 | 0.30588236451148987
43 |
44 | Ansi 11 Color
45 |
46 | Alpha Component
47 | 1
48 | Blue Component
49 | 0.20000000298023224
50 | Color Space
51 | sRGB
52 | Green Component
53 | 0.61960786581039429
54 | Red Component
55 | 0.70588237047195435
56 |
57 | Ansi 12 Color
58 |
59 | Alpha Component
60 | 1
61 | Blue Component
62 | 0.92549020051956177
63 | Color Space
64 | sRGB
65 | Green Component
66 | 0.58823531866073608
67 | Red Component
68 | 0.54901963472366333
69 |
70 | Ansi 13 Color
71 |
72 | Alpha Component
73 | 1
74 | Blue Component
75 | 0.729411780834198
76 | Color Space
77 | sRGB
78 | Green Component
79 | 0.49411764740943909
80 | Red Component
81 | 0.81568628549575806
82 |
83 | Ansi 14 Color
84 |
85 | Alpha Component
86 | 1
87 | Blue Component
88 | 0.82352942228317261
89 | Color Space
90 | sRGB
91 | Green Component
92 | 0.69019609689712524
93 | Red Component
94 | 0.0
95 |
96 | Ansi 15 Color
97 |
98 | Alpha Component
99 | 1
100 | Blue Component
101 | 0.9843137264251709
102 | Color Space
103 | sRGB
104 | Green Component
105 | 0.99215686321258545
106 | Red Component
107 | 1
108 |
109 | Ansi 2 Color
110 |
111 | Alpha Component
112 | 1
113 | Blue Component
114 | 0.49803921580314636
115 | Color Space
116 | sRGB
117 | Green Component
118 | 0.7137255072593689
119 | Red Component
120 | 0.30588236451148987
121 |
122 | Ansi 3 Color
123 |
124 | Alpha Component
125 | 1
126 | Blue Component
127 | 0.20000000298023224
128 | Color Space
129 | sRGB
130 | Green Component
131 | 0.61960786581039429
132 | Red Component
133 | 0.70588237047195435
134 |
135 | Ansi 4 Color
136 |
137 | Alpha Component
138 | 1
139 | Blue Component
140 | 0.92549020051956177
141 | Color Space
142 | sRGB
143 | Green Component
144 | 0.58823531866073608
145 | Red Component
146 | 0.54901963472366333
147 |
148 | Ansi 5 Color
149 |
150 | Alpha Component
151 | 1
152 | Blue Component
153 | 0.729411780834198
154 | Color Space
155 | sRGB
156 | Green Component
157 | 0.49411764740943909
158 | Red Component
159 | 0.81568628549575806
160 |
161 | Ansi 6 Color
162 |
163 | Alpha Component
164 | 1
165 | Blue Component
166 | 0.82352942228317261
167 | Color Space
168 | sRGB
169 | Green Component
170 | 0.69019609689712524
171 | Red Component
172 | 0.0
173 |
174 | Ansi 7 Color
175 |
176 | Alpha Component
177 | 1
178 | Blue Component
179 | 0.92941176891326904
180 | Color Space
181 | sRGB
182 | Green Component
183 | 0.9686274528503418
184 | Red Component
185 | 1
186 |
187 | Ansi 8 Color
188 |
189 | Alpha Component
190 | 1
191 | Blue Component
192 | 0.38823530077934265
193 | Color Space
194 | sRGB
195 | Green Component
196 | 0.38823530077934265
197 | Red Component
198 | 0.38823530077934265
199 |
200 | Ansi 9 Color
201 |
202 | Alpha Component
203 | 1
204 | Blue Component
205 | 0.38823530077934265
206 | Color Space
207 | sRGB
208 | Green Component
209 | 0.5058823823928833
210 | Red Component
211 | 0.88235294818878174
212 |
213 | Background Color
214 |
215 | Alpha Component
216 | 1
217 | Blue Component
218 | 0.16862745583057404
219 | Color Space
220 | sRGB
221 | Green Component
222 | 0.15294118225574493
223 | Red Component
224 | 0.14117647707462311
225 |
226 | Badge Color
227 |
228 | Alpha Component
229 | 0.5
230 | Blue Component
231 | 0.25490197539329529
232 | Color Space
233 | sRGB
234 | Green Component
235 | 0.56078433990478516
236 | Red Component
237 | 0.81568628549575806
238 |
239 | Bold Color
240 |
241 | Alpha Component
242 | 1
243 | Blue Component
244 | 0.80784314870834351
245 | Color Space
246 | sRGB
247 | Green Component
248 | 0.80784314870834351
249 | Red Component
250 | 0.80784314870834351
251 |
252 | Cursor Color
253 |
254 | Alpha Component
255 | 1
256 | Blue Component
257 | 0.92941176891326904
258 | Color Space
259 | sRGB
260 | Green Component
261 | 0.9686274528503418
262 | Red Component
263 | 1
264 |
265 | Cursor Guide Color
266 |
267 | Alpha Component
268 | 0.25
269 | Blue Component
270 | 0.7764706015586853
271 | Color Space
272 | sRGB
273 | Green Component
274 | 0.60784316062927246
275 | Red Component
276 | 0.20784313976764679
277 |
278 | Cursor Text Color
279 |
280 | Alpha Component
281 | 1
282 | Blue Component
283 | 0.38823530077934265
284 | Color Space
285 | sRGB
286 | Green Component
287 | 0.38823530077934265
288 | Red Component
289 | 0.38823530077934265
290 |
291 | Foreground Color
292 |
293 | Alpha Component
294 | 1
295 | Blue Component
296 | 0.61960786581039429
297 | Color Space
298 | sRGB
299 | Green Component
300 | 0.61960786581039429
301 | Red Component
302 | 0.61960786581039429
303 |
304 | Link Color
305 |
306 | Alpha Component
307 | 1
308 | Blue Component
309 | 0.90196079015731812
310 | Color Space
311 | sRGB
312 | Green Component
313 | 0.64313727617263794
314 | Red Component
315 | 0.35686275362968445
316 |
317 | Selected Text Color
318 |
319 | Alpha Component
320 | 1
321 | Blue Component
322 | 0.38823530077934265
323 | Color Space
324 | sRGB
325 | Green Component
326 | 0.38823530077934265
327 | Red Component
328 | 0.38823530077934265
329 |
330 | Selection Color
331 |
332 | Alpha Component
333 | 1
334 | Blue Component
335 | 0.92941176891326904
336 | Color Space
337 | sRGB
338 | Green Component
339 | 0.9686274528503418
340 | Red Component
341 | 1
342 |
343 |
344 |
345 |
--------------------------------------------------------------------------------
/iTerm2/penumbra_dark.itermcolors:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ansi 0 Color
6 |
7 | Alpha Component
8 | 1
9 | Blue Component
10 | 0.16862745583057404
11 | Color Space
12 | sRGB
13 | Green Component
14 | 0.15294118225574493
15 | Red Component
16 | 0.14117647707462311
17 |
18 | Ansi 1 Color
19 |
20 | Alpha Component
21 | 1
22 | Blue Component
23 | 0.3490196168422699
24 | Color Space
25 | sRGB
26 | Green Component
27 | 0.45490196347236633
28 | Red Component
29 | 0.79607844352722168
30 |
31 | Ansi 10 Color
32 |
33 | Alpha Component
34 | 1
35 | Blue Component
36 | 0.45098039507865906
37 | Color Space
38 | sRGB
39 | Green Component
40 | 0.64313727617263794
41 | Red Component
42 | 0.27450981736183167
43 |
44 | Ansi 11 Color
45 |
46 | Alpha Component
47 | 1
48 | Blue Component
49 | 0.17647059261798859
50 | Color Space
51 | sRGB
52 | Green Component
53 | 0.56078433990478516
54 | Red Component
55 | 0.63529413938522339
56 |
57 | Ansi 12 Color
58 |
59 | Alpha Component
60 | 1
61 | Blue Component
62 | 0.83529412746429443
63 | Color Space
64 | sRGB
65 | Green Component
66 | 0.52941179275512695
67 | Red Component
68 | 0.49803921580314636
69 |
70 | Ansi 13 Color
71 |
72 | Alpha Component
73 | 1
74 | Blue Component
75 | 0.65882354974746704
76 | Color Space
77 | sRGB
78 | Green Component
79 | 0.44705882668495178
80 | Red Component
81 | 0.74117648601531982
82 |
83 | Ansi 14 Color
84 |
85 | Alpha Component
86 | 1
87 | Blue Component
88 | 0.7450980544090271
89 | Color Space
90 | sRGB
91 | Green Component
92 | 0.62745100259780884
93 | Red Component
94 | 0.0
95 |
96 | Ansi 15 Color
97 |
98 | Alpha Component
99 | 1
100 | Blue Component
101 | 0.9843137264251709
102 | Color Space
103 | sRGB
104 | Green Component
105 | 0.99215686321258545
106 | Red Component
107 | 1
108 |
109 | Ansi 2 Color
110 |
111 | Alpha Component
112 | 1
113 | Blue Component
114 | 0.45098039507865906
115 | Color Space
116 | sRGB
117 | Green Component
118 | 0.64313727617263794
119 | Red Component
120 | 0.27450981736183167
121 |
122 | Ansi 3 Color
123 |
124 | Alpha Component
125 | 1
126 | Blue Component
127 | 0.17647059261798859
128 | Color Space
129 | sRGB
130 | Green Component
131 | 0.56078433990478516
132 | Red Component
133 | 0.63529413938522339
134 |
135 | Ansi 4 Color
136 |
137 | Alpha Component
138 | 1
139 | Blue Component
140 | 0.83529412746429443
141 | Color Space
142 | sRGB
143 | Green Component
144 | 0.52941179275512695
145 | Red Component
146 | 0.49803921580314636
147 |
148 | Ansi 5 Color
149 |
150 | Alpha Component
151 | 1
152 | Blue Component
153 | 0.65882354974746704
154 | Color Space
155 | sRGB
156 | Green Component
157 | 0.44705882668495178
158 | Red Component
159 | 0.74117648601531982
160 |
161 | Ansi 6 Color
162 |
163 | Alpha Component
164 | 1
165 | Blue Component
166 | 0.7450980544090271
167 | Color Space
168 | sRGB
169 | Green Component
170 | 0.62745100259780884
171 | Red Component
172 | 0.0
173 |
174 | Ansi 7 Color
175 |
176 | Alpha Component
177 | 1
178 | Blue Component
179 | 0.92941176891326904
180 | Color Space
181 | sRGB
182 | Green Component
183 | 0.9686274528503418
184 | Red Component
185 | 1
186 |
187 | Ansi 8 Color
188 |
189 | Alpha Component
190 | 1
191 | Blue Component
192 | 0.38823530077934265
193 | Color Space
194 | sRGB
195 | Green Component
196 | 0.38823530077934265
197 | Red Component
198 | 0.38823530077934265
199 |
200 | Ansi 9 Color
201 |
202 | Alpha Component
203 | 1
204 | Blue Component
205 | 0.3490196168422699
206 | Color Space
207 | sRGB
208 | Green Component
209 | 0.45490196347236633
210 | Red Component
211 | 0.79607844352722168
212 |
213 | Background Color
214 |
215 | Alpha Component
216 | 1
217 | Blue Component
218 | 0.21960784494876862
219 | Color Space
220 | sRGB
221 | Green Component
222 | 0.20000000298023224
223 | Red Component
224 | 0.18823529779911041
225 |
226 | Badge Color
227 |
228 | Alpha Component
229 | 0.5
230 | Blue Component
231 | 0.30588236451148987
232 | Color Space
233 | sRGB
234 | Green Component
235 | 0.47843137383460999
236 | Red Component
237 | 0.77254903316497803
238 |
239 | Bold Color
240 |
241 | Alpha Component
242 | 1
243 | Blue Component
244 | 0.7450980544090271
245 | Color Space
246 | sRGB
247 | Green Component
248 | 0.7450980544090271
249 | Red Component
250 | 0.7450980544090271
251 |
252 | Cursor Color
253 |
254 | Alpha Component
255 | 1
256 | Blue Component
257 | 0.92941176891326904
258 | Color Space
259 | sRGB
260 | Green Component
261 | 0.9686274528503418
262 | Red Component
263 | 1
264 |
265 | Cursor Guide Color
266 |
267 | Alpha Component
268 | 0.25
269 | Blue Component
270 | 0.7764706015586853
271 | Color Space
272 | sRGB
273 | Green Component
274 | 0.60784316062927246
275 | Red Component
276 | 0.20784313976764679
277 |
278 | Cursor Text Color
279 |
280 | Alpha Component
281 | 1
282 | Blue Component
283 | 0.38823530077934265
284 | Color Space
285 | sRGB
286 | Green Component
287 | 0.38823530077934265
288 | Red Component
289 | 0.38823530077934265
290 |
291 | Foreground Color
292 |
293 | Alpha Component
294 | 1
295 | Blue Component
296 | 0.56078433990478516
297 | Color Space
298 | sRGB
299 | Green Component
300 | 0.56078433990478516
301 | Red Component
302 | 0.56078433990478516
303 |
304 | Link Color
305 |
306 | Alpha Component
307 | 1
308 | Blue Component
309 | 0.7764706015586853
310 | Color Space
311 | sRGB
312 | Green Component
313 | 0.60784316062927246
314 | Red Component
315 | 0.20784313976764679
316 |
317 | Selected Text Color
318 |
319 | Alpha Component
320 | 1
321 | Blue Component
322 | 0.56078433990478516
323 | Color Space
324 | sRGB
325 | Green Component
326 | 0.56078433990478516
327 | Red Component
328 | 0.56078433990478516
329 |
330 | Selection Color
331 |
332 | Alpha Component
333 | 1
334 | Blue Component
335 | 0.83137255907058716
336 | Color Space
337 | sRGB
338 | Green Component
339 | 0.90196079015731812
340 | Red Component
341 | 0.94901961088180542
342 |
343 |
344 |
345 |
--------------------------------------------------------------------------------
/iTerm2/penumbra_light.itermcolors:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ansi 0 Color
6 |
7 | Alpha Component
8 | 1
9 | Blue Component
10 | 0.92941176891326904
11 | Color Space
12 | sRGB
13 | Green Component
14 | 0.9686274528503418
15 | Red Component
16 | 1
17 |
18 | Ansi 1 Color
19 |
20 | Alpha Component
21 | 1
22 | Blue Component
23 | 0.3490196168422699
24 | Color Space
25 | sRGB
26 | Green Component
27 | 0.45490196347236633
28 | Red Component
29 | 0.79607844352722168
30 |
31 | Ansi 10 Color
32 |
33 | Alpha Component
34 | 1
35 | Blue Component
36 | 0.45098039507865906
37 | Color Space
38 | sRGB
39 | Green Component
40 | 0.64313727617263794
41 | Red Component
42 | 0.27450981736183167
43 |
44 | Ansi 11 Color
45 |
46 | Alpha Component
47 | 1
48 | Blue Component
49 | 0.17647059261798859
50 | Color Space
51 | sRGB
52 | Green Component
53 | 0.56078433990478516
54 | Red Component
55 | 0.63529413938522339
56 |
57 | Ansi 12 Color
58 |
59 | Alpha Component
60 | 1
61 | Blue Component
62 | 0.83529412746429443
63 | Color Space
64 | sRGB
65 | Green Component
66 | 0.52941179275512695
67 | Red Component
68 | 0.49803921580314636
69 |
70 | Ansi 13 Color
71 |
72 | Alpha Component
73 | 1
74 | Blue Component
75 | 0.65882354974746704
76 | Color Space
77 | sRGB
78 | Green Component
79 | 0.44705882668495178
80 | Red Component
81 | 0.74117648601531982
82 |
83 | Ansi 14 Color
84 |
85 | Alpha Component
86 | 1
87 | Blue Component
88 | 0.7450980544090271
89 | Color Space
90 | sRGB
91 | Green Component
92 | 0.62745100259780884
93 | Red Component
94 | 0.0
95 |
96 | Ansi 15 Color
97 |
98 | Alpha Component
99 | 1
100 | Blue Component
101 | 0.16862745583057404
102 | Color Space
103 | sRGB
104 | Green Component
105 | 0.15294118225574493
106 | Red Component
107 | 0.14117647707462311
108 |
109 | Ansi 2 Color
110 |
111 | Alpha Component
112 | 1
113 | Blue Component
114 | 0.45098039507865906
115 | Color Space
116 | sRGB
117 | Green Component
118 | 0.64313727617263794
119 | Red Component
120 | 0.27450981736183167
121 |
122 | Ansi 3 Color
123 |
124 | Alpha Component
125 | 1
126 | Blue Component
127 | 0.17647059261798859
128 | Color Space
129 | sRGB
130 | Green Component
131 | 0.56078433990478516
132 | Red Component
133 | 0.63529413938522339
134 |
135 | Ansi 4 Color
136 |
137 | Alpha Component
138 | 1
139 | Blue Component
140 | 0.83529412746429443
141 | Color Space
142 | sRGB
143 | Green Component
144 | 0.52941179275512695
145 | Red Component
146 | 0.49803921580314636
147 |
148 | Ansi 5 Color
149 |
150 | Alpha Component
151 | 1
152 | Blue Component
153 | 0.65882354974746704
154 | Color Space
155 | sRGB
156 | Green Component
157 | 0.44705882668495178
158 | Red Component
159 | 0.74117648601531982
160 |
161 | Ansi 6 Color
162 |
163 | Alpha Component
164 | 1
165 | Blue Component
166 | 0.7450980544090271
167 | Color Space
168 | sRGB
169 | Green Component
170 | 0.62745100259780884
171 | Red Component
172 | 0.0
173 |
174 | Ansi 7 Color
175 |
176 | Alpha Component
177 | 1
178 | Blue Component
179 | 0.21960784494876862
180 | Color Space
181 | sRGB
182 | Green Component
183 | 0.20000000298023224
184 | Red Component
185 | 0.18823529779911041
186 |
187 | Ansi 8 Color
188 |
189 | Alpha Component
190 | 1
191 | Blue Component
192 | 0.7450980544090271
193 | Color Space
194 | sRGB
195 | Green Component
196 | 0.7450980544090271
197 | Red Component
198 | 0.7450980544090271
199 |
200 | Ansi 9 Color
201 |
202 | Alpha Component
203 | 1
204 | Blue Component
205 | 0.3490196168422699
206 | Color Space
207 | sRGB
208 | Green Component
209 | 0.45490196347236633
210 | Red Component
211 | 0.79607844352722168
212 |
213 | Background Color
214 |
215 | Alpha Component
216 | 1
217 | Blue Component
218 | 0.92941176891326904
219 | Color Space
220 | sRGB
221 | Green Component
222 | 0.9686274528503418
223 | Red Component
224 | 1
225 |
226 | Badge Color
227 |
228 | Alpha Component
229 | 0.5
230 | Blue Component
231 | 0.30588236451148987
232 | Color Space
233 | sRGB
234 | Green Component
235 | 0.47843137383460999
236 | Red Component
237 | 0.77254903316497803
238 |
239 | Bold Color
240 |
241 | Alpha Component
242 | 1
243 | Blue Component
244 | 0.38823530077934265
245 | Color Space
246 | sRGB
247 | Green Component
248 | 0.38823530077934265
249 | Red Component
250 | 0.38823530077934265
251 |
252 | Cursor Color
253 |
254 | Alpha Component
255 | 1
256 | Blue Component
257 | 0.26666668057441711
258 | Color Space
259 | sRGB
260 | Green Component
261 | 0.25098040699958801
262 | Red Component
263 | 0.24313725531101227
264 |
265 | Cursor Guide Color
266 |
267 | Alpha Component
268 | 0.25
269 | Blue Component
270 | 0.7764706015586853
271 | Color Space
272 | sRGB
273 | Green Component
274 | 0.60784316062927246
275 | Red Component
276 | 0.20784313976764679
277 |
278 | Cursor Text Color
279 |
280 | Alpha Component
281 | 1
282 | Blue Component
283 | 0.7450980544090271
284 | Color Space
285 | sRGB
286 | Green Component
287 | 0.7450980544090271
288 | Red Component
289 | 0.7450980544090271
290 |
291 | Foreground Color
292 |
293 | Alpha Component
294 | 1
295 | Blue Component
296 | 0.56078433990478516
297 | Color Space
298 | sRGB
299 | Green Component
300 | 0.56078433990478516
301 | Red Component
302 | 0.56078433990478516
303 |
304 | Link Color
305 |
306 | Alpha Component
307 | 1
308 | Blue Component
309 | 0.7764706015586853
310 | Color Space
311 | sRGB
312 | Green Component
313 | 0.60784316062927246
314 | Red Component
315 | 0.20784313976764679
316 |
317 | Selected Text Color
318 |
319 | Alpha Component
320 | 1
321 | Blue Component
322 | 0.56078433990478516
323 | Color Space
324 | sRGB
325 | Green Component
326 | 0.56078433990478516
327 | Red Component
328 | 0.56078433990478516
329 |
330 | Selection Color
331 |
332 | Alpha Component
333 | 1
334 | Blue Component
335 | 0.26666668057441711
336 | Color Space
337 | sRGB
338 | Green Component
339 | 0.25098040699958801
340 | Red Component
341 | 0.24313725531101227
342 |
343 |
344 |
345 |
--------------------------------------------------------------------------------
/logo/penumbra_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/logo/penumbra_6.png
--------------------------------------------------------------------------------
/logo/penumbra_6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
123 |
--------------------------------------------------------------------------------
/logo/penumbra_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/logo/penumbra_7.png
--------------------------------------------------------------------------------
/penumbra.tsv:
--------------------------------------------------------------------------------
1 | set palette name rgb_hex r g b h s l oklab_luminance
2 | balanced base sun+ FFFDFB 255 253 251 30 100 99 0.995
3 | balanced base sun FFF7ED 255 247 237 33 100 96 0.98
4 | balanced base sun- F2E6D4 242 230 212 36 53 89 0.93
5 | balanced base sky+ BEBEBE 190 190 190 0 0 74 0.8
6 | balanced base sky 8F8F8F 143 143 143 0 0 56 0.65
7 | balanced base sky- 636363 99 99 99 0 0 38 0.5
8 | balanced base shade+ 3E4044 62 64 68 219 4 25 0.37
9 | balanced base shade 303338 48 51 56 217 7 20 0.32
10 | balanced base shade- 24272B 36 39 43 214 8 15 0.27
11 | balanced six red CB7459 203 116 89 14 52 57 0.65
12 | balanced six yellow A38F2D 163 143 45 49 56 40 0.65
13 | balanced six green 46A473 70 164 115 148 40 45 0.65
14 | balanced six cyan 00A0BE 0 160 190 189 100 37 0.65
15 | balanced six blue 7E87D6 126 135 214 233 51 66 0.65
16 | balanced six magenta BD72A8 189 114 168 316 36 59 0.65
17 | balanced seven red CA7081 202 112 129 348 45 61 0.65
18 | balanced seven orange C27D40 194 125 64 28 51 50 0.65
19 | balanced seven yellow 92963A 146 150 58 62 44 40 0.65
20 | balanced seven green 3EA57B 62 165 123 155 45 44 0.65
21 | balanced seven cyan 00A0BA 0 160 186 188 100 36 0.65
22 | balanced seven blue 6E8DD5 110 141 213 221 55 63 0.65
23 | balanced seven purple AC78BD 172 120 189 285 34 60 0.65
24 | balanced eight red CA736C 202 115 108 4 46 60 0.65
25 | balanced eight orange BA823A 186 130 58 33 52 47 0.65
26 | balanced eight yellow 8D9741 141 151 65 66 39 42 0.65
27 | balanced eight green 47A477 71 164 119 150 39 46 0.65
28 | balanced eight cyan 00A2AF 0 162 175 184 100 34 0.65
29 | balanced eight blue 5794D0 87 148 208 209 56 57 0.65
30 | balanced eight purple 9481CC 148 129 204 255 42 65 0.65
31 | balanced eight magenta BC73A4 188 115 164 319 35 59 0.65
32 | contrast+ base sun+ FFFDFB 255 253 251 30 100 99 0.995
33 | contrast+ base sun FFF7ED 255 247 237 33 100 96 0.98
34 | contrast+ base sun- F2E6D4 242 230 212 36 53 89 0.93
35 | contrast+ base sky+ CECECE 206 206 206 0 0 80 0.85
36 | contrast+ base sky 9E9E9E 158 158 158 0 0 61 0.7
37 | contrast+ base sky- 636363 99 99 99 0 0 38 0.5
38 | contrast+ base shade+ 3E4044 62 64 68 219 4 25 0.37
39 | contrast+ base shade 24272B 36 39 43 214 8 15 0.27
40 | contrast+ base shade- 181B1F 24 27 31 214 12 10 0.22
41 | contrast+ six red E18163 225 129 99 14 67 63 0.7
42 | contrast+ six yellow B49E33 180 158 51 49 55 45 0.7
43 | contrast+ six green 4EB67F 78 182 127 148 41 50 0.7
44 | contrast+ six cyan 00B0D2 0 176 210 189 100 41 0.7
45 | contrast+ six blue 8C96EC 140 150 236 233 71 73 0.7
46 | contrast+ six magenta D07EBA 208 126 186 316 46 65 0.7
47 | contrast+ seven red DF7C8E 223 124 142 349 60 68 0.7
48 | contrast+ seven orange D68B47 214 139 71 28 63 55 0.7
49 | contrast+ seven yellow A1A641 161 166 65 62 43 45 0.7
50 | contrast+ seven green 44B689 68 182 137 156 45 49 0.7
51 | contrast+ seven cyan 00B1CE 0 177 206 188 100 40 0.7
52 | contrast+ seven blue 7A9BEC 122 155 236 222 75 70 0.7
53 | contrast+ seven purple BE85D1 190 133 209 285 45 67 0.7
54 | contrast+ eight red DF7F78 223 127 120 4 61 67 0.7
55 | contrast+ eight orange CE9042 206 144 66 33 58 53 0.7
56 | contrast+ eight yellow 9CA748 156 167 72 66 39 46 0.7
57 | contrast+ eight green 50B584 80 181 132 150 40 51 0.7
58 | contrast+ eight cyan 00B3C2 0 179 194 184 100 38 0.7
59 | contrast+ eight blue 61A3E6 97 163 230 210 72 64 0.7
60 | contrast+ eight purple A48FE1 164 143 225 255 57 72 0.7
61 | contrast+ eight magenta D080B6 208 128 182 319 45 65 0.7
62 | contrast++ base sun+ FFFDFB 255 253 251 30 100 99 0.995
63 | contrast++ base sun FFF7ED 255 247 237 33 100 96 0.98
64 | contrast++ base sun- F2E6D4 242 230 212 36 53 89 0.93
65 | contrast++ base sky+ DEDEDE 222 222 222 0 0 87 0.9
66 | contrast++ base sky AEAEAE 174 174 174 0 0 68 0.75
67 | contrast++ base sky- 636363 99 99 99 0 0 38 0.5
68 | contrast++ base shade+ 3E4044 62 64 68 219 4 25 0.37
69 | contrast++ base shade 181B1F 24 27 31 214 12 10 0.22
70 | contrast++ base shade- 0D0F13 13 15 19 219 18 6 0.17
71 | contrast++ six red F48E74 244 142 116 12 85 70 0.75
72 | contrast++ six yellow C7AD40 199 173 64 48 54 51 0.75
73 | contrast++ six green 61C68A 97 198 138 144 46 57 0.75
74 | contrast++ six cyan 1AC2E1 26 194 225 189 79 49 0.75
75 | contrast++ six blue 97A6FF 151 166 255 231 100 79 0.75
76 | contrast++ six magenta E18DCE 225 141 206 313 58 71 0.75
77 | contrast++ seven red F18AA1 241 138 161 346 78 74 0.75
78 | contrast++ seven orange EA9856 234 152 86 26 77 62 0.75
79 | contrast++ seven yellow B4B44A 180 180 74 59 41 49 0.75
80 | contrast++ seven green 58C792 88 199 146 151 49 56 0.75
81 | contrast++ seven cyan 16C3DD 22 195 221 187 81 47 0.75
82 | contrast++ seven blue 83ADFF 131 173 255 219 100 75 0.75
83 | contrast++ seven purple CC94E6 204 148 230 280 62 74 0.75
84 | contrast++ eight red F58C81 245 140 129 5 85 73 0.75
85 | contrast++ eight orange E09F47 224 159 71 34 71 57 0.75
86 | contrast++ eight yellow A9B852 169 184 82 68 41 52 0.75
87 | contrast++ eight green 54C794 84 199 148 153 50 55 0.75
88 | contrast++ eight cyan 00C4D7 0 196 215 185 100 42 0.75
89 | contrast++ eight blue 6EB2FD 110 178 253 211 97 71 0.75
90 | contrast++ eight purple B69CF6 182 156 246 257 83 78 0.75
91 | contrast++ eight magenta E58CC5 229 140 197 321 63 72 0.75
92 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_balanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_base_balanced.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_balanced.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
245 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_contrast++.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_base_contrast++.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_contrast++.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
245 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_contrast+.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_base_contrast+.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_base_contrast+.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
245 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_balanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_dark_balanced.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_balanced.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
370 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_contrast++.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_dark_contrast++.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_contrast++.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
372 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_contrast+.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_dark_contrast+.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_dark_contrast+.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
369 |
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_light_balanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nealmckee/penumbra/b2a4b15c10b14fdd990d0bdc29e7b044afc718af/swatches/penumbra_swatch_light_balanced.png
--------------------------------------------------------------------------------
/swatches/penumbra_swatch_light_balanced.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
373 |
--------------------------------------------------------------------------------