From 9282e6c0d8215bca78d42dd6f82b9aa8058cf337 Mon Sep 17 00:00:00 2001
From: ludan <251918489@qq.com>
Date: Wed, 3 Jun 2026 16:42:57 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=B5=E5=95=86=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E8=A7=86=E8=A7=89=E7=B2=BE=E4=BF=AE=EF=BC=8C=E5=85=A8=E5=B1=80?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=BB=9A=E5=8A=A8=E6=8C=89=E9=92=AE=E4=BA=A4?=
=?UTF-8?q?=E4=BA=92=E7=AE=80=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
AppShell.tsx:
- 全局页面滚动操作按钮(floating-page-scroll-actions)暂时关闭
- 后续将通过页面级滚动交互替代全局滚动按钮
EcommercePage.tsx(电商生成页功能增强):
- 预览区header下方新增生成配置摘要条(clone-ai-preview-summary)
- 展示当前选择的输出类型、平台、市场、语言、比例参数
- 方便用户快速确认当前生成配置无误
ecommerce.css(电商页面视觉精修):
- 新增CSS自定义属性体系(ecm-*),统一电商页面颜色/间距/阴影
- 页面背景增加accent径向光晕和半透明渐变叠加
- 设置面板/预览区域卡片增加毛玻璃质感和微阴影
- 文本颜色层级化(ecm-text/ecm-muted/ecm-soft)
- 保持现有布局结构不变,仅提升视觉效果
dark-green.css(暗绿主题电商按钮状态精修):
- 电商页面各工具模块按钮active态增加相对定位和overflow控制
- clone/set/detail/wear工具中is-active按钮状态一致性增强
- 限定在[data-view="ecommerce"]作用域内,避免全局污染
---
src/components/AppShell.tsx | 2 +-
src/features/ecommerce/EcommercePage.tsx | 7 +
src/styles/pages/ecommerce.css | 774 +++++++++++++++++++++++
src/styles/themes/dark-green.css | 64 ++
4 files changed, 846 insertions(+), 1 deletion(-)
diff --git a/src/components/AppShell.tsx b/src/components/AppShell.tsx
index 3457460..9c344fd 100644
--- a/src/components/AppShell.tsx
+++ b/src/components/AppShell.tsx
@@ -88,7 +88,7 @@ function AppShell({
"avatarConsole",
"characterMix",
] as WebViewKey[];
- const showPageScrollActions = showFloatingNav && !toolSurfaceViews.includes(activeView);
+ const showPageScrollActions = false;
const visibleNavItems = useMemo(
() => {
diff --git a/src/features/ecommerce/EcommercePage.tsx b/src/features/ecommerce/EcommercePage.tsx
index ca17235..6f9a3ab 100644
--- a/src/features/ecommerce/EcommercePage.tsx
+++ b/src/features/ecommerce/EcommercePage.tsx
@@ -2873,6 +2873,13 @@ function ProductClonePage(_props: ProductClonePageProps = {}) {
上传商品图,AI 即刻生成 符合多电商平台规范 的高转化率商品素材。
+
+ {selectedCloneOutput.label}
+ {platform}
+ {market}
+ {language}
+ {formatRatioDisplayValue(ratio)}
+
{status === "done" ? (
diff --git a/src/styles/pages/ecommerce.css b/src/styles/pages/ecommerce.css
index 417d3d6..635ab75 100644
--- a/src/styles/pages/ecommerce.css
+++ b/src/styles/pages/ecommerce.css
@@ -7933,3 +7933,777 @@
.clone-ai-adwizard__risk.is-medium { color: #faad14; }
.clone-ai-adwizard__risk.is-high { color: #ff4d4f; }
.clone-ai-adwizard__issues { margin: 0; padding-left: 16px; font-size: 12px; display: flex; flex-direction: column; gap: 4px; }
+
+/* Ecommerce generation page SaaS polish: visual-only refinement for the product creation workspace. */
+.product-clone-page {
+ --ecm-page: #0e1012;
+ --ecm-panel: rgba(20, 23, 25, 0.96);
+ --ecm-panel-strong: rgba(24, 28, 30, 0.98);
+ --ecm-inset: rgba(255, 255, 255, 0.035);
+ --ecm-inset-hover: rgba(255, 255, 255, 0.06);
+ --ecm-line: rgba(255, 255, 255, 0.095);
+ --ecm-line-strong: rgba(255, 255, 255, 0.14);
+ --ecm-text: #eef4f0;
+ --ecm-muted: rgba(232, 240, 235, 0.62);
+ --ecm-soft: rgba(232, 240, 235, 0.42);
+ --ecm-accent: var(--accent, #00ff88);
+ --ecm-accent-rgb: var(--accent-rgb, 0, 255, 136);
+ --ecm-radius-sm: 10px;
+ --ecm-radius-md: 14px;
+ --ecm-radius-lg: 18px;
+ --ecm-shadow-soft: 0 14px 38px rgba(0, 0, 0, 0.2);
+ --ecm-shadow-panel: 0 18px 54px rgba(0, 0, 0, 0.28);
+ background:
+ radial-gradient(circle at 26% 0%, rgba(var(--ecm-accent-rgb), 0.055), transparent 34%),
+ linear-gradient(180deg, rgba(255, 255, 255, 0.022), transparent 150px),
+ var(--ecm-page);
+ color: var(--ecm-text);
+ font-family: var(--font-sans, Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif);
+}
+
+.product-clone-page > .product-clone-shell {
+ background:
+ linear-gradient(90deg, rgba(255, 255, 255, 0.018), transparent 22%, transparent 76%, rgba(255, 255, 255, 0.014)),
+ transparent;
+}
+
+.product-clone-page :is(button, select, textarea, input) {
+ font-family: inherit;
+ letter-spacing: 0;
+}
+
+.product-clone-page :is(button, select, textarea):focus-visible {
+ outline: 2px solid rgba(var(--ecm-accent-rgb), 0.48);
+ outline-offset: 2px;
+}
+
+.product-clone-page :is(button, select, textarea):disabled {
+ box-shadow: none;
+}
+
+.product-clone-page[data-tool="clone"] {
+ --clone-settings-panel-width: clamp(420px, 36vw, 540px);
+ background:
+ radial-gradient(circle at 72% 12%, rgba(var(--ecm-accent-rgb), 0.045), transparent 31%),
+ linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 180px),
+ var(--ecm-page);
+}
+
+.product-clone-page[data-tool="clone"] > .product-clone-shell,
+.product-clone-page[data-tool="clone"] .clone-ai-preview {
+ background: transparent;
+}
+
+.product-clone-page[data-tool="clone"] .product-clone-panel {
+ border-right-color: var(--ecm-line);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 150px),
+ var(--ecm-panel);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-panel {
+ gap: 12px;
+ padding: 18px;
+ scrollbar-color: rgba(255, 255, 255, 0.2) rgba(255, 255, 255, 0.035);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-logo {
+ position: sticky;
+ top: 0;
+ z-index: 3;
+ margin: -18px -18px 2px;
+ padding: 16px 18px 14px;
+ border-bottom-color: var(--ecm-line);
+ background:
+ linear-gradient(180deg, rgba(21, 24, 26, 0.98), rgba(21, 24, 26, 0.9));
+ backdrop-filter: blur(16px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-logo__mark {
+ border-radius: 9px;
+ box-shadow: 0 0 0 1px rgba(var(--ecm-accent-rgb), 0.18), 0 10px 24px rgba(var(--ecm-accent-rgb), 0.14);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-logo strong {
+ font-size: 15px;
+ line-height: 1.2;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-logo em {
+ border-color: var(--ecm-line);
+ background: var(--ecm-inset);
+ color: var(--ecm-muted);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-card,
+ .clone-ai-platform-spec,
+ .clone-ai-count-panel,
+ .clone-ai-replicate-panel,
+ .clone-ai-module-panel,
+ .clone-ai-model-panel,
+ .clone-ai-video-panel
+) {
+ border-color: var(--ecm-line);
+ border-radius: var(--ecm-radius-md);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 58%),
+ var(--ecm-panel-strong);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-card {
+ padding: 13px;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-card h2 {
+ margin-bottom: 10px;
+ color: var(--ecm-muted);
+ font-size: 11px;
+ line-height: 1.2;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-upload-zone {
+ min-height: 140px;
+ border-color: rgba(255, 255, 255, 0.16);
+ border-radius: var(--ecm-radius-md);
+ background:
+ radial-gradient(circle at 50% 0%, rgba(var(--ecm-accent-rgb), 0.09), transparent 58%),
+ var(--ecm-inset);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-upload-zone:hover,
+.product-clone-page[data-tool="clone"] .clone-ai-upload-zone.is-dragging {
+ border-color: rgba(var(--ecm-accent-rgb), 0.55);
+ background:
+ radial-gradient(circle at 50% 0%, rgba(var(--ecm-accent-rgb), 0.14), transparent 60%),
+ rgba(var(--ecm-accent-rgb), 0.055);
+ transform: translateY(-1px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-upload-icon {
+ background: rgba(var(--ecm-accent-rgb), 0.09);
+ color: var(--ecm-accent);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-tag-group button,
+ .clone-ai-basic-select > button,
+ .clone-ai-basic-select__menu,
+ .clone-ai-basic-select__menu button,
+ .clone-ai-replicate-tabs button,
+ .clone-ai-replicate-upload,
+ .clone-ai-replicate-levels button,
+ .clone-ai-count-row,
+ .clone-ai-count-stepper button,
+ .clone-ai-module-list button,
+ .clone-ai-model-tabs button,
+ .clone-ai-model-scene-grid button,
+ .clone-ai-model-select,
+ .clone-ai-model-select > button,
+ .clone-ai-model-select__menu,
+ .clone-ai-model-select__menu button,
+ .clone-ai-video-options button,
+ .clone-ai-video-smart
+) {
+ border-color: var(--ecm-line);
+ background: var(--ecm-inset);
+ color: var(--ecm-muted);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-tag-group button:hover,
+ .clone-ai-basic-select > button:hover,
+ .clone-ai-basic-select > button.is-open,
+ .clone-ai-basic-select__menu button:hover,
+ .clone-ai-replicate-tabs button:hover,
+ .clone-ai-replicate-upload:hover,
+ .clone-ai-replicate-levels button:hover,
+ .clone-ai-count-stepper button:hover:not(:disabled),
+ .clone-ai-module-list button:hover,
+ .clone-ai-model-tabs button:hover,
+ .clone-ai-model-scene-grid button:hover,
+ .clone-ai-model-select > button:hover,
+ .clone-ai-model-select > button.is-open,
+ .clone-ai-model-select__menu button:hover,
+ .clone-ai-video-options button:hover,
+ .clone-ai-video-smart:hover
+) {
+ border-color: var(--ecm-line-strong);
+ background: var(--ecm-inset-hover);
+ color: var(--ecm-text);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-tag-group button.is-active,
+ .clone-ai-basic-select__menu button.is-active,
+ .clone-ai-replicate-tabs button.is-active,
+ .clone-ai-replicate-levels button.is-active,
+ .clone-ai-module-list button.is-active,
+ .clone-ai-model-tabs button.is-active,
+ .clone-ai-model-scene-grid button.is-active,
+ .clone-ai-model-select__menu button.is-active,
+ .clone-ai-video-options button.is-active,
+ .clone-ai-video-smart.is-on
+) {
+ border-color: rgba(var(--ecm-accent-rgb), 0.48);
+ background:
+ linear-gradient(180deg, rgba(var(--ecm-accent-rgb), 0.16), rgba(var(--ecm-accent-rgb), 0.07));
+ color: var(--ecm-accent);
+}
+
+.product-clone-page[data-tool="clone"] :is(.clone-ai-generate, .clone-ai-send-button, .clone-ai-upload-zone strong) {
+ background: var(--ecm-accent);
+ color: var(--dg-button-text, #061014);
+ box-shadow: 0 10px 28px rgba(var(--ecm-accent-rgb), 0.18);
+}
+
+.product-clone-page[data-tool="clone"] :is(.clone-ai-generate:hover:not(:disabled), .clone-ai-send-button:hover:not(:disabled)) {
+ filter: brightness(1.03);
+ transform: translateY(-1px);
+}
+
+.product-clone-page[data-tool="clone"] :is(.clone-ai-generate:disabled, .clone-ai-send-button:disabled) {
+ border-color: var(--ecm-line);
+ background: var(--ecm-inset);
+ color: var(--ecm-soft);
+ filter: none;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-settings-toggle {
+ border-color: var(--ecm-line-strong);
+ background: rgba(20, 23, 25, 0.86);
+ color: var(--ecm-muted);
+ box-shadow: var(--ecm-shadow-soft);
+ backdrop-filter: blur(14px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-settings-toggle:hover,
+.product-clone-page[data-tool="clone"] .clone-ai-settings-toggle:focus-visible {
+ border-color: rgba(var(--ecm-accent-rgb), 0.5);
+ background: rgba(var(--ecm-accent-rgb), 0.09);
+ color: var(--ecm-accent);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview {
+ align-content: center;
+ gap: 20px;
+ padding: 90px clamp(22px, 4vw, 46px) 134px;
+ background:
+ radial-gradient(circle at 50% 42%, rgba(var(--ecm-accent-rgb), 0.035), transparent 38%),
+ linear-gradient(180deg, rgba(255, 255, 255, 0.014), transparent 160px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-header {
+ top: 28px;
+ right: clamp(22px, 4vw, 46px);
+ left: clamp(22px, 4vw, 46px);
+ max-width: none;
+ padding-bottom: 16px;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.055);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-header strong {
+ font-size: clamp(18px, 1.6vw, 22px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-header span {
+ max-width: 620px;
+ color: var(--ecm-muted);
+ font-size: 13px;
+ line-height: 1.55;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-empty-state {
+ width: min(100%, 580px);
+ min-height: 260px;
+ padding: 28px;
+ border: 1px solid rgba(255, 255, 255, 0.055);
+ border-radius: 22px;
+ background: rgba(255, 255, 255, 0.014);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-empty-state .anticon {
+ width: 84px;
+ height: 84px;
+ border-color: var(--ecm-line);
+ background:
+ radial-gradient(circle at 50% 16%, rgba(var(--ecm-accent-rgb), 0.12), transparent 62%),
+ var(--ecm-panel-strong);
+ color: rgba(var(--ecm-accent-rgb), 0.46);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-showcase {
+ gap: 18px;
+}
+
+.product-clone-page[data-tool="clone"] :is(.clone-ai-main-result, .clone-ai-result-grid button) {
+ border-color: var(--ecm-line);
+ background: var(--ecm-panel-strong);
+ box-shadow: var(--ecm-shadow-soft);
+}
+
+.product-clone-page[data-tool="clone"] :is(.clone-ai-main-result:hover, .clone-ai-result-grid button:hover) {
+ border-color: rgba(var(--ecm-accent-rgb), 0.38);
+ box-shadow: var(--ecm-shadow-panel);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-bottom-input {
+ right: clamp(18px, 4vw, 46px);
+ bottom: 20px;
+ left: clamp(18px, 4vw, 46px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-input-wrapper {
+ border-color: var(--ecm-line);
+ border-radius: 18px;
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)),
+ rgba(20, 24, 23, 0.92);
+ box-shadow: var(--ecm-shadow-panel);
+ backdrop-filter: blur(18px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-input-wrapper:focus-within {
+ border-color: rgba(var(--ecm-accent-rgb), 0.42);
+ box-shadow:
+ 0 20px 58px rgba(0, 0, 0, 0.34),
+ 0 0 0 1px rgba(var(--ecm-accent-rgb), 0.08);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-input-wrapper textarea {
+ color: var(--ecm-text);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-char-count {
+ color: var(--ecm-soft);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) {
+ background: var(--ecm-page);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) .product-clone-panel,
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) .product-clone-rail {
+ border-color: var(--ecm-line);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 160px),
+ var(--ecm-panel);
+}
+
+.product-clone-page:is([data-tool="detail"], [data-tool="wear"]) .product-clone-rail button {
+ border-radius: var(--ecm-radius-sm);
+ color: var(--ecm-muted);
+}
+
+.product-clone-page:is([data-tool="detail"], [data-tool="wear"]) .product-clone-rail button:hover,
+.product-clone-page:is([data-tool="detail"], [data-tool="wear"]) .product-clone-rail button.is-active {
+ background: rgba(var(--ecm-accent-rgb), 0.1);
+ color: var(--ecm-accent);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-clone-field,
+ .product-set-upload-section,
+ .product-set-settings-section,
+ .product-set-detail-section
+) {
+ border-color: var(--ecm-line);
+ border-radius: var(--ecm-radius-lg);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.034), transparent 54%),
+ var(--ecm-panel-strong);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-clone-field h2,
+ .product-set-upload-section h2,
+ .product-set-settings-section h2,
+ .product-set-detail-section h2
+) {
+ color: var(--ecm-text);
+ font-size: 15px;
+ font-weight: 820;
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ select,
+ textarea,
+ .product-clone-upload-zone,
+ .product-set-upload,
+ .product-set-output-grid button,
+ .product-set-structure-grid button,
+ .product-detail-module-grid button,
+ .product-clone-scene-grid button,
+ .product-clone-ratio-row button,
+ .product-clone-segment button,
+ .product-clone-model-button,
+ .product-clone-switch-row,
+ .product-set-style-toggle
+) {
+ border-color: var(--ecm-line);
+ border-radius: var(--ecm-radius-sm);
+ background: var(--ecm-inset);
+ color: var(--ecm-muted);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ select:hover,
+ textarea:hover,
+ .product-clone-upload-zone:hover,
+ .product-set-upload:hover,
+ .product-set-output-grid button:hover,
+ .product-set-structure-grid button:hover,
+ .product-detail-module-grid button:hover,
+ .product-clone-scene-grid button:hover,
+ .product-clone-ratio-row button:hover,
+ .product-clone-segment button:hover,
+ .product-clone-model-button:hover,
+ .product-clone-switch-row:hover,
+ .product-set-style-toggle:hover
+) {
+ border-color: var(--ecm-line-strong);
+ background: var(--ecm-inset-hover);
+ color: var(--ecm-text);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-output-grid button.is-active,
+ .product-set-structure-grid button.is-active,
+ .product-detail-module-grid button.is-active,
+ .product-clone-scene-grid button.is-active,
+ .product-clone-ratio-row button.is-active,
+ .product-clone-segment button.is-active,
+ .product-set-style-toggle.is-active
+) {
+ border-color: rgba(var(--ecm-accent-rgb), 0.48);
+ background: rgba(var(--ecm-accent-rgb), 0.12);
+ color: var(--ecm-accent);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(.product-clone-primary, .product-set-floating-submit) {
+ border: 0;
+ background: var(--ecm-accent);
+ color: var(--dg-button-text, #061014);
+ box-shadow: 0 12px 30px rgba(var(--ecm-accent-rgb), 0.18);
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(.product-clone-primary, .product-set-floating-submit):disabled {
+ background: var(--ecm-inset);
+ color: var(--ecm-soft);
+ box-shadow: none;
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) .product-clone-preview {
+ background:
+ radial-gradient(circle at 50% 40%, rgba(var(--ecm-accent-rgb), 0.032), transparent 40%),
+ transparent;
+}
+
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-empty-preview,
+ .product-clone-empty-panel
+) {
+ border-color: rgba(255, 255, 255, 0.055);
+ border-radius: 22px;
+ background: rgba(255, 255, 255, 0.014);
+}
+
+.product-clone-page[data-tool="set"] .product-set-floating-detail {
+ border-color: var(--ecm-line);
+ background:
+ linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018)),
+ rgba(20, 24, 23, 0.92);
+ box-shadow: var(--ecm-shadow-panel);
+ backdrop-filter: blur(18px);
+}
+
+.ecommerce-progress-bar {
+ border-color: rgba(var(--ecm-accent-rgb), 0.22);
+ background: rgba(var(--ecm-accent-rgb), 0.07);
+}
+
+.ecommerce-progress-bar__fill {
+ box-shadow: 0 0 18px rgba(var(--ecm-accent-rgb), 0.36);
+}
+
+@media (max-width: 1180px) {
+ .product-clone-page[data-tool="clone"] {
+ --clone-settings-panel-width: clamp(390px, 45vw, 440px);
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview {
+ padding-right: 28px;
+ padding-left: 28px;
+ }
+}
+
+@media (max-width: 860px) {
+ .product-clone-page[data-tool="clone"] {
+ height: auto;
+ min-height: 100%;
+ overflow: auto;
+ }
+
+ .product-clone-page[data-tool="clone"] > .product-clone-shell,
+ .product-clone-page[data-tool="clone"].is-settings-collapsed > .product-clone-shell {
+ grid-template-columns: 1fr;
+ grid-template-rows: auto minmax(620px, 1fr);
+ height: auto;
+ min-height: 100%;
+ }
+
+ .product-clone-page[data-tool="clone"].is-settings-collapsed > .product-clone-shell {
+ grid-template-rows: 0 minmax(620px, 1fr);
+ }
+
+ .product-clone-page[data-tool="clone"] .product-clone-panel {
+ border-right: 0;
+ border-bottom: 1px solid var(--ecm-line);
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-panel {
+ width: 100%;
+ max-width: none;
+ max-height: none;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-settings-toggle,
+ .product-clone-page[data-tool="clone"].is-settings-collapsed .clone-ai-settings-toggle {
+ top: 14px;
+ right: 14px;
+ left: auto;
+ transform: none;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-settings-toggle:active {
+ transform: scale(0.94);
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview {
+ min-height: 620px;
+ padding: 92px 18px 134px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview-header {
+ top: 24px;
+ right: 18px;
+ left: 18px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview-showcase {
+ grid-template-columns: 1fr;
+ width: min(100%, 520px);
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-flow-arrow {
+ display: none;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-main-result {
+ height: 260px;
+ }
+}
+
+@media (max-width: 620px) {
+ .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) .product-clone-panel__scroll,
+ .product-clone-page[data-tool="clone"] .clone-ai-panel {
+ padding: 14px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-logo {
+ margin: -14px -14px 0;
+ padding: 14px 54px 12px 14px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-card,
+ .product-clone-page[data-tool="clone"] :is(.clone-ai-platform-spec, .clone-ai-count-panel, .clone-ai-replicate-panel, .clone-ai-module-panel, .clone-ai-model-panel, .clone-ai-video-panel) {
+ padding: 11px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-upload-zone {
+ min-height: 120px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-tag-group,
+ .product-clone-page[data-tool="clone"] .clone-ai-basic-select-grid,
+ .product-clone-page[data-tool="clone"] .clone-ai-model-select-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview {
+ min-height: 560px;
+ padding: 86px 12px 128px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-empty-state {
+ min-height: 220px;
+ padding: 22px 16px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-bottom-input {
+ right: 10px;
+ bottom: 12px;
+ left: 10px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-input-wrapper {
+ grid-template-columns: minmax(0, 1fr) 36px;
+ gap: 8px;
+ padding: 10px;
+ border-radius: 16px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-send-button {
+ width: 36px;
+ height: 36px;
+ }
+}
+
+@media (max-width: 900px) {
+ .product-clone-page {
+ box-sizing: border-box;
+ padding-top: 58px;
+ }
+
+ .product-clone-page > .product-clone-shell {
+ min-height: calc(100% - 58px);
+ }
+}
+
+@media (max-width: 480px) {
+ .product-clone-page {
+ padding-top: 56px;
+ }
+
+ .product-clone-page > .product-clone-shell {
+ min-height: calc(100% - 56px);
+ }
+}
+
+/* Ecommerce refinement pass: make the preview state more informative and selected controls quieter. */
+.product-clone-page[data-tool="clone"] .clone-ai-preview {
+ padding-top: 138px;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-header {
+ gap: 9px;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-summary {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 7px;
+ max-width: min(100%, 720px);
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-summary span {
+ display: inline-flex;
+ align-items: center;
+ max-width: 180px;
+ min-height: 26px;
+ padding: 0 10px;
+ overflow: hidden;
+ border: 1px solid rgba(255, 255, 255, 0.095);
+ border-radius: 999px;
+ background: rgba(255, 255, 255, 0.035);
+ color: rgba(232, 240, 235, 0.68);
+ font-size: 11px;
+ font-weight: 780;
+ line-height: 1;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-preview-summary span:first-child {
+ border-color: rgba(var(--ecm-accent-rgb), 0.28);
+ background: rgba(var(--ecm-accent-rgb), 0.08);
+ color: var(--ecm-accent);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button,
+ .clone-ai-model-scene-grid button,
+ .clone-ai-replicate-levels button,
+ .clone-ai-video-options button
+),
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button,
+ .product-detail-module-grid button,
+ .product-clone-scene-grid button,
+ .product-clone-ratio-row button
+) {
+ position: relative;
+ overflow: hidden;
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button.is-active,
+ .clone-ai-model-scene-grid button.is-active,
+ .clone-ai-replicate-levels button.is-active,
+ .clone-ai-video-options button.is-active
+),
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active,
+ .product-detail-module-grid button.is-active,
+ .product-clone-scene-grid button.is-active,
+ .product-clone-ratio-row button.is-active
+) {
+ border-color: rgba(var(--ecm-accent-rgb), 0.5);
+ background:
+ linear-gradient(90deg, rgba(var(--ecm-accent-rgb), 0.13), rgba(var(--ecm-accent-rgb), 0.035)),
+ rgba(255, 255, 255, 0.035);
+ color: var(--ecm-text);
+}
+
+.product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button.is-active,
+ .clone-ai-model-scene-grid button.is-active,
+ .clone-ai-replicate-levels button.is-active,
+ .clone-ai-video-options button.is-active
+)::before,
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active,
+ .product-detail-module-grid button.is-active,
+ .product-clone-scene-grid button.is-active,
+ .product-clone-ratio-row button.is-active
+)::before {
+ position: absolute;
+ inset: 8px auto 8px 0;
+ width: 3px;
+ border-radius: 999px;
+ background: var(--ecm-accent);
+ content: "";
+}
+
+.product-clone-page[data-tool="clone"] .clone-ai-module-list button.is-active span,
+.product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active em,
+ .product-detail-module-grid button.is-active span
+) {
+ color: rgba(232, 240, 235, 0.62);
+}
+
+@media (max-width: 860px) {
+ .product-clone-page[data-tool="clone"] .clone-ai-preview {
+ padding-top: 148px;
+ }
+}
+
+@media (max-width: 620px) {
+ .product-clone-page[data-tool="clone"] .clone-ai-preview {
+ padding-top: 158px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview-summary {
+ gap: 6px;
+ }
+
+ .product-clone-page[data-tool="clone"] .clone-ai-preview-summary span {
+ max-width: 138px;
+ min-height: 24px;
+ padding: 0 8px;
+ font-size: 10px;
+ }
+}
diff --git a/src/styles/themes/dark-green.css b/src/styles/themes/dark-green.css
index a1b0b17..7d97531 100644
--- a/src/styles/themes/dark-green.css
+++ b/src/styles/themes/dark-green.css
@@ -8881,3 +8881,67 @@
padding-top: 6px;
}
}
+
+/* Ecommerce final polish: keep selected option states refined in the dark-green theme. */
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button,
+ .clone-ai-model-scene-grid button,
+ .clone-ai-replicate-levels button,
+ .clone-ai-video-options button
+),
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button,
+ .product-detail-module-grid button,
+ .product-clone-scene-grid button,
+ .product-clone-ratio-row button
+) {
+ position: relative;
+ overflow: hidden;
+}
+
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button.is-active,
+ .clone-ai-model-scene-grid button.is-active,
+ .clone-ai-replicate-levels button.is-active,
+ .clone-ai-video-options button.is-active
+),
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active,
+ .product-detail-module-grid button.is-active,
+ .product-clone-scene-grid button.is-active,
+ .product-clone-ratio-row button.is-active
+) {
+ border-color: rgba(var(--accent-rgb), 0.48);
+ background:
+ linear-gradient(90deg, rgba(var(--accent-rgb), 0.12), rgba(var(--accent-rgb), 0.035)),
+ rgba(255, 255, 255, 0.032);
+ color: var(--fg-body);
+}
+
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] :is(
+ .clone-ai-module-list button.is-active,
+ .clone-ai-model-scene-grid button.is-active,
+ .clone-ai-replicate-levels button.is-active,
+ .clone-ai-video-options button.is-active
+)::before,
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active,
+ .product-detail-module-grid button.is-active,
+ .product-clone-scene-grid button.is-active,
+ .product-clone-ratio-row button.is-active
+)::before {
+ position: absolute;
+ inset: 8px auto 8px 0;
+ width: 3px;
+ border-radius: 999px;
+ background: var(--accent);
+ content: "";
+}
+
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page[data-tool="clone"] .clone-ai-module-list button.is-active span,
+.web-shell[data-ui-theme="dark-green"][data-view="ecommerce"] .product-clone-page:is([data-tool="set"], [data-tool="detail"], [data-tool="wear"]) :is(
+ .product-set-structure-grid button.is-active em,
+ .product-detail-module-grid button.is-active span
+) {
+ color: rgba(232, 240, 235, 0.62);
+}