Released Modus themes 0.10.0

I just published version 0.10.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 GNU ELPA, MELPA, MELPA stable:

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

Below are the release notes.


* 0.10.0

Modus Operandi and Modus Vivendi version 0.10.0

By Protesilaos Stavrou <info@protesilaos.com> on 2020-06-24

This entry records the changes since version 0.9.0 (2020-06-03).  The
present release is focused on stability and internal improvements.

Fixes and adjustments
---------------------

Basil L. Contovounisios, aka @basil-conto, (and also a contributor to
core Emacs) sent several patches that do the following:

+ Fix top-level parentheses so that the results of
  'custom-theme-set-faces' and 'custom-theme-set-variables' are not
  passed as arguments to the first 'custom-theme-set-faces'.

+ Fix the docstrings of the custom 'modus-theme-*' faces.

+ Simplify the syntax of properties assigned to each face.

+ Improve the way styles are inherited by Dired and Ibuffer.

Basil also pointed out an inconsistency with regard to an unwanted
underline effect for the 'doom-modeline-urgent' face in Modus Vivendi.
It was promptly removed.

From my part, I fixed issues 46 and 51 that concerned the way the
compiler would evaluate each theme's palette.  The palette is now
defined as a constant.  Further information:

- https://gitlab.com/protesilaos/modus-themes/-/issues/46
- https://gitlab.com/protesilaos/modus-themes/-/issues/51


Improvements to existing faces
------------------------------

André Alexandre Gomes (@aadcg) provided valuable feedback and
suggestions in issue 50 on the redesign of several 'org-mode' faces.

The thread is long and contains lots of screenshots:
https://gitlab.com/protesilaos/modus-themes/-/issues/50

The changes in outline:

+ Org checkboxes have a subtle background which gives them a more
  pronounced appearance while retaining their overall simplicity.

+ Org dates use a more saturated variant of cyan than they did before.
  It helps distinguish them from their context.  Especially true for
  dates inside of tables.

+ Org agenda dates have also undergone a slight review to match the
  above.

+ Org time grid now uses a more appropriate foreground colour, which has
  been designed specifically for unfocused context.

+ Org todo keywords use a more semantically-correct variant of red,
  rather than the purple one they had before.

+ Org statistics' cookies for pending tasks use a red variant as well
  rather than the previous yellow one, in the interest of consistency
  and to avoid exaggerations.


Other internal refinements
--------------------------

+ Subtle review of the Modus Vivendi palette.  In short, it addresses:

  - Imbalanced levels of luminance and inconsistent differences in hue
    between them and their neighbouring colours (e.g. the greens between
    them, and the greens next to the yellows in the context of syntax
    highlighting).  The result was that they would create an undesirable
    emphatic 'pop out' effect when placed close to more moderate
    colours.

  - Differences in luminance and hue could lead to scenaria where two
    colours could be conflated with each other or otherwise fail to
    perform their intended function.

  - The complete report is on my website:
    https://protesilaos.com/codelog/2020-06-13-modus-vivendi-palette-review/

+ Major review of the 'diredfl' faces, in the interest of improved
  readability and harmony between the various colours.  This benefits
  from the palette changes in Modus Vivendi, but also from a similar
  review to Modus Operandi that was documented in version 0.9.0.

+ Refactor the names of dedicates colours for "marking" purposes.  These
  are used in Dired, Ibuffer, Proced, etc.  Then apply them consistently
  throughout each theme.

+ Make sure that 'stripes' uses the same colours as 'hl-line-mode'.

+ Let symlinks use a more appropriate colour in Dired and Trashed.

+ Refine the use of colour in 'magit-tag', 'eshell-prompt',
  'message-header-name', 'log-edit-header', 'change-log-function',
  'message-mml', 'message-header-name', 'message-separator'.  These are
  subtle (i.e. difficult) tweaks that improve the overall presentation
  in context.

+ Make diff indicators not use an unnecessary background when the
  user-facing option for "subtle diffs" is enabled (check the README for
  the exact name of this option).  This ensures consistency between the
  indicators and the actual scope of the diffs.

+ Add support for the 'minibuffer-line' package and extend existing
  support of the faces used in the built-in Emacs info pages.

My thanks to Basil and André for their contributions!