update diagrams and README with new base variants
141
README.md
@ -1,44 +1,46 @@
|
|||||||
# Monobiome
|
# Monobiome
|
||||||
`monobiome` is a minimal, balanced color palette for use in terminals and text editors. It
|
`monobiome` is a minimal, balanced color palette for use in terminals and text
|
||||||
was designed in OKLCH space to achieve perceptual uniformity across all hues at various
|
editors. It was designed in OKLCH space to achieve perceptual uniformity across
|
||||||
levels of luminance, and does so for _four_ monotone bases and _five_ accent colors. Each
|
all hues at various levels of luminance, and does so for _five_ monotone bases
|
||||||
of the monotone base colors (named according to a natural biome whose colors they loosely
|
and _five_ accent colors (plus one grey "default"). Each of the monotone base
|
||||||
resemble) are designed to achieve identical contrast with the accents, and thus any one of
|
colors (named according to a natural biome whose colors they loosely resemble)
|
||||||
the four can be selected to change the feeling of the palette without sacrificing
|
are designed to achieve identical contrast with the accents, and thus any one
|
||||||
readability.
|
of the four can be selected to change the feeling of the palette without
|
||||||
|
sacrificing readability.
|
||||||
|
|
||||||

|

|
||||||
_(Preview of default light and dark theme variants)_
|
_(Preview of default light and dark theme variants)_
|
||||||
|
|
||||||
See screenshots for the full set of theme variants in [THEMES](THEMES.md) (also discussed
|
See screenshots for the full set of theme variants in [THEMES](THEMES.md) (also
|
||||||
below).
|
discussed below).
|
||||||
|
|
||||||
The name "monobiome" connects the palette to its two key sources of inspiration:
|
|
||||||
|
|
||||||
- `mono-`: `monobiome` is inspired by the [`monoindustrial` theme][1], and attempts to extend
|
|
||||||
and balance its accents while retaining similar color identities.
|
|
||||||
- `-biome`: the desire for several distinct monotone options entailed finding a way to ground the
|
|
||||||
subtle color variations that were needed, and I liked the idea of tying the choices to
|
|
||||||
naturally occurring environmental variation like Earth's biomes (even if it is a very
|
|
||||||
loose affiliation, e.g., green-ish = grass, basically).
|
|
||||||
|
|
||||||
|
The name "monobiome" connects the palette to its two key sources of
|
||||||
|
inspiration:
|
||||||
|
|
||||||
|
- `mono-`: `monobiome` is inspired by the [`monoindustrial` theme][1], and
|
||||||
|
attempts to extend and balance its accents while retaining similar color
|
||||||
|
identities.
|
||||||
|
- `-biome`: the desire for several distinct monotone options entailed finding a
|
||||||
|
way to ground the subtle color variations that were needed, and I liked the
|
||||||
|
idea of tying the choices to naturally occurring environmental variation like
|
||||||
|
Earth's biomes (even if it is a very loose affiliation, e.g., green-ish =
|
||||||
|
grass, basically).
|
||||||
|
|
||||||
## Palette
|
## Palette
|
||||||
The `monobiome` palette consists of four monotone bases and five accent colors, each of
|
The `monobiome` palette consists of four monotone bases and five accent colors,
|
||||||
which is anchored by hue and spread uniformly across lightness levels 15 to 95 (in OKLCH
|
each of which is anchored by hue and spread uniformly across lightness levels
|
||||||
space).
|
15 to 95 (in OKLCH space).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The chroma curve for each accent is carefully designed to vary smoothly across the
|
The chroma curve for each accent is carefully designed to vary smoothly across
|
||||||
lightness spectrum, with the goal of retaining strong color identity in all settings.
|
the lightness spectrum, with the goal of retaining strong color identity in all
|
||||||
Additionally, as alluded to above, the (WCAG 2) contrast ratio between any choice of
|
settings. Additionally, as alluded to above, the (WCAG 2) contrast ratio
|
||||||
monotone background at a given lightness level and the accent colors is virtually
|
between any choice of monotone background at a given lightness level and the
|
||||||
identical ($\pm 0.1$). Put another way, the relative contrast between accents depends only
|
accent colors is virtually identical ($\pm 0.1$). Put another way, the relative
|
||||||
on the _lightness_ of the background monotone, not its hue. *(Note that this is
|
contrast between accents depends only on the _lightness_ of the background
|
||||||
not generally the case; at a fixed lightness level, the contrast between two
|
monotone, not its hue. *(Note that this is not generally the case; at a fixed
|
||||||
colors depends on their hue.)*
|
lightness level, the contrast between two colors depends on their hue.)*
|
||||||
|
|
||||||
## Concrete themes
|
## Concrete themes
|
||||||

