update diagrams and README with new base variants

This commit is contained in:
smgr 2025-10-06 05:49:17 -07:00
parent 0f138c518c
commit 1355d467f1
7 changed files with 74 additions and 67 deletions

141
README.md
View File

@ -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.
![Theme preview](images/repo_preview.png) ![Theme preview](images/repo_preview_minimal.png)
_(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).
![Diagram of palette accents and monotones](images/palette.png) ![Diagram of palette accents and monotones](images/palette.png)
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
![Light biomes](images/light_code_caps.png) ![Light biomes](images/light_code_caps.png)
@ -47,77 +49,83 @@ colors depends on their hue.)*
![Dark biomes](images/dark_code_caps.png) ![Dark biomes](images/dark_code_caps.png)
*(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:
![Diagram of the 24 available concrete theme options](images/themes.png) ![Diagram of the 24 available concrete theme options](images/themes.png)
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:
![ ![
Diagram depicting how themes colors are selected by harshness and mapped onto Diagram depicting how themes colors are selected by harshness and mapped onto
application-specific elements application-specific elements
](images/vim_theme_elements.png) ](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

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 KiB

After

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB