IC
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
;;; camm2-theme.el --- A custom light theme based on provided colors -*- lexical-binding: t; -*-
|
||||
|
||||
(deftheme camm2
|
||||
"Custom light theme created from user-supplied colors.")
|
||||
|
||||
;; Helper to reference colors by name (makes the theme cleaner)
|
||||
(defun my-color (name)
|
||||
(cl-case name
|
||||
(fg1 "#111")
|
||||
(fg2 "#242424")
|
||||
(fg3 "#373737")
|
||||
(fg4 "#4a4a4a")
|
||||
(fg6 "#0d0d0d")
|
||||
(bg1 "#f9fbfb")
|
||||
(bg2 "#e5e7e7")
|
||||
(bg3 "#d1d3d3")
|
||||
(bg4 "#bdbfbf")
|
||||
(builtin "#40b7bf")
|
||||
(keyword "#55b0f6")
|
||||
(const "#ffa200")
|
||||
(comment "#b2b6b8")
|
||||
(func "#eb4747")
|
||||
(str "#a8dc19")
|
||||
(type "#ae58e4")
|
||||
(var "#f04ceb")
|
||||
(selection "#005fdb")
|
||||
(warning "#C82829")
|
||||
(warning2 "#f48925")))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'camm2
|
||||
|
||||
;; Basic faces
|
||||
`(default ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg1)))))
|
||||
`(cursor ((t (:background ,(my-color 'fg4)))))
|
||||
`(fringe ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg3)))))
|
||||
`(vertical-border ((t (:foreground ,(my-color 'bg3)))))
|
||||
`(linum ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3))))) ; legacy
|
||||
`(line-number ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3)))))
|
||||
`(line-number-current-line ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg1) :weight bold))))
|
||||
|
||||
;; Font lock faces (syntax highlighting)
|
||||
`(font-lock-builtin-face ((t (:foreground ,(my-color 'builtin)))))
|
||||
`(font-lock-keyword-face ((t (:foreground ,(my-color 'keyword)))))
|
||||
`(font-lock-constant-face ((t (:foreground ,(my-color 'const)))))
|
||||
`(font-lock-comment-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-function-name-face ((t (:foreground ,(my-color 'func)))))
|
||||
`(font-lock-string-face ((t (:foreground ,(my-color 'str)))))
|
||||
`(font-lock-type-face ((t (:foreground ,(my-color 'type)))))
|
||||
`(font-lock-variable-name-face ((t (:foreground ,(my-color 'var)))))
|
||||
`(font-lock-doc-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-preprocessor-face ((t (:foreground ,(my-color 'builtin)))))
|
||||
`(font-lock-warning-face ((t (:foreground ,(my-color 'warning) :weight bold))))
|
||||
|
||||
;; Region and selection
|
||||
`(region ((t (:background ,(my-color 'selection) :foreground ,(my-color 'bg1)))))
|
||||
`(secondary-selection ((t (:background ,(my-color 'bg3)))))
|
||||
|
||||
;; Mode line
|
||||
`(mode-line ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1) :box (:line-width 1 :color ,(my-color 'bg4))))))
|
||||
`(mode-line-inactive ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3) :box (:line-width 1 :color ,(my-color 'bg3))))))
|
||||
|
||||
;; Minibuffer and prompts
|
||||
`(minibuffer-prompt ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
|
||||
;; Highlighting
|
||||
`(highlight ((t (:background ,(my-color 'bg3)))))
|
||||
`(hl-line ((t (:background ,(my-color 'bg2)))))
|
||||
`(isearch ((t (:background ,(my-color 'warning2) :foreground ,(my-color 'bg1)))))
|
||||
`(lazy-highlight ((t (:background ,(my-color 'bg4)))))
|
||||
|
||||
;; Matching parentheses
|
||||
`(show-paren-match ((t (:background ,(my-color 'bg3) :foreground ,(my-color 'fg1) :weight bold))))
|
||||
`(show-paren-mismatch ((t (:background ,(my-color 'warning) :foreground ,(my-color 'bg1)))))
|
||||
|
||||
;; Error / warning / success
|
||||
`(error ((t (:foreground ,(my-color 'warning) :weight bold))))
|
||||
`(warning ((t (:foreground ,(my-color 'warning2) :weight bold))))
|
||||
`(success ((t (:foreground ,(my-color 'str)))))
|
||||
|
||||
;; Button and link
|
||||
`(link ((t (:foreground ,(my-color 'keyword) :underline t))))
|
||||
`(link-visited ((t (:foreground ,(my-color 'type) :underline t))))
|
||||
|
||||
;; Tooltip
|
||||
`(tooltip ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1) :box (:line-width 1 :color ,(my-color 'bg4))))))
|
||||
|
||||
;; Dired
|
||||
`(dired-directory ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
`(dired-symlink ((t (:foreground ,(my-color 'func)))))
|
||||
`(dired-ignored ((t (:foreground ,(my-color 'comment)))))
|
||||
|
||||
;; Custom faces used by Doom modules (modeline, dashboard, etc.)
|
||||
`(doom-modeline-bar ((t (:background ,(my-color 'keyword)))))
|
||||
`(doom-modeline-buffer-file ((t (:foreground ,(my-color 'func)))))
|
||||
`(doom-modeline-buffer-modified ((t (:foreground ,(my-color 'warning2)))))
|
||||
`(doom-modeline-project-dir ((t (:foreground ,(my-color 'type)))))
|
||||
|
||||
;; Company / autocomplete
|
||||
`(company-tooltip ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1)))))
|
||||
`(company-tooltip-selection ((t (:background ,(my-color 'selection) :foreground ,(my-color 'bg1)))))
|
||||
`(company-tooltip-common ((t (:foreground ,(my-color 'func)))))
|
||||
`(company-scrollbar-fg ((t (:background ,(my-color 'fg4)))))
|
||||
`(company-scrollbar-bg ((t (:background ,(my-color 'bg3)))))
|
||||
|
||||
;; Outline / Org headings (simple, can be extended)
|
||||
`(outline-1 ((t (:foreground ,(my-color 'type) :weight bold))))
|
||||
`(outline-2 ((t (:foreground ,(my-color 'func) :weight bold))))
|
||||
`(outline-3 ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
`(org-level-1 ((t (:inherit outline-1 :height 1.1))))
|
||||
`(org-level-2 ((t (:inherit outline-2 :height 1.05))))
|
||||
`(org-level-3 ((t (:inherit outline-3))))
|
||||
)
|
||||
|
||||
;; Provide the theme
|
||||
(provide-theme 'camm2)
|
||||
;;; camm2-theme.el ends here
|
||||
Reference in New Issue
Block a user