277 lines
10 KiB
Plaintext
277 lines
10 KiB
Plaintext
|
||
|
||
<p>I just published version <code>0.7.0</code> 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 ELPA, MELPA, MELPA stable:</p>
|
||
|
||
<ul>
|
||
<li><code>modus-operandi-theme</code> (light)</li>
|
||
<li><code>modus-vivendi-theme</code> (dark)</li>
|
||
</ul>
|
||
|
||
<p>Below are the release notes copied verbatim.</p>
|
||
|
||
<hr />
|
||
|
||
<h2>Modus Operandi and Modus Vivendi version 0.7.0</h2>
|
||
|
||
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2020-03-30</p>
|
||
|
||
<p>This entry documents the changes since version 0.6.0 (2020-03-01). The
|
||
present release is the largest to date containing 110 commits.</p>
|
||
|
||
<p>All changes conform with the primary objective of this project, which is
|
||
conformance with the WCAG AAA accessibility standard for colour
|
||
contrast. This represents a minimum contrast ratio of 7:1 between a
|
||
given combination of foreground and background colours.</p>
|
||
|
||
<p>All customisation options mentioned herein are off (<code>nil</code>) by default.
|
||
The project’s policy is to offer such features on an “opt-in” basis.
|
||
Refer to the README or each theme’s source code for the names of these
|
||
user-facing symbols.</p>
|
||
|
||
<h2>Major refinements to existing face groups</h2>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>The headline feature of this release is a refined set of colours for
|
||
visualising version-control-system differences (“diffs”). The new
|
||
colours are less intense than before and are designed to better convey
|
||
the meaning of the constructs they apply to. Affected face groups are
|
||
those of <code>magit</code> and <code>diff-mode</code>. A future release will assess how
|
||
similar packages, such as <code>ediff</code>, can benefit from this work.</p>
|
||
</li>
|
||
<li>
|
||
<p>The other major set of changes concerns the colours that apply to
|
||
fringes (see <code>fringe-mode</code>). A new customisation option allows for a
|
||
distinct background for the fringes (courtesy of Anders Johansson in
|
||
commit 80fb704). The default uses the same colours as the main
|
||
buffer’s background. Building on this effort, fringe indicators, such
|
||
as those of <code>flycheck</code> now benefit from an entirely new set of
|
||
background+foreground colour combinations that are designed
|
||
specifically for the fringes.</p>
|
||
</li>
|
||
<li>
|
||
<p>A new customisation option allows users to render <code>org-mode</code> source
|
||
blocks in a distinct background colour. The default is to use the
|
||
same background as the rest of the buffer. When this option is
|
||
enabled, the background colour for the beginning and end line of such
|
||
blocks is extended to the end of the window (using the <code>:extend t</code>
|
||
attribute for >= Emacs 27). Older Emacs versions already extend to
|
||
the end of the window.</p>
|
||
</li>
|
||
<li>
|
||
<p>The colour combination that shows the matching parentheses or
|
||
delimiters has been reviewed. The commit is fairly small and the
|
||
changes are immediately noticeable only to the most discerning of
|
||
eyes. Still, the considerations informing the review imposed a
|
||
rigorous method. Rather than summarise the findings, interested
|
||
readers are advised to refer to commit af3a327: it offers a
|
||
comprehensive analysis on the matter.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<h2>Added support for packages (A-Z)</h2>
|
||
|
||
<ul>
|
||
<li>auctex/tex</li>
|
||
<li>bm</li>
|
||
<li>buffer-expose</li>
|
||
<li>centaur-tabs</li>
|
||
<li>cider (tentative, feedback is much appreciated)</li>
|
||
<li>csv-mode</li>
|
||
<li>dynamic-ruler</li>
|
||
<li>ebdb</li>
|
||
<li>elfeed-score</li>
|
||
<li>flyspell-correct</li>
|
||
<li>fold-this</li>
|
||
<li>freeze-it</li>
|
||
<li>frog-menu</li>
|
||
<li>git-walktree</li>
|
||
<li>helm-switch-shell</li>
|
||
<li>highlight-defined</li>
|
||
<li>highlight-escape-sequences (hes-mode)</li>
|
||
<li>highlight-numbers</li>
|
||
<li>highlight-thing</li>
|
||
<li>hl-todo</li>
|
||
<li>ioccur</li>
|
||
<li>julia</li>
|
||
<li>kaocha-runner</li>
|
||
<li>markup-faces (adoc-mode)</li>
|
||
<li>multiple-cursors</li>
|
||
<li>num3-mode</li>
|
||
<li>org-roam</li>
|
||
<li>org-superstar</li>
|
||
<li>org-treescope</li>
|
||
<li>outline-minor-mode</li>
|
||
<li>paradox</li>
|
||
<li>rainbow-identifiers</li>
|
||
<li>rg</li>
|
||
<li>ripgrep</li>
|
||
<li>sallet (tentative, feedback is much appreciated)</li>
|
||
<li>selectrum</li>
|
||
<li>sesman</li>
|
||
<li>side-notes</li>
|
||
<li>skewer-mode</li>
|
||
<li>stripes</li>
|
||
<li>symbol-overlay</li>
|
||
<li>syslog-mode</li>
|
||
<li>vc-annotate (C-x v g)</li>
|
||
<li>volatile-highlights</li>
|
||
<li>web-mode</li>
|
||
<li>yaml-mode</li>
|
||
</ul>
|
||
|
||
<h3>Note about VC-annotate</h3>
|
||
|
||
<p>Quoting from the relevant note in the project’s README:</p>
|
||
|
||
<pre><code>Due to the unique way `vc-annotate' (`C-x v g') applies colours,
|
||
support for its background mode (`vc-annotate-background-mode') is
|
||
disabled at the theme level.
|
||
|
||
Normally, such a drastic measure should not belong in a theme:
|
||
assuming the user's preferences is bad practice. However, it has
|
||
been deemed necessary in the interest of preserving colour contrast
|
||
accessibility while still supporting a useful built-in tool.
|
||
|
||
If there actually is a way to avoid such a course of action, without
|
||
prejudice to the accessibility standard of this project, then please
|
||
report as much (or contribute as per the information in the
|
||
Contributing section).
|
||
</code></pre>
|
||
|
||
<h2>Overview of refinements to already supported packages</h2>
|
||
|
||
<p>In this section the notion of “dedicated colours” pertains to colour
|
||
values that are reserved for special faces. They are never used for
|
||
syntax highlighting or other common scenaria.</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>Define new background colours for fringe indicators (as noted in the
|
||
first section). Apply them to <code>bm</code>, <code>diff-hl</code>, <code>git-gutter</code>,
|
||
<code>flycheck</code> fringe indicators. All such indicators are now made more
|
||
visible and work better with the new customisation option for
|
||
rendering the fringes in a distinct background.</p>
|
||
</li>
|
||
<li>
|
||
<p>Define dedicated colours for tab-like interfaces. Currently these
|
||
apply only to <code>centaur-tabs</code>. The intention is to eventually
|
||
implement them to the tab modes that ship with Emacs 27, as well as
|
||
any other package that offers such functionality.</p>
|
||
</li>
|
||
<li>
|
||
<p>Define dedicated colours for actions that “mark” items. Use them in
|
||
<code>dired</code>, <code>proced</code>, <code>gnus</code>. An accented background is combined with an
|
||
accented foreground. The intention is to make the underlying
|
||
construct distinct even under circumstances where the mark’s
|
||
background changes, such as when it intersects with <code>hl-line-mode</code> or
|
||
<code>stripes</code>: the accented foreground will still be recognisable as a
|
||
colour that differs from the main foreground. The use of a bold font
|
||
weight further reinforces the intended action.</p>
|
||
</li>
|
||
<li>
|
||
<p>Refine <code>dired</code> faces to account for the new “mark” styles.
|
||
Directories are no longer rendered in a bold weight.</p>
|
||
</li>
|
||
<li>
|
||
<p>Tweak the colours used in the built-in <code>diary</code> and <code>calendar</code> for
|
||
better usability.</p>
|
||
</li>
|
||
<li>
|
||
<p>Tweak <code>deadgrep</code> colours for consistency with packages that offer
|
||
similar functionality.</p>
|
||
</li>
|
||
<li>
|
||
<p>Tweak <code>compilation-line-number</code> in the interest of consistency with
|
||
similar interfaces.</p>
|
||
</li>
|
||
<li>
|
||
<p>Use a more appropriate colour for <code>trailing-whitespace</code>. It now is a
|
||
colour value that was designed specifically as a background.</p>
|
||
</li>
|
||
<li>
|
||
<p>Expand <code>fountain-mode</code> support by covering its new heading faces. The
|
||
headings will be presented in larger font sizes, or using proportional
|
||
fonts, should the user enable the relevant theme customisation options
|
||
(see README or source code).</p>
|
||
</li>
|
||
<li>
|
||
<p>Remove bold weight from matching parentheses in <code>show-paren-mode</code> and
|
||
<code>smartparens</code>. The temporarily applied bold weight can cause
|
||
misalignments while using certain fonts. Also apply the new colours
|
||
for matching delimiters, as documented in the first section.</p>
|
||
</li>
|
||
<li>
|
||
<p>Refine <code>outline-mode</code> colours to be consistent with those of Org’s
|
||
headings.</p>
|
||
</li>
|
||
<li>
|
||
<p>Several usability and colour refinements for <code>helm</code> and related
|
||
packages in that milieu.</p>
|
||
</li>
|
||
<li>
|
||
<p>Remove box property from emphasis markers in the mode line. It
|
||
created inconsistencies with other faces.</p>
|
||
</li>
|
||
<li>
|
||
<p>Refine the colours used in Magit logs, <code>change-log</code>, <code>log-view</code>. They
|
||
are meant to be more distinct from their context, without drawing too
|
||
much attention to themselves.</p>
|
||
</li>
|
||
<li>
|
||
<p>Minor internal fixes for indentation and the like.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<h2>Miscellaneous changes and concluding remarks</h2>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>Add section in the README which documents a legal requirement for all
|
||
potential non-trivial code contributions: the need to assign copyright
|
||
to the Free Software Foundation. The Modus Themes are now distributed
|
||
via the official GNU ELPA repository and copyright over them is
|
||
assigned to the FSF.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add CHANGELOG file which consolidates all tagged release notes such as
|
||
this one.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add new screen shots to the relevant Wiki page, together with detailed
|
||
descriptions on what is being demonstrated:
|
||
https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>Special thanks to Manuel Uberti for reporting several issues and
|
||
offering feedback where appropriate. I was able to add support for lots
|
||
of new packages. While a few among the already supported face groups
|
||
underwent tweaks and refinements. The <code>helm</code> ecosystem benefited the
|
||
most.</p>
|
||
|
||
<p>Thanks to Anders Johansson for the patch that introduced the
|
||
fringes-related customisation option. It inspired me to reconsider the
|
||
use of this particular area of the interface, which eventually led to
|
||
the barrage of commits that refashioned the fringe indicators. A major
|
||
win overall.</p>
|
||
|
||
<p>Thanks to Jonathan Otsuka for fixing an error of mine on the naming of
|
||
some symbols. My apologies for missing it: I will be more careful from
|
||
now on.</p>
|
||
|
||
<p>Note: both patches were small, requiring no copyright assignment.
|
||
Larger contributions are always welcome, though make sure you read the
|
||
section in the README with regard to assigning copyright to the Free
|
||
Software Foundation.</p>
|
||
|
||
<hr />
|
||
|
||
<p>For more information, check the <a href="https://gitlab.com/protesilaos/modus-themes">git repository of the
|
||
modus-themes</a>.</p>
|
||
|
||
|