gave up on meow / god mode, just using ';' now
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
;;; cutarv42-theme.el --- A high-contrast light theme with blue/pink accents -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
|
||||
(deftheme cutarv42
|
||||
"A high-contrast light theme with blue/pink accents, optimized for clarity and syntax highlighting.")
|
||||
|
||||
(let* (;; --- 1. Primitive Palette (Raw Colors) ---
|
||||
(pure-white "#f8f8ff")
|
||||
(pure-black "#010101")
|
||||
(deep-blue "#007cbf")
|
||||
(mid-blue "#2374de")
|
||||
(soft-pink "#ef89df")
|
||||
(deep-purple "#a64dd6")
|
||||
(raw-magenta "#b05197")
|
||||
(burnt-amber "#e58e40")
|
||||
(duck-blue "#007a94")
|
||||
(forest-green "#429e66")
|
||||
(bright-green "#2cd45c")
|
||||
(crimson-red "#cf3f29")
|
||||
(soft-red "#f07b69")
|
||||
(deep-orange "#ee7722")
|
||||
(light-blue "#7cc9f2")
|
||||
(light-grey "#f9f9f9")
|
||||
(mid-grey "#888888")
|
||||
(dark-grey "#444444")
|
||||
(faint-purple "#eeccee")
|
||||
|
||||
;; --- 2. Semantic Palette (Functional Roles) ---
|
||||
;; Base UI
|
||||
(bg-main pure-white)
|
||||
(fg-main pure-black)
|
||||
(ui-accent soft-pink)
|
||||
(ui-hl-line faint-purple)
|
||||
(ui-selection light-blue)
|
||||
(ui-border raw-magenta)
|
||||
(ui-muted mid-grey)
|
||||
|
||||
;; Syntax Roles
|
||||
(syntax-keyword duck-blue)
|
||||
(syntax-string forest-green)
|
||||
(syntax-variable mid-blue)
|
||||
(syntax-type deep-purple)
|
||||
(syntax-constant burnt-amber)
|
||||
(syntax-builtin deep-orange)
|
||||
(syntax-comment "#666666") ;; Standard grey for comments
|
||||
(syntax-comment-d bright-green) ;; Delimiter color
|
||||
(syntax-function deep-blue)
|
||||
|
||||
;; Status / Feedback
|
||||
(status-error crimson-red)
|
||||
(status-warning soft-red)
|
||||
(status-info deep-orange)
|
||||
(status-success bright-green)
|
||||
(status-highlight deep-blue)
|
||||
|
||||
;; Theme Class
|
||||
(class '((class color) (min-colors 256))))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'cutarv42
|
||||
|
||||
;; --- Core UI ---
|
||||
`(default ((,class (:background ,bg-main :foreground ,fg-main))))
|
||||
`(cursor ((,class (:background ,bg-main :foreground ,bg-main))))
|
||||
`(fringe ((,class (:background ,bg-main :foreground ,status-highlight))))
|
||||
`(region ((,class (:background ,ui-accent))))
|
||||
`(highlight ((,class (:background ,ui-selection :foreground ,bg-main))))
|
||||
`(hl-line ((,class (:background ,ui-hl-line :extend t))))
|
||||
`(link ((,class (:foreground ,syntax-keyword :underline t))))
|
||||
`(link-visited ((,class (:foreground ,syntax-type :underline t))))
|
||||
`(minibuffer-prompt ((,class (:foreground ,status-highlight :weight bold))))
|
||||
`(vertical-border ((,class (:foreground ,ui-border))))
|
||||
|
||||
;; --- Syntax Highlighting (Font Lock) ---
|
||||
`(font-lock-comment-face ((,class (:foreground ,syntax-comment :slant italic))))
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:foreground ,syntax-comment-d :slant italic))))
|
||||
`(font-lock-string-face ((,class (:foreground ,syntax-string))))
|
||||
`(font-lock-type-face ((,class (:foreground ,syntax-type))))
|
||||
`(font-lock-keyword-face ((,class (:foreground ,syntax-keyword :weight bold))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,syntax-function :weight bold))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,syntax-variable))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,syntax-constant))))
|
||||
`(font-lock-builtin-face ((,class (:foreground ,syntax-builtin))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,status-warning :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,status-error))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,status-info))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:inherit font-lock-constant-face))))
|
||||
|
||||
;; --- Mode-line ---
|
||||
`(mode-line ((,class (:background ,ui-accent :foreground ,bg-main))))
|
||||
`(mode-line-inactive ((,class (:background ,ui-selection :foreground ,fg-main))))
|
||||
;:box (:line-width 1 :color ,syntax-keyword)
|
||||
|
||||
;; --- Search & Isearch ---
|
||||
`(isearch ((,class (:inherit hl-line))))
|
||||
`(isearch-fail ((,class (:inherit show-paren-mismatch))))
|
||||
`(lazy-highlight ((,class (:background ,status-info :foreground ,bg-main))))
|
||||
|
||||
;; --- Line Numbers ---
|
||||
`(line-number ((,class (:foreground ,fg-main :background ,ui-selection))))
|
||||
`(line-number-current-line ((,class (:inherit mode-line :weight bold))))
|
||||
|
||||
;; --- Package Specifics ---
|
||||
;; Doom Modeline
|
||||
`(doom-modeline-bar ((,class (:background ,ui-accent :foreground ,fg-main))))
|
||||
`(doom-modeline-buffer-file ((,class (:foreground ,fg-main :weight bold))))
|
||||
`(doom-modeline-buffer-path ((,class (:foreground ,fg-main :weight bold))))
|
||||
`(doom-modeline-buffer-modified ((,class (:foreground ,status-info :weight bold))))
|
||||
`(doom-modeline-debug ((,class (:inherit font-lock-warning-face))))
|
||||
`(doom-modeline-info ((,class (:inherit font-lock-delimiter-face))))
|
||||
`(doom-modeline-warning ((,class (:inherit font-lock-warning-face))))
|
||||
`(doom-modeline-error ((,class (:inherit error))))
|
||||
|
||||
;; Vertico / Marginalia
|
||||
`(vertico-current ((,class (:inherit line-number-current-line))))
|
||||
`(marginalia-documentation ((,class (:inherit font-lock-comment-face))))
|
||||
|
||||
;; Magit
|
||||
`(magit-branch-local ((,class (:foreground ,syntax-function :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,syntax-string :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,status-highlight))))
|
||||
`(magit-item-highlight ((,class (:background ,ui-selection))))
|
||||
`(magit-diff-added ((,class (:foreground ,status-success :background unspecified))))
|
||||
`(magit-diff-removed ((,class (:foreground ,status-error :background unspecified))))
|
||||
`(magit-diff-context-highlight ((,class (:background ,status-highlight :foreground ,fg-main))))
|
||||
`(magit-section-heading ((,class (:foreground ,ui-selection :weight bold :underline t))))
|
||||
|
||||
;; Tree-sitter
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,ui-accent))))
|
||||
`(tree-sitter-hl-face:method.call ((,class (:foreground ,ui-accent))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,syntax-function))))
|
||||
`(tree-sitter-hl-face:property ((,class (:foreground ,ui-selection))))
|
||||
`(tree-sitter-hl-face:parameter ((,class (:foreground ,status-info))))
|
||||
`(tree-sitter-hl-face:escape ((,class (:foreground ,status-warning))))
|
||||
|
||||
;; Flycheck / LSP
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,status-error)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,status-info)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,syntax-keyword)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,ui-selection))))
|
||||
|
||||
;; Misc
|
||||
`(show-paren-match ((,class (:background ,syntax-keyword :foreground ,bg-main :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,status-error :foreground ,fg-main :weight bold))))
|
||||
`(success ((,class (:foreground ,status-success))))
|
||||
`(error ((,class (:foreground ,status-error :weight bold))))
|
||||
`(warning ((,class (:foreground ,status-warning))))
|
||||
`(header-line ((,class (:background ,status-highlight :foreground ,fg-main))))
|
||||
|
||||
;; Whitespace mode
|
||||
`(whitespace-indentation ((,class (:background ,ui-muted :foreground ,status-warning ))))
|
||||
`(whitespace-tab ((,class (:background ,light-grey :foreground ,syntax-constant))))
|
||||
`(whitespace-space ((,class (:background ,light-grey :foreground ,status-info))))
|
||||
`(whitespace-trailing ((,class (:background ,status-error :foreground ,status-info))))
|
||||
`(whitespace-line ((,class (:background ,light-grey))))
|
||||
|
||||
;; Org Mode
|
||||
`(org-level-1 ((,class (:foreground ,ui-accent :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,syntax-keyword :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,status-success :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,ui-selection :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,syntax-type :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,status-warning :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,status-success :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,syntax-keyword))))
|
||||
`(org-link ((,class (:foreground ,syntax-type :underline t))))
|
||||
`(org-code ((,class (:foreground ,status-info :background ,bg-main))))
|
||||
`(org-block ((,class (:background ,bg-main :foreground ,fg-main :extend t))))
|
||||
`(org-block-begin-line ((,class (:foreground ,status-highlight :background ,bg-main :extend t))))
|
||||
))
|
||||
|
||||
;;;###autoload
|
||||
(and load-file-name
|
||||
(boundp 'custom-theme-load-path)
|
||||
(add-to-list 'custom-theme-load-path
|
||||
(file-name-as-directory (file-name-directory load-file-name))))
|
||||
|
||||
(provide-theme 'cutarv42)
|
||||
|
||||
;;; cutarv41-theme.el ends here
|
||||
Reference in New Issue
Block a user