Dotfiles/desktopenvs/hyprdrive/supersonic-booster/style/style.css

237 lines
6.6 KiB
CSS

/* supersonic-booster — PipeWire mixer panel. Matches the astro-menu/beacon/
* transmitter-panel idiom: emitted-magenta text, violet holo-glass fills,
* glow-violet/accent frames, Agave Nerd Font Mono, rounded panels. The
* scanline/sweep/noise depth is Cairo-drawn on top by lib/hologram.py. */
@define-color text #EB00A6; /* emitted magenta, same override the rest of the suite uses */
* {
font-family: "Agave Nerd Font Mono", monospace;
font-size: 11pt;
}
/* Blank the structural nodes so the CyberQueer theme's `* { background-color:
* #1a1a1a }` doesn't fill the surface/gaps with an opaque slab — the panel
* asserts its own glass fill below (same trick as beacon/transmitter-panel). */
window,
window.background,
.sb-window,
.sb-scroll-row,
box,
overlay,
label,
image,
drawingarea {
background: transparent;
background-color: transparent;
}
/* the holo-glass panel */
.sb-panel {
background-color: alpha(@violet, 0.40);
border: 2px solid #8A5CFF;
border-radius: 16px;
padding: 14px 16px;
box-shadow: 0 0 16px 1px alpha(#8A5CFF, 0.35);
}
.sb-header { margin: 0 64px 4px 0; }
.sb-title {
color: @text;
font-weight: bold;
font-size: 14pt;
letter-spacing: 1px;
}
/* ---- tab switcher ------------------------------------------------------- */
.sb-tabbar {
margin-bottom: 4px;
}
.sb-tab {
color: @text;
background-color: alpha(@violet, 0.35);
border: 2px solid #8A5CFF;
border-radius: 18px;
padding: 4px 14px;
min-height: 26px;
transition: border-color 180ms ease, color 180ms ease, box-shadow 220ms ease, background 180ms ease;
}
.sb-tab:hover {
border-color: @accent;
color: @accent;
}
.sb-tab:checked {
background-color: alpha(@accent, 0.55);
border-color: @accent;
color: @bg;
box-shadow: 0 0 12px 1px alpha(@accent, 0.5);
}
.sb-tab-page {
min-height: 250px; /* tall enough for a card with vertical meters */
}
/* ---- horizontal scroll row of cards --------------------------------------- */
.sb-scroll-row { padding: 4px 2px 10px 2px; }
.sb-row { padding: 2px; }
.sb-empty {
color: @text;
opacity: 0.55;
padding: 40px 20px;
}
/* ---- cards -------------------------------------------------------------- */
.sb-card {
background-color: alpha(@violet, 0.30);
border: 2px solid #8A5CFF;
border-radius: 14px;
padding: 8px 10px;
min-width: 150px;
}
.sb-card-head { margin-bottom: 2px; }
.sb-card-title {
color: @text;
font-weight: bold;
font-size: 10.5pt;
}
.sb-field-label {
color: @text;
opacity: 0.65;
font-size: 8.5pt;
letter-spacing: 0.5px;
}
/* ---- vertical volume meter (Gtk.Scale) ------------------------------------ */
/* The magenta highlight is the volume you *selected*; the purple column the
* live peak indicator paints inside it (ui/peakbar.py, Cairo — the only styling
* here is the muted dimming) is the signal actually reaching the mix. */
.sb-meter-row { margin: 2px 0; }
/* class-specificity re-assertion of the transparent-structure rule above: the
* CyberQueer theme's `* { background-color: #1a1a1a }` otherwise paints a slab
* behind the value label and, worse, behind the peak column overlaid on the
* trough — which reads as a dark stripe punched through the magenta fill. */
.sb-meter-row,
.sb-meter-stack,
.sb-meter-value,
.sb-meter-label,
.sb-meter,
.sb-peakbar {
background-image: none;
background-color: transparent;
}
.sb-meter-label {
color: @text;
opacity: 0.75;
font-size: 9pt;
}
.sb-meter-value {
color: @text;
opacity: 0.85;
font-size: 9pt;
letter-spacing: 0.5px;
}
/* empty portion stays see-through — an idle meter and a silent monitor both
* read as "nothing here", with only the violet outline holding the shape */
.sb-meter trough {
background-color: transparent;
border: 1px solid alpha(#8A5CFF, 0.45);
border-radius: 10px;
min-width: 20px;
}
.sb-meter highlight {
background-color: @text; /* emitted magenta — the selected volume */
border-radius: 10px;
/* tight core + wide bloom: the fill emits, like the rest of the suite's chrome */
box-shadow: 0 0 6px 1px alpha(@text, 0.95), 0 0 22px 6px alpha(@text, 0.55);
}
.sb-meter slider {
background-color: #FFFFFF; /* the fader cap, riding on top of the fill */
border-radius: 3px;
min-width: 24px;
min-height: 10px; /* half of this is ui/meter.py's SLIDER_INSET */
}
.sb-meter.sb-meter-muted highlight { background-color: alpha(@text, 0.25); }
.sb-meter.sb-meter-muted slider { background-color: alpha(#FFFFFF, 0.4); }
.sb-meter-row.sb-meter-muted .sb-peakbar { opacity: 0.35; }
/* ---- controls (mute / L-R toggle / default) -------------------------------- */
.sb-card-controls { margin-top: 2px; }
.sb-mute-btn,
.sb-lr-toggle,
.sb-default-btn {
color: @text;
background-color: alpha(@violet, 0.4);
border: 2px solid #8A5CFF;
border-radius: 16px;
padding: 2px 10px;
min-height: 24px;
font-size: 9pt;
transition: border-color 180ms ease, color 180ms ease, box-shadow 220ms ease, background 180ms ease;
}
.sb-mute-btn:hover,
.sb-lr-toggle:hover,
.sb-default-btn:hover {
border-color: @accent;
color: @accent;
}
.sb-mute-btn:checked {
background-color: alpha(@danger, 0.55);
border-color: @danger;
color: @bg;
}
.sb-lr-toggle:checked {
background-color: alpha(@accent, 0.55);
border-color: @accent;
color: @bg;
}
.sb-default-btn:checked {
background-color: alpha(#34E27A, 0.4);
border-color: #34E27A;
color: @bg;
}
.sb-default-btn:disabled {
opacity: 0.85;
}
/* ---- dropdowns ------------------------------------------------------------ */
.sb-device-dropdown {
color: @text;
background-color: alpha(@bg, 0.5);
border: 2px solid #8A5CFF;
border-radius: 10px;
padding: 2px 6px;
min-height: 26px;
font-size: 9pt;
}
.sb-device-dropdown:hover { border-color: @accent; }
/* ---- general settings tab -------------------------------------------------- */
.sb-general { padding: 6px 4px; }
.sb-general-field { margin-bottom: 4px; }
.sb-server-info {
color: @text;
opacity: 0.6;
font-size: 9pt;
margin-top: 8px;
}
/* floating panel-level close button (top-right) — copied verbatim from
* astro-menu/style/style.css's .close-btn idiom. */
.close-btn {
color: @text; background: alpha(@violet, 0.4);
border: none; border-radius: 20px;
min-width: 34px; min-height: 34px;
margin: 16px 20px;
transition: background 180ms ease, color 180ms ease, box-shadow 220ms ease;
}
.close-btn:hover {
background: @accent;
color: @bg;
box-shadow: 0 0 14px 2px alpha(@accent, 0.55);
}
scrollbar slider { background: @violet; border-radius: 8px; min-width: 6px; min-height: 6px; }
scrollbar slider:hover { background: @accent; }
.sb-hologram { background: transparent; }