/* Central theme: roles + palette imported from basic/.config/themes * (mocha.css is a symlink into the current theme's theme.css). * This file must use @role/@palette names only — never hardcoded colors — * so a future theme only swaps the central files. */ @import url("mocha.css"); * { font-family: "JetBrainsMono Nerd Font", FontAwesome, sans-serif; font-size: 13px; } /* ---------- Waybar Container ---------- */ window#waybar { background-color: @bg_dim; color: @fg; border-bottom: 1px solid @border; box-shadow: 0 10px 30px rgba(0,0,0,0.30); transition-property: background-color, opacity; transition-duration: .5s; } window#waybar.hidden { opacity: 0.35; } /* ---------- Buttons / Workspaces ---------- */ button { box-shadow: inset 0 -2px transparent; border: none; border-radius: 0; } button:hover { background: inherit; box-shadow: inset 0 -2px @accent; } #workspaces button { padding: 0 8px; margin: 4px 3px; background-color: @surface; color: @fg_dim; border: 1px solid @border; border-radius: 10px; } #workspaces button:hover { background: @border; color: @fg; } #workspaces button.focused, #workspaces button.active { background-color: @accent; color: @bg_deep; border: 1px solid @accent; box-shadow: inset 0 -2px @accent2; } #workspaces button.urgent { background-color: @urgent; border-color: @urgent; color: @bg_deep; } #window, #workspaces { margin: 0 4px; } .modules-left > widget:first-child > #workspaces { margin-left: 0; } .modules-right > widget:last-child > #workspaces { margin-right: 0; } /* ---------- Common “Chip” module style ---------- */ #clock, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #pulseaudio, #wireplumber, #custom-media, #custom-gpu, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, #mpd, #language, #keyboard-state, #privacy, #privacy-item { padding: 0 10px; color: @fg; background-color: @surface; border: 1px solid @border; border-radius: 10px; margin: 4px 4px; } #pulseaudio:hover, #wireplumber:hover, #network:hover, #clock:hover { background-color: @border; } #clock { border-color: @accent; } /* Battery */ #battery.charging, #battery.plugged { background-color: @ok; border-color: @ok; color: @bg_deep; } @keyframes blink { to { background-color: @urgent; border-color: @urgent; } } #battery.critical:not(.charging) { background-color: @urgent; border-color: @urgent; color: @bg_deep; animation-name: blink; animation-duration: 0.6s; animation-timing-function: steps(10); animation-iteration-count: infinite; animation-direction: alternate; } /* Network */ #network.disconnected { background-color: @urgent; border-color: @urgent; color: @bg_deep; } /* Audio */ #pulseaudio:hover { background-color: @border; } #pulseaudio.muted { background-color: @surface; border-color: @border; color: @fg_muted; } #wireplumber.muted { background-color: @urgent; border-color: @urgent; color: @bg_deep; } /* Temperature */ #temperature.critical { background-color: @urgent; border-color: @urgent; color: @bg_deep; } /* Tray */ #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; background-color: @urgent; border-radius: 10px; } /* Idle inhibitor */ #idle_inhibitor.activated { background-color: @accent; border-color: @accent; color: @bg_deep; } /* Scratchpad */ #scratchpad { background: @surface; } #scratchpad.empty { background-color: transparent; border-color: transparent; } /* Privacy */ #privacy { padding: 0; background-color: transparent; border-color: transparent; } #privacy-item { padding: 0 6px; color: @fg; } #privacy-item.screenshare { background-color: @warn; border-color: @warn; color: @bg_deep; } #privacy-item.audio-in { background-color: @ok; border-color: @ok; color: @bg_deep; } #privacy-item.audio-out { background-color: @accent; border-color: @accent; color: @bg_deep; }