My Dracula Theme

Table of Contents

My favorite theme is Dracula which I use for a lot of different applications. Of course, there is also a port for Emacs. I use almost all of the given settings, but heavily customized the appearance of Org mode.

1 Color Palette

The original color palette from the Dracula theme.

ColorName
fg1
fg2
fg3
fg4
bg1
bg2
bg3
bg4
bg5
bg6
key2
key3
builtin
keyword
const
comment
func
str
type
var
warning
rainbow-1
rainbow-2
rainbow-3
rainbow-4
rainbow-5
rainbow-6
rainbow-7
rainbow-8
rainbow-9
rainbow-10
eph-verbatim
eph-code

2 Org Mode Faces

These face settings represent my constant struggle to make Org mode more visually pleasing.

;; org-agenda
(org-agenda-date :foreground ,fg1)
(org-agenda-date-today :foreground ,fg1)
(org-agenda-date-weekend :foreground ,fg3 :weight normal)
(org-agenda-dimmed-todo-face :foreground ,comment)
(org-agenda-done :foreground ,rainbow-6)
(org-agenda-structure :foreground  ,fg3 :background ,bg2 :weight bold)

;; important fix for variable pitch mode
;; otherwise indents like within tables won't work well
;; see https://lepisma.github.io/2017/10/28/ricing-org-mode/
(org-indent
(:inherit org-hide)
(:inherit (org-hide fixed-pitch)))

;; everything related to (code) blocks
(org-block :inherit fixed-pitch :foreground ,rainbow-5)
(org-block-begin-line :inherit fixed-pitch :foreground ,bg4)
(org-block-end-line :inherit fixed-pitch :foreground ,bg4)

(org-checkbox :inherit fixed-pitch :weight bold)
(org-code :foreground ,rainbow-7)
(org-date :foreground ,rainbow-2 :underline t)

(org-column :background ,bg4)
(org-column-title :inherit org-column :weight bold :underline t)

(org-document-info :foreground ,rainbow-8)
(org-document-info-keyword :inherit fixed-pitch :foreground ,bg4)
(org-special-keyword :inherit fixed-pitch :foreground ,bg4)
(org-meta-line :inherit fixed-pitch :foreground ,bg4)
(org-property-value :inherit fixed-pitch :foreground ,bg4)


(org-todo :inherit fixed-pitch :foreground ,rainbow-5 :bold t :background ,bg2)
(org-done :inherit fixed-pitch :foreground ,rainbow-6)
(org-headline-done :foreground ,comment :bold nil :strike-through t)

(org-ellipsis :foreground ,comment)
(org-footnote :foreground ,rainbow-8)
(org-formula :foreground ,rainbow-4)
(org-hide :foreground ,bg1 :background ,bg1)

(org-document-title :inherit bold :height 300)
(org-level-1 :inherit bold :height 1.25)
(org-level-2 :inherit bold :height 1.25)
(org-level-3 :inherit bold :height 1.0)
(org-level-4 :inherit bold)
(org-level-5 :inherit bold)
(org-level-6 :inherit bold)
(org-level-7 :inherit bold)
(org-level-8 :inherit bold)

(org-link :foreground ,rainbow-2 :underline t)
(org-priority :foreground ,rainbow-2)
(org-scheduled :foreground ,fg4)
(org-scheduled-previously :foreground ,rainbow-7)
(org-scheduled-today :foreground ,fg1)
(org-sexp-date :foreground ,fg4)
(org-table :inherit fixed-pitch :foreground ,rainbow-3)


(org-tag :inherit fixed-pitch :foreground ,bg4 :bold t :background ,bg2)
(org-upcoming-deadline :foreground ,rainbow-7)
(org-warning :weight bold :foreground ,rainbow-4)

3 Unchanged Faces

The settings directly used from the original Emacs Dracula theme, without any changes from my side.

4 Theme Code Generation

This is where it all comes together and gets tangled into a theme file.


View Org Source

Back to Index

Author: Christian Bäuerlein

Created: 2019-12-22 Sun 20:45

Validate