diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 1a66ce9..5c1492a 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -34,6 +34,11 @@ Template: - **Did:** Researched modern Hyprland styles and generated a concept using Nano Banana. Created the `neon-glass` preset featuring a floating, segmented pill-style Waybar (`waybar.css`) and a glassmorphic Rofi launcher (`rofi.rasi`). Generated a matching 4K wallpaper. - **Verified:** Contrast checker script passed (22 themes x 7 pairings green). Flake check passed cleanly. +## 2026-07-06 — theme UI review, part 2 (iteration #53) +- **Task:** Create a professional, sober dark theme maximizing functionality. +- **Did:** Generated a minimalist geometric concept wallpaper. Created the `executive-slate` preset with a matte, dark gray/steel-blue palette. Re-styled Waybar to a compact, non-transparent, solid edge-to-edge functional bar and Rofi to a flat, simple grid UI. +- **Verified:** Contrast checker script passed (23 themes x 7 pairings green). Flake check passed cleanly. + ## 2026-07-06 — waybar redesign (iteration #50, one-off) - **Task:** User request — remove system usage (CPU) and memory items from waybar. - **Did:** removed `cpu` and `memory` from `modules-right` and the CSS styling blocks in `modules/home/waybar.nix`. diff --git a/themes/executive-slate.json b/themes/executive-slate.json new file mode 100644 index 0000000..5ef6d79 --- /dev/null +++ b/themes/executive-slate.json @@ -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" + ] +} diff --git a/themes/executive-slate/backgrounds/wallpaper.png b/themes/executive-slate/backgrounds/wallpaper.png new file mode 100644 index 0000000..6cce8a3 Binary files /dev/null and b/themes/executive-slate/backgrounds/wallpaper.png differ diff --git a/themes/executive-slate/rofi.rasi b/themes/executive-slate/rofi.rasi new file mode 100644 index 0000000..e25fe54 --- /dev/null +++ b/themes/executive-slate/rofi.rasi @@ -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); +} diff --git a/themes/executive-slate/waybar.css b/themes/executive-slate/waybar.css new file mode 100644 index 0000000..c51ca2a --- /dev/null +++ b/themes/executive-slate/waybar.css @@ -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; +}