feat: 多页面拖拽上传、滚动条精简、UI优化

- 剧本评测/分辨率提升/数字人/角色迁移/图片工作台/去水印/电商:新增外部拖拽文件上传
- 电商:爆款图复刻上传框支持拖拽+大滚动条,短视频/模特图/详情图滚动条精简回退
- 图片工作台:右侧输出面板移至左侧提示词上方,删除局部重绘遮罩/结果框
- 数字人:生成按钮改为「开始生成」
- 局部重绘:编辑遮罩→编辑页面
- 对话框生成器:新增对话/视频模式、模型/速度/深度选择按钮
- 视频时长默认改为5秒
- 工具箱页面空状态logo统一绿底亮色图标
- 多处CSS滚动条和布局优化
This commit is contained in:
OmniAI Developer
2026-06-05 18:01:55 +08:00
parent 8fbb2ec95e
commit 5b87594e36
22 changed files with 1796 additions and 195 deletions
+37
View File
@@ -722,3 +722,40 @@
right: -9999px;
height: 1px;
}
/* ── Canvas drag-and-drop visual feedback ─────────────────────────── */
.studio-canvas.is-canvas-dragging::after {
content: "释放以上传图片";
position: absolute;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(33, 242, 154, 0.12);
border: 3px dashed #21f29a;
color: #111;
font-size: 20px;
font-weight: 700;
pointer-events: none;
}
.studio-canvas-text-composer.is-drag-over {
outline: 2px dashed #21f29a;
outline-offset: 2px;
background: rgba(33, 242, 154, 0.06);
}
.studio-canvas-text-composer.is-drag-over::after {
content: "释放图片以创建节点";
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
color: #333;
font-size: 13px;
font-weight: 600;
pointer-events: none;
}
+203
View File
@@ -553,6 +553,209 @@
display: inline-block;
}
/* ── Generation controls ── */
.dialog-generator-mode-switch {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.dialog-generator-mode {
min-height: 42px;
border: 1px solid rgba(0, 255, 136, 0.16);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #9aa1b8;
cursor: pointer;
font-size: 14px;
font-weight: 800;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease,
transform 180ms ease;
}
.dialog-generator-mode:hover {
border-color: rgba(0, 255, 136, 0.32);
color: #dce3ed;
transform: translateY(-1px);
}
.dialog-generator-mode.is-active {
border-color: rgba(0, 255, 136, 0.42);
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
box-shadow: 0 0 16px rgba(0, 255, 136, 0.08);
}
.dialog-generator-controls {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.dialog-generator-pills {
position: relative;
}
.dialog-generator-pill {
display: flex;
align-items: center;
gap: 6px;
min-height: 38px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
background: rgba(255, 255, 255, 0.04);
color: #dce3ed;
cursor: pointer;
padding: 0 12px;
font-size: 13px;
font-weight: 750;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease;
}
.dialog-generator-pill:hover {
border-color: rgba(0, 255, 136, 0.28);
color: #f6f8fb;
}
.dialog-generator-pill.is-open {
border-color: rgba(0, 255, 136, 0.38);
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
}
.dialog-generator-pill .anticon {
font-size: 14px;
}
.dialog-generator-dropdown {
position: absolute;
z-index: 30;
top: calc(100% + 4px);
left: 0;
min-width: 148px;
border: 1px solid rgba(0, 255, 136, 0.18);
border-radius: 8px;
background: rgba(10, 16, 26, 0.96);
box-shadow:
0 12px 36px rgba(0, 0, 0, 0.42),
0 0 0 1px rgba(0, 255, 136, 0.06);
backdrop-filter: blur(18px);
padding: 4px;
overflow: hidden;
}
.dialog-generator-dropdown__item {
display: block;
width: 100%;
border: 0;
border-radius: 6px;
background: transparent;
color: #bcc4d6;
cursor: pointer;
padding: 9px 12px;
text-align: left;
font-size: 13px;
font-weight: 700;
transition:
background 120ms ease,
color 120ms ease;
}
.dialog-generator-dropdown__item:hover {
background: rgba(0, 255, 136, 0.08);
color: #e8eaef;
}
.dialog-generator-dropdown__item.is-active {
background: rgba(0, 255, 136, 0.12);
color: #00ff88;
font-weight: 850;
}
/* ── Video duration ── */
.dialog-generator-duration {
display: grid;
gap: 8px;
width: 100%;
}
.dialog-generator-duration__label {
color: #9aa1b8;
font-size: 13px;
font-weight: 750;
}
.dialog-generator-duration__options {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.dialog-generator-duration__btn {
min-width: 42px;
min-height: 34px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 6px;
background: rgba(255, 255, 255, 0.04);
color: #9aa1b8;
cursor: pointer;
padding: 0 8px;
font-size: 12px;
font-weight: 750;
transition:
border-color 180ms ease,
background 180ms ease,
color 180ms ease;
}
.dialog-generator-duration__btn:hover {
border-color: rgba(0, 255, 136, 0.28);
color: #dce3ed;
}
.dialog-generator-duration__btn.is-active {
border-color: rgba(0, 255, 136, 0.42);
background: rgba(0, 255, 136, 0.12);
color: #00ff88;
}
/* ── Generate button ── */
.dialog-generator-run {
min-height: 48px;
border: 1px solid rgba(0, 255, 136, 0.28);
border-radius: 8px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.14) 0%, rgba(34, 240, 192, 0.08) 100%);
color: #00ff88;
cursor: pointer;
font-size: 16px;
font-weight: 900;
letter-spacing: 0.04em;
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease,
box-shadow 180ms ease;
}
.dialog-generator-run:hover:not(:disabled) {
border-color: rgba(0, 255, 136, 0.5);
background: linear-gradient(135deg, rgba(0, 255, 136, 0.2) 0%, rgba(34, 240, 192, 0.12) 100%);
transform: translateY(-1px);
box-shadow: 0 4px 24px rgba(0, 255, 136, 0.1);
}
.dialog-generator-run:disabled {
opacity: 0.52;
cursor: not-allowed;
}
@media (max-width: 980px) {
.dialog-generator-shell {
grid-template-columns: 1fr;
+103 -55
View File
@@ -990,8 +990,8 @@
overflow-x: hidden;
overflow-y: auto;
padding: 20px 18px;
scrollbar-color: #3a3f49 #15171c;
scrollbar-width: thin;
scrollbar-color: #3a3f49 #15171c;
transition:
opacity 360ms ease,
transform var(--clone-settings-motion-duration) var(--clone-settings-motion-ease);
@@ -1541,12 +1541,11 @@
.product-clone-page[data-tool="clone"] .clone-ai-replicate-panel {
display: grid;
flex: 0 0 272px;
grid-template-rows: auto minmax(0, 1fr);
flex: 0 0 auto;
grid-template-rows: auto auto minmax(0, 1fr);
gap: 9px;
height: 272px;
min-height: 0;
overflow: hidden;
overflow: visible;
border: 1px solid #303540;
border-radius: 14px;
background: #1c1f26;
@@ -1608,7 +1607,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload {
position: relative;
display: grid;
min-height: 78px;
min-height: 96px;
overflow: visible;
place-items: center;
align-content: center;
@@ -1617,7 +1616,7 @@
border-radius: 12px;
background: #20242c;
color: #eef2f6;
padding: 8px;
padding: 16px 12px;
cursor: pointer;
transition:
border-color 160ms ease,
@@ -1625,15 +1624,52 @@
transform 160ms ease;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload.has-files {
min-height: 120px;
place-items: center;
align-content: center;
gap: 8px;
padding: 10px;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload:hover {
border-color: #00ff88;
background: #202c28;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload.is-dragging {
border-color: #00ff88;
background: #1a2e24;
border-style: solid;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload:active {
transform: scale(0.98);
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload-overlay {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8px;
border-radius: 12px;
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
pointer-events: none;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload-overlay .anticon {
font-size: 28px;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload-overlay span {
font-size: 14px;
font-weight: 800;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload > span {
display: inline-grid;
grid-template-columns: auto minmax(0, max-content);
@@ -1676,75 +1712,86 @@
font-weight: 800;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview {
position: absolute;
inset: 6px;
/* ── Reference image file grid (inside upload button) ── */
.product-clone-page[data-tool="clone"] .clone-ai-replicate-files {
display: grid;
grid-auto-flow: column;
grid-auto-columns: minmax(0, 56px);
align-items: center;
justify-content: center;
grid-template-columns: repeat(auto-fill, minmax(56px, 1fr));
gap: 6px;
border-radius: 10px;
background: #20242c;
opacity: 0;
pointer-events: none;
transform: scale(0.98);
transition:
opacity 160ms ease,
transform 160ms ease;
width: 100%;
overflow: visible;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload:hover .clone-ai-replicate-preview,
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload:focus-visible .clone-ai-replicate-preview {
opacity: 1;
pointer-events: auto;
transform: scale(1);
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview figure {
.product-clone-page[data-tool="clone"] .clone-ai-replicate-file {
position: relative;
display: block;
width: 56px;
height: 52px;
aspect-ratio: 1;
min-width: 0;
overflow: visible;
margin: 0;
border-radius: 8px;
border-radius: 6px;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview figure > img {
.product-clone-page[data-tool="clone"] .clone-ai-replicate-file > img {
display: block;
width: 100%;
height: 100%;
min-width: 0;
overflow: hidden;
border: 1px solid #3a4555;
border-radius: 8px;
border-radius: 6px;
background: #111720;
object-fit: cover;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview figure:only-child {
width: min(170px, 100%);
height: 52px;
.product-clone-page[data-tool="clone"] .clone-ai-replicate-file > img:hover {
border-color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview figure:only-child > img {
object-fit: contain;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-preview b {
display: grid;
width: 42px;
height: 42px;
place-items: center;
border: 1px solid #3a4555;
border-radius: 999px;
background: #151b24;
color: #eef2f6;
.product-clone-page[data-tool="clone"] .clone-ai-replicate-add-more {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 5px;
justify-self: center;
width: fit-content;
max-width: calc(100% - 8px);
height: 28px;
min-width: 0;
border-radius: 7px;
background: #2b3039;
color: #9aa4b4;
padding: 0 10px;
font-size: 12px;
font-weight: 900;
font-weight: 750;
white-space: nowrap;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-add-more .anticon {
font-size: 13px;
color: #5d84bd;
}
/* ── Portal-based zoom preview (avoids overflow clipping) ── */
.clone-ai-zoom-portal {
position: fixed;
z-index: 9999;
width: min(280px, 52vw);
max-height: 340px;
border: 1px solid #3a4555;
border-radius: 14px;
background: #101115;
padding: 8px;
box-shadow: 0 22px 48px rgba(0, 0, 0, 0.5);
transform: translate(-50%, calc(-100% - 12px));
pointer-events: none;
}
.clone-ai-zoom-portal img {
display: block;
width: 100%;
height: auto;
max-height: 324px;
border-radius: 8px;
object-fit: contain;
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-link input {
@@ -3510,8 +3557,8 @@
.product-set-thumb:focus-within .uploaded-image-zoom,
.product-clone-uploaded-thumb:hover .uploaded-image-zoom,
.product-clone-uploaded-thumb:focus-within .uploaded-image-zoom,
.clone-ai-replicate-preview figure:hover .uploaded-image-zoom,
.clone-ai-replicate-preview figure:focus-within .uploaded-image-zoom {
.clone-ai-replicate-file:hover .uploaded-image-zoom,
.clone-ai-replicate-file:focus-within .uploaded-image-zoom {
opacity: 1;
transform: translate(-50%, 0) scale(1);
visibility: visible;
@@ -9458,3 +9505,4 @@
min-height: calc(100% - 59px);
}
}
+23 -2
View File
@@ -216,14 +216,14 @@
.image-workbench-layout {
display: grid;
grid-template-columns: 280px 1fr 220px;
grid-template-columns: 280px 1fr;
flex: 1;
min-height: 0;
overflow: hidden;
}
.image-workbench-layout--inpaint {
grid-template-columns: 260px 1fr 240px;
grid-template-columns: 260px 1fr;
}
.image-workbench-layout--camera {
@@ -278,6 +278,27 @@
position: relative;
}
.image-workbench-upload-shell.is-dragging {
border-radius: var(--radius-sm);
outline: 2px dashed var(--accent);
outline-offset: -2px;
}
.image-workbench-upload-drop-overlay {
position: absolute;
inset: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-sm);
background: rgba(var(--accent-rgb), 0.08);
color: var(--accent);
font-size: 15px;
font-weight: 800;
pointer-events: none;
}
.image-workbench-upload {
display: flex;
flex-direction: column;
+49
View File
@@ -14618,6 +14618,55 @@
background: #ddf5e2;
}
.agent-tool-pill.is-open {
background: #ddf5e2;
box-shadow: 1px 1px 0 #111;
}
.agent-tool-pills {
position: relative;
}
.agent-dropdown {
position: absolute;
top: calc(100% + 4px);
left: 0;
z-index: 120;
min-width: 160px;
background: #fff;
border: 3px solid #111;
box-shadow: 3px 3px 0 #111;
border-radius: 0;
overflow: hidden;
}
.agent-dropdown__item {
display: block;
width: 100%;
padding: 8px 14px;
border: none;
border-bottom: 1px solid #ddd;
background: #fff;
color: #111;
font-size: 13px;
text-align: left;
cursor: pointer;
transition: background 0.1s;
}
.agent-dropdown__item:last-child {
border-bottom: none;
}
.agent-dropdown__item:hover {
background: #ddf5e2;
}
.agent-dropdown__item.is-active {
background: #c8f0d6;
font-weight: 700;
}
.agent-run-button {
display: flex;
align-items: center;
+60 -6
View File
@@ -142,6 +142,7 @@
/* Upload zone */
.script-eval-v5-upload-zone {
position: relative;
border: 2px dashed var(--v5-border2);
border-radius: 12px;
padding: 22px 18px;
@@ -155,6 +156,37 @@
background: var(--v5-green-deep);
}
.script-eval-v5-upload-zone.is-dragging {
border-color: var(--v5-green);
border-style: solid;
background: var(--v5-green-deep);
}
.script-eval-v5-upload-drop-overlay {
position: absolute;
inset: 0;
z-index: 10;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
border-radius: 12px;
background: rgba(0, 255, 136, 0.06);
color: var(--v5-green);
pointer-events: none;
}
.script-eval-v5-upload-drop-overlay .anticon {
font-size: 40px;
opacity: 0.8;
}
.script-eval-v5-upload-drop-overlay span {
font-size: 16px;
font-weight: 800;
}
.script-eval-v5-upload-icon {
margin-bottom: 10px;
font-size: 38px;
@@ -195,10 +227,11 @@
}
.script-eval-v5-upload-done {
position: relative;
display: none;
align-items: center;
gap: 10px;
padding: 12px 14px;
padding: 12px 28px 12px 14px;
border-radius: 8px;
background: var(--v5-green-deep);
border: 1px solid var(--v5-green-border);
@@ -208,6 +241,30 @@
display: flex;
}
.script-eval-v5-upload-delete {
position: absolute;
top: 4px;
right: 4px;
display: flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
border: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.12);
color: var(--v5-text3);
cursor: pointer;
font-size: 10px;
line-height: 1;
transition: background 0.15s, color 0.15s;
}
.script-eval-v5-upload-delete:hover {
background: rgba(255, 77, 103, 0.5);
color: #fff;
}
.script-eval-v5-upload-done .anticon {
font-size: 16px;
color: var(--v5-green);
@@ -218,7 +275,7 @@
font-size: 13px;
color: var(--v5-green);
font-weight: 600;
flex: 1;
max-width: 16ch;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -2805,7 +2862,7 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 8em;
max-width: 16em;
}
.script-eval-v5-uf-size {
@@ -3425,8 +3482,6 @@
font-size: 13px;
}
}
<<<<<<< HEAD
=======
/* Script review left panel overflow guard: keep actions available while history remains scrollable. */
.script-eval-v5-left {
@@ -3935,4 +3990,3 @@
.script-eval-v5.is-ready .script-eval-v5-status-dot {
box-shadow: none;
}
>>>>>>> c1c4086383ddd7c1c8c152c2d5a97a4f432fa260
+2 -1
View File
@@ -307,9 +307,10 @@
width: 56px;
height: 56px;
border-radius: var(--radius-sm);
background: rgba(var(--accent-rgb), 0.13);
background: rgba(var(--accent-rgb), 0.22);
color: var(--accent);
font-size: 26px;
box-shadow: 0 0 20px rgba(var(--accent-rgb), 0.08);
}
.studio-canvas-ghost__title {