diff --git a/app/static/public/css/video.css b/app/static/public/css/video.css
index e0c6c0c..a17b8fe 100644
--- a/app/static/public/css/video.css
+++ b/app/static/public/css/video.css
@@ -679,23 +679,61 @@ body {
width: 100%;
appearance: none;
background: transparent;
- --timeline-track-bg: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.95) 100%);
+ --cut-pct: 0%;
+ --keep-bg: rgba(255, 255, 255, 0.95);
+ --warn-bg: repeating-linear-gradient(135deg, rgba(148, 163, 184, 0.65) 0 6px, rgba(100, 116, 139, 0.9) 6px 12px);
}
.timeline-delete-zone::-webkit-slider-runnable-track {
height: 8px;
border-radius: 999px;
- background: var(--timeline-track-bg);
+ background: var(--warn-bg);
border: 1px solid rgba(148, 163, 184, 0.35);
}
.timeline-delete-zone::-moz-range-track {
height: 8px;
border-radius: 999px;
- background: var(--timeline-track-bg);
+ background: var(--warn-bg);
border: 1px solid rgba(148, 163, 184, 0.35);
}
+.timeline-delete-zone[data-delete-side="right"]::-webkit-slider-runnable-track {
+ background: linear-gradient(90deg, var(--keep-bg) 0%, var(--keep-bg) var(--cut-pct), transparent var(--cut-pct), transparent 100%), var(--warn-bg);
+}
+
+.timeline-delete-zone[data-delete-side="right"]::-moz-range-track {
+ background: linear-gradient(90deg, var(--keep-bg) 0%, var(--keep-bg) var(--cut-pct), transparent var(--cut-pct), transparent 100%), var(--warn-bg);
+}
+
+.timeline-delete-zone[data-delete-side="left"]::-webkit-slider-runnable-track {
+ background: linear-gradient(90deg, transparent 0%, transparent var(--cut-pct), var(--keep-bg) var(--cut-pct), var(--keep-bg) 100%), var(--warn-bg);
+}
+
+.timeline-delete-zone[data-delete-side="left"]::-moz-range-track {
+ background: linear-gradient(90deg, transparent 0%, transparent var(--cut-pct), var(--keep-bg) var(--cut-pct), var(--keep-bg) 100%), var(--warn-bg);
+}
+
+.timeline-delete-zone::-webkit-slider-thumb {
+ appearance: none;
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ border: 2px solid #fff;
+ background: #111827;
+ margin-top: -5px;
+ box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.25);
+}
+
+.timeline-delete-zone::-moz-range-thumb {
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ border: 2px solid #fff;
+ background: #111827;
+ box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.25);
+}
+
.timeline-delete-zone.is-disabled {
cursor: not-allowed;
}
@@ -710,6 +748,12 @@ body {
border-color: rgba(148, 163, 184, 0.45);
}
+.timeline-delete-zone.is-disabled::-webkit-slider-thumb,
+.timeline-delete-zone.is-disabled::-moz-range-thumb {
+ background: #64748b;
+ border-color: #cbd5e1;
+}
+
.edit-meta-grid {
margin-bottom: 12px;
}
diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js
index bb58a33..a75d75d 100644
--- a/app/static/public/js/video.js
+++ b/app/static/public/js/video.js
@@ -202,16 +202,7 @@
const valueRaw = Number(inputEl.value || 0);
const value = Math.max(0, Math.min(max, Number.isFinite(valueRaw) ? valueRaw : 0));
const pct = (value / max) * 100;
- const side = String(inputEl.dataset.deleteSide || 'right');
- const warnPattern = 'repeating-linear-gradient(135deg, rgba(148,163,184,0.38) 0 7px, rgba(100,116,139,0.58) 7px 14px)';
- const keep = 'rgba(255,255,255,0.95)';
- let bg = '';
- if (side === 'left') {
- bg = `linear-gradient(90deg, transparent 0%, transparent ${pct}%, ${keep} ${pct}%, ${keep} 100%), ${warnPattern}`;
- } else {
- bg = `linear-gradient(90deg, ${keep} 0%, ${keep} ${pct}%, transparent ${pct}%, transparent 100%), ${warnPattern}`;
- }
- inputEl.style.setProperty('--timeline-track-bg', bg);
+ inputEl.style.setProperty('--cut-pct', `${pct}%`);
}
function refreshAllDeleteZoneTracks() {
diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html
index 63b68be..a026656 100644
--- a/app/static/public/pages/video.html
+++ b/app/static/public/pages/video.html
@@ -318,7 +318,7 @@
-
+