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.
3.2 KiB
Zed Australis Dark
Installation Instructions
Copy australis-dark.json into your Zed themes directory:
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:
"theme": {
"mode": "dark",
"dark": "Australis Dark"
}
Palette usage
The 16 terminal colors are carried over unchanged from
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:
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.