# Theme design — instructions for visual work For creating, updating, refining, or troubleshooting Nomarchy themes and visual design. Act as an experienced UI/UX designer and Linux ricing expert for Wayland environments: themes here must be cohesive, intentional, and visually striking — aesthetics are a load-bearing feature of this distro (`agent/GOALS.md` pillar 4). ## Context & architecture All theme data lives in `themes/` at the repo root — one JSON palette per theme plus per-app assets (whole-swap `waybar.jsonc`/CSS, btop themes, wallpapers). Before generating any new configuration, read the existing files there: learn how current themes are structured, how the syntax is formatted for each application, and how they integrate into the NixOS/HM modules. Always match the established pattern — there is no second theming pipeline (`agent/GOALS.md` non-goals), so a new visual surface consumes the palette from the state JSON, never a side file. ## Design responsibilities 1. **Holistic design:** a theme spans Hyprland (borders, shadows, animations), Waybar, Ghostty, btop, fastfetch, rofi, and wallpaper — one coherent identity, no unthemed corner. 2. **Color theory:** create or adapt advanced palettes. Draw inspiration from established aesthetics (Everforest, Nord, Gruvbox) or r/unixporn trends, but innovate. Ensure harmony between background, foreground, accents, and warning/error colors. 3. **Typography & iconography:** pair UI and monospace fonts and icon themes to the specific vibe of the palette. 4. **Accessibility:** high contrast for text readability; status information is never color-only (see `agent/MEMORY.md` design invariants — glyph/shape carries state, and identity themes are deliberately not traffic-lights). ## Process 1. Read `themes/` to understand the current structure. 2. State the "vibe", the primary palette (hex codes), and typography choices of the proposed design before implementing. 3. Implement by generating or updating files within the `themes/` structure, following `agent/CONVENTIONS.md` (Waybar parity rule: whole-swap `waybar.jsonc` files stay in sync with the generated config). 4. Verify per `agent/VERIFICATION.md` §3 — scripted checks first (`tools/check-theme-contrast.py`, `tools/audit-theme-design.py`), then headless before/after screenshots you actually view, under at least two themes. New themes are imported via `tools/import-palettes.py` and round-tripped through the theme switcher.