mirror of
https://github.com/vh-pfi/australis.git
synced 2026-09-17 09:36:00 -07:00
0748522245
Adds a Zed theme generated from the canonical palette in the root README, alongside the existing wezterm and zellij configurations. The 16 terminal colors carry over unchanged from wezterm/config.lua. Syntax highlighting follows the spec's stated preference order (blue, cyan, green) with the Dawn accents reserved for semantic signals and the rare token roles. Zed addresses UI surfaces the 16-color terminal palette does not define. Two neutrals are derived for chrome (#2a2e39, L19) and elevated surfaces (#313440, L22), both interpolated in CIELAB along the palette's own neutral ramp so they sit on the ramp the spec defines. ANSI dim variants are mixed 45% toward the background in LAB to preserve hue. Overlays use an alpha channel over palette colors rather than new opaque values. The theme is generated by build-theme.py, which validates output against the live Zed theme schema (v0.2.0) and fails if any of its 142 style keys is missing.
80 lines
3.2 KiB
Markdown
80 lines
3.2 KiB
Markdown
## Zed Australis Dark
|
|
|
|
### Installation Instructions
|
|
|
|
Copy `australis-dark.json` into your Zed themes directory:
|
|
|
|
```sh
|
|
mkdir -p ~/.config/zed/themes
|
|
cp australis-dark.json ~/.config/zed/themes/
|
|
```
|
|
|
|
Zed loads themes from that directory without a restart. Select
|
|
**Australis Dark** from `theme selector: toggle` (`cmd-k cmd-t`), or set it
|
|
in `settings.json`:
|
|
|
|
```json
|
|
"theme": {
|
|
"mode": "dark",
|
|
"dark": "Australis Dark"
|
|
}
|
|
```
|
|
|
|
### Palette usage
|
|
|
|
The 16 terminal colors are carried over unchanged from
|
|
[`wezterm/config.lua`](../wezterm/config.lua). Syntax highlighting follows the
|
|
spec's stated preference order — blue, then cyan, then green — with the Dawn
|
|
accents kept rare:
|
|
|
|
| Role | Color |
|
|
| :-------------------------------------- | :------------------------------- |
|
|
| Keywords, tags | Blue `#6388d8` |
|
|
| Functions, methods | Bright cyan `#42dcd1` |
|
|
| Types, constructors, enums | Cyan `#00b1a8` |
|
|
| Strings | Green `#16b866` |
|
|
| String escapes, regex | Bright green `#51e08a` |
|
|
| Numbers, booleans, constants | Bright blue `#a4c4ff` |
|
|
| Comments | Dark 50 `#6e7882` |
|
|
| Operators, punctuation | Dark 60 `#86929d` |
|
|
| Decorators, `self`, preprocessor | Magenta `#9d78ff` / `#d8adff` |
|
|
|
|
Dawn accents otherwise appear only where the editor demands a semantic
|
|
signal: red for errors and deletions, yellow for warnings and modifications,
|
|
bright yellow for search matches (kept distinct from the blue selection and
|
|
the cyan bracket match).
|
|
|
|
### Derived colors
|
|
|
|
Zed addresses UI surfaces the 16-color terminal palette does not define. Two
|
|
neutrals are therefore derived, both interpolated in CIELAB **along the
|
|
palette's own neutral ramp** so they land on the ramp the spec defines rather
|
|
than introducing a foreign hue:
|
|
|
|
| Derived | Hex | LAB L\* | Ramp position | Used for |
|
|
| :------- | :-------- | :------ | :--------------- | :------------------------------ |
|
|
| Chrome | `#2a2e39` | 19 | 40% of L15 → L25 | Tab bar, panels, status bar |
|
|
| Elevated | `#313440` | 22 | 70% of L15 → L25 | Popovers, modals, context menus |
|
|
|
|
The editor canvas itself remains the palette's black `#222531`, with the
|
|
active tab fusing into it. ANSI `dim_*` variants, which Zed requires and the
|
|
palette does not specify, are each mixed 45% toward the background in LAB so
|
|
hue is preserved.
|
|
|
|
Overlay colors (selections, hover states, status backgrounds) use an alpha
|
|
channel over the palette color rather than a new opaque value, keeping the
|
|
underlying color recognizable.
|
|
|
|
### Regenerating the theme
|
|
|
|
`australis-dark.json` is generated, not hand-maintained. Edit
|
|
`build-theme.py` and re-run it:
|
|
|
|
```sh
|
|
python3 build-theme.py australis-dark.json
|
|
```
|
|
|
|
The script requires no third-party packages. It fetches the live Zed theme
|
|
schema and fails if any of the 142 style keys it defines is missing, or if a
|
|
key outside the schema is emitted; the check is skipped when offline.
|