mishig HF Staff commited on
Commit
c94130b
·
verified ·
1 Parent(s): ae285b0

Sync from huggingface/lerobot-dataset-visualizer via hub-sync

Browse files
src/app/globals.css CHANGED
@@ -23,6 +23,11 @@
23
  --accent-ring: rgba(56, 189, 248, 0.55);
24
 
25
  --radius: 6px;
 
 
 
 
 
26
  }
27
 
28
  @theme inline {
 
23
  --accent-ring: rgba(56, 189, 248, 0.55);
24
 
25
  --radius: 6px;
26
+
27
+ /* Playback position, wherever it is drawn (chart cursor, annotation
28
+ timeline). Neutral, so it never reads as a series, a role or a flag. */
29
+ --playhead: #f1f5f9;
30
+ --playhead-glow: rgba(241, 245, 249, 0.45);
31
  }
32
 
33
  @theme inline {
src/components/annotations-panel.tsx CHANGED
@@ -583,14 +583,14 @@ export const AnnotationsPanel: React.FC<Props> = ({ cameraKeys }) => {
583
  <button
584
  disabled={saving || !dirty}
585
  onClick={handleSave}
586
- className="text-xs h-7 px-3 rounded border border-cyan-500/40 bg-cyan-500/10 text-cyan-200 hover:bg-cyan-500/20 disabled:opacity-40"
587
  >
588
  {saving ? "Saving…" : "Save episode"}
589
  </button>
590
  <button
591
  disabled={!backendEnabled}
592
  onClick={handleSaveDataset}
593
- className="text-xs h-7 px-3 rounded border border-emerald-500/40 bg-emerald-500/10 text-emerald-200 hover:bg-emerald-500/20 disabled:opacity-40"
594
  >
595
  Save dataset
596
  </button>
 
583
  <button
584
  disabled={saving || !dirty}
585
  onClick={handleSave}
586
+ className="text-xs h-7 px-3 rounded-md border border-cyan-400/30 bg-cyan-400/10 text-cyan-300 hover:bg-cyan-400/15 disabled:opacity-40"
587
  >
588
  {saving ? "Saving…" : "Save episode"}
589
  </button>
590
  <button
591
  disabled={!backendEnabled}
592
  onClick={handleSaveDataset}
593
+ className="text-xs h-7 px-3 rounded-md border border-white/10 bg-white/5 text-slate-300 hover:bg-white/10 hover:text-slate-100 disabled:opacity-40"
594
  >
595
  Save dataset
596
  </button>
src/components/annotations-skin.css CHANGED
@@ -56,9 +56,9 @@
56
  .annotations-skin input:focus,
57
  .annotations-skin textarea:focus,
58
  .annotations-skin select:focus {
59
- outline: 2px solid var(--hf-blue) !important;
60
  outline-offset: -1px;
61
- border-color: var(--hf-blue) !important;
62
  }
63
 
64
  .annotations-skin kbd {
@@ -203,7 +203,7 @@
203
  height: 22px;
204
  border: 1px solid var(--border-1);
205
  background: var(--surface-1);
206
- color: var(--hf-blue);
207
  border-radius: var(--radius-xs);
208
  cursor: pointer;
209
  display: inline-flex;
@@ -213,9 +213,9 @@
213
  flex: none;
214
  }
215
  .annotations-skin .jump:hover {
216
- background: var(--hf-blue);
217
  color: #0b0e14;
218
- border-color: var(--hf-blue);
219
  }
220
 
221
  /* ----- Section heads ----- */
@@ -453,10 +453,10 @@
453
  top: 0;
454
  bottom: 0;
455
  width: 0;
456
- border-left: 2px solid var(--hf-yellow);
457
  pointer-events: none;
458
  z-index: 5;
459
- box-shadow: 0 0 8px rgba(255, 210, 30, 0.6);
460
  }
461
  .annotations-skin .tl-playhead::before {
462
  content: "";
@@ -465,7 +465,7 @@
465
  left: -6px;
466
  width: 10px;
467
  height: 10px;
468
- background: var(--hf-yellow);
469
  transform: rotate(45deg);
470
  }
471
  .annotations-skin .tl-ruler {
@@ -690,11 +690,11 @@
690
  line-height: 1.3;
691
  }
692
  .annotations-skin .rail.annotation-list .rail-row.selected {
693
- background: rgba(91, 140, 255, 0.2);
694
- box-shadow: inset 3px 0 0 var(--hf-blue);
695
  }
696
  .annotations-skin .rail.annotation-list .rail-row.active-now:not(.selected) {
697
- border-color: rgba(255, 210, 30, 0.45);
698
  outline: none;
699
  }
700
  .annotations-skin .inspector {
@@ -773,9 +773,9 @@
773
  min-width: 200px;
774
  }
775
  .annotations-skin .quick-add .add-btn {
776
- background: var(--hf-blue);
777
- color: #0b0e14;
778
- border: 1px solid var(--hf-blue);
779
  border-radius: var(--radius-sm);
780
  padding: 6px 14px;
781
  font-size: 13px;
@@ -784,7 +784,7 @@
784
  white-space: nowrap;
785
  }
786
  .annotations-skin .quick-add .add-btn:hover {
787
- filter: brightness(1.1);
788
  }
789
  .annotations-skin .quick-add .add-btn:disabled {
790
  opacity: 0.4;
@@ -850,8 +850,8 @@
850
  background: var(--surface-1);
851
  }
852
  .annotations-skin .rail-row.selected {
853
- background: rgba(91, 140, 255, 0.16);
854
- border-color: var(--hf-blue);
855
  }
856
  .annotations-skin .rail-row .ts {
857
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
@@ -869,7 +869,7 @@
869
  text-overflow: ellipsis;
870
  }
871
  .annotations-skin .rail-row.active-now {
872
- outline: 2px solid var(--hf-yellow);
873
  outline-offset: -1px;
874
  }
875
 
@@ -976,18 +976,18 @@
976
  }
