Just published version 1.5.0 of the Modus themes. The detailed release notes are reproduced below.

For any questions pertaining to this publication, feel welcome to contact me.

A patch to update the files that are shipped with Emacs28 will be sent upstream later today (I need a break after taking several hours to write this log). The modus-themes package in GNU ELPA fetches its contents from emacs.git, so expect an update shortly thereafter.


Modus themes version 1.5.0

By Protesilaos Stavrou info@protesilaos.com on 2021-07-15

This entry outlines the set of changes made to the project since the release of version 1.4.0 on 2021-05-25. There have been over 130 commits since then.

Every colour-related modification referenced herein is always implemented in accordance with the primary accessibility objective of the themes for a minimum contrast ratio of 7:1 between background and foreground values in their given combination (the WCAG AAA standard). Such edits also account for colour-coding that is optimised for the needs of users with red-green colour deficiency (deuteranopia or variants).

Here is the URL of the manual: https://protesilaos.com/emacs/modus-themes. Or read it from Emacs by evaluating this form:

(info "(modus-themes) Top")

The themes are built into Emacs version 28 (current development target), and are available on GNU ELPA as well as other archives.

Customisation options

Overview of new style of sets of properties

Several variables now accept a list of symbols as a value. Those represent properties, which can be combined with each other to realise the possible styles. The idea was to simplify their specification in order to make them easier to both maintain and extend. Thanks to Philip Kaludercic for introducing this concept in issue 210: https://gitlab.com/protesilaos/modus-themes/-/issues/210.

The variables are:

Take modus-themes-syntax as an example. Up until version 1.4.0, it would only accept a symbol, signifying a predefined style. So we had the possible value faint and another faint-yellow-comments. To make a third variant of the “faint” aesthetic, such as by combining it with the “alt syntax” and/or “green strings”, we would need to write new presets in the form of faint-green-strings, faint-alt-syntax, faint-alt-syntax-green-strings, faint-green-strings-yellow-comments, faint-alt-syntax-green-strings-yellow-comments. That would have been inefficient, hence why it was not done.

With the new approach of defining a list of properties, those combinations are all possible. Such as:

(setq modus-themes-syntax '(faint alt-syntax))

(setq modus-themes-syntax '(yellow-comments alt-syntax green-strings))

The order in which the properties are set is not significant.

The doc string of each of the aforementioned variables, or the corresponding entry in the manual, provides guidance on how to configure things. The old forms will continue to work for the time being, though they are considered deprecated and will stop being supported at a future date.

Changes in stylistic variants for variables with sets of properties

New variables

Changes to the manual

Faces and face groups

New entries

Newly supported packages:

New faces for already supported groups:

Review of existing entries

Request for feedback on a potential version 2.0.0 of the Modus themes

While we maintain a cautious stance towards preserving the default styles, there are some cases where we might be forced to introduce backward-incompatible changes.

Three such cases that can benefit from user feedback are:

Miscellaneous

Thanks again to everyone involved!