-
-
Notifications
You must be signed in to change notification settings - Fork 204
Description
Feature Description
I would like to request the addition of a Material Gruvbox color scheme option to the list of available Dark Themes within the Anupuchin "Style Settings" configuration.
I have personally customized the Anupuchin theme to use the Material Gruvbox palette. Since Anupuchin already supports multiple preset color schemes, adding this would provide users with a popular, retro-inspired high-contrast option without needing manual snippet management.
Implementation Note:
I am not a developer, so my implementation currently works by applying the CSS snippet below on top of the "Rose Pine" (or Rosebox) preset in Style Settings. I used that as a base to ensure any un-styled variables (like borders or specific interactive elements) maintained a cohesive look.
- Note to Dev: My snippet directly overrides the standard Obsidian variables (e.g.,
--background-primary,--text-normal). I noticed yourextended-colorschemes.csstypically uses internal mappings (like--ctp-ext-rosewater). You may need to adapt the RGB/Hex values below to fit your specificctp-extmapping system.
Code Snippets
1. Material Gruvbox Color Scheme CSS:
:root {
/* DEFAULTS */
--dark0-hard-x: 29,32,33;
--dark0-hard: rgb(var(--dark0-hard-x));
--dark0-x: 40,40,40;
--dark0: rgb(var(--dark0-x));
--dark0-soft-x: 50,48,47;
--dark0-soft: rgb(var(--dark0-soft-x));
--dark1-x: 60,56,54;
--dark1: rgb(var(--dark1-x));
--dark2-x: 80,73,69;
--dark2: rgb(var(--dark2-x));
--dark3-x: 102,92,84;
--dark3: rgb(var(--dark3-x));
--dark4-x: 124,111,100;
--dark4: rgb(var(--dark4-x));
--gray-x: 146,131,116;
--gray: rgb(var(--gray-x));
--dark-text-x: 101,71,53;
--dark-text: rgb(var(--dark-text-x));
--dark-text-faint-x: 179,126,93;
--dark-text-faint: rgb(var(--dark-text-faint-x));
--dark-text-muted-x: 115,81,69;
--dark-text-muted: rgb(var(--dark-text-muted-x));
--light0-hard-x: 249,245,215;
--light0-hard: rgb(var(--light0-hard-x));
--light0-x: 251,241,199;
--light0: rgb(var(--light0-x));
--light0-soft-x: 242,229,188;
--light0-soft: rgb(var(--light0-soft-x));
--light1-x: 235,219,178;
--light1: rgb(var(--light1-x));
--light2-x: 213,196,161;
--light2: rgb(var(--light2-x));
--light3-x: 189,174,147;
--light3: rgb(var(--light3-x));
--light4-x: 168,153,132;
--light4: rgb(var(--light4-x));
--light-text-x: 212,190,152;
--light-text: rgb(var(--light-text-x));
--neutral-red-x: 234,105,98;
--neutral-red: rgb(var(--neutral-red-x));
--neutral-green-x: 169,182,101;
--neutral-green: rgb(var(--neutral-green-x));
--neutral-yellow-x: 231,138,78;
--neutral-yellow: rgb(var(--neutral-yellow-x));
--neutral-blue-x: 125,174,163;
--neutral-blue: rgb(var(--neutral-blue-x));
--neutral-purple-x: 211,134,155;
--neutral-purple: rgb(var(--neutral-purple-x));
--neutral-aqua-x: 137,180,130;
--neutral-aqua: rgb(var(--neutral-aqua-x));
--faded-red-x: 193,74,74;
--faded-red: rgb(var(--faded-red-x));
--faded-green-x: 108,120,46;
--faded-green: rgb(var(--faded-green-x));
--faded-yellow-x: 195,94,10;
--faded-yellow: rgb(var(--faded-yellow-x));
--faded-blue-x: 69,112,122;
--faded-blue: rgb(var(--faded-blue-x));
--faded-purple-x: 148,94,128;
--faded-purple: rgb(var(--faded-purple-x));
--faded-aqua-x: 76,122,93;
--faded-aqua: rgb(var(--faded-aqua-x));
}
body {
--accent-h: 166; /* --neutral-blue #7daea3 */
--accent-s: 23%;
--accent-l: 58%;
--embed-border-left: 6px double var(--interactive-accent);
}
.theme-dark {
--color-red-rgb: var(--neutral-red-x);
--color-red: var(--neutral-red);
--color-purple-rgb: var(--neutral-purple-x);
--color-purple: var(--neutral-purple);
--color-green-rgb: var(--neutral-green-x);
--color-green: var(--neutral-green);
--color-cyan-rgb: var(--neutral-blue-x);
--color-cyan: var(--neutral-blue);
--color-blue-rgb: var(--faded-blue-x);
--color-blue: var(--faded-blue);
--color-yellow-rgb: var(--neutral-yellow-x);
--color-yellow: var(--neutral-yellow);
--color-orange-rgb: var(--faded-yellow-x);
--color-orange: var(--faded-yellow);
--color-pink-rgb: var(--neutral-purple-x);
--color-pink: var(--neutral-purple);
--background-primary: var(--dark0);
--background-primary-alt: var(--dark0-soft);
--background-secondary: var(--dark0-hard);
--background-secondary-alt: var(--dark1);
--background-modifier-border: var(--dark1);
--background-accent: var(--dark0-soft);
--cursor-line-background: rgba(var(--dark1-x), 0.5);
--text-normal: var(--light-text);
--text-faint: var(--light1);
--text-muted: var(--light2);
--h1-color: var(--neutral-red);
--h2-color: var(--neutral-yellow);
--h3-color: var(--neutral-green);
--h4-color: var(--neutral-aqua);
--h5-color: var(--neutral-blue);
--h6-color: var(--neutral-purple);
--text-highlight-bg: var(--neutral-yellow);
--text-highlight-fg: var(--dark0-hard);
--text-accent: var(--neutral-yellow);
--text-accent-hover: var(--faded-yellow);
--tag-color: var(--neutral-aqua);
--tag-background: var(--dark2);
--tag-background-hover: var(--dark1);
--inline-title-color: var(--neutral-yellow);
--bold-color: var(--neutral-yellow);
--italic-color: var(--neutral-yellow);
--checkbox-color: var(--light4);
--checkbox-color-hover: var(--light4);
--checkbox-border-color: var(--light4);
--checkbox-border-color-hover: var(--light4);
--checklist-done-color: rgba(var(--light2-x), 0.5);
--table-header-background: rgba(var(--dark0-x), 0.2);
--table-header-background-hover: var(--dark2);
--table-row-even-background: rgba(var(--dark2-x), 0.2);
--table-row-odd-background: rgba(var(--dark2-x), 0.4);
--table-row-background-hover: var(--dark2);
--text-selection: rgba(var(--neutral-red-x), 0.6);
--flashing-background: rgba(var(--neutral-red-x), 0.3);
--code-normal: var(--neutral-blue);
--code-background: var(--dark1);
--mermaid-note: var(--neutral-blue);
--mermaid-actor: var(--dark2);
--mermaid-loopline: var(--neutral-blue);
--icon-color-hover: var(--neutral-red);
--icon-color-focused: var(--neutral-blue);
--nav-item-color-hover: var(--neutral-red);
--nav-item-color-active: var(--neutral-aqua);
--nav-file-tag: rgba(var(--neutral-yellow-x), 0.9);
--graph-line: var(--dark2);
--graph-node: var(--light3);
--graph-node-tag: var(--neutral-red);
--graph-node-attachment: var(--neutral-green);
--calendar-hover: var(--neutral-red);
--calendar-background-hover: var(--dark1);
--calendar-week: var(--neutral-orange);
--calendar-today: var(--neutral-orange);
--dataview-key: var(--text-faint);
--dataview-key-background: rgba(var(--faded-red-x), 0.5);
--dataview-value: var(--text-faint);
--dataview-value-background: rgba(var(--neutral-green-x), 0.3);
--tab-text-color-focused-active: var(--neutral-yellow);
--tab-text-color-focused-active-current: var(--neutral-red);
}Miscellaneous Features
I have also created a specific fix for the Title Bar to ensure it blends seamlessly with the Gruvbox background colors.
Title Bar Fix CSS:
/* Force window control background to match main title bar */
body {
/* Common variable for title bar backgrounds in AnuPpuccin layouts */
--titlebar-background-focused: var(--tab-container-background, var(--background-secondary));
--titlebar-background: var(--tab-container-background, var(--background-secondary));
}
/* Target the specific container for the buttons */
.titlebar-button-container {
background-color: var(--titlebar-background-focused);
}
/* Ensure buttons themselves are transparent */
.titlebar-button {
background-color: transparent !important;
}
.titlebar-button:hover {
background-color: rgba(var(--ctp-text), 0.075) !important;
}Preview
