fix(ui): drop redundant Elapsed/Length cells; restore timeline

- Meta-grid reduced from 4 cells to 2 (State / Source). Elapsed and
  Length were duplicates of the timecodes already flanking the
  timeline. Added .meta-grid-2 modifier with a 2-column layout.
- Timeline was distorted by legacy rules: .progress-bar:hover did
  scaleY(1.4) (inflating the 2px hairline on hover) and the
  progress-fill::after handle defaulted to scale(0). Both are now
  forced via !important to keep the hairline flat and the copper
  handle always visible.
- progress-row uses minmax(0, 1fr) for the bar cell so it shrinks
  cleanly inside the grid.
- Removed unused meta.elapsed / meta.length keys from en.json + ru.json.
- Dead JS lookups for #meta-elapsed / #meta-length stay (cheap if-checks,
  no-op when DOM elements gone).
This commit is contained in:
2026-04-25 01:35:19 +03:00
parent 265b001b99
commit d9d4672ca3
4 changed files with 46 additions and 16 deletions
+44 -2
View File
@@ -4630,7 +4630,7 @@ body.visualizer-active .vinyl-stage .spectrogram-canvas {
margin-bottom: 0;
}
/* Editorial 4-cell metadata grid (now houses State / Source / Elapsed / Length) */
/* Editorial metadata grid — 2 cells (State / Source); timecodes flank the timeline */
.meta-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
@@ -4638,6 +4638,9 @@ body.visualizer-active .vinyl-stage .spectrogram-canvas {
border-top: 1px solid var(--rule);
border-bottom: 1px solid var(--rule);
}
.meta-grid.meta-grid-2 {
grid-template-columns: minmax(180px, auto) 1fr;
}
.meta-cell {
padding: 16px 18px 16px 0;
border-right: 1px solid var(--rule);
@@ -4919,6 +4922,7 @@ body.visualizer-active .vinyl-stage .spectrogram-canvas {
/* ─── Progress (hairline editorial) ─────────────────────────── */
.progress-container {
margin-top: 28px;
margin-bottom: 0; /* override legacy 2rem */
}
.time-display {
@@ -4934,10 +4938,24 @@ body.visualizer-active .vinyl-stage .spectrogram-canvas {
.progress-bar {
height: 2px;
width: 100%;
background: var(--rule-strong);
border-radius: 0;
cursor: pointer;
overflow: visible;
position: relative;
transform: none !important; /* kill legacy :hover scaleY */
transition: background 200ms var(--ease);
min-width: 0; /* let grid shrink it */
}
.progress-bar:hover {
background: var(--rule-strong);
transform: none !important; /* defeat legacy :hover transform */
}
.progress-bar.dragging {
transform: none !important;
background: var(--rule-strong);
}
.progress-fill {
@@ -4945,21 +4963,45 @@ body.visualizer-active .vinyl-stage .spectrogram-canvas {
box-shadow: 0 0 12px var(--copper-glow);
border-radius: 0;
height: 100%;
width: 0;
position: relative;
transition: width 0.1s linear;
}
.progress-fill::after {
content: "";
position: absolute;
right: -5px;
top: -4px;
top: 50%;
transform: translateY(-50%) scale(1) !important; /* always visible, override legacy scale(0) default */
width: 10px;
height: 10px;
background: var(--copper);
border-radius: 50%;
box-shadow: 0 0 14px var(--copper-glow), 0 0 0 4px rgba(224, 128, 56, 0.12);
transition: none;
}
/* Progress row inside transport — grid layout for [time | bar | time] */
.transport .progress-row,
.progress-container.progress-row {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
margin-top: 0;
margin-bottom: 26px;
}
.progress-row .timecode {
font-family: var(--mono);
font-size: 12px;
color: var(--ink-mute);
letter-spacing: 0.06em;
font-variant-numeric: tabular-nums;
line-height: 1;
}
.progress-row .timecode.elapsed { color: var(--copper); font-weight: 500; }
/* ─── Controls (circular transport) ─────────────────────────── */
.controls {
margin-top: 28px;
+2 -10
View File
@@ -198,8 +198,8 @@
<div id="album"></div>
</div>
<!-- Editorial metadata grid (4 cells) -->
<div class="meta-grid">
<!-- Editorial metadata grid (State + Source; timecodes are on the timeline) -->
<div class="meta-grid meta-grid-2">
<div class="meta-cell">
<div class="meta-label" data-i18n="meta.state">State</div>
<div class="meta-value">
@@ -216,14 +216,6 @@
<span id="source" data-i18n="player.unknown_source">Unknown</span>
</div>
</div>
<div class="meta-cell">
<div class="meta-label" data-i18n="meta.elapsed">Elapsed</div>
<div class="meta-value mono" id="meta-elapsed">0:00</div>
</div>
<div class="meta-cell">
<div class="meta-label" data-i18n="meta.length">Length</div>
<div class="meta-value mono" id="meta-length">0:00</div>
</div>
</div>
<!-- Decorative spectrum bars -->
-2
View File
@@ -27,8 +27,6 @@
"header.edition_sub": "Studio Reference Edition",
"meta.state": "State",
"meta.source": "Source",
"meta.elapsed": "Elapsed",
"meta.length": "Length",
"player.title_unavailable": "Title unavailable",
"player.source": "Source:",
"player.unknown_source": "Unknown",
-2
View File
@@ -27,8 +27,6 @@
"header.edition_sub": "Studio Reference Edition",
"meta.state": "Состояние",
"meta.source": "Источник",
"meta.elapsed": "Прошло",
"meta.length": "Длина",
"player.title_unavailable": "Название недоступно",
"player.source": "Источник:",
"player.unknown_source": "Неизвестно",