/basic-theme.el

Minimal color theme for Emacs using base16 colors.

Primary LanguageEmacs Lisp

basic

Minimalistic light color theme for GNU Emacs.

https://melpa.org/packages/basic-theme-badge.svg

Screenshots

Scratch buffer:

https://raw.githubusercontent.com/fgeller/basic-theme.el/master/screenshots/scratch.png

Emacs Lisp buffer:

https://raw.githubusercontent.com/fgeller/basic-theme.el/master/screenshots/emacs-lisp.png

Magit buffers:

https://raw.githubusercontent.com/fgeller/basic-theme.el/master/screenshots/magit.png

Details

The theme attempts to reduce the usage of colors to a minimum based on my personal preferences. It’s not fully monochrome, for example diffs and active regions are distinguished via colors. The theme assumes no font-lock, i.e. (global-font-lock-mode 0), so there is very little customization for syntax aware faces. The used colors are from the base16 set.

By default the mode-line faces are using the same colors for fore- and background to reduce the noise. I use a little helper to toggle the color and face height of relevant faces similar to the following:

(defun mode-line-visual-toggle ()
  (interactive)
  (let ((faces-to-toggle '(mode-line mode-line-inactive))
        (invisible-color "#e8e8e8")
        (visible-color "#a1b56c"))
    (cond ((string= visible-color (face-attribute 'mode-line :background))
           (mapcar (lambda (face)
                     (set-face-background face invisible-color)
                     (set-face-attribute face nil :height 20))
                   faces-to-toggle))
          (t
           (mapcar (lambda (face)
                     (set-face-background face visible-color)
                     (set-face-attribute face nil :height (face-attribute 'default :height)))
                   faces-to-toggle)))))

For example:

https://raw.githubusercontent.com/fgeller/basic-theme.el/master/screenshots/mode-line.png