🏆 I provide private lessons on Emacs, Linux, and Life in general: https://protesilaos.com/coach/. Lessons continue throughout the year.

Released Modus themes 0.5.0

I just published version 0.5.0 of the Modus themes. These are my highly-accessible themes for GNU Emacs. They conform with the WCAG AAA standard for colour contrast accessibility (a minimum contrast ratio of 7:1 between the foreground and background values). You can find the packages on MELPA:

  • modus-operandi-theme (light)
  • modus-vivendi-theme (dark)

This release contains support for several new packages and lots of refinements to existing ones. A lot of work went into making the themes more robust by reviewing the inheritance of styles from one face group to another (in general, the :inherit property should not be used frivolously). Several subtle changes were made to the colour palette of both themes to ensure consistency, enable more possible combinations, and avoid potential ambiguity under certain potential circumstances.

Overall, this release gives me confidence that the themes have reached a fairly stable state. What follows is an overview of the changes since version 0.4.0 (2020-01-02).

Added support for:

  • equake
  • flymake
  • focus
  • fountain (aka fountain-mode)
  • git-lens
  • git-timemachine
  • hi-fill-column
  • highlight-blocks
  • info-colors
  • lsp-mode
  • lsp-ui
  • proced (built-in)
  • regexp-builder (built-in)
  • suggest

Refinements:

  • The header line uses its own dedicated colours. Several changes were made in eww, info, elfeed, magit, flycheck to make sure that any accent value that appears there conforms with the overarching accessibility objective of the Modus themes (contrast ratio of >= 7:1, else WCAG AAA).
  • ivy no longer uses a box style for the current line, as that was not always reliable. Appropriate colours are used instead.
  • org-mode blocks use a foreground value that distinguishes their opening and closing tags from source code comments.
  • The org-ellipsis face was configured to always inherit the looks of its respective heading or element, rather than have its own excessive styling.
  • paren-match has colours that are designed specifically for it. This is done to retain their utility while making sure they are not mistaken for some other type of feedback.
  • magit has explicit styles for the mode line process indicators, instead of inheriting from another face. The intention is to use foreground values that are designed specifically for use on the mode line (the minimum contrast ratio requirement).
  • erc faces have been thoroughly reviewed in the interest of better usability. Its mode line indicators now use appropriate colours.
  • The faces of the messages library have been thoroughly reviewed. This affects various email interfaces, but also elfeed entry metadata headings.
  • whitespace-mode no longer has a newline character that stands out. That kind of emphasis was not necessary, given that the symbol used is a dollar sign, which is already far more visible than a mid dot.
  • font-lock (generic syntax highlighting) has better colour combinations for regexp grouping constructs.
  • rainbow-delimiters was given its missing base error face.
  • git-commit comment action uses a slightly different foreground value than before to better match its context.
  • isearch and query-replace use colours that properly denote each action’s utility.
  • visual-regexp has been reviewed to make the matching groups more distinct from each other.
  • occur and any other buffer that relies on the match face can now benefit from the new colour combinations, in that its results cannot be confused for the active isearch or query-replace or even their lazily highlighted results (or, indeed, of any other search tool).
  • company uses faces for its search feedback that are consistent with other search metaphors.
  • Emacs 27’s new :extend property is only implemented where necessary (note that the latest release is version 26.3).

For more information, check the git repository of the modus-themes.