diff --git a/frontend/css/lab.css b/frontend/css/lab.css index f23272f..c1b5ad9 100644 --- a/frontend/css/lab.css +++ b/frontend/css/lab.css @@ -17,7 +17,7 @@ border: 1.5px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; } - .lab-hero-icon svg { width: 30px; height: 30px; stroke: #9B5DE5; stroke-width: 1.5; } + .lab-hero-icon svg { width: 30px; height: 30px; stroke: var(--violet); stroke-width: 1.5; } .lab-hero-title { font-family: 'Unbounded', sans-serif; font-size: 1.55rem; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 5px; @@ -36,7 +36,7 @@ cursor: pointer; transition: all .16s; } .lab-filter:hover { border-color: rgba(155,93,229,.4); color: var(--violet); } - .lab-filter.active { background: #0F172A; color: #fff; border-color: #0F172A; } + .lab-filter.active { background: var(--text); color: #fff; border-color: var(--text); } /* sim grid */ .sim-grid { @@ -74,7 +74,7 @@ padding: 3px 10px; border-radius: 99px; margin-bottom: 10px; } .sim-cat.math { background: rgba(155,93,229,.12); color: var(--violet); } - .sim-cat.phys { background: rgba(6,214,224,.1); color: #06D6E0; } + .sim-cat.phys { background: rgba(6,214,224,.1); color: var(--cyan); } .sim-title { font-family: 'Unbounded', sans-serif; font-size: 0.9rem; font-weight: 800; @@ -171,15 +171,15 @@ } .fn-label { font-family: 'Manrope', monospace; font-size: 0.85rem; font-weight: 700; - color: var(--fn-color, #9B5DE5); flex-shrink: 0; letter-spacing: .01em; + color: var(--fn-color, var(--violet)); flex-shrink: 0; letter-spacing: .01em; } - .fn-row:focus-within { border-color: var(--fn-color, #9B5DE5); } + .fn-row:focus-within { border-color: var(--fn-color, var(--violet)); } .fn-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; - background: var(--fn-color, #9B5DE5); - box-shadow: 0 0 6px var(--fn-color, #9B5DE5); + background: var(--fn-color, var(--violet)); + box-shadow: 0 0 6px var(--fn-color, var(--violet)); } .fn-input { flex: 1; border: none; outline: none; background: transparent; @@ -493,10 +493,10 @@ /* speed slider — cyan thumb */ #sl-speed::-webkit-slider-thumb { - background: #06D6E0; + background: var(--cyan); box-shadow: 0 0 6px rgba(6,214,224,.5); } - #sl-speed::-moz-range-thumb { background: #06D6E0; } + #sl-speed::-moz-range-thumb { background: var(--cyan); } /* magnetic canvas */ #mag-canvas { @@ -592,8 +592,8 @@ color: #aaa; font-size: 13px; font-weight: 700; cursor: pointer; font-family: 'Manrope', sans-serif; transition: .15s; } - .trig-fn-btn:hover { background: rgba(var(--fc-rgb,155,93,229),0.15); border-color: var(--fc,#9B5DE5); color: var(--fc,#9B5DE5); } - .trig-fn-btn.active { background: rgba(var(--fc-rgb,155,93,229),0.18); border-color: var(--fc,#9B5DE5); color: var(--fc,#9B5DE5); box-shadow: 0 0 8px rgba(var(--fc-rgb,155,93,229),0.3); } + .trig-fn-btn:hover { background: rgba(var(--fc-rgb,155,93,229),0.15); border-color: var(--fc,var(--violet)); color: var(--fc,var(--violet)); } + .trig-fn-btn.active { background: rgba(var(--fc-rgb,155,93,229),0.18); border-color: var(--fc,var(--violet)); color: var(--fc,var(--violet)); box-shadow: 0 0 8px rgba(var(--fc-rgb,155,93,229),0.3); } /* ── responsive ── */ @media (max-width: 768px) { @@ -614,7 +614,7 @@ /* Circuit tool buttons */ .circ-tool-btn.active { background: rgba(155,93,229,0.25) !important; - border-color: #9B5DE5 !important; + border-color: var(--violet) !important; color: #c4b5fd !important; } .circ-top-btn.active { background: rgba(155,93,229,0.35) !important; color: #c4b5fd !important; } @@ -629,20 +629,20 @@ /* Reaction mode buttons */ .reac-mode-btn.active { background: rgba(6,214,224,0.18) !important; - border-color: #06D6E0 !important; - color: #06D6E0 !important; + border-color: var(--cyan) !important; + color: var(--cyan) !important; } /* Newton law/scene buttons */ .nlaw-btn.active { background: rgba(6,214,224,0.18) !important; - border-color: #06D6E0 !important; - color: #06D6E0 !important; + border-color: var(--cyan) !important; + color: var(--cyan) !important; } .nscene-btn.active { background: rgba(241,91,181,0.15) !important; - border-color: #F15BB5 !important; - color: #F15BB5 !important; + border-color: var(--pink) !important; + color: var(--pink) !important; } /* ── wave mode buttons ── */ @@ -660,7 +660,7 @@ } .wave-n-btn.active { background: rgba(255,209,102,.15) !important; - border-color: #FFD166 !important; color: #FFD166 !important; + border-color: #FFD166 !important; color: #FFD166 !important; /* amber — wave harmonic, intentional palette */ } /* ── theory panel (overlay right sidebar) ── */ diff --git a/frontend/js/labs/lab-glue.js b/frontend/js/labs/lab-glue.js index d6d5ae6..7400516 100644 --- a/frontend/js/labs/lab-glue.js +++ b/frontend/js/labs/lab-glue.js @@ -689,8 +689,8 @@ document.getElementById('theory-panel').classList.toggle('open', _theoryOpen); const btn = document.getElementById('theory-toggle'); btn.style.background = _theoryOpen ? 'rgba(155,93,229,0.15)' : ''; - btn.style.borderColor = _theoryOpen ? '#9B5DE5' : ''; - btn.style.color = _theoryOpen ? '#9B5DE5' : ''; + btn.style.borderColor = _theoryOpen ? 'var(--violet)' : ''; + btn.style.color = _theoryOpen ? 'var(--violet)' : ''; } function loadTheory(simId) { @@ -796,7 +796,7 @@ document.getElementById('sim-grid').innerHTML = `