/* Strata clipboard manager stylesheet. * * Performance rule: NO `transition: all`, NO Clutter/CSS animations. * Only background-color transitions on hover (GPU-composited, zero JS). * clip-to-allocation on the scroll view prevents overdraw outside the panel. */ /* ── Panel container ────────────────────────────────────────────────────── */ .strata-panel { background-color: rgba(30, 30, 30, 0.97); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; padding: 12px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45); min-width: 360px; } /* ── Header ─────────────────────────────────────────────────────────────── */ .strata-header { margin-bottom: 8px; } .strata-title { font-size: 1.1em; font-weight: bold; color: rgba(255, 255, 255, 0.9); } .strata-clear-btn { background: transparent; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 6px; color: rgba(255, 255, 255, 0.55); padding: 3px 10px; font-size: 0.85em; transition: background-color 100ms; } .strata-clear-btn:hover { background-color: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.85); } /* ── Search box ─────────────────────────────────────────────────────────── */ .strata-search { background-color: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: rgba(255, 255, 255, 0.9); padding: 6px 10px; margin-bottom: 8px; caret-color: rgba(255, 255, 255, 0.8); } .strata-search:focus { border-color: rgba(99, 163, 255, 0.6); background-color: rgba(255, 255, 255, 0.10); } /* ── Scroll view ────────────────────────────────────────────────────────── */ .strata-scroll { clip-to-allocation: true; } .strata-item-list { spacing: 2px; } /* ── Clipboard item ─────────────────────────────────────────────────────── */ .strata-item { border-radius: 8px; background-color: transparent; padding: 0; border: 1px solid transparent; transition: background-color 100ms; } .strata-item:hover, .strata-item-hovered { background-color: rgba(80, 140, 255, 0.18); border-color: rgba(80, 140, 255, 0.45); } /* Keyboard-focused item - clearly distinct from hover with accent blue. * Both :focus (CSS pseudo) and .strata-item-focused (JS-added class) are used * for belt-and-suspenders reliability across GNOME Shell versions. */ .strata-item:focus, .strata-item-focused { background-color: rgba(80, 140, 255, 0.18); border-color: rgba(80, 140, 255, 0.60); } .strata-item:hover:focus, .strata-item-focused.strata-item-hovered { background-color: rgba(80, 140, 255, 0.28); border-color: rgba(80, 140, 255, 0.70); } /* Bold the main text label when the item is focused. * Also reinforced via JS key-focus-in signal in clipboardItem.js. */ .strata-item:focus .strata-item-text, .strata-item-focused .strata-item-text { font-weight: bold; color: rgba(255, 255, 255, 1.0); } /* Active item - the most recently copied entry. * Warm amber accent so it stands out from hover (white) and focus (blue). */ .strata-item-active { background-color: rgba(255, 200, 80, 0.14); border-color: rgba(255, 200, 80, 0.45); } .strata-item-active .strata-item-text { color: rgba(255, 235, 160, 1.0); } .strata-item-active.strata-item-hovered { background-color: rgba(255, 200, 80, 0.22); } /* Blue focus wins over amber active when navigating via keyboard. */ .strata-item-active.strata-item-focused, .strata-item-active:focus { background-color: rgba(80, 140, 255, 0.22); border-color: rgba(80, 140, 255, 0.60); } .strata-item-active.strata-item-focused .strata-item-text, .strata-item-active:focus .strata-item-text { font-weight: bold; color: rgba(255, 255, 255, 1.0); } .strata-item:active { background-color: rgba(255, 255, 255, 0.14); } .strata-item-row { padding: 8px 10px; spacing: 10px; } /* ── Item icon ──────────────────────────────────────────────────────────── */ .strata-item-icon { opacity: 0.6; min-width: 20px; } /* ── Image thumbnail ────────────────────────────────────────────────────── */ .strata-item-thumb { border-radius: 4px; border: 1px solid rgba(255, 255, 255, 0.1); } /* ── Color swatch ───────────────────────────────────────────────────────── */ .strata-item-swatch { /* Inline style used for actual color - only shape/border set here. */ min-width: 24px; min-height: 24px; border-radius: 4px; } /* ── Text content ───────────────────────────────────────────────────────── */ .strata-item-content { /* spacing between main and sub label */ spacing: 2px; } .strata-item-text { color: rgba(255, 255, 255, 0.90); font-size: 0.95em; } .strata-item-url { color: rgba(99, 163, 255, 0.9); } .strata-item-subtext { color: rgba(255, 255, 255, 0.45); font-size: 0.78em; } /* ── Delete button ──────────────────────────────────────────────────────── */ .strata-item-delete { background: transparent; border: none; color: rgba(255, 255, 255, 0.0); padding: 4px; border-radius: 6px; transition: background-color 100ms, color 100ms; } /* Only show the delete icon on row hover or keyboard focus. */ .strata-item:hover .strata-item-delete, .strata-item:focus .strata-item-delete, .strata-item-focused .strata-item-delete, .strata-item-hovered .strata-item-delete { color: rgba(255, 80, 80, 0.7); } .strata-item-delete:hover { background-color: rgba(255, 80, 80, 0.15); color: rgba(255, 80, 80, 1.0); }