GNU ELPA - modus-themes


Elegant, highly legible and customizable themes
modus-themes-4.4.0.tar (.sig), 2024-Mar-31, 1.50 MiB
Protesilaos Stavrou <>
Atom feed
Browse ELPA's repository
CGit or Gitweb

To install this package from Emacs, use package-install or list-packages.

Full description

Modus themes for GNU Emacs


Highly accessible themes, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA). They also are optimised for users with red-green colour deficiency.

The themes are very customisable and provide support for a very wide range of packages. Their manual is detailed so that new users can get started, while it also provides custom code for all sorts of more advanced customisations.

Since August 2020, the original Modus themes (modus-operandi, modus-vivendi) are built into Emacs version 28 or higher. Emacs 28 ships with modus-themes version 1.6.0. Emacs 29 includes version 3.0.0. Emacs 30 provides a newer, refactored version that thoroughly refashions how the themes are implemented and customized. Such major versions are not backward-compatible due to the limited resources at my disposal to support multiple versions of Emacs and of the themes across the years.

Old versions

modus-themes-4.3.0.tar.lz2023-Sep-19 206 KiB
modus-themes-4.2.0.tar.lz2023-May-30 202 KiB
modus-themes-4.1.1.tar.lz2023-Feb-23 194 KiB
modus-themes-3.0.0.tar.lz2022-Oct-28 138 KiB
modus-themes-2.7.1.tar.lz2022-Oct-01 137 KiB
modus-themes-2.6.0.tar.lz2022-Aug-19 137 KiB
modus-themes-2.5.0.tar.lz2022-Aug-03 136 KiB
modus-themes-2.4.1.tar.lz2022-Jun-01 133 KiB
modus-themes-2.3.0.tar.lz2022-Apr-01 132 KiB
modus-themes-2.2.0.tar.lz2022-Feb-23 128 KiB
modus-themes-2.1.0.tar.lz2022-Feb-17 127 KiB
modus-themes-2.0.0.tar.lz2021-Dec-25 118 KiB
modus-themes-2.0.0.tar.lz2021-Dec-25 118 KiB
modus-themes-1.7.0.tar.lz2021-Nov-18 122 KiB
modus-themes-1.6.0.tar.lz2021-Sep-29 117 KiB
modus-themes-1.5.0.tar.lz2021-Jul-15 114 KiB
modus-themes-1.5.0.tar.lz2021-Jul-15 114 KiB
modus-themes-1.4.0.tar.lz2021-May-25 108 KiB
modus-themes-1.3.2.tar.lz2021-Apr-18 100 KiB
modus-themes-1.2.4.tar.lz2021-Mar-1694.2 KiB


This document contains the release notes that are included in each tagged commit on the project's main git repository:

The newest release is at the top. Since the notes are meant to be in plain text format, I copy them verbatim.

For further details, please consult these additional resources:



Before I cover the changes, a brief note about the canonical source of the modus-themes source code and corresponding documentation.

The modus-themes are built into Emacs, as of version 28, but they are not developed in emacs.git: I maintain my own Git repository ( and sync with emacs.git whenever I publish a new version, such as this one. This means that my code is often ahead of the one in the Emacs tree (including the master branch). Similarly, the official manual, which is hosted on my website (, covers topics not found in the corresponding web pages.

In the opening section of the manual I include references to the canonical sources, but I still get comments about GNU web pages that I do not control. Please check those links before reporting issues that I can do nothing about.

No more SourceHut

Development continues on GitHub with GitLab as a mirror. I explained my reasons here:

This is a change that affects all my Emacs packages.

Code blocks now have a background by default

The user option modus-themes-org-blocks is obsolete. All code blocks now have a subtle grey background out-of-the-box. The block delimiter lines, such as the #+begin_src in Org mode, use the same background as the block's contents. This produces a style that (i) is easy to notice and (ii) employs minimal colouration. Furthermore, we no longer have any discrepancy between Org and similar modes like Markdown.

Every theme has relevant semantic palette mappings to affect the underlying faces:

  • bg-prose-block-delimiter
  • fg-prose-block-delimiter
  • bg-prose-block-contents

The old prose-block is now renamed to fg-prose-block-delimiter. Please update any such references in your configuration file.

Users can customise those either for all themes via the user option modus-themes-common-palette-overrides or on a per-theme basis with something like modus-operandi-palette-overrides. The manual includes ready-to-use code samples that showcases the numerous permutations made possible by these new mappings:

The old option to affect the user option org-src-block-faces as to have a different background for each specified programming language is no longer available. The previous design was inflexible, as I was hardcoding values for a few languages. Whereas it is better to empower the user with the choice of language->colour association. The manual shows how to do this:

More semantic mappings more inline code in prose-centric modes

For Org, Markdown, and related we have semantic palette mappings that target inline code constructs. For example, in Org we can have text inside of tilde signs to mark it up as code. In prior versions, the mappings were limited to just a foreground, but now they cover … …