Created
April 4, 2026 03:04
-
-
Save chausen/dada80a4ffd77591e185435a68eef0d5 to your computer and use it in GitHub Desktop.
vscode dark doom emacs theme
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ;;; doom-vscode-new-theme.el --- VS Code 2026 Dark inspired Doom theme -*- lexical-binding: t; no-byte-compile: t; -*- | |
| (require 'doom-themes) | |
| (defgroup doom-vscode-new-theme nil | |
| "Options for the `doom-vscode-new' theme." | |
| :group 'doom-themes) | |
| (defcustom doom-vscode-new-brighter-modeline nil | |
| "If non-nil, more vivid colors will be used for the mode-line." | |
| :group 'doom-vscode-new-theme | |
| :type 'boolean) | |
| (defcustom doom-vscode-new-brighter-comments nil | |
| "If non-nil, comments will be highlighted in more vivid colors." | |
| :group 'doom-vscode-new-theme | |
| :type 'boolean) | |
| (defcustom doom-vscode-new-comment-bg nil | |
| "If non-nil, comments will have a subtle background." | |
| :group 'doom-vscode-new-theme | |
| :type 'boolean) | |
| (defcustom doom-vscode-new-padded-modeline doom-themes-padded-modeline | |
| "If non-nil, adds padding to the mode-line." | |
| :group 'doom-vscode-new-theme | |
| :type '(choice integer boolean)) | |
| (def-doom-theme doom-vscode-new | |
| "A Doom theme inspired by VS Code 2026 Dark / Dark Experimental." | |
| :family 'doom-vscode-new | |
| :background-mode 'dark | |
| ;; name default 256 16 | |
| ((bg '("#121314" "black" "black")) | |
| (fg '("#BBBEBF" "#bfbfbf" "brightwhite")) | |
| (bg-alt '("#191A1B" "black" "black")) | |
| (fg-alt '("#8B949E" "#8a8a8a" "white")) | |
| (base0 '("#0E0F10" "black" "black")) | |
| (base1 '("#121314" "#1e1e1e" "brightblack")) | |
| (base2 '("#191A1B" "#262626" "brightblack")) | |
| (base3 '("#202225" "#303030" "brightblack")) | |
| (base4 '("#2A2B2C" "#3a3a3a" "brightblack")) | |
| (base5 '("#555555" "#585858" "brightblack")) | |
| (base6 '("#7D8590" "#808080" "brightblack")) | |
| (base7 '("#A5ACB2" "#a8a8a8" "brightblack")) | |
| (base8 '("#E6EDF3" "#dfdfdf" "white")) | |
| (grey base4) | |
| (red '("#FF7B72" "#ff7b72" "red")) | |
| (orange '("#FFA657" "#ffaf5f" "brightred")) | |
| (green '("#4EC9B0" "#4ec9b0" "green")) | |
| (teal '("#53A5CA" "#53a5ca" "brightgreen")) | |
| (yellow '("#D7BA7D" "#d7ba7d" "yellow")) | |
| (blue '("#79C0FF" "#79c0ff" "brightblue")) | |
| (dark-blue '("#276782" "#276782" "blue")) | |
| (magenta '("#D2A8FF" "#d2a8ff" "brightmagenta")) | |
| (violet '("#A5D6FF" "#a5d6ff" "magenta")) | |
| (cyan '("#56A8C9" "#56a8c9" "brightcyan")) | |
| (dark-cyan '("#48A0C7" "#48a0c7" "cyan")) | |
| ;; extra semantic colors | |
| (string-blue '("#A5D6FF" "#a5d6ff" "brightblue")) | |
| (number-green '("#B5CEA8" "#b5cea8" "brightgreen")) | |
| (menu-select '("#2A2F33" "#2a2f33" "brightblack")) | |
| (menu-select-2 '("#31363B" "#31363b" "brightblack")) | |
| ;; universal syntax classes | |
| (highlight blue) | |
| (vertical-bar (doom-darken base1 0.1)) | |
| (selection dark-blue) | |
| (builtin magenta) | |
| (comments (if doom-vscode-new-brighter-comments cyan fg-alt)) | |
| (doc-comments (doom-lighten (if doom-vscode-new-brighter-comments cyan fg-alt) 0.2)) | |
| (constants blue) | |
| (functions magenta) | |
| (keywords red) | |
| (methods magenta) | |
| (operators fg) | |
| (type yellow) | |
| (strings string-blue) | |
| (variables fg) | |
| (numbers number-green) | |
| (region `(,(car selection) ,@(cdr selection))) | |
| (error red) | |
| (warning yellow) | |
| (success green) | |
| (vc-modified orange) | |
| (vc-added green) | |
| (vc-deleted red) | |
| ;; extras | |
| (modeline-fg fg) | |
| (modeline-fg-alt fg-alt) | |
| (modeline-bg (if doom-vscode-new-brighter-modeline | |
| (doom-darken blue 0.5) | |
| (doom-darken bg-alt 0.08))) | |
| (modeline-bg-alt (if doom-vscode-new-brighter-modeline | |
| (doom-darken blue 0.55) | |
| (doom-darken bg-alt 0.12))) | |
| (modeline-bg-inactive `(,(doom-darken (car bg-alt) 0.04) ,@(cdr base1))) | |
| (modeline-bg-inactive-alt `(,(doom-darken (car bg-alt) 0.08) ,@(cdr bg))) | |
| (-modeline-pad | |
| (when doom-vscode-new-padded-modeline | |
| (if (integerp doom-vscode-new-padded-modeline) | |
| doom-vscode-new-padded-modeline | |
| 4)))) | |
| (((default &override) :background bg :foreground fg) | |
| ((cursor &override) :background fg) | |
| ((fringe &override) :background bg :foreground base4) | |
| ((region &override) :background selection :foreground base8) | |
| ((highlight &override) :background bg-alt) | |
| ((hl-line &override) :background (doom-lighten bg 0.03)) | |
| ((line-number &override) :foreground base5 :background bg) | |
| ((line-number-current-line &override) :foreground fg :background bg) | |
| ((font-lock-comment-face &override) | |
| :foreground comments | |
| :background (if doom-vscode-new-comment-bg | |
| (doom-lighten bg 0.035) | |
| 'unspecified)) | |
| ((font-lock-doc-face &override) :foreground doc-comments) | |
| ;; mode line | |
| (mode-line | |
| :background modeline-bg :foreground modeline-fg | |
| :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) | |
| (mode-line-inactive | |
| :background modeline-bg-inactive :foreground modeline-fg-alt | |
| :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive))) | |
| (mode-line-emphasis | |
| :foreground (if doom-vscode-new-brighter-modeline base8 highlight)) | |
| ;; minibuffer / completion / menus | |
| (minibuffer-prompt :foreground blue :weight 'bold) | |
| (lazy-highlight :background menu-select-2 :foreground base8) | |
| (isearch :background blue :foreground base0 :weight 'bold) | |
| (match :background dark-blue :foreground base8) | |
| ;; vertico / ivy / helm / selectrum style current candidate visibility | |
| (vertico-current :background menu-select :foreground fg :extend t) | |
| (ivy-current-match :background menu-select :foreground fg :distant-foreground fg :weight 'normal) | |
| (ivy-minibuffer-match-face-1 :foreground blue) | |
| (ivy-minibuffer-match-face-2 :foreground magenta :weight 'bold) | |
| (ivy-minibuffer-match-face-3 :foreground string-blue :weight 'bold) | |
| (ivy-minibuffer-match-face-4 :foreground number-green :weight 'bold) | |
| (helm-selection :background menu-select :foreground fg :distant-foreground fg :extend t) | |
| (helm-match :foreground blue :weight 'bold) | |
| (completions-highlight :background menu-select :foreground fg) | |
| (consult-highlight-match :foreground blue :weight 'bold) | |
| (orderless-match-face-0 :foreground blue :weight 'bold) | |
| (orderless-match-face-1 :foreground magenta :weight 'bold) | |
| (orderless-match-face-2 :foreground string-blue :weight 'bold) | |
| (orderless-match-face-3 :foreground number-green :weight 'bold) | |
| ;; doom-modeline | |
| (doom-modeline-bar :background (if doom-vscode-new-brighter-modeline modeline-bg highlight)) | |
| (doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold) | |
| (doom-modeline-buffer-path :inherit 'mode-line-emphasis) | |
| (doom-modeline-buffer-project-root :foreground blue :weight 'bold) | |
| ;; org | |
| (org-document-title :foreground fg :weight 'bold :height 1.15) | |
| (org-level-1 :foreground magenta :weight 'bold) | |
| (org-level-2 :foreground blue :weight 'bold) | |
| (org-level-3 :foreground violet :weight 'bold) | |
| (org-level-4 :foreground yellow :weight 'bold) | |
| (org-code :foreground string-blue) | |
| (org-verbatim :foreground cyan) | |
| (org-block :background bg-alt) | |
| (org-block-begin-line :foreground fg-alt :background bg-alt) | |
| (org-block-end-line :foreground fg-alt :background bg-alt) | |
| (org-link :foreground blue :underline t) | |
| (org-todo :foreground cyan :weight 'bold) | |
| (org-done :foreground fg-alt :weight 'normal) | |
| (org-headline-done :foreground fg-alt) | |
| ;; markdown | |
| (markdown-header-face :foreground magenta :weight 'bold) | |
| (markdown-markup-face :foreground fg-alt) | |
| ((markdown-code-face &override) :background bg-alt) | |
| ;; css / web | |
| (css-proprietary-property :foreground orange) | |
| (css-property :foreground blue) | |
| (css-selector :foreground magenta) | |
| (web-mode-html-tag-face :foreground red) | |
| (web-mode-html-attr-name-face :foreground orange) | |
| (web-mode-string-face :foreground string-blue) | |
| ;; js/ts/rjsx | |
| (rjsx-tag :foreground red) | |
| (rjsx-attr :foreground orange) | |
| ;; lua / tree-sitter friendly adjustments | |
| (font-lock-string-face :foreground string-blue) | |
| (font-lock-number-face :foreground number-green) | |
| (font-lock-constant-face :foreground blue) | |
| (font-lock-function-name-face :foreground magenta) | |
| (font-lock-keyword-face :foreground red) | |
| (font-lock-type-face :foreground yellow) | |
| (font-lock-variable-name-face :foreground fg) | |
| ;; tree-sitter / ts-faces | |
| (tree-sitter-hl-face:string :foreground string-blue) | |
| (tree-sitter-hl-face:number :foreground number-green) | |
| (tree-sitter-hl-face:constant :foreground blue) | |
| (tree-sitter-hl-face:function :foreground magenta) | |
| (tree-sitter-hl-face:function.call :foreground magenta) | |
| (tree-sitter-hl-face:keyword :foreground red) | |
| (tree-sitter-hl-face:method :foreground magenta) | |
| (tree-sitter-hl-face:operator :foreground fg) | |
| (tree-sitter-hl-face:property :foreground cyan) | |
| (tree-sitter-hl-face:type :foreground yellow) | |
| (tree-sitter-hl-face:variable :foreground fg) | |
| ;; diff / git | |
| (diff-added :background (doom-blend green bg 0.12) :foreground green) | |
| (diff-removed :background (doom-blend red bg 0.12) :foreground red) | |
| (diff-changed :background (doom-blend orange bg 0.12) :foreground orange) | |
| (diff-refine-added :background (doom-blend green bg 0.22) :foreground green) | |
| (diff-refine-removed :background (doom-blend red bg 0.22) :foreground red) | |
| ;; solaire | |
| (solaire-default-face :background bg-alt) | |
| (solaire-hl-line-face :background (doom-lighten bg-alt 0.03)) | |
| (solaire-mode-line-face | |
| :inherit 'mode-line | |
| :background modeline-bg-alt | |
| :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) | |
| (solaire-mode-line-inactive-face | |
| :inherit 'mode-line-inactive | |
| :background modeline-bg-inactive-alt | |
| :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-alt)))) | |
| ()) | |
| ;;; doom-vscode-new-theme.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment