feat(themes): add executive-slate professional dark theme
All checks were successful
Check / eval (push) Successful in 2m56s
All checks were successful
Check / eval (push) Successful in 2m56s
Leveraged Nano Banana to generate a 4k functional minimalist wallpaper. Added the new preset with a solid, high-legibility waybar and flat rofi launcher.
This commit is contained in:
43
themes/executive-slate.json
Normal file
43
themes/executive-slate.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"version": 1,
|
||||
"name": "Executive Slate",
|
||||
"slug": "executive-slate",
|
||||
"mode": "dark",
|
||||
"wallpaper": "",
|
||||
"colors": {
|
||||
"base": "#1A1D24",
|
||||
"mantle": "#14161C",
|
||||
"surface": "#232731",
|
||||
"overlay": "#333947",
|
||||
"text": "#D4DAE8",
|
||||
"subtext": "#8792A6",
|
||||
"muted": "#525A6E",
|
||||
"accent": "#4D78CC",
|
||||
"accentAlt": "#6C92D9",
|
||||
"good": "#68A06B",
|
||||
"warn": "#D19C4C",
|
||||
"bad": "#C95F65"
|
||||
},
|
||||
"border": {
|
||||
"active": "accent",
|
||||
"inactive": "overlay"
|
||||
},
|
||||
"ansi": [
|
||||
"#232731",
|
||||
"#C95F65",
|
||||
"#68A06B",
|
||||
"#D19C4C",
|
||||
"#4D78CC",
|
||||
"#836CC9",
|
||||
"#4C99A0",
|
||||
"#D4DAE8",
|
||||
"#525A6E",
|
||||
"#D67177",
|
||||
"#7BB57F",
|
||||
"#E0AF5E",
|
||||
"#6C92D9",
|
||||
"#9A84E0",
|
||||
"#5FABB3",
|
||||
"#FFFFFF"
|
||||
]
|
||||
}
|
||||
BIN
themes/executive-slate/backgrounds/wallpaper.png
Normal file
BIN
themes/executive-slate/backgrounds/wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 661 KiB |
79
themes/executive-slate/rofi.rasi
Normal file
79
themes/executive-slate/rofi.rasi
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Executive Slate Rofi Theme
|
||||
* Clean, flat, functional, professional.
|
||||
*/
|
||||
|
||||
* {
|
||||
background-color: transparent;
|
||||
text-color: var(text, #D4DAE8);
|
||||
font: "Inter 13";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 600px;
|
||||
background-color: var(base, #1A1D24);
|
||||
border: 1px solid var(overlay, #333947);
|
||||
border-radius: 4px;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
spacing: 12px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
background-color: var(surface, #232731);
|
||||
border: 1px solid var(overlay, #333947);
|
||||
border-radius: 4px;
|
||||
padding: 10px 14px;
|
||||
spacing: 10px;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: var(accent, #4D78CC);
|
||||
}
|
||||
|
||||
entry {
|
||||
placeholder: "Type to filter...";
|
||||
placeholder-color: var(subtext, #8792A6);
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 7;
|
||||
spacing: 4px;
|
||||
scrollbar: false;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px 14px;
|
||||
border-radius: 4px;
|
||||
spacing: 12px;
|
||||
}
|
||||
|
||||
element normal.normal, element alternate.normal {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* Functional highlight: solid surface color with a subtle accent edge */
|
||||
element selected.normal {
|
||||
background-color: var(surface, #232731);
|
||||
text-color: var(text, #D4DAE8);
|
||||
border: 0 0 0 4px solid;
|
||||
border-color: var(accent, #4D78CC);
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 24px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-text selected {
|
||||
text-color: var(text, #D4DAE8);
|
||||
}
|
||||
88
themes/executive-slate/waybar.css
Normal file
88
themes/executive-slate/waybar.css
Normal file
@@ -0,0 +1,88 @@
|
||||
/* Executive Slate Waybar — Solid, functional, professional */
|
||||
|
||||
* {
|
||||
font-family: "Inter", "Symbols Nerd Font", sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: @base;
|
||||
border-bottom: 1px solid @mantle;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* Tightly packed modules for a functional feel */
|
||||
.modules-left,
|
||||
.modules-center,
|
||||
.modules-right {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#workspaces button,
|
||||
#window,
|
||||
#clock,
|
||||
#tray,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#custom-notification,
|
||||
#custom-vpn,
|
||||
#custom-powerprofile,
|
||||
#custom-updates,
|
||||
#custom-doctor {
|
||||
padding: 0 10px;
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* Subtle hover effects */
|
||||
#workspaces button {
|
||||
color: @subtext;
|
||||
transition: all 0.2s ease-in-out;
|
||||
border-bottom: 2px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @surface;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* Active gets a strong underline instead of a glowing background */
|
||||
#workspaces button.active {
|
||||
color: @text;
|
||||
background: @surface;
|
||||
border-bottom: 2px solid @accent;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: @bad;
|
||||
border-bottom: 2px solid @bad;
|
||||
}
|
||||
|
||||
/* Minimal indicators */
|
||||
#battery.charging { color: @good; }
|
||||
#battery.warning:not(.charging) { color: @warn; }
|
||||
#battery.critical:not(.charging) {
|
||||
color: @bad;
|
||||
background: @surface;
|
||||
border-bottom: 2px solid @bad;
|
||||
}
|
||||
|
||||
#pulseaudio.muted { color: @muted; }
|
||||
#custom-updates { color: @accentAlt; }
|
||||
#custom-doctor { color: @bad; }
|
||||
#custom-vpn { color: @accent; }
|
||||
|
||||
/* Functional tooltip */
|
||||
tooltip {
|
||||
background: @base;
|
||||
border: 1px solid @overlay;
|
||||
border-radius: 4px;
|
||||
}
|
||||
tooltip label {
|
||||
color: @text;
|
||||
}
|
||||
Reference in New Issue
Block a user