108 lines
4.8 KiB
EmacsLisp
Executable File
108 lines
4.8 KiB
EmacsLisp
Executable File
;;; doom-pandora-theme.el --- Pandora Base16 theme for Doom Emacs -*- lexical-binding: t; no-byte-compile: t; -*-
|
|
;;
|
|
;; Based on Base16 Pandora scheme by Cassandra Fox.
|
|
;; Adapted from doom-dracula-theme.el
|
|
;;
|
|
;;; Commentary:
|
|
;; This theme is a modification of the Doom Dracula theme,
|
|
;; replacing the Dracula palette with the Base16 Pandora colors.
|
|
;;
|
|
;;; Code:
|
|
|
|
(require 'doom-themes)
|
|
|
|
(defgroup doom-pandora-theme nil
|
|
"Options for the `doom-pandora' theme."
|
|
:group 'doom-themes)
|
|
|
|
(defcustom doom-pandora-brighter-modeline nil
|
|
"If non-nil, more vivid colors will be used to style the mode-line."
|
|
:group 'doom-pandora-theme
|
|
:type 'boolean)
|
|
|
|
(defcustom doom-pandora-brighter-comments nil
|
|
"If non-nil, comments will be highlighted in more vivid colors."
|
|
:group 'doom-pandora-theme
|
|
:type 'boolean)
|
|
|
|
(defcustom doom-pandora-colorful-headers nil
|
|
"If non-nil, headers in org-mode will be more colorful."
|
|
:group 'doom-pandora-theme
|
|
:type 'boolean)
|
|
|
|
(defcustom doom-pandora-comment-bg doom-pandora-brighter-comments
|
|
"If non-nil, comments will have a subtle, darker background to enhance legibility."
|
|
:group 'doom-pandora-theme
|
|
:type 'boolean)
|
|
|
|
(defcustom doom-pandora-padded-modeline doom-themes-padded-modeline
|
|
"If non-nil, adds a padding to the mode-line. It can be an integer to specify exact padding."
|
|
:group 'doom-pandora-theme
|
|
:type '(choice integer boolean))
|
|
|
|
|
|
(def-doom-theme doom-pandora
|
|
"A dark theme based on the Base16 Pandora color scheme by Cassandra Fox."
|
|
|
|
;; Palette:
|
|
;; Base16 Pandora (keys from base00 to base0F)
|
|
((bg '("#131213" nil nil)) ; base00
|
|
(bg-alt '("#2f1823" nil nil)) ; base01
|
|
(base02 '("#472234" nil nil)) ; base02
|
|
(base03 '("#ffbee3" nil nil)) ; base03
|
|
(base04 '("#9b2a46" nil nil)) ; base04
|
|
(fg '("#f15c99" "#f15c99" "brightwhite")) ; base05
|
|
(fg-alt '("#9ddf69" "#9ddf69" "white")) ; base0B
|
|
(accent '("#008080" nil nil)) ; base0D
|
|
|
|
(base06 '("#81506a" nil nil)) ; base06
|
|
(base07 '("#632227" nil nil)) ; base07
|
|
(base08 '("#b00b69" nil nil)) ; base08 (red)
|
|
(base09 '("#ff9153" nil nil)) ; base09 (orange)
|
|
(base0A '("#ffcc00" nil nil)) ; base0A (yellow)
|
|
(base0C '("#714ca6" nil nil)) ; base0C (blue)
|
|
(base0D '("#008080" nil nil)) ; base0D (teal; reused as accent)
|
|
(base0E '("#a24030" nil nil)) ; base0E (magenta)
|
|
(base0F '("#a24030" nil nil)) ; base0F (duplicate of base0E)
|
|
|
|
;; You may optionally define a "grey" for extra use:
|
|
(grey base04))
|
|
|
|
;; Face categories:
|
|
;; Here we map our palette to Doom's standard face categories.
|
|
((red base08)
|
|
(orange base09)
|
|
(green base0B)
|
|
(teal base0D)
|
|
(yellow base0A)
|
|
(blue base0C)
|
|
(dark-blue (doom-darken base0C 0.2))
|
|
(magenta base0E)
|
|
(violet (doom-blend base0E base0C 0.5))
|
|
(cyan base0D)) ; Using base0D for cyan (teal)
|
|
|
|
;; Base theme face overrides
|
|
(((line-number &override) :foreground base04)
|
|
((line-number-current-line &override) :foreground fg)
|
|
((font-lock-comment-face &override)
|
|
:background (if doom-pandora-comment-bg (doom-lighten bg 0.05) 'unspecified))
|
|
(mode-line
|
|
:background accent :foreground fg
|
|
:box (when doom-pandora-padded-modeline
|
|
`(:line-width ,(if (integerp doom-pandora-padded-modeline)
|
|
doom-pandora-padded-modeline 4)
|
|
:color ,accent)))
|
|
(mode-line-inactive
|
|
:background (doom-darken bg 0.075) :foreground base04
|
|
:box (when doom-pandora-padded-modeline
|
|
`(:line-width ,(if (integerp doom-pandora-padded-modeline)
|
|
doom-pandora-padded-modeline 4)
|
|
:color ,(doom-darken bg 0.075))))
|
|
(mode-line-emphasis :foreground (if doom-pandora-brighter-modeline fg accent))
|
|
;; Example for org-mode customizations:
|
|
((org-tag &override) :foreground (doom-lighten orange 0.3)))
|
|
;; No additional variable overrides
|
|
())
|
|
|
|
;;; doom-pandora-theme.el ends here
|