|

|
||||||
@ -47,77 +49,83 @@ colors depends on their hue.)*
|
|||||||

|

|
||||||
*(Default dark theme variants)*
|
*(Default dark theme variants)*
|
||||||
|
|
||||||
Themes are derived from the `monobiome` palette by varying both the monotone hue (the
|
Themes are derived from the `monobiome` palette by varying both the monotone
|
||||||
"biome") and the extent of the background/foreground lightness (the "harshness"). This is
|
hue (the "biome") and the extent of the background/foreground lightness (the
|
||||||
done for both light and dark schemes, and in each case accent colors are selected at a
|
"harshness"). This is done for both light and dark schemes, and in each case
|
||||||
lightness level that ensures each meet a minimum contrast relative to the primary
|
accent colors are selected at a lightness level that ensures each meet a
|
||||||
background. The following diagram shows each of the 24 resulting combinations:
|
minimum contrast relative to the primary background. The following diagram
|
||||||
|
shows each of the 24 resulting combinations:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The "soft" harshness level uses monotone shades closer to the mid-shade (lightness level
|
The "soft" harshness level uses monotone shades closer to the mid-shade
|
||||||
55), whereas "hard" harshness uses shades further from it. Once the biome and harshness
|
(lightness level 55), whereas "hard" harshness uses shades further from it.
|
||||||
level are chosen, we're left with a bounded monotone range over which common theme
|
Once the biome and harshness level are chosen, we're left with a bounded
|
||||||
elements can be defined. For example, the following demonstrates how background and
|
monotone range over which common theme elements can be defined. For example,
|
||||||
foreground elements are chosen for the `monobiome` Vim themes:
|
the following demonstrates how background and foreground elements are chosen
|
||||||
|
for the `monobiome` Vim themes:
|
||||||
|
|
||||||

