6 Commits
1.5.2 ... 1.5.5

Author SHA1 Message Date
6e684a9c4e fix scheme mapping for magenta 2026-03-05 13:40:17 -08:00
Kevin Hovsäter
1dcf75a360 Add support for Ghostty 2026-03-04 20:18:25 -08:00
b580f47679 sync version with pypi 2026-02-03 21:26:52 -08:00
b2e80a9f35 bump generated config versions 2026-02-02 19:24:17 -08:00
534f2423e9 track missing parameter file in package data 2026-01-28 01:29:53 -08:00
b5b9b12174 update figure references to latest in README 2026-01-22 20:00:00 -08:00
44 changed files with 126 additions and 14 deletions

1
.gitignore vendored
View File

@@ -17,7 +17,6 @@ docs/_build/
# local
/Makefile
data/
archive/
notebooks/color_spaces_manyview.ipynb

View File

@@ -32,11 +32,11 @@ smoothly as a function of lightness within sRGB gamut bounds.
| Chroma curves | Color trajectories |
|----------------------------------------------------------|------------------------------------------|
| ![Chroma curves](images/release/1.5.1/chroma-curves.png) | ![Trajectories](images/trajectories.gif) |
| ![Chroma curves](images/release/1.5.4/chroma-curves.png) | ![Trajectories](images/trajectories.gif) |
| Palette |
|----------------------------------------------|
| ![Palette](images/release/1.5.1/palette.png) |
| ![Palette](images/release/1.5.4/palette.png) |
Chroma curves are designed specifically to establish a distinct role for each
accent and are non-intersecting over the lightness domain (hence the distinct
@@ -143,16 +143,23 @@ using the `monobiome` CLI:
(`grassland`). Every part of this process can be customized: the scheme
parameters, the scheme definitions/file, the app template.
The separation of duties here facilitates robustness: the palette colors can be
tweaked (across versions, say) without changing how those colors get used in
app themes. Scheme files don't hardcode color values, and app templates don't
refer to palette variables at all. Scheme files bridge palette colors with
*intended uses*, and templates need only align those uses under an app's
expected config syntax.
Running these commands in sequence from the repo root should work
out-of-the-box after having installed the CLI tool.
## Applications
This repo provides palette-agnostic theme templates for `kitty`,
`vim`/`neovim`, and `fzf` in the `templates/` directory. Pre-generated
*concrete* themes can be found in `app-config/`, if you'd like to try an
example out-of-the-box without using the `monobiome` CLI. Raw
palette colors can be found in `colors/` if you want to use them to define
static themes for other applications.
This repo provides palette-agnostic theme templates for `ghostty`,
`kitty`, `vim`/`neovim`, and `fzf` in the `templates/` directory.
Pre-generated *concrete* themes can be found in `app-config/`, if you'd
like to try an example out-of-the-box without using the `monobiome` CLI.
Raw palette colors can be found in `colors/` if you want to use them to
define static themes for other applications.
Themes files in the `app-config/` directory are generated for light and dark
modes of each biome, and named according to the following pattern:

View File

@@ -1,4 +1,4 @@
version = "1.5.2"
version = "1.5.4"
[alpine]
l10 = "#030303"

View File

@@ -1,4 +1,4 @@
version = "1.5.2"
version = "1.5.4"
[alpine]
l10 = "oklch(10.0% 0.0000 0.0)"

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -111,7 +111,7 @@ def handle_scheme(args: Namespace, parser: ArgumentParser) -> None:
"cyan": "cyan",
"blue": "blue",
"violet": "violet",
"magenta": "orange",
"magenta": "magenta",
}
term_color_map = {
"red": "red",

View File

@@ -0,0 +1,65 @@
L_min = 10
L_max = 98
L_step = 5
[monotone_C_map]
alpine = 0
badlands = 0.011
chaparral = 0.011
savanna = 0.011
grassland = 0.011
reef = 0.011
tundra = 0.011
heathland = 0.011
moorland = 0.011
[h_weights]
red = 3.0
orange = 3.8
yellow = 3.8
green = 3.8
cyan = 3.8
blue = 3.6
violet = 3.0
magenta = 3.6
[h_L_offsets]
red = 0
orange = -5.5
yellow = -13.5
green = -12.5
cyan = -10.5
blue = 9
violet = 7
magenta = 2
[h_C_offsets]
red = 0
orange = -0.015
yellow = -0.052
green = -0.08
cyan = -0.009
blue = -0.01
violet = -0.047
magenta = -0.1
[monotone_h_map]
alpine = 0
badlands = 29
chaparral = 62.5
savanna = 104
grassland = 148
reef = 205
tundra = 262
heathland = 306
moorland = 350
[accent_h_map]
red = 29
orange = 62.5
yellow = 104
green = 148
cyan = 205
blue = 262
violet = 306
magenta = 350

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "monobiome"
version = "1.5.2"
version = "1.5.5"
description = "Monobiome color palette"
requires-python = ">=3.12"
authors = [

41
templates/ghostty/config Normal file
View File

@@ -0,0 +1,41 @@
# base settings
background = f{{term.background}}
foreground = f{{term.foreground}}
selection-background = f{{term.selection_bg}}
selection-foreground = f{{term.selection_fg}}
cursor-color = f{{term.cursor}}
cursor-text = f{{term.cursor_text}}
# black
palette = 0=f{{term.normal.black}}
palette = 8=f{{term.bright.black}}
# red
palette = 1=f{{term.normal.red}}
palette = 9=f{{term.bright.red}}
# green
palette = 2=f{{term.normal.green}}
palette = 10=f{{term.bright.green}}
# yellow
palette = 3=f{{term.normal.yellow}}
palette = 11=f{{term.bright.yellow}}
# blue
palette = 4=f{{term.normal.blue}}
palette = 12=f{{term.bright.blue}}
# magenta (red)
palette = 5=f{{term.normal.magenta}}
palette = 13=f{{term.bright.magenta}}
# cyan (blue)
palette = 6=f{{term.normal.cyan}}
palette = 14=f{{term.bright.cyan}}
# white
palette = 7=f{{term.normal.white}}
palette = 15=f{{term.bright.white}}

2
uv.lock generated
View File

@@ -882,7 +882,7 @@ wheels = [
[[package]]
name = "monobiome"
version = "1.5.2"
version = "1.5.5"
source = { editable = "." }
dependencies = [
{ name = "coloraide" },