rewrite README with new image references
This commit is contained in:
118
README.md
118
README.md
@@ -1,18 +1,15 @@
|
||||
# Monobiome
|
||||
`monobiome` is a minimal, balanced color palette for use in terminals and text
|
||||
editors. It was designed in OKLCH space to achieve perceptual uniformity across
|
||||
all hues at various levels of luminance, and does so for _five_ monotone bases
|
||||
and _five_ accent colors (plus one gray "default"). Each of the monotone base
|
||||
colors (named according to a natural biome whose colors they loosely resemble)
|
||||
are designed to achieve identical contrast with the accents, and thus any one
|
||||
of the options can be selected to change the feeling of the palette without
|
||||
sacrificing readability.
|
||||
all hues at various levels of luminance, and does so for eight monotone bases
|
||||
and eight accent colors (plus one zero chroma default base). Each of the
|
||||
monotone base colors (named according to a natural biome whose colors they
|
||||
loosely resemble) are designed to achieve identical contrast with the accents,
|
||||
and thus any one of the options can be selected to change the feeling of the
|
||||
palette without sacrificing readability.
|
||||
|
||||

|
||||
_(Preview of default light and dark theme variants)_
|
||||
|
||||
See screenshots for the full set of theme variants in [THEMES](THEMES.md) (also
|
||||
discussed below).
|
||||
_(Preview of light and dark alpine theme variants)_
|
||||
|
||||
The name "monobiome" connects the palette to its two key sources of
|
||||
inspiration:
|
||||
@@ -27,42 +24,79 @@ inspiration:
|
||||
grass, basically).
|
||||
|
||||
## Palette
|
||||
The `monobiome` palette consists of four monotone bases and five accent colors,
|
||||
each of which is anchored by hue and spread uniformly across lightness levels
|
||||
15 to 95 (in OKLCH space).
|
||||
The `monobiome` palette is fundamentally a set of parameterized curves in OKLCH
|
||||
color space. Each color identity has one monotone curve and one accent curve,
|
||||
both of which have fixed hue values and vary from 10% to 98% lightness.
|
||||
Monotone curves have fixed chroma, whereas the accent curves' chroma varies
|
||||
smoothly as a function of lightness within sRGB gamut bounds.
|
||||
|
||||

|
||||
| Chroma curves | Color trajectories |
|
||||
|---|---|
|
||||
|  |  |
|
||||
|
||||
The chroma curve for each accent is carefully designed to vary smoothly across
|
||||
the lightness spectrum, with the goal of retaining strong color identity in all
|
||||
settings. Additionally, as alluded to above, the (WCAG 2) contrast ratio
|
||||
between any choice of monotone background at a given lightness level and the
|
||||
accent colors is virtually identical ($\pm 0.1$). Put another way, the relative
|
||||
contrast between accents depends only on the _lightness_ of the background
|
||||
monotone, not its hue. *(Note that this is not generally the case; at a fixed
|
||||
lightness level, the contrast between two colors depends on their hue.)*
|
||||
| Palette |
|
||||
|---|
|
||||
|  |
|
||||
|
||||
There are eight monotone-accent pairs, plus a single grey trajectory:
|
||||
|
||||
| Monotone / biome | Accent color | Hue |
|
||||
| --- | --- | --- |
|
||||
| alpine | grey | n/a |
|
||||
| badlands | red | 29 |
|
||||
| chaparral | orange | 62.5 |
|
||||
| savanna | yellow | 104 |
|
||||
| grassland | green | 148 |
|
||||
| reef | cyan | 205 |
|
||||
| tundra | blue | 262 |
|
||||
| heathland | violet | 306 |
|
||||
| moorland | magenta | 350 |
|
||||
|
||||
The `alpine`/`grey` curve has zero chroma (and is thus invariant to hue),
|
||||
varying only in lightness from dark to light grey.
|
||||
|
||||
## Concrete themes
|
||||
|
||||

|
||||
| Dark themes | Light themes |
|
||||
|---|---|
|
||||
|  |  |
|
||||
|
||||

