Lambda-Emacs / lambda-themes

A set of four light and dark themes for Emacs.
160 stars 7 forks source link

Export palette for each theme #7

Open ifinkelstein opened 1 year ago

ifinkelstein commented 1 year ago

First, thank you for your tireless work on λ-emacs! I really enjoy λ-themes but sometimes need to tweak faces for improved readability.

To maintain consistency, it would be lovely if the package exported the entire palette for each theme as a (NAME . HEX) list.

For example, modus-themes exports:

(defconst modus-themes-operandi-colors
  '(;; base values
    (bg-main . "#ffffff") (fg-main . "#000000")
    (bg-dim . "#f8f8f8") (fg-dim . "#282828")
    (bg-alt . "#f0f0f0") (fg-alt . "#505050")
    ;; specifically for on/off states and must be combined with
    ;; themselves, though the backgrounds are also meant to be used with
    ;; other "active" values, defined further below; bg-active-accent
    ;; can work as a substitute for bg-active
    (bg-active . "#d7d7d7") (fg-active . "#0a0a0a")
    (bg-inactive . "#efefef") (fg-inactive . "#404148")
    (bg-active-accent . "#d0d6ff")
    ;; these special values are intended as alternatives to the base
    ;; values for cases where we need to avoid confusion between the
    ;; highlighted constructs; they must either be used as pairs based
    ;; on their name or each can be combined with {fg,bg}-{main,alt,dim}
    ;; always in accordance with their role as background or foreground
    (bg-special-cold . "#dde3f4") (bg-special-faint-cold . "#f0f1ff") (fg-special-cold . "#093060")
    (bg-special-mild . "#c4ede0") (bg-special-faint-mild . "#ebf5eb") (fg-special-mild . "#184034")
    (bg-special-warm . "#f0e0d4") (bg-special-faint-warm . "#fef2ea") (fg-special-warm . "#5d3026")
    (bg-special-calm . "#f8ddea") (bg-special-faint-calm . "#faeff9") (fg-special-calm . "#61284f")
   ...

Thank you again

mclearc commented 1 year ago

Thanks for this suggestion. I'd be happy to do this, but I'm not immediately sure if there is a straightforward way to do ths (I may just email Prot and see what he says...). If you have any suggestions let me know.

In addition, if there are readability problems please do feel free to open an issue here. I wish I had time to more extensively test faces, but in some cases I'm afraid I've guessed or failed to anticipate edge cases. And in other cases I've made decisions that I'm not super firm on so could be convinced a change is necessary. So I am very happy to tweak things.

ifinkelstein commented 1 year ago

Thanks for your prompt feedback. My elisp-fu isn't strong enough to suggest anything more elegant than his defconst. You'd have to output four of these alists, one for each theme type.

For now, I'm just fiddling with outline-* to improve readability on my system, similar to your earlier dark bespoke-theme.

For inspiration, you may also want to look at the following discussion on using color in scientific figures. I've grown pretty fond of using the Okabe-Ito color scale in my work.