unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Protesilaos Stavrou <info@protesilaos.com>
To: Richard Stallman <rms@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: solarized
Date: Wed, 16 Sep 2020 11:27:44 +0300	[thread overview]
Message-ID: <87wo0uazy7.fsf@protesilaos.com> (raw)
In-Reply-To: <E1kIPdf-0000mw-FO@fencepost.gnu.org> (Richard Stallman's message of "Wed, 16 Sep 2020 01:05:51 -0400")

Richard Stallman <rms@gnu.org> [2020-09-16, 01:05 -0400]:

>   > I agree.  It is practically impossible to design for accessibility using
>   > colours that are equally accessible on light and dark backgrounds, while
>   > also remaining fairly distinct between themselves.  The background has
>   > to be a given, so that all foreground values can be selected
>   > accordingly.
>
> I think you are right.  But this suggests an idea to me.  Would it
> make sense to design a color palette, in the same systematic way as
> Solarized, but with only dark backgrounds, and the other colors meant
> to contrast with those?
>
> And then invert it for light backgrounds?

So you mean to develop two distinct sets of colours?  One set consists
of dark backgrounds and appropriate variants of red, green, blue,
etc. that are meant to work well with those backgrounds.  Then another
set for the light version, again with bespoke variants of red, green,
blue, etc.

I think that is desirable if you plan to develop for a minimum WCAG
accessibility target of 4.5:1 colour contrast (as noted in my previous
message) without facing any artificial constraint.

If someone comes up with an implementation of such a new theme framework
that is sufficiently different from the current themes, I am prepared to
send feedback with regard to the choice of colour values.

* * *

On another note, do we really need to strictly conform with the
16-colour palette?  I understand this is the standard for terminal
emulators (maybe not all of them), but Emacs has more options than that.
Perhaps define an "extended palette" for GUIs and let the 16-colour
"base palette" for TTYs.

In my experience, 16 colours is too limited of a set to design bespoke,
usable, and pleasing interfaces that match the wide array of needs an
Emacs user has.  For example, you need a set of slightly accented
backgrounds that are not the same as the standard accented foregrounds
(red/green/blue/etc), such as to display diff buffers.  Inverting the
main background with the standard accented foreground "just works"
though it leads to too intense, too crude of a result, i.e. it is
sub-optimal due to an unnecessary compromise.  Then you need another
shade of such accented backgrounds to also paint refined (word-wise)
changes in diffs.  For Magit, if you use that, you may need a third
variant for the focused diff hunk…

Extend this to isearch's current and lazy matches, occur's matches which
should not be the same as isearch's to avoid conflicts (because you can
search in an occur buffer), the regexp groups of re-builder, the
numerous components of completion frameworks like Ivy/Helm, and so on.

To me colours are akin to a tool kit: use the right set for the job.
Keep the 16 colour "base palette" for terminal emulators and let GUI
have as many as would be deemed necessary in the "extended palette".

Even the Solarized theme for Emacs defines far more colours[0] than the
original 16 in Ethan Schoonover's work.[1] It thus is not a faithful
implementation of Solarized, strictly speaking (though I obviously am
okay with that).

[0]: https://github.com/bbatsov/solarized-emacs/blob/master/solarized-palettes.el
[1]: https://ethanschoonover.com/solarized/

-- 
Protesilaos Stavrou
protesilaos.com

  reply	other threads:[~2020-09-16  8:27 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14  3:48 solarized Richard Stallman
2020-09-15  8:29 ` solarized Protesilaos Stavrou
2020-09-15  9:14   ` solarized Yuri Khan
2020-09-15 10:16     ` solarized Protesilaos Stavrou
2020-09-15 13:39       ` solarized Theodor Thornhill
2020-09-15 14:05         ` solarized Gerry Agbobada
2020-09-15 14:40           ` Theme generator (was: solarized) Stefan Monnier
2020-09-15 16:26             ` Theme generator Arthur Miller
2020-09-15 20:14               ` Stefan Monnier
2020-09-15 20:35                 ` Stefan Monnier
2020-09-15 20:44                   ` Arthur Miller
2020-09-16  1:49             ` Theme generator (was: solarized) Tim Cross
2020-09-17  0:25               ` chad
2020-09-17 14:25                 ` Theme generator Arthur Miller
2020-09-16  5:03             ` Theme generator (was: solarized) Richard Stallman
2020-09-15 20:28         ` solarized Protesilaos Stavrou
2020-09-15 20:50           ` solarized Praharsh Suryadevara
2020-09-16  5:05       ` solarized Richard Stallman
2020-09-16  8:27         ` Protesilaos Stavrou [this message]
2020-09-16 13:38           ` solarized Arthur Miller
2020-09-17  3:57           ` solarized Richard Stallman
2020-09-17  7:53             ` solarized Gian Uberto Lauri
2020-09-17 15:56               ` solarized Drew Adams
2020-09-18  4:08               ` solarized Richard Stallman
2020-09-18  4:08               ` solarized Richard Stallman
2020-09-18 16:44                 ` solarized Drew Adams
2020-09-17 14:11             ` solarized Arthur Miller
2020-09-17 23:39               ` solarized Tim Cross
2020-09-18  4:13                 ` solarized Richard Stallman
2020-09-18  5:49                   ` solarized Tim Cross
2020-09-18  6:43                   ` solarized Arthur Miller
2020-09-16 13:06         ` solarized Arthur Miller
2020-09-17  3:53           ` solarized Richard Stallman
2020-09-15 11:26   ` solarized Göktuğ Kayaalp
2020-09-15 12:15     ` solarized Elias Mårtenson
2020-09-15 12:56       ` solarized Göktuğ Kayaalp
2020-09-16  1:30         ` solarized Tim Cross
2020-09-16 10:21           ` solarized Göktuğ Kayaalp
2020-09-16 12:53             ` solarized Arthur Miller
2020-09-16 22:09             ` solarized Tim Cross
2020-09-17 14:29               ` solarized Arthur Miller
2020-09-18 13:32               ` solarized Stefan Kangas
2020-09-18 15:53                 ` solarized Arthur Miller
2020-09-18 16:03                 ` solarized Arthur Miller
2020-09-19  4:00                 ` solarized Richard Stallman
2020-09-20 20:18                   ` solarized Bozhidar Batsov
2020-09-15 12:05   ` WCAG AAA and Emacs themes Dmitry Gutov
2020-09-15 20:22     ` Protesilaos Stavrou
  -- strict thread matches above, loose matches on Subject: below --
2020-09-16 18:07 solarized Protesilaos Stavrou
2020-09-17 14:55 ` solarized Arthur Miller
2020-09-17 15:27 ` solarized Arthur Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wo0uazy7.fsf@protesilaos.com \
    --to=info@protesilaos.com \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).