# Changelog

## master (unreleased)

## 2.10.0 (2026-06-01)

### New features

* Introduce a semantic color palette layered on top of the positional palette. Faces now reference meaning-based names like `zenburn-comment`, `zenburn-string`, `zenburn-keyword`, `zenburn-error`, and `zenburn-diff-added-bg` instead of `zenburn-green`, `zenburn-red`, etc. Users can remap meanings without touching the base palette via the new `zenburn-override-semantic-colors-alist` customization. Migrated so far: `font-lock`, basic `success`/`warning`, and the `diff` section (which also pulls the previously hardcoded diff backgrounds into named entries).
* Style the built-in `error` face explicitly. A handful of faces (`eww-invalid-certificate`, `git-annex-dired-annexed-unavailable`, `realgud-bp-enabled-face`) already inherited from it but previously picked up stock Emacs's red rather than the Zenburn palette.
* Add `completion-preview` support (Emacs 30+).
* Add `next-error-message` (Emacs 28+) and `header-line-highlight` (Emacs 28+).
* Add `read-multiple-choice-face`.
* Extend `tab-line` coverage with `tab-line-tab-modified`, `tab-line-tab-special`, `tab-line-tab-inactive-alternate`, `tab-line-tab-group`, `tab-line-highlight`, and `tab-line-close-highlight`.
* Extend `eglot` coverage with `eglot-mode-line`, `eglot-parameter-hint-face`, and `eglot-type-hint-face`.
* Add `lsp-mode` and `lsp-ui` support.
* Add `hl-todo` support.
* Add `nerd-icons` support.
* Add `helpful` support.
* Add `wgrep` support.
* Add `multiple-cursors` support.
* Add `eldoc` support (`eldoc-highlight-function-argument`).
* Add `pulse` support.
* Add `treemacs` support.
* Add `breadcrumb` support.
* Add `denote` support.
* Add `jinx` support.
* Add `symbol-overlay` support.
* Add `citar` support.
* Add `corfu-popupinfo` face.
* Add `flymake-end-of-line-diagnostics-face` and `flymake-{error,warning,note}-echo` faces.

### Bug fixes

* Fix three compilation faces that were theming the wrong symbol: `compilation-column-face`, `compilation-error-face`, and `compilation-warning-face` are defcustoms holding face names, not faces themselves, so the theme entries did nothing. Renamed to the real faces `compilation-column-number`, `compilation-error`, and `compilation-warning`.
* Drop ten more dead `*-face` theme entries that were setting specs on defcustoms instead of faces (no behavioral effect): `compilation-face`, `compilation-info-face`, `compilation-line-face`, `compilation-message-face`, `compilation-enter-directory-face`, `compilation-leave-directory-face`, `grep-context-face`, `grep-error-face`, `grep-hit-face`, `grep-match-face`, and `hl-line-face`. Their real targets are either already themed under the correct name or generic faces (`shadow`, `underline`) we shouldn't override.

### Changes

* Drop face entries for 13 abandoned/superseded third-party packages: `ace-jump` (use `avy`), `context-coloring`, `dim-autoload`, `egg` (use `magit`), `guide-key` (use `which-key`), `highlight-symbol` (use `symbol-overlay`), `irfc`, `jabber-mode`, `linum-mode` (use built-in `display-line-numbers-mode`), `mew`, `nav`, `mumamo` (use `polymode`), `sx`. Also drop variable settings for `company-quickhelp` and `fci-rule-color` (use built-in `display-fill-column-indicator-mode`).
* Replace the internal `z-variable-pitch` macro shim with a real `zenburn-variable-pitch` face that headings inherit from. `zenburn-use-variable-pitch` still toggles the default behavior (inherit `variable-pitch` vs `default`), and users can now also customize `zenburn-variable-pitch` directly via `M-x customize-face` for finer-grained control.
* Promote `zenburn-use-variable-pitch`, `zenburn-scale-org-headlines`, and `zenburn-scale-outline-headlines` from plain `defvar`s to boolean `defcustom`s so they show up in `M-x customize-group RET zenburn-theme` and accept safe file-local values.
* Drop the legacy `((class color) (min-colors 89))` display-class dance and the obsolete low-color terminal fallbacks (`:inverse-video`, swapped fg/bg, monochrome `:weight bold`) for `mode-line`, `region`, `diff-header`, `diff-file-header`, `hl-line`, `hl-line-face`, and `hl-sexp-face`. Modern terminals all qualify as full-color, so the branching no longer earns its keep.
...
...
