288 lines
18 KiB
CSS
288 lines
18 KiB
CSS
/* Creation-specific geometry. Shared controls still use the workspace tokens. */
|
||
.creation-mode-tabs { position: relative; isolation: isolate; display: grid; width: min(456px, 100%); margin: 0 auto 20px; padding: 4px; border-radius: 18px; background: var(--user-surface-muted); }
|
||
.creation-mode-indicator { position: absolute; z-index: -1; inset: 0; border-radius: 14px; background: var(--user-surface); box-shadow: 0 2px 8px color-mix(in srgb, var(--user-ink) 5%, transparent); }
|
||
.creation-mode-button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; height: 44px; padding: 0 12px; border: 0; border-radius: 14px; background: transparent; color: var(--user-ink-muted); font-size: 14px; font-weight: 600; cursor: pointer; transition: color var(--user-motion), transform var(--user-motion); }
|
||
.creation-mode-button svg { width: 18px; height: 18px; stroke-width: 1.8; color: currentColor; }
|
||
.creation-mode-button[aria-pressed="true"], .creation-mode-button:hover { color: var(--user-ink); }
|
||
.creation-mode-button:active { transform: scale(.97); }
|
||
.creation-mode-button:focus-visible { outline: 2px solid var(--user-accent); outline-offset: 2px; }
|
||
.creation-mode-spark {
|
||
width: 6px;
|
||
height: 6px;
|
||
border-radius: 50%;
|
||
background: #6366f1;
|
||
box-shadow: 0 0 8px rgba(99, 102, 241, 0.65);
|
||
animation: creation-mode-spark-pulse 2s ease-in-out infinite;
|
||
}
|
||
|
||
.dark .creation-mode-spark {
|
||
background: #818cf8;
|
||
box-shadow: 0 0 10px rgba(129, 140, 248, 0.85);
|
||
}
|
||
|
||
@keyframes creation-mode-spark-pulse {
|
||
0%, 100% {
|
||
transform: scale(0.85);
|
||
opacity: 0.45;
|
||
box-shadow: 0 0 4px rgba(99, 102, 241, 0.4);
|
||
}
|
||
50% {
|
||
transform: scale(1.3);
|
||
opacity: 1;
|
||
box-shadow: 0 0 10px rgba(99, 102, 241, 0.9), 0 0 16px rgba(99, 102, 241, 0.45);
|
||
}
|
||
}
|
||
.creation-agent-entry { display: grid; grid-template-columns: 88px minmax(0, 1fr); align-items: center; gap: 16px 24px; padding: 28px; margin-bottom: 20px; border-radius: var(--user-radius-card); background: var(--user-surface); animation: product-card-enter var(--product-enter) var(--product-ease) backwards; }
|
||
.creation-agent-orb { grid-row: span 2; }
|
||
.creation-agent-eyebrow { font-size: 10px; font-weight: 650; letter-spacing: .14em; color: var(--user-accent); }
|
||
.creation-agent-copy h2 { margin: 4px 0 8px; font-size: 21px; font-weight: 650; color: var(--user-ink); }
|
||
.creation-agent-copy p { margin: 0; max-width: 62ch; font-size: 13px; line-height: 1.8; color: var(--user-ink-muted); }
|
||
.creation-agent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
|
||
.creation-agent-error { grid-column: 1 / -1; color: var(--status-error); font-size: 12px; margin: 0; }
|
||
.creation-home .creation-empty-composer[hidden] { display: none; }
|
||
.creation-submit { margin-left: auto; flex: 0 0 auto; display: inline-flex; gap: 8px; }
|
||
.creation-submit-cost { display: inline-flex; align-items: center; gap: 4px; color: var(--user-ink-muted); font-size: 12px; padding-inline: 8px; }
|
||
.creation-submit-cost svg { width: 14px; height: 14px; }
|
||
@layer utilities {
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn { height: auto; min-height: 40px; padding: 0; border: 0; background: transparent !important; box-shadow: none; border-radius: 999px; opacity: 1; }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn .creation-submit-action { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: 8px; width: auto; height: 40px; padding: 0 18px; border-radius: 999px; background: var(--button-primary-bg); color: var(--button-primary-fg); transition: background var(--user-motion), box-shadow var(--user-motion), transform var(--user-motion); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn .creation-submit-action::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 28%, rgb(255 255 255 / .28) 48%, transparent 68%); transform: translateX(-120%); pointer-events: none; }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn .creation-submit-action span { font-size: 13px; font-weight: 600; }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn .creation-submit-action svg { width: 17px; height: 17px; color: currentColor; transition: transform var(--user-motion); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:disabled .creation-submit-action { background: var(--user-surface-hover); color: var(--user-ink-muted); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:not(:disabled):hover .creation-submit-action { background: var(--button-primary-hover-bg); transform: translateY(-1px); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:not(:disabled):hover .creation-submit-action::after { animation: creation-submit-sheen 640ms cubic-bezier(.16, 1, .3, 1); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:not(:disabled):hover .creation-submit-action svg { transform: translateY(-1px); }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:not(:disabled):active .creation-submit-action { background: var(--button-primary-active-bg); transform: scale(.97); }
|
||
.app-product-workspace .creation-home .creation-chat-composer.is-thread .creation-submit.ant-btn .creation-submit-action { height: 34px; padding: 0 14px; }
|
||
}
|
||
.creation-inspiration-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
|
||
.creation-inspiration-filters button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; min-height: 36px; border: 0; border-radius: 999px; color: var(--user-ink-muted); background: transparent; font-size: 13px; transition: background var(--user-motion), color var(--user-motion); }
|
||
.creation-inspiration-filters button span { font-size: 11px; opacity: .65; font-variant-numeric: tabular-nums; }
|
||
.creation-inspiration-filters button:hover { background: var(--user-surface-hover); }
|
||
.creation-inspiration-filters button[aria-pressed="true"] { background: var(--user-ink); color: var(--user-surface); }
|
||
.creation-inspiration-filters button:focus-visible { outline: 2px solid var(--user-accent); outline-offset: 2px; }
|
||
.creation-inspiration-overlay { position: absolute; inset: auto 12px 12px; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 12px; border-radius: var(--user-radius-control); background: var(--user-surface); color: var(--user-ink); font-size: 12px; transform: translateY(6px); opacity: 0; transition: opacity var(--user-motion), transform var(--user-motion); }
|
||
.creation-inspiration-overlay svg { width: 14px; height: 14px; transform: rotate(45deg); }
|
||
.creation-featured-card:hover .creation-inspiration-overlay, .creation-featured-card:focus-visible .creation-inspiration-overlay { opacity: 1; transform: translateY(0); }
|
||
.creation-inspiration-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 24px; color: var(--user-ink-muted); font-size: 12px; }
|
||
.creation-inspiration-footer details { max-width: 60ch; }
|
||
.creation-inspiration-footer summary { cursor: pointer; padding-block: 8px; }
|
||
.creation-inspiration-footer p { line-height: 1.7; margin: 8px 0; }
|
||
.creation-inspiration-footer a { color: var(--user-accent); }
|
||
@media (max-width: 620px) {
|
||
.creation-mode-button { padding-inline: 6px; font-size: 12px; gap: 6px; }
|
||
.creation-agent-entry { grid-template-columns: 1fr; padding: 20px; gap: 12px; }
|
||
.creation-agent-orb { display: none; }
|
||
.creation-agent-copy h2 { font-size: 18px; }
|
||
.creation-agent-actions > .ant-btn { width: 100%; }
|
||
.creation-inspiration-filters { gap: 4px; }
|
||
.creation-inspiration-filters button { padding-inline: 10px; }
|
||
.creation-inspiration-footer { align-items: flex-start; flex-direction: column; }
|
||
.creation-home .creation-chat-dock { flex-wrap: wrap; gap: 12px; }
|
||
.creation-home .creation-chat-controls { flex: 1 1 100%; width: 100%; }
|
||
}
|
||
.app-user-workspace .creation-voice-trigger.ant-btn {
|
||
width: 36px !important;
|
||
min-width: 36px !important;
|
||
height: 36px !important;
|
||
border-radius: 999px !important;
|
||
background: var(--user-surface-muted) !important;
|
||
color: var(--user-ink-muted) !important;
|
||
transition: background var(--user-motion), color var(--user-motion), transform var(--user-motion), box-shadow var(--user-motion) !important;
|
||
}
|
||
.app-user-workspace .creation-voice-trigger.ant-btn:hover,
|
||
.app-user-workspace .creation-voice-trigger.ant-btn:focus-visible {
|
||
background: var(--user-surface-hover) !important;
|
||
color: var(--user-ink) !important;
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 8px 18px color-mix(in srgb, var(--user-ink) 8%, transparent);
|
||
}
|
||
.app-user-workspace .creation-chat-control > svg:first-child,
|
||
.app-user-workspace .creation-model-picker .canvas-model-picker-trigger-icon { transition: transform var(--user-motion), color var(--user-motion); color: currentColor; }
|
||
.app-user-workspace .creation-chat-control:hover > svg:first-child,
|
||
.app-user-workspace .creation-model-picker:hover .canvas-model-picker-trigger-icon { transform: scale(1.06); }
|
||
.app-user-workspace .creation-chat-control.is-clear:hover { background: color-mix(in srgb, var(--status-error, #c45b5b) 12%, var(--user-surface)) !important; color: var(--status-error, #c45b5b) !important; }
|
||
.app-user-workspace .creation-launchpad .creation-reference-add-button:hover:not(:disabled) {
|
||
border-style: solid;
|
||
border-color: var(--user-border-strong);
|
||
background: var(--user-surface-hover);
|
||
color: var(--user-ink);
|
||
transform: translateY(-1px);
|
||
}
|
||
.app-user-workspace .creation-launchpad .creation-reference-add-button:active:not(:disabled) { transform: scale(.97); }
|
||
@keyframes creation-submit-sheen { to { transform: translateX(120%); } }
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.creation-mode-button:active { transform: none; }
|
||
.creation-agent-entry { animation: none; }
|
||
.app-user-workspace .creation-chat-composer,
|
||
.app-user-workspace .creation-chat-control,
|
||
.app-user-workspace .creation-voice-trigger.ant-btn,
|
||
.app-user-workspace .creation-submit-action { transition: none !important; transform: none !important; }
|
||
.app-product-workspace .creation-home .creation-submit.ant-btn:not(:disabled):hover .creation-submit-action::after { animation: none; }
|
||
}
|
||
|
||
/* 参数弹窗挂在 body overlays,必须直接用用户表面 token;描边由 Ant inner 的 1px border 造成。 */
|
||
.app-user-overlays .creation-control-popover,
|
||
.app-product-overlays .creation-control-popover {
|
||
--popover: var(--user-surface-raised);
|
||
--border: transparent;
|
||
--creation-text: var(--user-ink);
|
||
--creation-muted: var(--user-ink-muted);
|
||
--creation-faint: var(--user-ink-soft);
|
||
--control-selected-bg: var(--user-control-pressed);
|
||
--control-selected-fg: var(--user-ink);
|
||
}
|
||
|
||
.app-user-overlays .creation-control-popover .ant-popover-arrow,
|
||
.app-product-overlays .creation-control-popover .ant-popover-arrow { display: none; }
|
||
|
||
.app-user-overlays .creation-control-popover.ant-popover,
|
||
.app-user-overlays .creation-control-popover .ant-popover-container,
|
||
.app-user-overlays .creation-control-popover .ant-popover-inner,
|
||
.app-user-overlays .creation-control-popover-surface,
|
||
.app-product-overlays .creation-control-popover.ant-popover,
|
||
.app-product-overlays .creation-control-popover .ant-popover-container,
|
||
.app-product-overlays .creation-control-popover .ant-popover-inner,
|
||
.app-product-overlays .creation-control-popover-surface {
|
||
border: 0 !important;
|
||
outline: 0 !important;
|
||
background: var(--user-surface-raised) !important;
|
||
background-image: none !important;
|
||
box-shadow: 0 18px 40px rgba(0, 0, 0, .36) !important;
|
||
backdrop-filter: none !important;
|
||
-webkit-backdrop-filter: none !important;
|
||
border-radius: 16px !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-control-popover .ant-popover-inner,
|
||
.app-product-overlays .creation-control-popover .ant-popover-inner {
|
||
overflow: hidden;
|
||
padding: 0 !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-parameter-menu,
|
||
.app-product-overlays .creation-parameter-menu { padding: 12px !important; }
|
||
|
||
.app-user-overlays .creation-parameter-section h3,
|
||
.app-user-overlays .creation-duration-heading > span,
|
||
.app-product-overlays .creation-parameter-section h3,
|
||
.app-product-overlays .creation-duration-heading > span { color: var(--user-ink-muted) !important; }
|
||
|
||
.app-user-overlays .creation-parameter-section > header > span,
|
||
.app-user-overlays .creation-duration-heading strong,
|
||
.app-product-overlays .creation-parameter-section > header > span,
|
||
.app-product-overlays .creation-duration-heading strong { color: var(--user-ink) !important; }
|
||
|
||
.app-user-overlays .creation-choice-grid,
|
||
.app-product-overlays .creation-choice-grid { gap: 6px !important; }
|
||
|
||
.app-user-overlays .creation-choice-grid button,
|
||
.app-user-overlays .creation-duration-choices button,
|
||
.app-product-overlays .creation-choice-grid button,
|
||
.app-product-overlays .creation-duration-choices button {
|
||
min-height: 40px !important;
|
||
border: 0 !important;
|
||
border-radius: 10px !important;
|
||
background: transparent !important;
|
||
box-shadow: none !important;
|
||
color: var(--user-ink-muted) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-choice-grid.is-resolution button,
|
||
.app-user-overlays .creation-choice-grid.is-quality button,
|
||
.app-user-overlays .creation-choice-grid.is-count button,
|
||
.app-user-overlays .creation-duration-choices button,
|
||
.app-product-overlays .creation-choice-grid.is-resolution button,
|
||
.app-product-overlays .creation-choice-grid.is-quality button,
|
||
.app-product-overlays .creation-choice-grid.is-count button,
|
||
.app-product-overlays .creation-duration-choices button { min-height: 34px !important; }
|
||
|
||
.app-user-overlays .creation-choice-grid button:hover,
|
||
.app-user-overlays .creation-duration-choices button:hover,
|
||
.app-product-overlays .creation-choice-grid button:hover,
|
||
.app-product-overlays .creation-duration-choices button:hover {
|
||
background: var(--user-surface-hover) !important;
|
||
color: var(--user-ink) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-choice-grid button.is-selected,
|
||
.app-user-overlays .creation-duration-choices button.is-selected,
|
||
.app-product-overlays .creation-choice-grid button.is-selected,
|
||
.app-product-overlays .creation-duration-choices button.is-selected {
|
||
background: var(--user-control-pressed) !important;
|
||
color: var(--user-ink) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-choice-grid .creation-ratio-preview > span,
|
||
.app-product-overlays .creation-choice-grid .creation-ratio-preview > span {
|
||
border: 0 !important;
|
||
border-radius: 3px !important;
|
||
background: currentColor;
|
||
opacity: .55;
|
||
}
|
||
|
||
.app-user-overlays .creation-choice-grid button.is-selected .creation-ratio-preview > span,
|
||
.app-product-overlays .creation-choice-grid button.is-selected .creation-ratio-preview > span { opacity: .92; }
|
||
|
||
.app-user-overlays .creation-custom-value,
|
||
.app-product-overlays .creation-custom-value {
|
||
border: 0 !important;
|
||
background: var(--user-surface-muted) !important;
|
||
color: var(--user-ink-muted) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-parameter-menu .image-size-tiers button,
|
||
.app-user-overlays .creation-parameter-menu .image-size-ratios button,
|
||
.app-user-overlays .creation-parameter-menu .image-size-auto,
|
||
.app-product-overlays .creation-parameter-menu .image-size-tiers button,
|
||
.app-product-overlays .creation-parameter-menu .image-size-ratios button,
|
||
.app-product-overlays .creation-parameter-menu .image-size-auto {
|
||
border: 0 !important;
|
||
background: var(--user-surface-muted) !important;
|
||
box-shadow: none !important;
|
||
color: var(--user-ink-muted) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-parameter-menu .image-size-tiers button[aria-pressed="true"],
|
||
.app-user-overlays .creation-parameter-menu .image-size-ratios button[aria-pressed="true"],
|
||
.app-user-overlays .creation-parameter-menu .image-size-auto[aria-pressed="true"],
|
||
.app-product-overlays .creation-parameter-menu .image-size-tiers button[aria-pressed="true"],
|
||
.app-product-overlays .creation-parameter-menu .image-size-ratios button[aria-pressed="true"],
|
||
.app-product-overlays .creation-parameter-menu .image-size-auto[aria-pressed="true"] {
|
||
background: var(--user-control-pressed) !important;
|
||
box-shadow: none !important;
|
||
color: var(--user-ink) !important;
|
||
}
|
||
|
||
.app-user-overlays .creation-parameter-menu .image-size-ratio-icon,
|
||
.app-product-overlays .creation-parameter-menu .image-size-ratio-icon {
|
||
border: 0 !important;
|
||
background: currentColor;
|
||
opacity: .55;
|
||
}
|
||
|
||
html:not(.dark) .app-user-overlays .creation-control-popover.ant-popover,
|
||
html:not(.dark) .app-user-overlays .creation-control-popover .ant-popover-container,
|
||
html:not(.dark) .app-user-overlays .creation-control-popover .ant-popover-inner,
|
||
html:not(.dark) .app-user-overlays .creation-control-popover-surface,
|
||
html:not(.dark) .app-product-overlays .creation-control-popover.ant-popover,
|
||
html:not(.dark) .app-product-overlays .creation-control-popover .ant-popover-container,
|
||
html:not(.dark) .app-product-overlays .creation-control-popover .ant-popover-inner,
|
||
html:not(.dark) .app-product-overlays .creation-control-popover-surface {
|
||
box-shadow: 0 16px 40px rgba(25, 25, 30, .12) !important;
|
||
}
|
||
|
||
/* 长提示词保持编辑器可控:按当前字号最多展示约 12 行,继续输入时只在编辑区内部滚动。 */
|
||
.creation-home .creation-chat-editor textarea,
|
||
.creation-home .creation-chat-mention-editor {
|
||
max-height: 18.6em !important;
|
||
overflow-x: hidden !important;
|
||
overflow-y: auto !important;
|
||
overscroll-behavior: contain;
|
||
scrollbar-gutter: stable;
|
||
}
|
||
|
||
.creation-home .creation-chat-mention-container {
|
||
min-height: 0 !important;
|
||
} |