977
  .annotations-skin .tl-seg.dragging {
978
  opacity: 0.85;
979
- outline: 2px solid var(--hf-yellow);
980
  outline-offset: -1px;
981
  }
982
  .annotations-skin .tl-row .track.creating {
983
- outline: 1px dashed var(--hf-blue);
984
  }
985
  .annotations-skin .tl-create-preview {
986
  position: absolute;
987
  top: 1px;
988
  bottom: 1px;
989
- background: rgba(255, 210, 30, 0.3);
990
- border: 1px dashed var(--hf-yellow);
991
  border-radius: 2px;
992
  pointer-events: none;
993
  z-index: 4;
@@ -997,7 +997,7 @@
997
  top: -6px;
998
  width: 14px;
999
  height: 14px;
1000
- background: var(--hf-yellow);
1001
  border: 2px solid #0b0e14;
1002
  border-radius: 999px;
1003
  transform: translate(-7px, 0);
 
56
  .annotations-skin input:focus,
57
  .annotations-skin textarea:focus,
58
  .annotations-skin select:focus {
59
+ outline: 2px solid var(--accent) !important;
60
  outline-offset: -1px;
61
+ border-color: var(--accent) !important;
62
  }
63
 
64
  .annotations-skin kbd {
 
203
  height: 22px;
204
  border: 1px solid var(--border-1);
205
  background: var(--surface-1);
206
+ color: var(--accent);
207
  border-radius: var(--radius-xs);
208
  cursor: pointer;
209
  display: inline-flex;
 
213
  flex: none;
214
  }
215
  .annotations-skin .jump:hover {
216
+ background: var(--accent);
217
  color: #0b0e14;
218
+ border-color: var(--accent);
219
  }
220
 
221
  /* ----- Section heads ----- */
 
453
  top: 0;
454
  bottom: 0;
455
  width: 0;
456
+ border-left: 2px solid var(--playhead);
457
  pointer-events: none;
458
  z-index: 5;
459
+ box-shadow: 0 0 8px var(--playhead-glow);
460
  }
