diff --git a/apps/web/src/pages/editing-planner/EditingPlanner.css b/apps/web/src/pages/editing-planner/EditingPlanner.css index c2e7ddc41..e1ee8ae0d 100755 --- a/apps/web/src/pages/editing-planner/EditingPlanner.css +++ b/apps/web/src/pages/editing-planner/EditingPlanner.css @@ -616,63 +616,79 @@ border-color: var(--ep-accent, #6c5ce7); } -/* ─── 下半部:水平时间线 ─── */ +/* ─── 下半部:水平时间线(V21风格)─── */ .ep-timeline-area { flex: 1; display: flex; flex-direction: column; overflow: hidden; - background: var(--ep-bg-dark, #0e0e1a); + background: var(--bg-primary, #ffffff); + border-top: 1px solid var(--line, #e2e8f0); + min-height: 0; } .ep-timeline-header { display: flex; align-items: center; justify-content: space-between; - padding: 6px 12px; - border-bottom: 1px solid var(--ep-border, #1f1f30); + padding: 10px 16px; + border-bottom: 1px solid var(--bg-secondary, #f1f5f9); + flex-shrink: 0; } .ep-timeline-title { + display: flex; + align-items: center; + gap: 10px; font-size: 12px; font-weight: 600; - color: var(--ep-text-primary, #e8e8f0); + color: var(--text-secondary, #64748b); +} + +.ep-timeline-duration { + font-size: 12px; + color: var(--warning, #f59e0b); + font-weight: 600; } .ep-timeline-actions { display: flex; - gap: 4px; + gap: 6px; } .ep-timeline-action-btn { - height: 24px; - padding: 0 8px; - background: var(--ep-bg-card, #13131f); - border: 1px solid var(--ep-border, #1f1f30); - border-radius: 4px; - color: var(--ep-text-secondary, #9ca3af); - font-size: 11px; + width: 28px; + height: 28px; + padding: 0; + background: var(--bg-secondary, #f8fafc); + border: 1px solid var(--line, #e2e8f0); + border-radius: var(--radius-xs, 8px); + color: var(--text-muted, #94a3b8); + font-size: 12px; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; + justify-content: center; } .ep-timeline-action-btn:hover { - border-color: var(--ep-accent, #6c5ce7); - color: var(--ep-text-primary, #e8e8f0); + border-color: var(--primary, #6366f1); + color: var(--primary, #6366f1); + background: var(--primary-soft, #eef2ff); } /* 时间标尺 */ .ep-time-ruler { - height: 20px; - background: var(--ep-bg-card, #13131f); - border-bottom: 1px solid var(--ep-border, #1f1f30); + height: 24px; + background: var(--bg-secondary, #f8fafc); + border-bottom: 1px solid var(--bg-secondary, #f1f5f9); display: flex; - align-items: center; - padding: 0 12px; + align-items: flex-end; + padding: 0 16px; overflow: hidden; + flex-shrink: 0; } .ep-time-ruler-inner { @@ -685,8 +701,8 @@ .ep-time-mark { position: absolute; font-size: 9px; - color: var(--ep-text-muted, #4b5563); - top: 2px; + color: var(--text-muted, #cbd5e1); + bottom: 4px; } .ep-time-mark::after { diff --git a/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx b/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx old mode 100644 new mode 100755 index a560fe147..3fcf78f4e --- a/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx +++ b/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx @@ -121,13 +121,21 @@ const TimelinePanel: React.FC = ({ rulerMarks.push(t); } + const totalDuration = clips.reduce((sum, c) => sum + c.duration, 0); + const formatTime = (sec: number) => { + const m = Math.floor(sec / 60); + const s = Math.floor(sec % 60); + return `${m}:${s.toString().padStart(2, "0")}`; + }; + return (
{/* 时间线头部 */}
- - 时间线 · {clips.length} 个片段 - +
+ 🎬 时间线 + 总时长: {formatTime(totalDuration)} +
+