fix: 修复 CI Lint — voice-clone.css 语法错误 + 全量 prettier 格式化
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Failing after 67h48m13s
CI/CD Pipeline / Deploy Staging (push) Failing after 67h50m19s
CI/CD Pipeline / Frontend Lint (push) Failing after 67h52m29s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 67h53m53s
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Failing after 67h48m13s
CI/CD Pipeline / Deploy Staging (push) Failing after 67h50m19s
CI/CD Pipeline / Frontend Lint (push) Failing after 67h52m29s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 67h53m53s
- voice-clone.css: 修复 4 处多余右括号导致 postcss 解析失败 - Login.css / Register.css / generate.css / my-voices.css: prettier 格式化 - EditingPlanner.css / TimelinePanel.tsx: prettier 格式化 本地 eslint + prettier --check + tsc --noEmit 全部通过
This commit is contained in:
@@ -31,7 +31,11 @@
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
border-radius: var(--radius-sm);
|
||||
background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-600));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-primary-500),
|
||||
var(--color-primary-600)
|
||||
);
|
||||
border: none;
|
||||
box-shadow: 0 4px 14px
|
||||
color-mix(in srgb, var(--primary-color) 30%, transparent);
|
||||
|
||||
@@ -31,7 +31,11 @@
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
border-radius: var(--radius-sm);
|
||||
background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-600));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-primary-500),
|
||||
var(--color-primary-600)
|
||||
);
|
||||
border: none;
|
||||
box-shadow: 0 4px 14px
|
||||
color-mix(in srgb, var(--primary-color) 30%, transparent);
|
||||
|
||||
@@ -551,7 +551,11 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(135deg, var(--ep-bg-card-hover, #1a1a2e), var(--ep-bg-deepest, #0a0a14));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--ep-bg-card-hover, #1a1a2e),
|
||||
var(--ep-bg-deepest, #0a0a14)
|
||||
);
|
||||
height: calc(100% - 20px);
|
||||
position: relative;
|
||||
}
|
||||
@@ -647,7 +651,11 @@
|
||||
.ep-cover-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(135deg, var(--ep-bg-card-hover, #1a1a2e), var(--ep-bg-card, #13131f));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--ep-bg-card-hover, #1a1a2e),
|
||||
var(--ep-bg-card, #13131f)
|
||||
);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -880,7 +888,9 @@
|
||||
|
||||
.ep-clip-card.selected {
|
||||
border-color: var(--primary, #6366f1);
|
||||
box-shadow: 0 0 0 2px var(--primary-soft, #eef2ff), 0 4px 12px rgba(99, 102, 241, 0.2);
|
||||
box-shadow:
|
||||
0 0 0 2px var(--primary-soft, #eef2ff),
|
||||
0 4px 12px rgba(99, 102, 241, 0.2);
|
||||
}
|
||||
|
||||
.ep-clip-card.drag-over {
|
||||
@@ -894,7 +904,11 @@
|
||||
|
||||
.ep-clip-thumbnail {
|
||||
height: 52px;
|
||||
background: linear-gradient(135deg, var(--bg-secondary, #f8fafc), var(--border-light, #f1f5f9));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--bg-secondary, #f8fafc),
|
||||
var(--border-light, #f1f5f9)
|
||||
);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -1636,7 +1650,9 @@
|
||||
stroke: var(--primary, #6366f1);
|
||||
stroke-width: 8;
|
||||
stroke-linecap: round;
|
||||
transition: stroke-dashoffset 0.5s ease, stroke 0.3s;
|
||||
transition:
|
||||
stroke-dashoffset 0.5s ease,
|
||||
stroke 0.3s;
|
||||
}
|
||||
|
||||
.ep-gen-progress-pct {
|
||||
@@ -1778,7 +1794,9 @@
|
||||
font-size: 11px;
|
||||
padding: 2px 4px;
|
||||
border-radius: 3px;
|
||||
transition: color 0.2s, background 0.2s;
|
||||
transition:
|
||||
color 0.2s,
|
||||
background 0.2s;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 3px;
|
||||
@@ -1793,11 +1811,15 @@
|
||||
color: var(--primary-dark);
|
||||
}
|
||||
|
||||
|
||||
/* Skeleton loading */
|
||||
@keyframes ep-skeleton-pulse {
|
||||
0%, 100% { opacity: 0.4; }
|
||||
50% { opacity: 0.8; }
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0.4;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
.ep-skeleton {
|
||||
@@ -1957,8 +1979,12 @@
|
||||
}
|
||||
|
||||
@keyframes ep-fade-in {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.ep-modal {
|
||||
@@ -1971,8 +1997,14 @@
|
||||
}
|
||||
|
||||
@keyframes ep-scale-in {
|
||||
from { opacity: 0; transform: scale(0.95); }
|
||||
to { opacity: 1; transform: scale(1); }
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: scale(0.95);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.ep-modal-header {
|
||||
@@ -2054,4 +2086,3 @@
|
||||
text-align: center;
|
||||
min-height: 80px;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,7 +224,9 @@ const TimelinePanel: React.FC<TimelinePanelProps> = ({
|
||||
{clips.length === 0 ? (
|
||||
<div className="ep-track-empty">
|
||||
<div className="ep-track-empty-icon">🎬</div>
|
||||
<div className="ep-track-empty-text">点击右侧 + 添加片段,或拖入素材</div>
|
||||
<div className="ep-track-empty-text">
|
||||
点击右侧 + 添加片段,或拖入素材
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
clips.map((clip, idx) => (
|
||||
@@ -270,7 +272,9 @@ const TimelinePanel: React.FC<TimelinePanelProps> = ({
|
||||
onClick={() => {
|
||||
if (currentMode !== "one_take") setShowAddPicker((v) => !v);
|
||||
}}
|
||||
title={currentMode === "one_take" ? "一镜到底模式下不可添加" : "添加片段"}
|
||||
title={
|
||||
currentMode === "one_take" ? "一镜到底模式下不可添加" : "添加片段"
|
||||
}
|
||||
>
|
||||
{currentMode === "one_take" ? "🔒" : "+"}
|
||||
</div>
|
||||
@@ -294,7 +298,9 @@ const TimelinePanel: React.FC<TimelinePanelProps> = ({
|
||||
<span className="ep-add-clip-picker-icon">
|
||||
{ASSET_TYPE_ICONS[asset.type] || "📁"}
|
||||
</span>
|
||||
<span className="ep-add-clip-picker-name">{asset.name}</span>
|
||||
<span className="ep-add-clip-picker-name">
|
||||
{asset.name}
|
||||
</span>
|
||||
<span className="ep-add-clip-picker-type">
|
||||
{asset.type === "image"
|
||||
? "图片"
|
||||
|
||||
@@ -408,24 +408,41 @@
|
||||
}
|
||||
|
||||
.xx-clone-avatar.ready {
|
||||
background: linear-gradient(135deg, var(--color-secondary-500), var(--color-secondary-600));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-secondary-500),
|
||||
var(--color-secondary-600)
|
||||
);
|
||||
color: var(--text-inverse);
|
||||
}
|
||||
|
||||
.xx-clone-avatar.processing {
|
||||
background: linear-gradient(135deg, var(--color-accent-500), var(--color-accent-600));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-accent-500),
|
||||
var(--color-accent-600)
|
||||
);
|
||||
color: var(--text-inverse);
|
||||
animation: xx-clone-pulse 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.xx-clone-avatar.failed {
|
||||
background: linear-gradient(135deg, var(--color-gray-400), var(--color-gray-500));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-gray-400),
|
||||
var(--color-gray-500)
|
||||
);
|
||||
color: var(--text-inverse);
|
||||
}
|
||||
|
||||
@keyframes xx-clone-pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.6; }
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
.xx-clone-info {
|
||||
@@ -465,7 +482,11 @@
|
||||
|
||||
.xx-clone-progress-bar {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, var(--warning-color), var(--success-color));
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
var(--warning-color),
|
||||
var(--success-color)
|
||||
);
|
||||
border-radius: 3px;
|
||||
transition: width 0.5s ease;
|
||||
}
|
||||
@@ -474,8 +495,10 @@
|
||||
width: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
90deg,
|
||||
var(--warning-color) 0%, var(--warning-color) 25%,
|
||||
var(--success-color) 25%, var(--success-color) 50%,
|
||||
var(--warning-color) 0%,
|
||||
var(--warning-color) 25%,
|
||||
var(--success-color) 25%,
|
||||
var(--success-color) 50%,
|
||||
var(--warning-color) 50%
|
||||
);
|
||||
background-size: 60px 100%;
|
||||
@@ -483,8 +506,12 @@
|
||||
}
|
||||
|
||||
@keyframes xx-clone-progress-flow {
|
||||
from { background-position: 0 0; }
|
||||
to { background-position: 60px 0; }
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
to {
|
||||
background-position: 60px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.xx-clone-progress-text {
|
||||
@@ -518,13 +545,23 @@
|
||||
}
|
||||
|
||||
@keyframes xx-fade {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.7; }
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes xx-blink {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.3; }
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.3;
|
||||
}
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
@@ -640,7 +677,11 @@
|
||||
aspect-ratio: 9 / 16;
|
||||
max-height: 400px;
|
||||
border-radius: var(--radius-md);
|
||||
background: linear-gradient(135deg, var(--color-gray-900), var(--color-primary-900));
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--color-gray-900),
|
||||
var(--color-primary-900)
|
||||
);
|
||||
display: grid;
|
||||
place-items: center;
|
||||
color: var(--text-inverse);
|
||||
@@ -654,7 +695,11 @@
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: radial-gradient(circle at 72% 28%, rgba(255, 255, 255, 0.2), transparent 40%);
|
||||
background: radial-gradient(
|
||||
circle at 72% 28%,
|
||||
rgba(255, 255, 255, 0.2),
|
||||
transparent 40%
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@@ -777,7 +822,11 @@
|
||||
|
||||
.xx-progress-bar-fill {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, var(--color-primary-500), var(--color-primary-600));
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
var(--color-primary-500),
|
||||
var(--color-primary-600)
|
||||
);
|
||||
border-radius: 3px;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
@@ -112,19 +112,11 @@
|
||||
}
|
||||
|
||||
.xx-mv-card--processing {
|
||||
border-color: color-mix(
|
||||
in srgb,
|
||||
var(--accent-color) 30%,
|
||||
transparent
|
||||
);
|
||||
border-color: color-mix(in srgb, var(--accent-color) 30%, transparent);
|
||||
}
|
||||
|
||||
.xx-mv-card--failed {
|
||||
border-color: color-mix(
|
||||
in srgb,
|
||||
var(--error-color) 25%,
|
||||
transparent
|
||||
);
|
||||
border-color: color-mix(in srgb, var(--error-color) 25%, transparent);
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@
|
||||
|
||||
.vc-card:hover {
|
||||
border-color: var(--primary-light);
|
||||
box-shadow: 0 4px 20px
|
||||
color-mix(in srgb, var(--primary-color) 8%);
|
||||
box-shadow: 0 4px 20px color-mix(in srgb, var(--primary-color) 8%);
|
||||
}
|
||||
|
||||
/* 右上角操作按钮 */
|
||||
@@ -103,7 +102,7 @@
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(135deg, var(--accent-color)));
|
||||
background: linear-gradient(135deg, var(--accent-color));
|
||||
display: grid;
|
||||
place-items: center;
|
||||
font-size: 22px;
|
||||
@@ -282,7 +281,7 @@
|
||||
font-weight: 500;
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--line);
|
||||
box-shadow: 0 4px 12px var(--shadow-sm));
|
||||
box-shadow: 0 4px 12px var(--shadow-sm);
|
||||
animation: vc-toast-in 0.25s ease-out;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -318,7 +317,7 @@
|
||||
z-index: 1000;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
background: var(--overlay-bg));
|
||||
background: var(--overlay-bg);
|
||||
animation: vc-fade-in 0.2s;
|
||||
}
|
||||
|
||||
@@ -337,7 +336,7 @@
|
||||
padding: 24px;
|
||||
width: 400px;
|
||||
max-width: calc(100vw - 40px);
|
||||
box-shadow: 0 20px 60px var(--shadow-lg));
|
||||
box-shadow: 0 20px 60px var(--shadow-lg);
|
||||
animation: vc-scale-in 0.2s ease-out;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user