461
  .annotations-skin .tl-playhead::before {
462
  content: "";
 
465
  left: -6px;
466
  width: 10px;
467
  height: 10px;
468
+ background: var(--playhead);
469
  transform: rotate(45deg);
470
  }
471
  .annotations-skin .tl-ruler {
 
690
  line-height: 1.3;
691
  }
692
  .annotations-skin .rail.annotation-list .rail-row.selected {
693
+ background: var(--accent-soft);
694
+ box-shadow: inset 3px 0 0 var(--accent);
695
  }
696
  .annotations-skin .rail.annotation-list .rail-row.active-now:not(.selected) {
697
+ border-color: var(--playhead-glow);
698
  outline: none;
699
  }
700
  .annotations-skin .inspector {
 
773
  min-width: 200px;
774
  }
775
  .annotations-skin .quick-add .add-btn {
776
+ background: rgba(56, 189, 248, 0.1);
777
+ color: #67e8f9;
778
+ border: 1px solid rgba(56, 189, 248, 0.3);
779
  border-radius: var(--radius-sm);
780
  padding: 6px 14px;
781
  font-size: 13px;
 
784
  white-space: nowrap;
785
  }
786
  .annotations-skin .quick-add .add-btn:hover {
787
+ background: rgba(56, 189, 248, 0.15);
788
  }
789
  .annotations-skin .quick-add .add-btn:disabled {
790
  opacity: 0.4;
 
850
  background: var(--surface-1);
851
  }
852
  .annotations-skin .rail-row.selected {
853
+ background: var(--accent-soft);
854
+ border-color: var(--accent);
855
  }
856
  .annotations-skin .rail-row .ts {
857
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
 
869
  text-overflow: ellipsis;
870
  }
871
  .annotations-skin .rail-row.active-now {
872
+ outline: 2px solid var(--playhead-glow);
873
  outline-offset: -1px;
874
  }
875
 
 
976
  }
977
  .annotations-skin .tl-seg.dragging {
978
  opacity: 0.85;
979
+ outline: 2px solid var(--accent);
980
  outline-offset: -1px;
981
  }
982
  .annotations-skin .tl-row .track.creating {
983
+ outline: 1px dashed var(--accent);
984
  }
985
  .annotations-skin .tl-create-preview {
986
  position: absolute;
987
  top: 1px;
988
  bottom: 1px;
989
+ background: var(--accent-soft);
990
+ border: 1px dashed var(--accent);
991
  border-radius: 2px;
992
  pointer-events: none;
993
  z-index: 4;
 
997
  top: -6px;
998
  width: 14px;
999
  height: 14px;
1000
+ background: var(--playhead);
1001
  border: 2px solid #0b0e14;
1002
  border-radius: 999px;
1003
  transform: translate(-7px, 0);
src/components/data-recharts.tsx CHANGED
@@ -94,7 +94,7 @@ function PlaybackCursor({ start, end }: { start: number; end: number }) {
94
  const left = CHART_MARGIN.left + Y_AXIS_WIDTH;
95
  return (
96
  <div
97
- className="pointer-events-none absolute w-[1.5px] bg-orange-500/70"
98
  style={{
99
  top: CHART_MARGIN.top,
100
  bottom: CHART_MARGIN.bottom + X_AXIS_HEIGHT,
 
94
  const left = CHART_MARGIN.left + Y_AXIS_WIDTH;
95
  return (
96
  <div
97
+ className="pointer-events-none absolute w-[1.5px] bg-[var(--playhead)] opacity-70"
98
  style={{
99
  top: CHART_MARGIN.top,
100
  bottom: CHART_MARGIN.bottom + X_AXIS_HEIGHT,