From 069974f8246558dd974aa79dc0085b7dfcda1a22 Mon Sep 17 00:00:00 2001 From: main Date: Wed, 25 Feb 2026 22:49:39 -0500 Subject: Add Starsector dark control primitives (slider/checkbox/scrollbar) --- css/starsector-dark.controls.css | 130 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 css/starsector-dark.controls.css (limited to 'css') diff --git a/css/starsector-dark.controls.css b/css/starsector-dark.controls.css new file mode 100644 index 0000000..5aaa03a --- /dev/null +++ b/css/starsector-dark.controls.css @@ -0,0 +1,130 @@ +/* + Starsector dark control primitives. + Intended to be used with starsector-dark.frame-font.css. +*/ + +:root { + --swarm-control-bg: rgba(4, 12, 18, 0.82); + --swarm-control-border: rgba(68, 152, 176, 0.36); + --swarm-control-thumb: #9fd7ea; + --swarm-control-thumb-edge: #0b1a25; + --swarm-control-check-bg: linear-gradient(180deg, rgba(6, 20, 28, 0.95), rgba(2, 9, 14, 0.9)); + --swarm-control-check-bg-checked: linear-gradient(180deg, rgba(11, 42, 56, 0.95), rgba(4, 18, 28, 0.9)); + --swarm-control-scroll-track: rgba(3, 10, 15, 0.75); + --swarm-control-scroll-thumb: linear-gradient(180deg, rgba(68, 152, 176, 0.9), rgba(22, 82, 106, 0.95)); + --swarm-control-text-muted: #9fb4ca; +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--swarm-frame-edge-strong, rgba(68, 152, 176, 0.86)) var(--swarm-control-scroll-track); +} + +*::-webkit-scrollbar { + width: 10px; + height: 10px; +} + +*::-webkit-scrollbar-track { + background: var(--swarm-control-scroll-track); +} + +*::-webkit-scrollbar-thumb { + background: var(--swarm-control-scroll-thumb); + border: 1px solid rgba(0, 0, 0, 0.65); +} + +input[type="range"] { + width: 100%; + appearance: none; + height: 0.56rem; + border: 1px solid var(--swarm-control-border); + background: linear-gradient(180deg, rgba(6, 26, 38, 0.95), rgba(2, 10, 16, 0.9)); + padding: 0; + cursor: ew-resize; + touch-action: none; +} + +input[type="range"]::-webkit-slider-thumb { + appearance: none; + width: 0.58rem; + height: 0.95rem; + background: var(--swarm-control-thumb); + border: 1px solid var(--swarm-control-thumb-edge); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.45) inset; + cursor: ew-resize; +} + +input[type="range"]::-moz-range-thumb { + width: 0.58rem; + height: 0.95rem; + background: var(--swarm-control-thumb); + border: 1px solid var(--swarm-control-thumb-edge); + border-radius: 0; + cursor: ew-resize; +} + +input[type="range"]::-moz-range-track { + height: 0.56rem; + border: 1px solid var(--swarm-control-border); + border-radius: 0; + background: linear-gradient(180deg, rgba(6, 26, 38, 0.95), rgba(2, 10, 16, 0.9)); +} + +input[type="checkbox"] { + appearance: none; + width: 1.03rem; + height: 1.03rem; + margin: 0; + border: 1px solid var(--swarm-control-border); + background: var(--swarm-control-check-bg); + display: grid; + place-content: center; +} + +input[type="checkbox"]::before { + content: ""; + width: 0.58rem; + height: 0.58rem; + transform: scale(0); + clip-path: polygon(14% 53%, 28% 67%, 74% 21%, 84% 31%, 28% 87%, 4% 63%); + background: var(--swarm-control-thumb); + transition: transform 120ms ease-out; +} + +input[type="checkbox"]:checked { + border-color: var(--swarm-frame-edge-strong, rgba(68, 152, 176, 0.86)); + background: var(--swarm-control-check-bg-checked); +} + +input[type="checkbox"]:checked::before { + transform: scale(1); +} + +.range-field { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + align-items: center; + gap: 0.45rem; +} + +.range-value { + min-width: 3.2rem; + text-align: right; + color: var(--swarm-control-text-muted); + font-size: 0.72rem; + user-select: none; + pointer-events: none; +} + +.check-control { + display: inline-flex; + align-items: center; + justify-content: flex-start; + gap: 0.5rem; + white-space: nowrap; +} + +.check-control span { + line-height: 1.2; +} -- cgit v1.2.3