Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a5f8cbb39 | |||
| eb02be9582 | |||
| 74c22552df |
45
README.md
45
README.md
@@ -30,12 +30,12 @@ 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 |
|
||||
|---|---|
|
||||
| Chroma curves | Color trajectories |
|
||||
|-------------------------------------------------------|------------------------------------------|
|
||||
|  |  |
|
||||
|
||||
| Palette |
|
||||
|---|
|
||||
| Palette |
|
||||
|--------------------------------|
|
||||
|  |
|
||||
|
||||
Chroma curves are designed specifically to establish a distinct role for each
|
||||
@@ -60,8 +60,8 @@ varying only in lightness from dark to light grey.
|
||||
|
||||
## Themes
|
||||
|
||||
| Dark themes | Light themes |
|
||||
|---|---|
|
||||
| Dark themes | Light themes |
|
||||
|----------------------------------------|------------------------------------------|
|
||||
|  |  |
|
||||
|
||||
Themes are derived from the `monobiome` palette by selecting a monotone base
|
||||
@@ -78,10 +78,10 @@ to the background.
|
||||
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 |  |  |  |
|
||||
| | `-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
|
||||
@@ -146,11 +146,6 @@ the `monobiome` CLI:
|
||||
Running these commands in sequence from the repo root should work
|
||||
out-of-the-box, after having installed the CLI tool.
|
||||
|
||||
The `monobiome` CLI
|
||||
produces the scheme file for requested parameters, and the [`symconf`][3] CLI
|
||||
pushes palette colors through the scheme and into the app templates to yield a
|
||||
concrete theme.
|
||||
|
||||
## Applications
|
||||
This repo provides palette-agnostic theme templates for `kitty`,
|
||||
`vim`/`neovim`, and `fzf` in the `templates/` directory. Pre-generated
|
||||
@@ -178,7 +173,7 @@ One can set these themes for the provided applications as follows:
|
||||
```
|
||||
|
||||
Themes are generated using the [`kitty` theme
|
||||
template](templates/apps/kitty/templates/active.theme).
|
||||
template](templates/kitty/active.theme).
|
||||
|
||||
- `vim`/`neovim`
|
||||
|
||||
@@ -193,7 +188,7 @@ One can set these themes for the provided applications as follows:
|
||||
```
|
||||
|
||||
Themes are generated using the [`vim` theme
|
||||
template](templates/apps/nvim/templates/theme.vim).
|
||||
template](templates/nvim/theme.vim).
|
||||
|
||||
- `fzf`
|
||||
|
||||
@@ -206,7 +201,7 @@ One can set these themes for the provided applications as follows:
|
||||
```
|
||||
|
||||
Themes are generated using the [`fzf` theme
|
||||
template](templates/apps/fzf/templates/active.theme).
|
||||
template](templates/fzf/active.theme).
|
||||
|
||||
- Firefox
|
||||
|
||||
@@ -214,13 +209,11 @@ One can set these themes for the provided applications as follows:
|
||||
add-ons][2], and switch between light/dark schemes based on system settings.
|
||||
You can also download raw XPI files for each theme in `app-config/firefox/`,
|
||||
each of which is generated using the [Firefox `manifest.json`
|
||||
template](templates/apps/firefox/templates/none-dark.manifest.json).
|
||||
template](templates/firefox/auto-manifest.json).
|
||||
|
||||
Static [light][4] and [dark][5] themes are additionally available (i.e., that
|
||||
don't change with system settings).
|
||||
|
||||

|
||||
|
||||
## CLI installation
|
||||
A brief theme generation guide was provided in the [Generation
|
||||
section](#generation), making use of the `monobiome` CLI. This tool can be
|
||||
@@ -232,7 +225,7 @@ uv tool install monobiome
|
||||
pipx install monobiome
|
||||
```
|
||||
|
||||
The `monobiome` has provides three subcommands:
|
||||
`monobiome` provides three subcommands:
|
||||
|
||||
- `monobiome palette`: generate palette files from raw parameterized curves
|
||||
|
||||
@@ -295,6 +288,14 @@ The `monobiome` has provides three subcommands:
|
||||
output file to write filled template
|
||||
```
|
||||
|
||||
## Config management
|
||||
The `monobiome` CLI tool attempts to provide the minimal functionality needed
|
||||
to produce customized themes for individual applications. If seeking a more
|
||||
holistic, system-wide approach, you might consider using [`symconf`][3], a
|
||||
general-purpose application config manager. `symconf` provides the templating
|
||||
subsystem used for `monobiome` internals, and can be configured to apply live
|
||||
theme updates to many apps with a single command line invocation.
|
||||
|
||||
|
||||
[1]: https://github.com/isa/TextMate-Themes/blob/master/monoindustrial.tmTheme
|
||||
[2]: https://addons.mozilla.org/en-US/firefox/collections/18495484/monobiome/
|
||||
|
||||
@@ -17,7 +17,7 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
type=str,
|
||||
default="hex",
|
||||
choices=["hex", "oklch"],
|
||||
help="Color notation to export (either hex or oklch)",
|
||||
help="color notation to export (either hex or oklch)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-f",
|
||||
@@ -25,13 +25,13 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
type=str,
|
||||
default="toml",
|
||||
choices=["json", "toml"],
|
||||
help="Format of palette file (either JSON or TOML)",
|
||||
help="format of palette file (either JSON or TOML)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--output",
|
||||
type=str,
|
||||
help="Output file to write palette content",
|
||||
help="output file to write palette content",
|
||||
)
|
||||
|
||||
parser.set_defaults(func=handle_palette)
|
||||
|
||||
@@ -16,13 +16,13 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
"mode",
|
||||
type=str,
|
||||
choices=["dark", "light"],
|
||||
help="Scheme mode (light or dark)"
|
||||
help="scheme mode (light or dark)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"biome",
|
||||
type=str,
|
||||
choices=list(monotone_h_map.keys()),
|
||||
help="Biome setting for scheme."
|
||||
help="biome setting for scheme"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m",
|
||||
@@ -30,7 +30,7 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
type=str,
|
||||
default="oklch",
|
||||
choices=["wcag", "oklch", "lightness"],
|
||||
help="Metric to use for measuring swatch distances."
|
||||
help="metric to use for measuring swatch distances"
|
||||
)
|
||||
|
||||
# e.g., wcag=4.5; oklch=0.40; lightness=40
|
||||
@@ -39,13 +39,13 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
"--distance",
|
||||
type=float,
|
||||
default=0.40,
|
||||
help="Distance threshold for specified metric",
|
||||
help="distance threshold for specified metric",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--output",
|
||||
type=str,
|
||||
help="Output file to write scheme content",
|
||||
help="output file to write scheme content",
|
||||
)
|
||||
|
||||
# these params remain rooted in lightness; no need to accommodate metric
|
||||
@@ -58,13 +58,13 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
"--l-base",
|
||||
type=int,
|
||||
default=20,
|
||||
help="Minimum lightness level (default: 20)",
|
||||
help="minimum lightness level (default: 20)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--l-step",
|
||||
type=int,
|
||||
default=5,
|
||||
help="Lightness step size (default: 5)",
|
||||
help="lightness step size (default: 5)",
|
||||
)
|
||||
|
||||
# gaps
|
||||
@@ -72,19 +72,19 @@ def register_parser(subparsers: _SubparserType) -> None:
|
||||
"--fg-gap",
|
||||
type=int,
|
||||
default=50,
|
||||
help="Foreground lightness gap (default: 50)",
|
||||
help="foreground lightness gap (default: 50)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--grey-gap",
|
||||
type=int,
|
||||
default=30,
|
||||
help="Grey lightness gap (default: 30)",
|
||||
help="grey lightness gap (default: 30)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--term-fg-gap",
|
||||
type=int,
|
||||
default=65,
|
||||
help="Terminal foreground lightness gap (default: 60)",
|
||||
help="terminal foreground lightness gap (default: 60)",
|
||||
)
|
||||
|
||||
parser.set_defaults(func=handle_scheme)
|
||||
|
||||
Reference in New Issue
Block a user