;;; minimal-theme.el --- Minimal high-functionality Ujelly port -*- lexical-binding: t; -*- ;; ;; Built on the compline-theme face structure, updated with the color palette ;; from Ujelly (color-theme-ujelly by marktran). ;; ;;; Code: (deftheme minimal "Created 2026-10-26.") (custom-theme-set-faces 'minimal ;;;; Core '(default ((t (:inherit nil :extend nil :stipple nil :background "#151515" :foreground "#e8e8d3" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight regular :height 143 :width normal)))) '(cursor ((t (:background "#8fbfdc")))) '(fixed-pitch ((t (:height 140)))) '(variable-pitch ((t (:height 140)))) '(escape-glyph ((t (:foreground "#8fbfdc")))) '(homoglyph ((t (:foreground "#8fbfdc")))) '(minibuffer-prompt ((t (:foreground "#8fbfdc")))) '(highlight ((t (:foreground "#e8e8d3" :background "#303030" :weight bold)))) '(hl-line ((t (:extend t :background "#1b1b1b")))) '(region ((t (:extend t :background "#404040")))) '(shadow ((t (:foreground "#7f7f7f")))) '(secondary-selection ((t (:extend t :background "#404040")))) '(trailing-whitespace ((t (:background "#cf6a4c")))) '(vertical-border ((t (:foreground "#262626")))) '(error ((t (:foreground "#cf6a4c")))) '(warning ((t (:foreground "#fad07a")))) '(success ((t (:foreground "#99ad6a")))) ;;;; Line numbers '(line-number ((t (:foreground "#404040")))) '(line-number-current-line ((t (:foreground "#e8e8d3")))) ;;;; Font lock '(font-lock-bracket-face ((t (:inherit (font-lock-punctuation-face))))) '(font-lock-builtin-face ((t (:foreground "#8fbfdc")))) '(font-lock-comment-delimiter-face ((default (:inherit (font-lock-comment-face))))) '(font-lock-comment-face ((t (:foreground "#767676")))) '(font-lock-constant-face ((t (:foreground "#c6b5ed")))) '(font-lock-delimiter-face ((t (:inherit (font-lock-punctuation-face))))) '(font-lock-doc-face ((t (:foreground "#767676" :inherit (font-lock-comment-face))))) '(font-lock-doc-markup-face ((t (:inherit (font-lock-constant-face))))) '(font-lock-escape-face ((t (:inherit (font-lock-regexp-grouping-backslash))))) '(font-lock-function-call-face ((t (:slant italic :foreground "#8fbfdc" :inherit (font-lock-function-name-face))))) '(font-lock-function-name-face ((t (:foreground "#8fbfdc")))) '(font-lock-keyword-face ((t (:foreground "#fad07a")))) '(font-lock-negation-char-face ((t (:foreground "#cf6a4c" :inherit (bold))))) '(font-lock-number-face ((t (:foreground "#cf6a4c")))) '(font-lock-misc-punctuation-face ((t (:inherit (font-lock-punctuation-face))))) '(font-lock-operator-face ((t (:foreground "#a0a8b0")))) '(font-lock-preprocessor-face ((t (:foreground "#fad07a" :inherit (bold))))) '(font-lock-property-name-face ((t (:weight bold :foreground "#8fbfdc")))) '(font-lock-property-use-face ((t (:weight regular :inherit (font-lock-property-name-face))))) '(font-lock-punctuation-face ((t (:foreground "#a0a8b0")))) '(font-lock-regexp-grouping-backslash ((t (:foreground "#fad07a" :inherit (bold))))) '(font-lock-regexp-grouping-construct ((t (:foreground "#fad07a" :inherit (bold))))) '(font-lock-string-face ((t (:foreground "#99ad6a")))) '(font-lock-type-face ((t (:foreground "#ffb17a")))) '(font-lock-variable-name-face ((t (:foreground "#e8e8d3")))) '(font-lock-variable-use-face ((t (:foreground "#e8e8d3" :inherit (font-lock-variable-name-face))))) '(font-lock-warning-face ((t (:inherit (warning))))) ;;;; Links, buttons, tooltips '(button ((t (:inherit (link))))) '(link ((t (:weight bold :underline (:color foreground-color :style line :position nil) :foreground "#8fbfdc")))) '(link-visited ((t (:inherit link :foreground "#c6b5ed")))) '(fringe ((t (:foreground "#404040" :inherit (default))))) '(tooltip ((t (:foreground "#e8e8d3" :background "#1b1b1b")))) ;;;; Mode line '(header-line ((t (:inherit (mode-line))))) '(mode-line ((t (:background "#1c1c1c" :foreground unspecified)))) '(mode-line-buffer-id ((t (:weight bold)))) '(mode-line-emphasis ((t (:foreground "#fad07a")))) '(mode-line-highlight ((t (:inherit (highlight))))) '(mode-line-inactive ((t (:foreground "#767676" :background "#121212")))) ;;;; Tab bar '(tab-bar ((t (:inherit default :background "#151515" :foreground "#767676")))) '(tab-bar-tab ((t (:inherit tab-bar :background "#262626" :foreground "#e8e8d3" :weight bold :box nil)))) '(tab-bar-tab-inactive ((t (:inherit tab-bar :background "#151515" :foreground "#999999" :weight normal :box nil)))) ;;;; Search & Completions '(isearch ((t (:weight bold :inherit (lazy-highlight))))) '(isearch-fail ((t (:weight bold :foreground "#151515" :background "#cf6a4c")))) '(lazy-highlight ((t (:weight bold :foreground "#e8e8d3" :background "#303030")))) '(match ((t (:weight bold :foreground "#99ad6a" :background "#151515")))) '(next-error ((t (:inherit (region))))) '(query-replace ((t (:inherit (isearch))))) ;;;; VC gutter: added = green, deleted = red, modified = sand/yellow '(diff-hl-insert ((t (:foreground "#99ad6a" :background "#99ad6a")))) '(diff-hl-delete ((t (:foreground "#cf6a4c" :background "#cf6a4c")))) '(diff-hl-change ((t (:foreground "#fad07a" :background "#fad07a")))) '(git-gutter:added ((t (:foreground "#99ad6a" :background "#99ad6a")))) '(git-gutter:deleted ((t (:foreground "#cf6a4c" :background "#cf6a4c")))) '(git-gutter:modified ((t (:foreground "#fad07a" :background "#fad07a")))) '(git-gutter-fr:added ((t (:foreground "#99ad6a")))) '(git-gutter-fr:deleted ((t (:foreground "#cf6a4c")))) '(git-gutter-fr:modified ((t (:foreground "#fad07a")))) ;;;; gnus: group buffer '(gnus-group-news-1 ((t (:foreground "#e8e8d3" :weight bold)))) '(gnus-group-news-1-empty ((t (:foreground "#e8e8d3" :weight normal)))) '(gnus-group-news-2 ((t (:foreground "#8fbfdc" :weight bold)))) '(gnus-group-news-2-empty ((t (:foreground "#8fbfdc" :weight normal)))) '(gnus-group-news-3 ((t (:foreground "#fad07a" :weight bold)))) '(gnus-group-news-3-empty ((t (:foreground "#fad07a" :weight normal)))) '(gnus-group-news-low ((t (:foreground "#767676" :weight bold)))) '(gnus-group-news-low-empty ((t (:foreground "#404040" :weight normal)))) '(gnus-group-mail-1 ((t (:foreground "#99ad6a" :weight bold)))) '(gnus-group-mail-1-empty ((t (:foreground "#99ad6a" :weight normal)))) '(gnus-group-mail-2 ((t (:foreground "#c6b5ed" :weight bold)))) '(gnus-group-mail-2-empty ((t (:foreground "#c6b5ed" :weight normal)))) '(gnus-group-mail-3 ((t (:foreground "#ffb17a" :weight bold)))) '(gnus-group-mail-3-empty ((t (:foreground "#ffb17a" :weight normal)))) '(gnus-group-mail-low ((t (:foreground "#767676" :weight bold)))) '(gnus-group-mail-low-empty ((t (:foreground "#404040" :weight normal)))) ;;;; gnus: summary buffer '(gnus-summary-normal-unread ((t (:foreground "#e8e8d3" :weight bold)))) '(gnus-summary-normal-read ((t (:foreground "#767676" :weight normal)))) '(gnus-summary-normal-ticked ((t (:foreground "#cf6a4c" :weight bold)))) '(gnus-summary-normal-ancient ((t (:foreground "#404040" :weight normal)))) '(gnus-summary-normal-undownloaded ((t (:foreground "#8fbfdc" :slant italic)))) '(gnus-summary-high-unread ((t (:foreground "#fad07a" :weight bold)))) '(gnus-summary-high-read ((t (:foreground "#99ad6a" :weight normal)))) '(gnus-summary-high-ticked ((t (:foreground "#cf6a4c" :weight bold)))) '(gnus-summary-high-ancient ((t (:foreground "#767676" :weight normal)))) '(gnus-summary-low-unread ((t (:foreground "#8fbfdc" :slant italic :weight bold)))) '(gnus-summary-low-read ((t (:foreground "#404040" :slant italic :weight normal)))) '(gnus-summary-low-ticked ((t (:foreground "#cf6a4c" :slant italic)))) '(gnus-summary-low-ancient ((t (:foreground "#404040" :slant italic)))) '(gnus-summary-selected ((t (:background "#404040" :foreground "#e8e8d3" :weight bold)))) '(gnus-summary-cancelled ((t (:foreground "#cf6a4c" :strike-through t)))) ;;;; gnus: article headers, citations, misc '(gnus-header-name ((t (:foreground "#8fbfdc" :weight bold)))) '(gnus-header-content ((t (:foreground "#fad07a" :slant italic)))) '(gnus-header-from ((t (:foreground "#e8e8d3" :weight bold)))) '(gnus-header-subject ((t (:foreground "#ffb17a")))) '(gnus-header-newsgroups ((t (:foreground "#fad07a" :slant italic)))) '(gnus-cite-1 ((t (:foreground "#8fbfdc")))) '(gnus-cite-2 ((t (:foreground "#99ad6a")))) '(gnus-cite-3 ((t (:foreground "#fad07a")))) '(gnus-cite-4 ((t (:foreground "#cf6a4c")))) '(gnus-cite-5 ((t (:foreground "#c6b5ed")))) '(gnus-cite-6 ((t (:foreground "#ffb17a")))) '(gnus-cite-7 ((t (:foreground "#8fbfdc")))) '(gnus-cite-8 ((t (:foreground "#99ad6a")))) '(gnus-cite-9 ((t (:foreground "#fad07a")))) '(gnus-cite-10 ((t (:foreground "#767676")))) '(gnus-cite-11 ((t (:foreground "#404040")))) '(gnus-signature ((t (:foreground "#767676" :slant italic)))) '(gnus-button ((t (:inherit link)))) '(gnus-splash ((t (:foreground "#767676")))) '(gnus-emphasis-bold ((t (:weight bold)))) '(gnus-emphasis-italic ((t (:slant italic)))) '(gnus-emphasis-underline ((t (:underline t)))) '(gnus-emphasis-bold-italic ((t (:weight bold :slant italic)))) '(gnus-server-opened ((t (:foreground "#99ad6a" :weight bold)))) '(gnus-server-closed ((t (:foreground "#767676" :slant italic)))) '(gnus-server-denied ((t (:foreground "#cf6a4c" :weight bold)))) '(gnus-server-offline ((t (:foreground "#fad07a" :weight bold)))) '(gnus-server-agent ((t (:foreground "#8fbfdc" :weight bold)))) ;;;; message (gnus composition buffers) '(message-header-name ((t (:foreground "#8fbfdc" :weight bold)))) '(message-header-to ((t (:foreground "#e8e8d3" :weight bold)))) '(message-header-cc ((t (:foreground "#ffb17a")))) '(message-header-subject ((t (:foreground "#e8e8d3" :weight bold)))) '(message-header-newsgroups ((t (:foreground "#fad07a" :slant italic)))) '(message-header-other ((t (:foreground "#fad07a")))) '(message-header-xheader ((t (:foreground "#767676")))) '(message-separator ((t (:foreground "#404040")))) '(message-mml ((t (:foreground "#99ad6a")))) '(message-cited-text-1 ((t (:foreground "#8fbfdc")))) '(message-cited-text-2 ((t (:foreground "#99ad6a")))) '(message-cited-text-3 ((t (:foreground "#fad07a")))) '(message-cited-text-4 ((t (:foreground "#cf6a4c")))) ;;;; magit: sections '(magit-section-heading ((t (:foreground "#fad07a" :weight bold :extend t)))) '(magit-section-secondary-heading ((t (:foreground "#c6b5ed" :weight bold :extend t)))) '(magit-section-heading-selection ((t (:foreground "#99ad6a" :weight bold :extend t)))) '(magit-section-highlight ((t (:background "#1b1b1b" :extend t)))) '(magit-section-child-count ((t (:foreground "#767676")))) ;;;; magit: refs, hashes, log '(magit-branch-local ((t (:foreground "#8fbfdc")))) '(magit-branch-remote ((t (:foreground "#99ad6a")))) '(magit-branch-current ((t (:foreground "#8fbfdc" :weight bold :box (:line-width -1 :color "#767676"))))) '(magit-branch-remote-head ((t (:foreground "#99ad6a" :weight bold :box (:line-width -1 :color "#767676"))))) '(magit-branch-upstream ((t (:slant italic)))) '(magit-tag ((t (:foreground "#fad07a")))) '(magit-hash ((t (:foreground "#767676")))) '(magit-dimmed ((t (:foreground "#404040")))) '(magit-filename ((t (:foreground "#e8e8d3")))) '(magit-refname ((t (:foreground "#767676")))) '(magit-refname-stash ((t (:foreground "#767676")))) '(magit-refname-wip ((t (:foreground "#767676")))) '(magit-log-author ((t (:foreground "#fad07a")))) '(magit-log-date ((t (:foreground "#767676")))) '(magit-log-graph ((t (:foreground "#404040")))) '(magit-keyword ((t (:foreground "#fad07a")))) '(magit-keyword-squash ((t (:foreground "#fad07a")))) '(magit-cherry-equivalent ((t (:foreground "#e8e8d3")))) '(magit-cherry-unmatched ((t (:foreground "#8fbfdc")))) ;;;; magit: diffs '(magit-diff-file-heading ((t (:foreground "#e8e8d3" :weight bold :extend t)))) '(magit-diff-file-heading-highlight ((t (:inherit magit-diff-file-heading :background "#1b1b1b")))) '(magit-diff-file-heading-selection ((t (:inherit magit-diff-file-heading :foreground "#fad07a" :background "#404040")))) '(magit-diff-hunk-heading ((t (:foreground "#c6b5ed" :background "#222222" :extend t)))) '(magit-diff-hunk-heading-highlight ((t (:foreground "#e8e8d3" :background "#404040" :extend t)))) '(magit-diff-hunk-heading-selection ((t (:foreground "#fad07a" :background "#404040" :extend t)))) '(magit-diff-lines-heading ((t (:foreground "#151515" :background "#fad07a" :extend t)))) '(magit-diff-context ((t (:foreground "#767676" :extend t)))) '(magit-diff-context-highlight ((t (:foreground "#c6b5ed" :background "#1b1b1b" :extend t)))) '(magit-diff-added ((t (:foreground "#99ad6a" :background "#1a261a" :extend t)))) '(magit-diff-added-highlight ((t (:foreground "#99ad6a" :background "#223322" :extend t)))) '(magit-diff-removed ((t (:foreground "#cf6a4c" :background "#261a1a" :extend t)))) '(magit-diff-removed-highlight ((t (:foreground "#cf6a4c" :background "#332222" :extend t)))) '(magit-diffstat-added ((t (:foreground "#99ad6a")))) '(magit-diffstat-removed ((t (:foreground "#cf6a4c")))) '(magit-diff-whitespace-warning ((t (:background "#cf6a4c")))) ;;;; magit: process, signatures, sequences, blame, header line '(magit-process-ok ((t (:foreground "#99ad6a" :weight bold)))) '(magit-process-ng ((t (:foreground "#cf6a4c" :weight bold)))) '(magit-mode-line-process ((t (:foreground "#fad07a")))) '(magit-mode-line-process-error ((t (:foreground "#cf6a4c")))) '(magit-signature-good ((t (:foreground "#99ad6a")))) '(magit-signature-bad ((t (:foreground "#cf6a4c" :weight bold)))) '(magit-signature-untrusted ((t (:foreground "#8fbfdc")))) '(magit-signature-expired ((t (:foreground "#fad07a")))) '(magit-signature-expired-key ((t (:foreground "#fad07a")))) '(magit-signature-revoked ((t (:foreground "#cf6a4c")))) '(magit-signature-error ((t (:foreground "#cf6a4c")))) '(magit-sequence-head ((t (:foreground "#8fbfdc")))) '(magit-sequence-stop ((t (:foreground "#99ad6a")))) '(magit-sequence-part ((t (:foreground "#fad07a")))) '(magit-sequence-done ((t (:foreground "#767676")))) '(magit-sequence-onto ((t (:foreground "#767676")))) '(magit-bisect-good ((t (:foreground "#99ad6a")))) '(magit-bisect-skip ((t (:foreground "#fad07a")))) '(magit-bisect-bad ((t (:foreground "#cf6a4c")))) '(magit-blame-heading ((t (:foreground "#c6b5ed" :background "#222222" :extend t)))) '(magit-header-line ((t (:foreground "#fad07a" :weight bold)))) '(magit-header-line-key ((t (:foreground "#fad07a")))) '(magit-header-line-log-select ((t (:foreground "#e8e8d3" :weight bold)))) ;;;; transient (magit popups) '(transient-heading ((t (:foreground "#fad07a" :weight bold)))) '(transient-key ((t (:foreground "#fad07a" :weight bold)))) '(transient-key-exit ((t (:foreground "#cf6a4c" :weight bold)))) '(transient-key-return ((t (:foreground "#fad07a" :weight bold)))) '(transient-key-stay ((t (:foreground "#99ad6a" :weight bold)))) '(transient-argument ((t (:foreground "#99ad6a" :weight bold)))) '(transient-value ((t (:foreground "#99ad6a")))) '(transient-inactive-argument ((t (:foreground "#767676")))) '(transient-inactive-value ((t (:foreground "#767676")))) '(transient-unreachable ((t (:foreground "#404040")))) '(transient-unreachable-key ((t (:foreground "#404040")))) '(transient-disabled-suffix ((t (:foreground "#151515" :background "#cf6a4c" :weight bold)))) '(transient-enabled-suffix ((t (:foreground "#151515" :background "#99ad6a" :weight bold)))) '(transient-delimiter ((t (:foreground "#767676")))) '(transient-separator ((t (:background "#1c1c1c")))) '(transient-active-infix ((t (:foreground "#e8e8d3" :background "#404040")))) '(transient-mismatched-key ((t (:underline t)))) '(transient-nonstandard-key ((t (:underline t)))) ;;;; git-commit (magit commit message buffer) '(git-commit-summary ((t (:foreground "#e8e8d3" :weight bold)))) '(git-commit-overlong-summary ((t (:foreground "#cf6a4c" :weight bold)))) '(git-commit-nonempty-second-line ((t (:foreground "#cf6a4c")))) '(git-commit-keyword ((t (:foreground "#8fbfdc")))) '(git-commit-comment-heading ((t (:foreground "#fad07a" :weight bold)))) '(git-commit-comment-branch-local ((t (:foreground "#8fbfdc")))) '(git-commit-comment-branch-remote ((t (:foreground "#99ad6a")))) '(git-commit-comment-detached ((t (:foreground "#fad07a")))) '(git-commit-comment-file ((t (:foreground "#fad07a")))) '(git-commit-comment-action ((t (:foreground "#99ad6a")))) ;;;; erc: buffer text '(erc-default-face ((t (:foreground "#e8e8d3")))) '(erc-input-face ((t (:foreground "#99ad6a")))) '(erc-my-nick-face ((t (:foreground "#99ad6a" :weight bold)))) '(erc-my-nick-prefix-face ((t (:foreground "#99ad6a" :weight bold)))) '(erc-nick-default-face ((t (:foreground "#e8e8d3" :weight bold)))) '(erc-nick-prefix-face ((t (:foreground "#fad07a")))) '(erc-notice-face ((t (:foreground "#767676" :weight normal)))) '(erc-information ((t (:foreground "#c6b5ed")))) '(erc-timestamp-face ((t (:foreground "#404040" :weight normal)))) '(erc-action-face ((t (:foreground "#ffb17a" :weight bold)))) '(erc-prompt-face ((t (:foreground "#fad07a" :weight bold)))) '(erc-command-indicator-face ((t (:foreground "#c6b5ed" :weight bold)))) '(erc-error-face ((t (:foreground "#cf6a4c")))) '(erc-button ((t (:inherit link :foreground "#e8e8d3")))) '(erc-button-nick-default-face ((t (:foreground "#e8e8d3" :weight bold)))) '(erc-bold-face ((t (:weight bold)))) '(erc-italic-face ((t (:slant italic)))) '(erc-underline-face ((t (:underline t)))) '(erc-inverse-face ((t (:foreground "#151515" :background "#e8e8d3")))) '(erc-keep-place-indicator-line ((t (:underline (:color "#404040" :style line))))) '(erc-keep-place-indicator-arrow ((t (:foreground "#cf6a4c")))) '(erc-header-line ((t (:foreground "#c6b5ed" :background "#1c1c1c")))) '(erc-header-line-disconnected ((t (:foreground "#cf6a4c" :background "#1c1c1c")))) ;;;; erc: highlighting rules '(erc-current-nick-face ((t (:foreground "#fad07a" :weight bold)))) '(erc-keyword-face ((t (:foreground "#fad07a" :weight bold)))) '(erc-nick-msg-face ((t (:foreground "#fad07a" :weight bold)))) '(erc-direct-msg-face ((t (:foreground "#cf6a4c")))) '(erc-pal-face ((t (:foreground "#99ad6a" :weight bold)))) '(erc-fool-face ((t (:foreground "#404040")))) '(erc-dangerous-host-face ((t (:foreground "#cf6a4c")))) ;;;; css-mode / scss-mode '(css-proprietary-property ((t (:foreground "#fad07a")))) '(css-property ((t (:foreground "#e8e8d3")))) '(css-selector ((t (:foreground "#cf6a4c")))) ;;;; markdown-mode '(markdown-markup-face ((t (:foreground "#404040")))) '(markdown-header-face ((t (:inherit bold :foreground "#cf6a4c")))) '(markdown-code-face ((t (:background "#1c1c1c")))) ;;;; outline '(outline-1 ((t (:foreground "#e8e8d3" :weight ultra-bold)))) '(outline-2 ((t (:foreground "#8fbfdc")))) '(outline-3 ((t (:foreground "#99ad6a")))) '(outline-4 ((t (:foreground "#c6b5ed")))) '(outline-5 ((t (:foreground "#ffb17a")))) '(outline-6 ((t (:foreground "#fad07a")))) '(outline-7 ((t (:foreground "#cf6a4c")))) '(outline-8 ((t (:foreground "#e8e8d3")))) ;;;; org '(org-block ((t (:background "#1b1b1b")))) '(org-block-begin-line ((t (:foreground "#404040" :slant italic :background "#121212")))) '(org-ellipsis ((t (:underline nil :background "#151515" :foreground "#cf6a4c")))) '(org-quote ((t (:background "#1c1c1c")))) '(org-hide ((t (:foreground "#151515")))) ;;;; solaire-mode '(solaire-mode-line-face ((t (:inherit mode-line :background "#1c1c1c")))) '(solaire-mode-line-inactive-face ((t (:inherit mode-line-inactive :background "#1c1c1c"))))) ;;;###autoload (when load-file-name (add-to-list 'custom-theme-load-path (file-name-as-directory (file-name-directory load-file-name)))) (provide-theme 'minimal) ;;; minimal-theme.el ends here