;;; cutarv41-dark-theme.el --- A high-contrast dark theme for TUI Emacs -*- lexical-binding: t; no-byte-compile: t; -*- (deftheme cutarv41-dark "Inverted high-contrast dark theme optimized for TUI/Terminal Emacs.") (let ((class '((class color) (min-colors 89))) ;; --- Palette (Inverted from cutarv41) --- ;; Base UI (bg "#0d0d0d") ;; Deep dark background (Inverted from #f8f8ff) (fg "#f8f8ff") ;; Ghost white foreground (Inverted from #000000) (cursor "#0d0d0d") ;; Cursor bg (selection "#3e4481") ;; Muted blue selection (Adjusted from #aaafff for dark contrast) ;; ANSI Normal (Lightened for visibility on dark bg) (dark-blue "#4da6ff") ;; Lighter blue (Adjusted from #007cbf) (red "#ff6b6b") ;; Lighter red (Adjusted from #cf3f29) (medium-blue "#6da6ff") ;; Lighter blue (Adjusted from #2374de) (orange "#ffb347") ;; Lighter orange (Adjusted from #c75e10) (magenta "#d18ecb") ;; Lighter magenta (Adjusted from #b05197) (green "#8fbc8f") ;; Lighter green (Adjusted from #429e66) (cyan "#80daeb") ;; Lighter cyan (Adjusted from #129cc9) (purple "#c8a0f2") ;; Lighter purple (Adjusted from #a64dd6) ;; ANSI Bright (Retained from base as they are already light) (light-blue "#7cc9f2") (light-red "#f07b69") (accent-blue "#6f9ff2") (yellow "#f0b94a") (accent-pink "#EF89DF") (bright-green "#2cd45c") (bright-cyan "#11ddee") (light-purple "#c8a0f2")) (custom-theme-set-faces 'cutarv41-dark ;; --- Core UI --- `(default ((,class (:background ,bg :foreground ,fg)))) `(cursor ((,class (:background ,bg :foreground ,bg)))) `(fringe ((,class (:background ,bg :foreground ,dark-blue)))) `(region ((,class (:background ,selection)))) `(highlight ((,class (:background ,light-blue :foreground ,bg)))) `(hl-line ((,class (:background ,dark-blue :extend t)))) `(link ((,class (:foreground ,medium-blue :underline t)))) `(link-visited ((,class (:foreground ,purple :underline t)))) `(minibuffer-prompt ((,class (:foreground ,dark-blue :weight bold)))) `(vertical-border ((,class (:foreground ,magenta)))) ;; --- Syntax Highlighting (Font Lock) --- `(font-lock-comment-face ((,class (:foreground ,"#eef" :slant italic)))) `(font-lock-comment-delimiter-face ((,class (:foreground ,bright-green :slant italic)))) `(font-lock-keyword-face ((,class (:foreground ,medium-blue :weight bold)))) `(font-lock-string-face ((,class (:foreground ,green)))) `(font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow)))) `(font-lock-regexp-grouping-construct ((,class (:foreground ,light-red)))) `(font-lock-function-name-face ((,class (:foreground ,cyan :weight bold)))) `(font-lock-variable-name-face ((,class (:foreground ,medium-blue)))) `(font-lock-type-face ((,class (:foreground ,purple)))) `(font-lock-constant-face ((,class (:foreground ,light-red)))) `(font-lock-builtin-face ((,class (:foreground ,orange)))) `(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,green)))) `(font-lock-warning-face ((,class (:foreground ,light-red :weight bold)))) `(font-lock-negation-char-face ((,class (:foreground ,red)))) ;; --- Mode-line --- `(mode-line ((,class (:background ,accent-pink :foreground ,bg)))) `(mode-line-inactive ((,class (:background ,light-blue :foreground ,fg :box (:line-width 1 :color ,accent-blue))))) `(mode-line-buffer-id ((,class (:weight bold)))) `(mode-line-highlight ((,class (:box (:line-width 2 :color ,fg))))) ;; --- Search & Isearch --- `(isearch ((,class (:background ,yellow :foreground ,bg :weight bold)))) `(isearch-fail ((,class (:background ,red :foreground ,fg)))) `(lazy-highlight ((,class (:background ,orange :foreground ,bg)))) ;; --- Line Numbers --- `(line-number ((,class (:foreground ,light-blue :background ,fg)))) `(line-number-current-line ((,class (:foreground ,bg :background ,accent-pink :weight bold)))) ;; --- Package Specifics --- ;; Doom Modeline `(doom-modeline-bar ((,class (:background ,accent-pink :foreground ,fg)))) `(doom-modeline-buffer-file ((,class (:foreground ,fg :weight bold)))) `(doom-modeline-buffer-path ((,class (:foreground ,fg :weight bold)))) `(doom-modeline-buffer-modified ((,class (:foreground ,yellow :weight bold)))) `(doom-modeline-debug ((,class (:foreground ,orange)))) `(doom-modeline-info ((,class (:foreground ,green)))) `(doom-modeline-warning ((,class (:foreground ,yellow)))) `(doom-modeline-error ((,class (:foreground ,red)))) ;; Org Mode `(org-level-1 ((,class (:foreground ,accent-pink :weight bold :height 1.2)))) `(org-level-2 ((,class (:foreground ,accent-blue :weight bold :height 1.1)))) `(org-level-3 ((,class (:foreground ,bright-green :weight bold)))) `(org-level-4 ((,class (:foreground ,bright-cyan :weight bold)))) `(org-level-5 ((,class (:foreground ,light-purple :weight bold)))) `(org-todo ((,class (:foreground ,light-red :weight bold :box t)))) `(org-done ((,class (:foreground ,bright-green :weight bold :box t)))) `(org-date ((,class (:foreground ,medium-blue)))) `(org-link ((,class (:foreground ,light-purple :underline t)))) `(org-code ((,class (:foreground ,orange :background ,bg)))) `(org-block ((,class (:background ,bg :foreground ,fg :extend t)))) `(org-block-begin-line ((,class (:foreground ,dark-blue :background ,bg :extend t)))) ;; Magit `(magit-branch-local ((,class (:foreground ,cyan :weight bold)))) `(magit-branch-remote ((,class (:foreground ,green :weight bold)))) `(magit-hash ((,class (:foreground ,dark-blue)))) `(magit-item-highlight ((,class (:background ,selection)))) `(magit-diff-added ((,class (:foreground ,bright-green :background unspecified)))) `(magit-diff-removed ((,class (:foreground ,light-red :background unspecified)))) `(magit-diff-context-highlight ((,class (:background ,dark-blue :foreground ,fg)))) `(magit-section-heading ((,class (:foreground ,bright-cyan :weight bold :underline t)))) ;; Tree-sitter `(tree-sitter-hl-face:function.call ((,class (:foreground ,accent-pink)))) `(tree-sitter-hl-face:method.call ((,class (:foreground ,accent-pink)))) `(tree-sitter-hl-face:type ((,class (:foreground ,cyan)))) `(tree-sitter-hl-face:property ((,class (:foreground ,light-blue)))) `(tree-sitter-hl-face:parameter ((,class (:foreground ,orange)))) `(tree-sitter-hl-face:escape ((,class (:foreground ,light-red)))) ;; Flycheck / LSP `(flycheck-error ((,class (:underline (:style wave :color ,red))))) `(flycheck-warning ((,class (:underline (:style wave :color ,orange))))) `(flycheck-info ((,class (:underline (:style wave :color ,medium-blue))))) `(lsp-face-highlight-textual ((,class (:background ,selection)))) ;; Dashboard `(doom-dashboard-menu-desc ((,class (:foreground ,accent-blue)))) `(doom-dashboard-banner ((,class (:foreground ,accent-pink)))) ;; Misc `(show-paren-match ((,class (:background ,accent-blue :foreground ,bg :weight bold)))) `(show-paren-mismatch ((,class (:background ,red :foreground ,fg :weight bold)))) `(success ((,class (:foreground ,green)))) `(error ((,class (:foreground ,red :weight bold)))) `(warning ((,class (:foreground ,orange)))) `(header-line ((,class (:background ,dark-blue :foreground ,fg)))))) ;;;###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 'cutarv41-dark) ;;; cutarv41-dark-theme.el ends here