|
||||
Themes are derived from the `monobiome` palette by selecting a monotone base
|
||||
(the "biome"), a base lightness, and a contrast level. Although one can use
|
||||
arbitrary contrast metrics, OKLCH distance (Euclidean distance in OKLab)
|
||||
is designed to capture perceptual distinction. As such, perceptually uniform
|
||||
themes under arbitrary monotones can be generated by calculating the accent
|
||||
colors equidistant from that base. This is equivalent to determining the points
|
||||
at which a sphere centered at the monotone base intersects with the accent
|
||||
curves; the radius of such a sphere effectively determines the theme contrast,
|
||||
and the colors on the sphere surface are equally perceptually distinct relative
|
||||
to the background.
|
||||
|
||||
Themes are derived from the `monobiome` palette by varying both the monotone
|
||||
hue (the "biome") and the extent of the background/foreground lightness (the
|
||||
"harshness"). This is done for both light and dark schemes, and in each case
|
||||
accent colors are selected at a lightness level that ensures each meet a
|
||||
minimum contrast relative to the primary background. The following diagram
|
||||
shows each of the 36 resulting combinations:
|
||||
The following plots show the intersection of the sphere centered at a fixed
|
||||
background color (`alpine` biome with a lightness of 20) under variable radii:
|
||||
|
||||

|
||||
| | `-l 20 -d 0.3` | `-l 20 -d 0.4` | `-l 20 -d 0.5` |
|
||||
|---|---|---|---|
|
||||
| Color visualization |  |  |  |
|
||||
| Editor preview |  |  |  |
|
||||
|
||||
In short, the base lightness (`-l`) dictates the brightness of the background,
|
||||
and the contrast (`-d`) controls how perceptually distinct the accent colors
|
||||
appear with respect to that background. These are free parameters of the
|
||||
`monobiome` model: themes can be generated under arbitrary settings that meet
|
||||
user preferences.
|
||||
|
||||
The "soft" harshness level uses monotone shades closer to the mid-shade
|
||||
(lightness level 55), whereas "hard" harshness uses shades further from it.
|
||||
Once the biome and harshness level are chosen, we're left with a bounded
|
||||
monotone range over which common theme elements can be defined. For example,
|
||||
the following demonstrates how background and foreground elements are chosen
|
||||
for the `monobiome` Vim themes:
|
||||
monotone range over which common theme elements can be defined.
|
||||
|
||||
## Applications
|
||||
When generating full application themes, fixed lightness steps are used in the
|
||||
chosen monotone trajectory to establish consistent levels of distinction
|
||||
between background layers. For example, the following demonstrates how
|
||||
background and foreground elements are chosen for the `monobiome` vim/neovim
|
||||
themes:
|
||||
|
||||
.
|
||||
identifiers, after which any user-provided parameters can be applied
|
||||
automatically. You can read more about how themes are created in
|
||||
[DESIGN](DESIGN.md).
|
||||
|
||||
# Usage
|
||||
This repo provides the 36 theme files for `kitty`, `vim`/`neovim`, and `fzf` 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.
|
||||
This repo provides *relative* theme templates for `kitty`, `vim`/`neovim`, and
|
||||
`fzf` in the `templates/apps` directory, along with *concrete* themes in
|
||||
`app-config/`. You can also find raw palette colors in `templates/apps/groups/`
|
||||
if you want to use them to define static themes for other applications.
|
||||
|
||||
Each of the files in the `app-config/` directory are named according to
|
||||
|
||||
@@ -93,7 +127,7 @@ Each of the files in the `app-config/` directory are named according to
|
||||
```
|
||||
|
||||
For example, `monobiome-tundra-dark-soft.vim` is the Vim theme file for the
|
||||
dark `tundra` variant with the soft harshness level.
|
||||
dark `tundra` variant with a soft harshness level.
|
||||
|
||||
## Applications
|
||||
- `kitty`
|
||||
|
||||
Reference in New Issue
Block a user