|
](images/vim_theme_elements.png)
|
||||||
|
|
||||||
Note how theme elements are mapped onto the general identifiers `bg0-bg3` for backgrounds,
|
Note how theme elements are mapped onto the general identifiers `bg0-bg3` for
|
||||||
`fg0-fg3` for foregrounds, and `gray` for a central gray tone. The relative properties
|
backgrounds, `fg0-fg3` for foregrounds, and `gray` for a central gray tone. The
|
||||||
(lightness differences, contrast ratios) between colors assigned to these identifiers are
|
relative properties (lightness differences, contrast ratios) between colors
|
||||||
preserved regardless of biome or harshness (e.g., `bg3` and `grey` are _always_ separated
|
assigned to these identifiers are preserved regardless of biome or harshness
|
||||||
by 20 lightness points in any theme). As a result, applying `monobiome` themes to specific
|
(e.g., `bg3` and `grey` are _always_ separated by 20 lightness points in any
|
||||||
applications can effectively boil down to defining a single "relative template" that uses
|
theme). As a result, applying `monobiome` themes to specific applications can
|
||||||
these identifiers, after which any of the 24 theme options can applied immediately.
|
effectively boil down to defining a single "relative template" that uses these
|
||||||
|
identifiers, after which any of the 24 theme options can applied immediately.
|
||||||
|
|
||||||
Read more about how themes are created in [DESIGN](DESIGN.md).
|
Read more about how themes are created in [DESIGN](DESIGN.md).
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
This repo provides the 24 theme files for `kitty`, `vim`/`neovim`, [`vim-airline`][2], and
|
This repo provides the 36 theme files for `kitty`, `vim`/`neovim`, and `fzf` in
|
||||||
`fzf` in the `apps/` directory. You can also find raw palette colors in
|
the `app-config/` directory. You can also find raw palette colors in
|
||||||
`colors/monobiome.toml` if you want to use them to define themes for other applications.
|
`colors/monobiome.toml` if you want to use them to define themes for other
|
||||||
|
applications.
|
||||||
|
|
||||||
Each of the files in the `apps/` directory are named according to
|
Each of the files in the `app-config/` directory are named according to
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
<harshness>-<biome>-monobiome-<mode>.<config>
|
<harshness>-<biome>-monobiome-<mode>.<config>
|
||||||
```
|
```
|
||||||
|
|
||||||
For example, `soft-tundra-monobiome-dark.vim` is the Vim theme file for the dark `tundra`
|
For example, `soft-tundra-monobiome-dark.vim` is the Vim theme file for the
|
||||||
variant with the soft harshness level.
|
dark `tundra` variant with the soft harshness level.
|
||||||
|
|
||||||
## `kitty`
|
## `kitty`
|
||||||
Find `kitty` themes in `apps/kitty`. Themes can be activated in your `kitty.conf` with
|
Find `kitty` themes in `apps/kitty`. Themes can be activated in your
|
||||||
|
`kitty.conf` with
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
include <theme-file>
|
include <theme-file>
|
||||||
```
|
```
|
||||||
|
|
||||||
## `vim`/`neovim`
|
## `vim`/`neovim`
|
||||||
Find `vim`/`neovim` themes in `apps/nvim`. Themes can be activated by placing a theme file
|
Find `vim`/`neovim` themes in `apps/nvim`. Themes can be activated by placing a
|
||||||
on Vim's runtime path and setting it in your `.vimrc`/`init.vim` with
|
theme file on Vim's runtime path and setting it in your `.vimrc`/`init.vim`
|
||||||
|
with
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
colorscheme <theme-name>
|
colorscheme <theme-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
## `vim-airline`
|
## `vim-airline`
|
||||||
If you use [`vim-airline`][2], you can find statusline themes in `apps/vim-airline`.
|
If you use [`vim-airline`][2], you can find statusline themes in
|
||||||
Place a theme file in the `airline` theme folder, and activate it in
|
`apps/vim-airline`. Place a theme file in the `airline` theme folder, and
|
||||||
your `.vimrc`/`init.vim` with
|
activate it in your `.vimrc`/`init.vim` with
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
let g:airline_theme='<theme-name>'
|
let g:airline_theme='<theme-name>'
|
||||||
```
|
```
|
||||||
|
|
||||||
## `fzf`
|
## `fzf`
|
||||||
In `apps/fzf`, you can find scripts that can be ran to export FZF theme variables. In your
|
In `apps/fzf`, you can find scripts that can be ran to export FZF theme
|
||||||
shell config (e.g., `.bashrc` or `.zshrc`), you can source these files to apply them in
|
variables. In your shell config (e.g., `.bashrc` or `.zshrc`), you can source
|
||||||
your terminal:
|
these files to apply them in your terminal:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
source <theme-file>
|
source <theme-file>
|
||||||
@ -141,10 +149,10 @@ Find links to install available light/dark Firefox themes for each biome in
|
|||||||
*Savanna monobiome*
|
*Savanna monobiome*
|
||||||
|
|
||||||
# Switching themes
|
# Switching themes
|
||||||
[`symconf`][3] is a general-purpose application config manager that can be used to
|
[`symconf`][3] is a general-purpose application config manager that can be used
|
||||||
generate all `monobiome` variants from a single palette file, and set themes for all apps
|
to generate all `monobiome` variants from a single palette file, and set themes
|
||||||
at once. You can find example theme templates in `apps/symconf` which provide general
|
for all apps at once. You can find example theme templates in `apps/symconf`
|
||||||
theme variables you can use in your own config templates.
|
which provide general theme variables you can use in your own config templates.
|
||||||
|
|
||||||
For instance, in an app like `kitty`, you can define a template like
|
For instance, in an app like `kitty`, you can define a template like
|
||||||
|
|
||||||
@ -197,5 +205,4 @@ biome/harshness/mode. This can be done for any app config file.
|
|||||||
|
|
||||||
|
|
||||||
[1]: https://github.com/isa/TextMate-Themes/blob/master/monoindustrial.tmTheme
|
[1]: https://github.com/isa/TextMate-Themes/blob/master/monoindustrial.tmTheme
|
||||||
[2]: https://github.com/vim-airline/vim-airline
|
|
||||||
[3]: https://github.com/ologio/symconf
|
[3]: https://github.com/ologio/symconf
|
||||||
|
BIN
images/biome_splits/default_split.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
images/biome_splits/grassland_split.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
images/biome_splits/savanna_split.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
images/biome_splits/tundra_split.png
Normal file
After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 610 KiB After Width: | Height: | Size: 516 KiB |
BIN
images/repo_preview_minimal.png
Normal file
After Width: | Height: | Size: 87 KiB |