/* 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; }