From e4f7c167ebd70f5ebc079beac5a5e98ebb37008d Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Tue, 14 Apr 2026 14:14:37 +0300 Subject: [PATCH] =?UTF-8?q?refactor:=20=D0=BF=D0=B5=D1=80=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BD=D0=B0=20=D0=BF=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=20=D1=81=D1=82=D0=B5=D1=80=D0=B5=D0=BE=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=B8=D0=B8=20=E2=80=94=20=D0=B8=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D0=BA=D0=B8,=20toggle-=D1=80=D1=8F=D0=B4=D1=8B,=20steppe?= =?UTF-8?q?r=20=D0=B4=D0=BB=D1=8F=20n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/lab.html | 469 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 351 insertions(+), 118 deletions(-) diff --git a/frontend/lab.html b/frontend/lab.html index fa2a280..92f6466 100644 --- a/frontend/lab.html +++ b/frontend/lab.html @@ -247,8 +247,102 @@ .stereo-fig-btn.active, .stereo-toggle.active, .stereo-sect-btn.active, .stereo-sect-type.active { border-color: var(--violet) !important; color: var(--violet) !important; background: rgba(155,93,229,.1) !important; } - #stereo-unfold-btn.active, #stereo-measure-btn.active, #stereo-inscribed-btn.active, #stereo-circumscribed-btn.active { - border-color: var(--violet) !important; color: var(--violet) !important; background: rgba(155,93,229,.1) !important; + + /* stereo panel redesign */ + .stereo-panel { + width: 230px; flex-shrink: 0; + background: var(--surface); + border-right: 1.5px solid var(--border); + display: flex; flex-direction: column; + overflow-y: auto; padding: 10px 10px; + } + .stereo-fig-grid { + display: grid; grid-template-columns: 1fr 1fr; gap: 3px; + margin-bottom: 4px; + } + .st-fig-btn { + display: flex; align-items: center; gap: 5px; + padding: 6px 8px; border-radius: 9px; + border: 1.5px solid var(--border); + background: transparent; color: var(--text-2); + font-family: 'Manrope', sans-serif; font-size: 0.68rem; font-weight: 700; + cursor: pointer; transition: all .13s; white-space: nowrap; overflow: hidden; + } + .st-fig-btn svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2; flex-shrink: 0; fill: none; } + .st-fig-btn:hover { border-color: rgba(155,93,229,.4); color: var(--violet); background: rgba(155,93,229,.06); } + .st-fig-btn.active { border-color: var(--violet); color: var(--violet); background: rgba(155,93,229,.12); } + .st-fig-btn-wide { grid-column: span 2; } + + .st-tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin-bottom: 4px; } + .st-tool-btn { + display: flex; align-items: center; gap: 5px; + padding: 6px 8px; border-radius: 9px; + border: 1.5px solid var(--border); + background: transparent; color: var(--text-2); + font-family: 'Manrope', sans-serif; font-size: 0.68rem; font-weight: 700; + cursor: pointer; transition: all .13s; white-space: nowrap; overflow: hidden; + } + .st-tool-btn svg { width: 12px; height: 12px; stroke: currentColor; stroke-width: 2; flex-shrink: 0; fill: none; } + .st-tool-btn:hover { border-color: rgba(155,93,229,.4); color: var(--violet); background: rgba(155,93,229,.06); } + .st-tool-btn.active { border-color: var(--violet); color: var(--violet); background: rgba(155,93,229,.12); } + .st-tool-btn-wide { grid-column: span 2; } + + .st-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin-bottom: 2px; } + .st-action-btn { + padding: 5px 6px; border-radius: 8px; + border: 1px solid var(--border); + background: transparent; color: rgba(255,255,255,.45); + font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600; + cursor: pointer; transition: all .13s; text-align: center; + } + .st-action-btn:hover { border-color: rgba(239,71,111,.4); color: #ef476f; background: rgba(239,71,111,.06); } + + .st-toggle-row { + display: flex; align-items: center; justify-content: space-between; + padding: 4px 2px; cursor: pointer; transition: background .13s; border-radius: 7px; + } + .st-toggle-row:hover { background: rgba(255,255,255,.03); } + .st-toggle-label { + font-size: 0.7rem; font-weight: 600; color: var(--text-2); + display: flex; align-items: center; gap: 5px; + } + .st-toggle-label svg { width: 11px; height: 11px; stroke: currentColor; stroke-width: 2; opacity: .6; fill: none; } + .st-toggle { + width: 26px; height: 14px; border-radius: 7px; + background: rgba(255,255,255,.1); border: 1.5px solid var(--border-h); + position: relative; transition: background .15s; flex-shrink: 0; cursor: pointer; + } + .st-toggle::after { + content: ''; position: absolute; left: 2px; top: 50%; + transform: translateY(-50%); + width: 8px; height: 8px; border-radius: 50%; + background: rgba(255,255,255,.4); transition: all .15s; + } + .st-toggle.on { background: var(--violet); border-color: var(--violet); } + .st-toggle.on::after { left: calc(100% - 10px); background: #fff; } + + .st-n-ctrl { + display: flex; align-items: center; gap: 5px; + border: 1.5px solid var(--border); border-radius: 9px; + padding: 4px 6px; + } + .st-n-btn { + width: 20px; height: 20px; border-radius: 5px; + border: 1px solid var(--border-h); + background: transparent; color: var(--text-2); + cursor: pointer; display: flex; align-items: center; justify-content: center; + transition: background .12s; + } + .st-n-btn svg { width: 11px; height: 11px; stroke: currentColor; } + .st-n-btn:hover { background: rgba(155,93,229,.1); } + .st-n-val { font-size: 0.75rem; font-weight: 700; color: var(--text); min-width: 14px; text-align: center; } + .st-n-label { font-size: 0.68rem; color: var(--text-3); flex: 1; } + #stereo-unfold-btn.active, #stereo-measure-btn.active, + #stereo-point-btn.active, #stereo-connect-btn.active, + #stereo-mark-tick-btn.active, #stereo-mark-par-btn.active, + #stereo-derive-mid-btn.active, #stereo-derive-fc-btn.active, #stereo-derive-alt-btn.active, #stereo-derive-cen-btn.active, + #stereo-angle-edge-btn.active, #stereo-angle-lp-btn.active, #stereo-angle-dih-btn.active, #stereo-angle-pp-btn.active, #stereo-angle-skew-btn.active { + border-color: var(--violet) !important; color: var(--violet) !important; background: rgba(155,93,229,.12) !important; } .gp-preset-group { margin-bottom: 8px; } @@ -3546,77 +3640,174 @@