Merge origin/master into feat/commercial-saas-polish

This commit is contained in:
2026-06-04 16:07:39 +08:00
48 changed files with 5384 additions and 2412 deletions
+242 -67
View File
@@ -124,7 +124,7 @@
.product-clone-page[data-tool="set"] .product-set-upload:hover,
.product-clone-page[data-tool="set"] .product-set-upload.is-dragging {
border-color: #34d399;
border-color: #00ff88;
background: #1a2421;
}
@@ -135,7 +135,7 @@
place-items: center;
border-radius: 999px;
background: #20282a;
color: #34d399;
color: #00ff88;
font-size: 32px;
}
@@ -153,7 +153,7 @@
min-width: 168px;
height: 52px;
border-radius: 10px;
background: #34d399;
background: #00ff88;
color: #03130d;
padding: 0 22px;
font-size: 20px;
@@ -226,8 +226,8 @@
}
.product-clone-page[data-tool="set"] .product-set-output-grid button.is-active {
border-color: #34d399;
background: #34d399;
border-color: #00ff88;
background: #00ff88;
color: #04130e;
}
@@ -395,7 +395,7 @@
}
.product-clone-page[data-tool="set"] .product-set-floating-detail textarea:focus {
border-color: #34d399;
border-color: #00ff88;
box-shadow: 0 0 0 3px rgb(52 211 153 / 14%);
}
@@ -404,7 +404,7 @@
min-width: 148px;
border: 0;
border-radius: 12px;
background: #34d399;
background: #00ff88;
color: #04130e;
padding: 0 18px;
font-size: 17px;
@@ -1044,9 +1044,9 @@
.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: #34d399;
border-color: #00ff88;
background: #202c28;
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-settings-toggle:active {
@@ -1072,7 +1072,7 @@
height: 30px;
place-items: center;
border-radius: 7px;
background: #34d399;
background: #00ff88;
color: #06130d;
font-size: 11px;
font-weight: 900;
@@ -1087,7 +1087,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-logo strong span {
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-logo em {
@@ -1102,9 +1102,9 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-logo em.is-ready {
border-color: #34d399;
border-color: #00ff88;
background: #17352a;
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-card {
@@ -1153,7 +1153,7 @@
.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: #34d399;
border-color: #00ff88;
background: #202c28;
}
@@ -1162,7 +1162,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-upload-zone:focus-visible {
outline: 2px solid #34d399;
outline: 2px solid #00ff88;
outline-offset: 3px;
}
@@ -1180,7 +1180,7 @@
place-items: center;
border-radius: 999px;
background: #262a33;
color: #34d399;
color: #00ff88;
font-size: 20px;
}
@@ -1198,7 +1198,7 @@
min-width: 122px;
height: 38px;
border-radius: 9px;
background: #34d399;
background: #00ff88;
color: #06130d;
padding: 0 16px;
font-size: 14px;
@@ -1320,8 +1320,8 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-tag-group button.is-active {
border-color: #34d399;
background: #34d399;
border-color: #00ff88;
background: #00ff88;
color: #06130d;
}
@@ -1360,7 +1360,7 @@
flex: 0 0 auto;
border-radius: 999px;
background: #17352a;
color: #34d399;
color: #00ff88;
padding: 3px 8px;
font-size: 11px;
font-weight: 900;
@@ -1390,14 +1390,14 @@
width: 4px;
height: 4px;
border-radius: 999px;
background: #34d399;
background: #00ff88;
content: "";
}
.product-clone-page[data-tool="clone"] .clone-ai-platform-spec p {
margin: 0;
border-top: 1px solid #303540;
color: #34d399;
color: #00ff88;
padding-top: 9px;
font-size: 12px;
font-weight: 800;
@@ -1511,7 +1511,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-count-stepper button:hover:not(:disabled) {
background: #26342f;
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-count-stepper button:active:not(:disabled) {
@@ -1588,7 +1588,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-tabs button.is-active {
background: #34d399;
background: #00ff88;
color: #06130d;
}
@@ -1617,7 +1617,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-upload:hover {
border-color: #34d399;
border-color: #00ff88;
background: #202c28;
}
@@ -1752,7 +1752,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-link input:focus {
border-color: #34d399;
border-color: #00ff88;
box-shadow: 0 0 0 3px rgb(52 211 153 / 10%);
}
@@ -1787,7 +1787,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-replicate-levels button.is-active {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
}
@@ -1899,7 +1899,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-module-list button.is-active {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
}
@@ -1966,8 +1966,8 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-model-tabs button.is-active {
border-color: #34d399;
background: #34d399;
border-color: #00ff88;
background: #00ff88;
color: #06130d;
}
@@ -2046,13 +2046,13 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-model-scene-grid button.is-active {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
}
.product-clone-page[data-tool="clone"] .clone-ai-model-scene-grid button.is-active > span {
border-color: #34d399;
background: #34d399;
border-color: #00ff88;
background: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-model-scene-grid button:active {
@@ -2119,7 +2119,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-model-select > button:hover,
.product-clone-page[data-tool="clone"] .clone-ai-model-select > button.is-open {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
box-shadow: 0 0 0 3px rgb(52 211 153 / 10%);
}
@@ -2129,7 +2129,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-model-select > button:focus-visible {
border-color: #34d399;
border-color: #00ff88;
box-shadow: 0 0 0 3px rgb(52 211 153 / 16%);
}
@@ -2227,7 +2227,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-model-select__menu button:hover,
.product-clone-page[data-tool="clone"] .clone-ai-model-select__menu button.is-active {
background: #17352a;
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-model-select__menu button:active {
@@ -2290,7 +2290,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-model-textarea textarea:focus,
.product-clone-page[data-tool="clone"] .clone-ai-model-select-grid select:focus {
border-color: #34d399;
border-color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-video-panel {
@@ -2342,7 +2342,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-video-title-row strong {
color: #34d399;
color: #00ff88;
font-size: 13px;
font-weight: 900;
white-space: nowrap;
@@ -2382,7 +2382,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-video-options button.is-active {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
}
@@ -2428,7 +2428,7 @@
height: 5px;
border-radius: 999px;
background:
linear-gradient(90deg, #34d399 0 var(--clone-video-duration-progress), #3a4050 var(--clone-video-duration-progress) 100%);
linear-gradient(90deg, #00ff88 0 var(--clone-video-duration-progress), #3a4050 var(--clone-video-duration-progress) 100%);
}
.product-clone-page[data-tool="clone"] .clone-ai-duration-control input::-webkit-slider-thumb {
@@ -2438,15 +2438,15 @@
appearance: none;
border: 3px solid #101115;
border-radius: 999px;
background: #34d399;
box-shadow: 0 0 0 1px #34d399;
background: #00ff88;
box-shadow: 0 0 0 1px #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-duration-control input::-moz-range-track {
height: 5px;
border-radius: 999px;
background:
linear-gradient(90deg, #34d399 0 var(--clone-video-duration-progress), #3a4050 var(--clone-video-duration-progress) 100%);
linear-gradient(90deg, #00ff88 0 var(--clone-video-duration-progress), #3a4050 var(--clone-video-duration-progress) 100%);
}
.product-clone-page[data-tool="clone"] .clone-ai-duration-control input::-moz-range-thumb {
@@ -2454,8 +2454,8 @@
height: 14px;
border: 3px solid #101115;
border-radius: 999px;
background: #34d399;
box-shadow: 0 0 0 1px #34d399;
background: #00ff88;
box-shadow: 0 0 0 1px #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-duration-scale {
@@ -2494,7 +2494,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-video-smart.is-on {
border-color: #34d399;
border-color: #00ff88;
background: #26342f;
}
@@ -2547,12 +2547,12 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-video-smart.is-on i {
border-color: #34d399;
border-color: #00ff88;
background: #17352a;
}
.product-clone-page[data-tool="clone"] .clone-ai-video-smart.is-on i::after {
background: #34d399;
background: #00ff88;
transform: translateX(16px);
}
@@ -2590,7 +2590,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-basic-select > button:hover,
.product-clone-page[data-tool="clone"] .clone-ai-basic-select > button.is-open {
border-color: #34d399;
border-color: #00ff88;
background: #202c28;
}
@@ -2613,7 +2613,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-basic-select > button:focus-visible {
outline: 2px solid #34d399;
outline: 2px solid #00ff88;
outline-offset: 2px;
}
@@ -2684,7 +2684,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-basic-select__menu button:hover,
.product-clone-page[data-tool="clone"] .clone-ai-basic-select__menu button.is-active {
background: #17352a;
color: #34d399;
color: #00ff88;
}
@keyframes clone-ai-select-fade {
@@ -2707,7 +2707,7 @@
min-height: 52px;
border: 0;
border-radius: 11px;
background: #34d399;
background: #00ff88;
color: #06130d;
font-size: 16px;
font-weight: 900;
@@ -2769,7 +2769,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-preview-header b {
color: #34d399;
color: #00ff88;
}
.product-clone-page[data-tool="clone"] .clone-ai-empty-state {
@@ -2809,6 +2809,26 @@
line-height: 1.6;
}
.clone-ai-retry-btn {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 40px;
padding: 0 20px;
border: 1px solid rgba(var(--accent-rgb), 0.32);
border-radius: 12px;
background: rgba(var(--accent-rgb), 0.12);
color: var(--accent);
font-weight: 900;
cursor: pointer;
transition: background 0.15s, transform 0.15s;
}
.clone-ai-retry-btn:hover {
background: rgba(var(--accent-rgb), 0.22);
transform: translateY(-1px);
}
.product-clone-page[data-tool="clone"] .clone-ai-preview-showcase {
display: grid;
grid-template-columns: minmax(210px, 300px) 54px minmax(330px, 560px);
@@ -2833,7 +2853,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-main-result:hover,
.product-clone-page[data-tool="clone"] .clone-ai-result-grid button:hover {
border-color: #34d399;
border-color: #00ff88;
transform: translateY(-1px);
}
@@ -2890,7 +2910,7 @@
.product-clone-page[data-tool="clone"] .clone-ai-flow-arrow {
width: 54px;
height: 26px;
background: #34d399;
background: #00ff88;
clip-path: polygon(0 34%, 58% 34%, 58% 0, 100% 50%, 58% 100%, 58% 66%, 0 66%);
animation: clone-ai-arrow-pulse 1.35s ease-in-out infinite;
}
@@ -2935,7 +2955,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-send-button:hover:not(:disabled) {
border-color: #34d399;
border-color: #00ff88;
background: #202c28;
}
@@ -2963,7 +2983,7 @@
}
.product-clone-page[data-tool="clone"] .clone-ai-send-button {
background: #34d399;
background: #00ff88;
color: #06130d;
}
@@ -7147,7 +7167,7 @@
.product-clone-page[data-tool="set"] .product-set-upload:hover,
.product-clone-page[data-tool="set"] .product-set-upload.is-dragging {
border-color: #34d399;
border-color: #00ff88;
background: #eefbf5;
}
@@ -7212,7 +7232,7 @@
}
.product-set-textarea-wrap textarea:focus {
border-color: #34d399;
border-color: #00ff88;
box-shadow: 0 0 0 3px rgb(52 211 153 / 16%);
}
@@ -7297,7 +7317,7 @@
place-items: center;
border-radius: 14px;
background: #eefbf5;
color: #34d399;
color: #00ff88;
font-size: 26px;
}
@@ -7568,7 +7588,7 @@
.product-clone-page[data-tool="set"] .product-set-upload:hover,
.product-clone-page[data-tool="set"] .product-set-upload.is-dragging {
border-color: #34d399;
border-color: #00ff88;
background: #1a2421;
}
@@ -7579,7 +7599,7 @@
place-items: center;
border-radius: 999px;
background: #20282a;
color: #34d399;
color: #00ff88;
font-size: 32px;
}
@@ -7597,7 +7617,7 @@
min-width: 168px;
height: 52px;
border-radius: 10px;
background: #34d399;
background: #00ff88;
color: #03130d;
padding: 0 22px;
font-size: 20px;
@@ -7670,8 +7690,8 @@
}
.product-clone-page[data-tool="set"] .product-set-output-grid button.is-active {
border-color: #34d399;
background: #34d399;
border-color: #00ff88;
background: #00ff88;
color: #04130e;
}
@@ -7835,7 +7855,7 @@
}
.product-clone-page[data-tool="set"] .product-set-floating-detail textarea:focus {
border-color: #34d399;
border-color: #00ff88;
box-shadow: 0 0 0 3px rgb(52 211 153 / 14%);
}
@@ -7844,7 +7864,7 @@
min-width: 148px;
border: 0;
border-radius: 12px;
background: #34d399;
background: #00ff88;
color: #04130e;
padding: 0 18px;
font-size: 17px;
@@ -7934,6 +7954,161 @@
.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 Template Apple Carousel ===== */
.ecommerce-template-apple-carousel {
position: relative;
width: min(100%, 1160px);
min-height: clamp(340px, 34vw, 480px);
margin: 0 auto;
overflow: hidden;
isolation: isolate;
}
.ecommerce-template-apple-carousel__stage {
position: relative;
width: min(100%, 1080px);
height: clamp(320px, 30vw, 440px);
margin: 0 auto;
overflow: visible;
transform-style: preserve-3d;
}
.ecommerce-template-apple-carousel__deck {
position: absolute;
inset: 0;
transform-style: preserve-3d;
}
.ecommerce-template-apple-card {
--apple-card-offset: 0;
--apple-card-depth: 0;
--apple-card-z: 20;
--apple-card-x: 0;
--apple-card-y: 0;
--apple-card-z-offset: 0;
--apple-card-rotate-y: 0deg;
--apple-card-rotate-z: 0deg;
--apple-card-scale: 1;
--apple-card-opacity: 1;
position: absolute;
top: 50%;
left: 50%;
display: grid;
width: clamp(200px, 16vw, 270px);
height: clamp(114px, 9.2vw, 153px);
place-items: center;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: clamp(10px, 1.1vw, 16px);
background: #0d1110;
color: #101412;
padding: 0;
cursor: pointer;
opacity: var(--apple-card-opacity);
box-shadow:
0 10px 24px rgb(0 0 0 / 16%),
inset 0 -1px 0 rgb(0 0 0 / 8%);
transform:
translate(-50%, -50%)
translateX(var(--apple-card-x))
translateY(var(--apple-card-y))
translateZ(var(--apple-card-z-offset))
rotateY(var(--apple-card-rotate-y))
rotateZ(var(--apple-card-rotate-z))
scale(var(--apple-card-scale));
transform-origin: center;
transform-style: preserve-3d;
transition:
transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 640ms cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 640ms cubic-bezier(0.22, 1, 0.36, 1),
width 760ms cubic-bezier(0.22, 1, 0.36, 1),
height 760ms cubic-bezier(0.22, 1, 0.36, 1);
z-index: var(--apple-card-z);
}
.ecommerce-template-apple-card::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background:
linear-gradient(180deg, rgb(255 255 255 / 12%), transparent 24%),
linear-gradient(0deg, rgb(0 0 0 / 18%), transparent 44%);
pointer-events: none;
z-index: 2;
}
.ecommerce-template-apple-card img {
display: block;
width: 100%;
height: 100%;
border-radius: inherit;
object-fit: cover;
filter:
saturate(1.06)
contrast(1.02)
drop-shadow(0 16px 16px rgb(0 0 0 / 14%));
transform: translateZ(10px);
transition:
filter 640ms cubic-bezier(0.22, 1, 0.36, 1),
transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ecommerce-template-apple-card.is-active {
width: clamp(360px, 34vw, 580px);
height: clamp(203px, 19.2vw, 328px);
border-radius: clamp(14px, 1.6vw, 24px);
box-shadow:
0 18px 40px rgb(0 0 0 / 26%),
inset 0 -1px 0 rgb(0 0 0 / 8%);
}
.ecommerce-template-apple-card.is-active img {
filter:
saturate(1.1)
contrast(1.04)
drop-shadow(0 20px 18px rgb(0 0 0 / 16%));
transform: translateZ(18px) scale(1.02);
}
.ecommerce-template-apple-card:hover {
box-shadow:
0 26px 54px rgb(0 0 0 / 32%),
inset 0 -1px 0 rgb(0 0 0 / 8%);
}
.ecommerce-template-apple-carousel.is-resetting .ecommerce-template-apple-card,
.ecommerce-template-apple-carousel.is-resetting .ecommerce-template-apple-card img {
transition: none;
.clone-ai-video-outfit-upload {
display: flex;
align-items: center;
gap: 10px;
margin-top: 6px;
}
.clone-ai-video-outfit-upload-btn {
padding: 7px 16px;
border: 1px solid var(--border-subtle);
border-radius: 8px;
background: var(--bg-inset);
color: var(--fg-body);
font-size: 13px;
cursor: pointer;
transition: border-color 150ms, background 150ms;
}
.clone-ai-video-outfit-upload-btn:hover {
border-color: var(--border-default);
background: var(--bg-hover);
}
.clone-ai-video-outfit-info {
font-size: 12px;
color: var(--accent);
}
/* Ecommerce generation page SaaS polish: visual-only refinement for the product creation workspace. */
.product-clone-page {
--ecm-page: #0e1012;