mirror of
https://github.com/vh-pfi/australis.git
synced 2026-09-25 21:41:24 -07:00
feat(zed): add Australis Dark theme for Zed
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.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
## 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.
|
||||
Reference in New Issue
Block a user