3025 lines
133 KiB
CSS
3025 lines
133 KiB
CSS
|
||
.creation-parameter-section + .creation-parameter-section { margin-top: 16px; }
|
||
.creation-parameter-section h3 {
|
||
margin: 0 0 8px;
|
||
color: var(--creation-muted);
|
||
font-size: 11px;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.creation-parameter-content { min-width: 0; }
|
||
.creation-choice-grid { gap: 3px; }
|
||
.creation-choice-grid.is-ratio { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
||
.creation-choice-grid button {
|
||
min-height: 46px;
|
||
border: 0;
|
||
border-radius: 6px;
|
||
background: transparent;
|
||
color: #959ca5;
|
||
font-size: 10px;
|
||
}
|
||
|
||
.creation-choice-grid button:hover { background: rgba(255, 255, 255, .055); color: #edf0f2; }
|
||
.creation-choice-grid .creation-ratio-preview { width: 25px; height: 17px; }
|
||
.creation-choice-grid .creation-ratio-preview > span { border-width: 1px; }
|
||
.creation-choice-grid.is-resolution button,
|
||
.creation-choice-grid.is-count button { min-height: 32px; font-size: 11px; }
|
||
|
||
.creation-custom-trigger {
|
||
display: inline-flex;
|
||
height: 27px;
|
||
align-items: center;
|
||
border: 0;
|
||
background: transparent;
|
||
color: #8bcfe0;
|
||
padding: 0 4px;
|
||
font-size: 10px;
|
||
}
|
||
|
||
.creation-custom-trigger:hover { color: #c4edf6; }
|
||
.creation-custom-value {
|
||
display: flex;
|
||
width: 100%;
|
||
height: 32px;
|
||
align-items: center;
|
||
gap: 7px;
|
||
margin-top: 7px;
|
||
border-radius: 6px;
|
||
background: rgba(255, 255, 255, .055);
|
||
padding: 0 9px;
|
||
color: var(--creation-muted);
|
||
font-size: 11px;
|
||
}
|
||
|
||
.creation-custom-value input {
|
||
min-width: 0;
|
||
border: 0;
|
||
outline: 0;
|
||
background: transparent;
|
||
color: #edf0f2;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.creation-duration-menu {
|
||
display: block;
|
||
width: 270px;
|
||
padding: 13px 14px 14px;
|
||
}
|
||
|
||
.creation-duration-heading {
|
||
display: flex;
|
||
align-items: baseline;
|
||
justify-content: space-between;
|
||
margin-bottom: 8px;
|
||
color: var(--creation-muted);
|
||
font-size: 11px;
|
||
}
|
||
|
||
.creation-duration-heading strong { color: #f1f3f4; font-size: 13px; font-weight: 600; }
|
||
.creation-duration-choices { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; }
|
||
.creation-duration-choices button {
|
||
height: 30px;
|
||
border: 0;
|
||
border-radius: 6px;
|
||
background: transparent;
|
||
color: #969ca5;
|
||
font-size: 11px;
|
||
}
|
||
|
||
.creation-duration-choices button:hover { background: rgba(255, 255, 255, .055); color: #eff1f2; }
|
||
.creation-custom-value.is-duration { width: 100%; grid-column: auto; margin-top: 7px; }
|
||
}
|
||
|
||
/* 解除旧版参数侧栏 Grid,Popover 必须是纵向信息分组。 */
|
||
.creation-parameter-section {
|
||
display: block !important;
|
||
grid-template-columns: none !important;
|
||
gap: 0 !important;
|
||
}
|
||
|
||
.creation-parameter-section h3 { margin: 0 0 8px !important; }
|
||
.creation-parameter-content { min-width: 0; }
|
||
.creation-choice-grid { gap: 3px; }
|
||
.creation-choice-grid.is-ratio { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
||
.creation-choice-grid button { min-height: 46px; }
|
||
.creation-choice-grid.is-resolution button,
|
||
.creation-choice-grid.is-count button { min-height: 32px; }
|
||
.creation-duration-menu { display: block !important; width: 270px !important; grid-template-columns: none !important; padding: 13px 14px 14px !important; }
|
||
.creation-duration-heading { display: flex !important; flex-direction: row !important; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
|
||
.creation-duration-choices { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; }
|
||
.creation-duration-choices button { height: 30px; }
|
||
.creation-custom-value.is-duration { grid-column: auto !important; width: 100%; margin-top: 7px; }
|
||
|
||
/* 创作参数是即时选择,不使用后台式表单控件。 */
|
||
.creation-control-popover-surface {
|
||
border: 0 !important;
|
||
border-radius: 12px !important;
|
||
background: rgba(25, 27, 31, .96) !important;
|
||
box-shadow: 0 20px 48px rgba(0, 0, 0, .34) !important;
|
||
}
|
||
|
||
.creation-parameter-menu {
|
||
width: 288px !important;
|
||
padding: 12px !important;
|
||
}
|
||
|
||
.creation-parameter-section,
|
||
.creation-parameter-section + .creation-parameter-section {
|
||
display: block !important;
|
||
margin: 0 !important;
|
||
}
|
||
|
||
.creation-parameter-section + .creation-parameter-section { margin-top: 14px !important; }
|
||
|
||
.creation-parameter-section > header,
|
||
.creation-duration-heading {
|
||
display: flex !important;
|
||
flex-direction: row !important;
|
||
align-items: center !important;
|
||
justify-content: space-between;
|
||
min-height: 18px;
|
||
margin: 0 2px 7px !important;
|
||
}
|
||
|
||
.creation-parameter-section h3,
|
||
.creation-duration-heading > span {
|
||
margin: 0 !important;
|
||
color: var(--creation-muted) !important;
|
||
font-size: 11px !important;
|
||
font-weight: 500 !important;
|
||
letter-spacing: 0 !important;
|
||
}
|
||
|
||
.creation-parameter-section > header > span,
|
||
.creation-duration-heading strong {
|
||
color: var(--creation-text) !important;
|
||
font-size: 11px !important;
|
||
font-weight: 600 !important;
|
||
}
|
||
|
||
.creation-choice-grid { gap: 3px !important; }
|
||
.creation-choice-grid.is-ratio { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
|
||
.creation-choice-grid.is-resolution { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
|
||
|
||
.creation-choice-grid.is-ratio button,
|
||
.creation-choice-grid.is-resolution button,
|
||
.creation-choice-grid.is-quality button,
|
||
.creation-choice-grid.is-count button {
|
||
display: flex !important;
|
||
min-height: 34px !important;
|
||
align-items: center !important;
|
||
justify-content: center !important;
|
||
gap: 7px;
|
||
border: 0 !important;
|
||
border-radius: 6px !important;
|
||
background: transparent !important;
|
||
color: var(--creation-muted) !important;
|
||
font-size: 11px !important;
|
||
font-weight: 500;
|
||
transition: background-color 160ms var(--motion-ease-out), color 160ms var(--motion-ease-out), transform 160ms var(--motion-ease-out) !important;
|
||
}
|
||
|
||
.creation-choice-grid button:hover {
|
||
background: rgba(255, 255, 255, .055) !important;
|
||
color: var(--creation-text) !important;
|
||
}
|
||
|
||
.creation-choice-grid button.is-selected {
|
||
background: var(--control-selected-bg) !important;
|
||
color: var(--control-selected-fg) !important;
|
||
}
|
||
|
||
.creation-choice-grid .creation-ratio-preview {
|
||
display: grid;
|
||
width: 18px !important;
|
||
height: 14px !important;
|
||
flex: 0 0 18px;
|
||
place-items: center;
|
||
}
|
||
|
||
.creation-choice-grid .creation-ratio-preview > span {
|
||
max-width: 18px;
|
||
max-height: 14px;
|
||
border-width: 1px !important;
|
||
border-radius: 2px !important;
|
||
}
|
||
|
||
.creation-custom-trigger {
|
||
display: inline-flex !important;
|
||
height: 26px !important;
|
||
align-items: center;
|
||
gap: 4px;
|
||
margin: 3px 0 0 2px;
|
||
border: 0 !important;
|
||
border-radius: 4px;
|
||
background: transparent !important;
|
||
padding: 0 2px !important;
|
||
color: var(--creation-muted) !important;
|
||
font-size: 10px !important;
|
||
transition: color 160ms var(--motion-ease-out), background-color 160ms var(--motion-ease-out) !important;
|
||
}
|
||
|
||
.creation-custom-trigger svg { width: 12px; height: 12px; }
|
||
.creation-custom-trigger:hover { background: rgba(255, 255, 255, .05) !important; color: var(--creation-text) !important; }
|
||
|
||
.creation-custom-value,
|
||
.creation-custom-value.is-duration {
|
||
display: flex !important;
|
||
width: 100% !important;
|
||
height: 32px !important;
|
||
align-items: center;
|
||
gap: 8px;
|
||
margin-top: 5px !important;
|
||
border: 0 !important;
|
||
border-radius: 6px !important;
|
||
background: rgba(255, 255, 255, .055) !important;
|
||
padding: 0 9px !important;
|
||
color: var(--creation-muted) !important;
|
||
font-size: 10px !important;
|
||
}
|
||
|
||
.creation-custom-value input {
|
||
min-width: 0;
|
||
flex: 1;
|
||
border: 0 !important;
|
||
outline: 0 !important;
|
||
background: transparent !important;
|
||
color: var(--creation-text) !important;
|
||
font-size: 11px !important;
|
||
}
|
||
|
||
.creation-custom-value em { color: var(--creation-muted); font-size: 11px; font-style: normal; }
|
||
|
||
/* 首页图像参数保持紧凑,避免比例预设把弹层撑成整屏高度。 */
|
||
.creation-parameter-menu .image-size-picker {
|
||
gap: 7px;
|
||
}
|
||
|
||
.creation-parameter-menu .image-size-ratios {
|
||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||
gap: 4px;
|
||
}
|
||
|
||
.creation-parameter-menu .image-size-ratios button {
|
||
min-height: 48px;
|
||
gap: 4px;
|
||
padding: 5px;
|
||
}
|
||
|
||
.creation-duration-custom-field {
|
||
display: inline-flex;
|
||
min-width: 64px;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
gap: 3px;
|
||
margin-left: auto;
|
||
color: var(--creation-text);
|
||
font-size: 11px;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
|
||
.creation-custom-value .creation-duration-custom-field input {
|
||
width: 42px;
|
||
flex: 0 0 42px;
|
||
padding: 0;
|
||
text-align: right;
|
||
}
|
||
|
||
.creation-duration-custom-field em { color: currentColor; }
|
||
|
||
.creation-duration-menu {
|
||
display: block !important;
|
||
width: 262px !important;
|
||
padding: 12px !important;
|
||
}
|
||
|
||
.creation-duration-choices {
|
||
display: grid !important;
|
||
grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
|
||
gap: 3px !important;
|
||
}
|
||
|
||
.creation-duration-choices button {
|
||
height: 32px !important;
|
||
min-width: 0;
|
||
border: 0 !important;
|
||
border-radius: 6px !important;
|
||
background: transparent !important;
|
||
color: var(--creation-muted) !important;
|
||
font-size: 11px !important;
|
||
font-weight: 500;
|
||
transition: background-color 160ms var(--motion-ease-out), color 160ms var(--motion-ease-out) !important;
|
||
}
|
||
|
||
.creation-duration-choices button:hover { background: rgba(255, 255, 255, .055) !important; color: var(--creation-text) !important; }
|
||
.creation-duration-choices button.is-selected { background: var(--control-selected-bg) !important; color: var(--control-selected-fg) !important; }
|
||
|
||
html:not(.dark) .creation-control-popover-surface { background: rgba(255, 255, 255, .98) !important; box-shadow: 0 20px 48px rgba(25, 29, 35, .14) !important; }
|
||
html:not(.dark) .creation-choice-grid button:hover,
|
||
html:not(.dark) .creation-duration-choices button:hover,
|
||
html:not(.dark) .creation-custom-trigger:hover { background: rgba(28, 32, 37, .055) !important; }
|
||
html:not(.dark) .creation-custom-value { background: rgba(28, 32, 37, .055) !important; }
|
||
|
||
/* 历史对话是按更新时间倒序排列的普通记录列表,不使用时间轴视觉。 */
|
||
.creation-top-actions {
|
||
position: absolute;
|
||
z-index: 30;
|
||
top: 24px;
|
||
right: 28px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: var(--space-1);
|
||
}
|
||
|
||
.creation-top-action {
|
||
display: inline-flex;
|
||
min-height: var(--space-8);
|
||
align-items: center;
|
||
justify-content: center;
|
||
border: 1px solid transparent;
|
||
border-radius: var(--r-md);
|
||
background: transparent;
|
||
color: var(--creation-muted);
|
||
padding: 0 var(--space-2);
|
||
transition: background-color var(--motion-state) ease, color var(--motion-state) ease;
|
||
}
|
||
|
||
.creation-top-action svg { width: var(--space-4); height: var(--space-4); }
|
||
.creation-top-action:hover,
|
||
.creation-top-action[aria-expanded="true"] { background: var(--creation-surface-hover); color: var(--creation-text); }
|
||
.creation-top-action:focus-visible { outline: 2px solid var(--creation-accent); outline-offset: 1px; }
|
||
|
||
.creation-history-drawer,
|
||
.creation-history-drawer-root {
|
||
--creation-history-bg: #111316;
|
||
--creation-history-surface: #1a1d22;
|
||
--creation-history-hover: #20242a;
|
||
--creation-history-text: #f1f3f4;
|
||
--creation-history-muted: #858c96;
|
||
--creation-history-faint: #555c66;
|
||
--creation-history-line: rgba(255, 255, 255, .09);
|
||
--creation-history-accent: var(--workspace-accent);
|
||
}
|
||
|
||
html:not(.dark) .creation-history-drawer,
|
||
html:not(.dark) .creation-history-drawer-root {
|
||
--creation-history-bg: #f8f8f6;
|
||
--creation-history-surface: #ffffff;
|
||
--creation-history-hover: #f0f1ee;
|
||
--creation-history-text: #202328;
|
||
--creation-history-muted: #747c85;
|
||
--creation-history-faint: #b0b6bc;
|
||
--creation-history-line: rgba(28, 32, 37, .11);
|
||
--creation-history-accent: #1688a3;
|
||
}
|
||
|
||
.creation-history-drawer.ant-drawer-content,
|
||
.creation-history-drawer .ant-drawer-content,
|
||
.creation-history-drawer-root .ant-drawer-content { background: var(--creation-history-bg); color: var(--creation-history-text); }
|
||
.creation-history-drawer .ant-drawer-header { min-height: 68px; border-bottom: 0; padding: 16px 18px 14px 20px; }
|
||
.creation-history-drawer .ant-drawer-title { color: var(--creation-history-text); }
|
||
.creation-history-drawer .ant-drawer-close { display: grid; width: 32px; height: 32px; place-items: center; margin-inline-end: 10px; border-radius: var(--r-sm); color: var(--creation-history-muted); }
|
||
.creation-history-drawer .ant-drawer-close:hover { background: var(--creation-history-hover); color: var(--creation-history-text); }
|
||
.creation-history-drawer .ant-drawer-close:focus-visible { outline: 2px solid color-mix(in srgb, var(--creation-history-accent) 66%, transparent); outline-offset: 1px; }
|
||
.creation-history-drawer .ant-drawer-body { overscroll-behavior: contain; }
|
||
|
||
.creation-history-title { display: flex; min-width: 0; align-items: baseline; gap: 9px; }
|
||
.creation-history-title > span { font-size: var(--fs-title); font-weight: 680; letter-spacing: 0; }
|
||
.creation-history-title small { color: var(--creation-history-muted); font-size: var(--fs-label); font-weight: 500; }
|
||
|
||
.creation-history-content { min-height: 100%; padding: 14px 14px 20px; }
|
||
.creation-history-search { display: flex; height: 38px; align-items: center; gap: 9px; margin: 0 2px 12px; border: 1px solid var(--creation-history-line); border-radius: var(--r-sm); background: var(--creation-history-surface); padding: 0 11px; color: var(--creation-history-muted); transition: border-color 150ms ease, background-color 150ms ease; }
|
||
.creation-history-search:focus-within { border-color: color-mix(in srgb, var(--creation-history-accent) 58%, var(--creation-history-line)); background: var(--creation-history-hover); }
|
||
.creation-history-search svg { width: 15px; height: 15px; flex: 0 0 auto; }
|
||
.creation-history-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--creation-history-text); font: inherit; font-size: var(--fs-label); }
|
||
.creation-history-search input::placeholder { color: var(--creation-history-muted); }
|
||
|
||
.creation-history-list { display: grid; gap: var(--space-1); margin: 0; padding: 0; list-style: none; }
|
||
.creation-history-list > li { position: relative; min-width: 0; }
|
||
.creation-history-row { position: relative; display: flex; min-width: 0; align-items: center; border-radius: var(--r-sm); transition: background-color 150ms ease; }
|
||
.creation-history-row:hover { background: var(--creation-history-hover); }
|
||
.creation-history-row .creation-history-item-main { display: flex; min-width: 0; flex: 1; flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; border: 0; border-radius: var(--r-sm); background: transparent; padding: 8px 62px 8px 12px; color: var(--creation-history-text); text-align: left; }
|
||
.creation-history-row .creation-history-item-main:hover { background: transparent; }
|
||
.creation-history-row .creation-history-item-main:focus-visible { outline: 2px solid color-mix(in srgb, var(--creation-history-accent) 68%, transparent); outline-offset: -2px; }
|
||
.creation-history-list > li.is-active .creation-history-row { background: color-mix(in srgb, var(--creation-history-accent) 9%, var(--creation-history-surface)); }
|
||
.creation-history-list > li.is-active .creation-history-row:hover { background: color-mix(in srgb, var(--creation-history-accent) 14%, var(--creation-history-surface)); }
|
||
.creation-history-item-heading { width: 100%; overflow: hidden; font-size: var(--fs-label); font-weight: 650; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
|
||
.creation-history-item-text { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; }
|
||
.creation-history-item-icon {
|
||
display: grid;
|
||
width: 34px;
|
||
height: 34px;
|
||
flex: 0 0 auto;
|
||
place-items: center;
|
||
border-radius: 99px;
|
||
background: color-mix(in srgb, var(--creation-history-accent) 16%, transparent);
|
||
color: var(--creation-history-accent);
|
||
transition: background-color 150ms ease, color 150ms ease;
|
||
}
|
||
.creation-history-item-icon svg { width: 16px; height: 16px; }
|
||
.creation-history-list > li.is-active .creation-history-item-icon { background: color-mix(in srgb, var(--creation-history-accent) 24%, transparent); color: var(--creation-history-accent); }
|
||
.creation-history-snippet { display: flex; width: 100%; min-width: 0; align-items: baseline; gap: 6px; overflow: hidden; color: color-mix(in srgb, var(--creation-history-muted) 88%, transparent); font-size: var(--fs-micro); line-height: 1.45; }
|
||
.creation-history-snippet em { flex: 0 0 auto; color: color-mix(in srgb, var(--creation-history-muted) 80%, transparent); font-size: var(--fs-micro); font-style: normal; font-weight: 600; }
|
||
.creation-history-snippet span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||
.creation-history-time-slot { position: absolute; z-index: 1; top: 50%; right: 8px; display: flex; height: 26px; align-items: center; color: var(--creation-history-muted); font-size: var(--fs-micro); font-variant-numeric: tabular-nums; line-height: 1.3; white-space: nowrap; pointer-events: none; transform: translateY(-50%); transition: opacity 150ms ease; }
|
||
.creation-history-more { position: absolute; z-index: 2; top: 50%; right: 8px; display: grid; width: 26px; height: 26px; place-items: center; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--creation-history-muted); opacity: 0; transform: translateY(-50%); cursor: pointer; transition: background-color 150ms ease, color 150ms ease, opacity 150ms ease; }
|
||
.creation-history-row:hover .creation-history-time-slot { opacity: 0; }
|
||
.creation-history-row:hover .creation-history-more,
|
||
.creation-history-row:focus-within .creation-history-more,
|
||
.creation-history-more.is-open,
|
||
.creation-history-more:focus-visible { opacity: 1; }
|
||
.creation-history-more:hover,
|
||
.creation-history-more.is-open { background: var(--creation-history-hover); color: var(--creation-history-text); }
|
||
.creation-history-more:focus-visible { outline: 2px solid color-mix(in srgb, var(--creation-history-accent) 66%, transparent); outline-offset: 1px; }
|
||
.creation-history-more svg { width: 16px; height: 16px; }
|
||
.creation-history-rename { display: flex; min-height: 52px; align-items: center; border-radius: var(--r-sm); background: var(--creation-history-hover); padding: 0 8px; }
|
||
.creation-history-rename-input { width: 100%; border: 0; border-radius: var(--r-sm); background: transparent; padding: 7px 8px; color: var(--creation-history-text); font: inherit; font-size: var(--fs-label); font-weight: 600; }
|
||
.creation-history-rename-input::selection { background: color-mix(in srgb, var(--creation-history-accent) 32%, transparent); }
|
||
.creation-history-rename-input:focus-visible { outline: 2px solid color-mix(in srgb, var(--creation-history-accent) 60%, transparent); outline-offset: 0; }
|
||
.creation-history-empty { display: grid; min-height: 180px; place-items: center; color: var(--creation-history-muted); font-size: var(--fs-label); }
|
||
.creation-history-menu-overlay .ant-dropdown-menu { border-radius: var(--r-md); padding: 4px; min-width: 168px; }
|
||
.creation-history-menu-overlay .ant-dropdown-menu .ant-dropdown-menu-item { border-radius: 6px; }
|
||
.creation-history-menu-overlay .ant-dropdown-menu-item-icon { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; }
|
||
.creation-history-menu-overlay .ant-dropdown-menu-item-icon svg { display: block; width: 14px; height: 14px; }
|
||
@media (pointer: coarse) {
|
||
.creation-history-more { opacity: 1; }
|
||
.creation-history-row:hover .creation-history-time-slot { opacity: 1; }
|
||
}
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.creation-history-row,
|
||
.creation-history-more,
|
||
.creation-history-time-slot { transition: none; }
|
||
}
|
||
|
||
@media (max-width: 640px) {
|
||
.creation-top-actions { top: 14px; right: 14px; }
|
||
.creation-top-action { width: 40px; height: 40px; }
|
||
.creation-history-drawer { width: 100vw !important; max-width: 100vw; }
|
||
.creation-history-drawer-root .ant-drawer-content-wrapper { width: 100vw !important; max-width: 100vw; }
|
||
.creation-history-drawer .ant-drawer-header { min-height: 62px; padding: 14px 14px 12px 16px; }
|
||
.creation-history-title > span { font-size: var(--fs-heading-lg); }
|
||
.creation-history-content { padding: 12px 12px 18px; }
|
||
}
|
||
|
||
/* -------------------------------------------------------------------------
|
||
Monochrome product surfaces
|
||
页面级黑白主题收口:焦点用边框表达,浮层使用单一表面,避免渐变、米色和蓝紫光圈在不同页面漂移。
|
||
------------------------------------------------------------------------- */
|
||
.creation-home {
|
||
--creation-accent: var(--workspace-accent);
|
||
--creation-bg: var(--workspace-page);
|
||
--creation-surface: var(--workspace-surface, color-mix(in srgb, var(--background) 96%, var(--foreground) 4%));
|
||
--creation-surface-muted: color-mix(in srgb, var(--creation-surface) 88%, var(--foreground) 12%);
|
||
--creation-surface-hover: color-mix(in srgb, var(--creation-surface) 78%, var(--foreground) 22%);
|
||
--creation-surface-selected: color-mix(in srgb, var(--creation-surface) 68%, var(--foreground) 32%);
|
||
--creation-border: var(--workspace-border, color-mix(in srgb, var(--foreground) 14%, transparent));
|
||
--creation-border-strong: var(--workspace-border-strong, color-mix(in srgb, var(--foreground) 24%, transparent));
|
||
--creation-shadow: var(--elevation-card);
|
||
}
|
||
|
||
:where(.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-select-selector, .ant-select-multiple .ant-select-selection-search-input) {
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
:where(.ant-input:focus, .ant-input-focused, .ant-input-affix-wrapper-focused, .ant-input-number-focused, .ant-select-focused .ant-select-selector) {
|
||
border-color: var(--control-focus-ring) !important;
|
||
box-shadow: none !important;
|
||
outline: none !important;
|
||
}
|
||
|
||
:where(.ant-input:hover, .ant-input-affix-wrapper:hover, .ant-input-number:hover, .ant-select:not(.ant-select-disabled):hover .ant-select-selector) {
|
||
border-color: color-mix(in srgb, var(--foreground) 42%, var(--border)) !important;
|
||
}
|
||
|
||
:where(.ant-select-dropdown, .ant-dropdown-menu) {
|
||
border: 0 !important;
|
||
border-radius: var(--r-lg) !important;
|
||
background: var(--popover) !important;
|
||
background-image: none !important;
|
||
box-shadow: var(--elevation-overlay) !important;
|
||
backdrop-filter: none !important;
|
||
}
|
||
|
||
:where(.ant-popover-inner, .ant-picker-dropdown .ant-picker-panel-container) {
|
||
border: 1px solid var(--border) !important;
|
||
border-radius: var(--r-md) !important;
|
||
background: var(--popover) !important;
|
||
background-image: none !important;
|
||
box-shadow: var(--shadow-lg) !important;
|
||
backdrop-filter: none !important;
|
||
}
|
||
|
||
/* Tooltip 必须使用同一套浮层背景/前景语义色。Ant Design 会让它继承
|
||
colorTextLightSolid(实心按钮文字色),深色主题下会形成深底深字。 */
|
||
:where(.ant-tooltip) {
|
||
--ant-tooltip-arrow-background-color: var(--popover) !important;
|
||
--ant-tooltip-overlay-color: var(--popover-foreground) !important;
|
||
}
|
||
|
||
:where(.ant-tooltip-container, .ant-tooltip-inner) {
|
||
background: var(--popover) !important;
|
||
color: var(--popover-foreground) !important;
|
||
}
|
||
|
||
:where(.ant-select-item-option, .ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title, .ant-cascader-menu-item, .ant-mentions-dropdown-menu-item) {
|
||
min-height: 36px;
|
||
margin-block: 2px;
|
||
padding-block: 7px !important;
|
||
border-radius: var(--r-sm) !important;
|
||
color: var(--popover-foreground) !important;
|
||
}
|
||
|
||
:where(.ant-select-item-option-active:not(.ant-select-item-option-disabled), .ant-dropdown-menu-item:hover, .ant-cascader-menu-item-active) {
|
||
background: color-mix(in srgb, var(--popover-foreground) 6%, var(--popover)) !important;
|
||
}
|
||
|
||
:where(.ant-select-item-option-selected:not(.ant-select-item-option-disabled), .ant-dropdown-menu-item-selected) {
|
||
background: color-mix(in srgb, var(--popover-foreground) 12%, var(--popover)) !important;
|
||
color: var(--popover-foreground) !important;
|
||
font-weight: 600;
|
||
}
|
||
|
||
:where(.ant-tag-success, .ant-tag-warning, .ant-tag-processing, .ant-tag-cyan, .ant-tag-blue, .ant-tag-green, .ant-tag-gold, .ant-tag-orange) {
|
||
border-color: color-mix(in srgb, var(--foreground) 18%, transparent) !important;
|
||
background: color-mix(in srgb, var(--foreground) 7%, transparent) !important;
|
||
color: color-mix(in srgb, var(--foreground) 76%, transparent) !important;
|
||
}
|
||
|
||
/* 图标 + 文字 Tag 对齐:AntD 6 的 icon 是 svg 直接子节点,需整体内联居中 */
|
||
.ant-tag:has(> svg) {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 5px;
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.ant-tag > svg {
|
||
display: inline-flex;
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.ant-tag > .ant-tag-content {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
min-width: 0;
|
||
}
|
||
|
||
|
||
/* 鼠标点击不留下“选中框”;键盘导航仍通过 :focus-visible 保留可发现的焦点提示。 */
|
||
:where(button:not(:disabled), a[href], [role="button"]:not([aria-disabled="true"]), label[for], input[type="checkbox"]:not(:disabled), input[type="radio"]:not(:disabled), .ant-btn:not(:disabled), .ant-switch:not(.ant-switch-disabled), .ant-select:not(.ant-select-disabled), .ant-dropdown-trigger, .ant-tabs-tab, .ant-segmented-item, .ant-pagination-item, .ant-pagination-prev, .ant-pagination-next, .ant-dropdown-menu-item, .ant-menu-item, .ant-select-item-option, .ant-checkbox-wrapper, .ant-radio-wrapper, .ant-upload, .ant-collapse-header, .ant-slider, .ant-rate-star, .ant-tag-checkable) {
|
||
cursor: pointer;
|
||
}
|
||
|
||
:where(button:disabled, [role="button"][aria-disabled="true"], .ant-btn:disabled, .ant-switch-disabled, .ant-select-disabled, .ant-tabs-tab-disabled, .ant-segmented-item-disabled, .ant-pagination-disabled, .ant-dropdown-menu-item-disabled, .ant-menu-item-disabled, .ant-select-item-option-disabled, .ant-checkbox-wrapper-disabled, .ant-radio-wrapper-disabled, .ant-upload-disabled, .ant-collapse-header[aria-disabled="true"]) {
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
:where(button, [role="button"], a, .ant-btn):focus:not(:focus-visible) {
|
||
outline: none !important;
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
/* Modal 关闭后会把焦点还给触发按钮;收窄该按钮的键盘焦点环,避免出现持续的粗灰边。 */
|
||
.canvas-topbar-import-button:focus-visible {
|
||
outline: 1px solid color-mix(in srgb, var(--foreground) 55%, transparent) !important;
|
||
outline-offset: 1px !important;
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
:where([class*="card"], [class*="Card"]):focus:not(:focus-visible),
|
||
:where([class*="card"], [class*="Card"]):has(:focus:not(:focus-visible)) {
|
||
outline: none !important;
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
|
||
/* 显式兜底:Tailwind 生成的 hover 背景在部分层叠顺序下未生效,这里保持语义 token 一致。 */
|
||
.hover\:bg-surface-hover:hover {
|
||
background-color: var(--surface-hover);
|
||
}
|
||
|
||
/* 空态把视觉锚点放在输入框上方,保留足够留白让首个动作自然下沉。 */
|
||
.creation-empty-workspace {
|
||
justify-content: flex-start;
|
||
padding-top: clamp(28px, 7vh, 84px);
|
||
padding-bottom: clamp(28px, 6vh, 72px);
|
||
}
|
||
|
||
.creation-empty-art {
|
||
position: relative;
|
||
width: min(440px, 78vw);
|
||
height: 172px;
|
||
margin: 0 auto 18px;
|
||
isolation: isolate;
|
||
}
|
||
|
||
.creation-empty-art-frame {
|
||
position: absolute;
|
||
overflow: hidden;
|
||
border: 1px solid color-mix(in srgb, var(--creation-text) 12%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: var(--creation-surface);
|
||
box-shadow: var(--shadow-lg);
|
||
}
|
||
|
||
.creation-empty-art-frame img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(.96); }
|
||
.creation-empty-art-frame.is-back { top: 15px; left: 3%; width: 29%; height: 122px; transform: rotate(-8deg); opacity: .42; }
|
||
.creation-empty-art-frame.is-main { z-index: 2; top: 0; left: 25%; width: 50%; height: 156px; transform: rotate(1deg); }
|
||
.creation-empty-art-frame.is-front { top: 22px; right: 3%; width: 29%; height: 122px; transform: rotate(7deg); opacity: .48; }
|
||
.creation-empty-art-frame.is-main::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 38%, color-mix(in srgb, #111 44%, transparent)); content: ""; }
|
||
.creation-empty-art-frame span { position: absolute; z-index: 1; right: 13px; bottom: 12px; color: #fff; font-size: var(--fs-micro); letter-spacing: .08em; text-shadow: 0 1px 8px rgba(0, 0, 0, .45); }
|
||
.creation-empty-art-caption { position: absolute; right: 25%; bottom: -3px; display: flex; align-items: center; gap: 8px; color: var(--creation-faint); font-size: var(--fs-micro); letter-spacing: .12em; }
|
||
.creation-empty-art-caption span:first-child { color: var(--creation-text); font-variant-numeric: tabular-nums; }
|
||
.creation-empty-workspace .creation-chat-intro { margin-bottom: 24px; }
|
||
|
||
/* 素材选择器是创作页、自由画布和项目画布的唯一视觉入口。 */
|
||
.workspace-modal {
|
||
width: min(var(--modal-width-standard), calc(100vw - var(--space-6))) !important;
|
||
max-width: calc(100vw - var(--space-6)) !important;
|
||
}
|
||
.workspace-modal.workspace-modal-compact { width: min(var(--modal-width-compact), calc(100vw - var(--space-6))) !important; }
|
||
.workspace-modal.workspace-modal-wide { width: min(var(--modal-width-wide), calc(100vw - var(--space-6))) !important; }
|
||
:is(.workspace-modal, .library-modal) .ant-modal-container {
|
||
overflow: hidden;
|
||
border: 0 !important;
|
||
border-radius: var(--modal-radius) !important;
|
||
background: var(--popover) !important;
|
||
box-shadow: var(--elevation-overlay) !important;
|
||
}
|
||
.canvas-shortcuts-modal .ant-modal-close {
|
||
top: 16px;
|
||
right: 16px;
|
||
color: color-mix(in srgb, var(--foreground) 48%, transparent);
|
||
}
|
||
.canvas-shortcuts-modal .ant-modal-close:hover {
|
||
background: var(--surface-hover);
|
||
color: var(--foreground);
|
||
}
|
||
.canvas-shortcuts-shell {
|
||
display: flex;
|
||
height: min(680px, 78dvh);
|
||
min-height: 500px;
|
||
flex-direction: column;
|
||
color: var(--foreground);
|
||
overscroll-behavior: contain;
|
||
}
|
||
.canvas-shortcuts-header {
|
||
display: grid;
|
||
flex-shrink: 0;
|
||
grid-template-columns: minmax(220px, 1fr) minmax(260px, 360px);
|
||
align-items: center;
|
||
gap: var(--space-6);
|
||
border-bottom: 1px solid var(--border);
|
||
padding: 18px 56px 18px 20px;
|
||
}
|
||
.canvas-shortcuts-heading {
|
||
display: flex;
|
||
min-width: 0;
|
||
align-items: center;
|
||
gap: 12px;
|
||
}
|
||
.canvas-shortcuts-heading-icon {
|
||
display: grid;
|
||
width: 38px;
|
||
height: 38px;
|
||
flex-shrink: 0;
|
||
place-items: center;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 76%, transparent);
|
||
}
|
||
.canvas-shortcuts-heading-icon svg {
|
||
width: 18px;
|
||
height: 18px;
|
||
stroke-width: 1.7;
|
||
}
|
||
.canvas-shortcuts-heading > span:last-child {
|
||
display: flex;
|
||
min-width: 0;
|
||
flex-direction: column;
|
||
gap: 3px;
|
||
}
|
||
.canvas-shortcuts-heading strong {
|
||
font-size: var(--fs-body);
|
||
font-weight: 680;
|
||
line-height: 1.2;
|
||
}
|
||
.canvas-shortcuts-heading small {
|
||
overflow: hidden;
|
||
color: color-mix(in srgb, var(--foreground) 45%, transparent);
|
||
font-size: var(--fs-micro);
|
||
line-height: 1.35;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
.canvas-shortcuts-search {
|
||
display: flex;
|
||
height: 38px;
|
||
min-width: 0;
|
||
align-items: center;
|
||
gap: 9px;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
||
border-radius: var(--r-sm);
|
||
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||
padding: 0 10px;
|
||
transition: border-color var(--motion-state) ease, background-color var(--motion-state) ease, box-shadow var(--motion-state) ease;
|
||
}
|
||
.canvas-shortcuts-search:focus-within {
|
||
border-color: color-mix(in srgb, var(--ring) 48%, transparent);
|
||
background: color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
box-shadow: none;
|
||
}
|
||
.canvas-shortcuts-search > svg {
|
||
width: 15px;
|
||
height: 15px;
|
||
flex-shrink: 0;
|
||
color: color-mix(in srgb, var(--foreground) 40%, transparent);
|
||
stroke-width: 1.8;
|
||
}
|
||
.canvas-shortcuts-search input {
|
||
width: 100%;
|
||
min-width: 0;
|
||
border: 0;
|
||
outline: 0;
|
||
background: transparent;
|
||
color: var(--foreground);
|
||
font-size: var(--fs-label);
|
||
}
|
||
.canvas-shortcuts-search input::placeholder {
|
||
color: color-mix(in srgb, var(--foreground) 36%, transparent);
|
||
}
|
||
.canvas-shortcuts-search button {
|
||
flex-shrink: 0;
|
||
border: 0;
|
||
border-radius: var(--r-xs);
|
||
background: transparent;
|
||
padding: 3px 5px;
|
||
color: color-mix(in srgb, var(--foreground) 48%, transparent);
|
||
font-size: var(--fs-micro);
|
||
cursor: pointer;
|
||
}
|
||
.canvas-shortcuts-search button:hover {
|
||
background: var(--surface-hover);
|
||
color: var(--foreground);
|
||
}
|
||
.canvas-shortcuts-search button:focus-visible,
|
||
.canvas-shortcuts-categories button:focus-visible {
|
||
outline: 2px solid var(--control-focus-ring);
|
||
outline-offset: -2px;
|
||
}
|
||
.canvas-shortcuts-close-hint kbd {
|
||
display: inline-flex;
|
||
min-width: 28px;
|
||
height: 22px;
|
||
flex-shrink: 0;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 12%, transparent);
|
||
border-radius: var(--r-xs);
|
||
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||
padding: 0 6px;
|
||
color: color-mix(in srgb, var(--foreground) 48%, transparent);
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 600;
|
||
}
|
||
.canvas-shortcuts-body {
|
||
display: grid;
|
||
min-height: 0;
|
||
flex: 1;
|
||
grid-template-columns: 174px minmax(0, 1fr);
|
||
}
|
||
.canvas-shortcuts-categories {
|
||
display: flex;
|
||
min-height: 0;
|
||
flex-direction: column;
|
||
gap: 3px;
|
||
border-right: 1px solid var(--border);
|
||
padding: 14px 10px;
|
||
}
|
||
.canvas-shortcuts-categories button {
|
||
display: flex;
|
||
width: 100%;
|
||
min-height: 36px;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 10px;
|
||
border: 0;
|
||
border-radius: var(--r-sm);
|
||
background: transparent;
|
||
padding: 0 10px;
|
||
color: color-mix(in srgb, var(--foreground) 58%, transparent);
|
||
font-size: var(--fs-label);
|
||
text-align: left;
|
||
cursor: pointer;
|
||
transition: background-color var(--motion-state) ease, color var(--motion-state) ease;
|
||
}
|
||
.canvas-shortcuts-categories button:hover {
|
||
background: var(--surface-hover);
|
||
color: var(--foreground);
|
||
}
|
||
.canvas-shortcuts-categories button.is-active {
|
||
background: var(--control-selected-bg);
|
||
color: var(--control-selected-fg);
|
||
font-weight: 620;
|
||
}
|
||
.canvas-shortcuts-categories button small {
|
||
color: color-mix(in srgb, currentColor 52%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
.canvas-shortcuts-results {
|
||
min-width: 0;
|
||
overflow-y: auto;
|
||
padding: 8px 18px 18px;
|
||
scrollbar-gutter: stable;
|
||
}
|
||
.canvas-shortcuts-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
.canvas-shortcuts-row {
|
||
display: grid;
|
||
min-height: 66px;
|
||
grid-template-columns: minmax(180px, 1fr) minmax(220px, auto);
|
||
align-items: center;
|
||
gap: var(--space-5);
|
||
border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
|
||
padding: 11px 8px;
|
||
}
|
||
.canvas-shortcuts-row:last-child {
|
||
border-bottom: 0;
|
||
}
|
||
.canvas-shortcuts-row:hover {
|
||
border-radius: var(--r-sm);
|
||
background: color-mix(in srgb, var(--foreground) 3.5%, transparent);
|
||
}
|
||
.canvas-shortcuts-row-copy {
|
||
min-width: 0;
|
||
}
|
||
.canvas-shortcuts-row-title {
|
||
display: flex;
|
||
min-width: 0;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
.canvas-shortcuts-row-title strong {
|
||
overflow: hidden;
|
||
font-size: var(--fs-label);
|
||
font-weight: 640;
|
||
line-height: 1.35;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
.canvas-shortcuts-row-title small {
|
||
flex-shrink: 0;
|
||
border-radius: 999px;
|
||
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||
padding: 2px 6px;
|
||
color: color-mix(in srgb, var(--foreground) 44%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
line-height: 1.3;
|
||
}
|
||
.canvas-shortcuts-row-copy p {
|
||
margin: 4px 0 0;
|
||
overflow: hidden;
|
||
color: color-mix(in srgb, var(--foreground) 43%, transparent);
|
||
font-size: var(--fs-micro);
|
||
line-height: 1.4;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
.canvas-shortcuts-keys {
|
||
display: flex;
|
||
min-width: 0;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
gap: 6px;
|
||
}
|
||
.canvas-shortcuts-combination,
|
||
.canvas-shortcuts-key-part {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 4px;
|
||
}
|
||
.canvas-shortcuts-combination em,
|
||
.canvas-shortcuts-key-part i {
|
||
color: color-mix(in srgb, var(--foreground) 28%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-style: normal;
|
||
}
|
||
.canvas-shortcuts-combination em {
|
||
margin: 0 2px;
|
||
}
|
||
.canvas-shortcuts-key-part kbd {
|
||
display: inline-flex;
|
||
min-width: 28px;
|
||
min-height: 26px;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 13%, transparent);
|
||
border-radius: 6px;
|
||
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||
box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
padding: 4px 7px;
|
||
color: color-mix(in srgb, var(--foreground) 72%, transparent);
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 600;
|
||
line-height: 1.2;
|
||
white-space: nowrap;
|
||
}
|
||
.canvas-shortcuts-empty {
|
||
display: grid;
|
||
min-height: 300px;
|
||
place-items: center;
|
||
align-content: center;
|
||
gap: 8px;
|
||
text-align: center;
|
||
}
|
||
.canvas-shortcuts-empty svg {
|
||
width: 26px;
|
||
height: 26px;
|
||
margin-bottom: 3px;
|
||
color: color-mix(in srgb, var(--foreground) 28%, transparent);
|
||
stroke-width: 1.5;
|
||
}
|
||
.canvas-shortcuts-empty strong {
|
||
font-size: var(--fs-label);
|
||
font-weight: 620;
|
||
}
|
||
.canvas-shortcuts-empty span {
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
font-size: var(--fs-micro);
|
||
}
|
||
.canvas-shortcuts-footer {
|
||
display: flex;
|
||
min-height: 44px;
|
||
flex-shrink: 0;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: var(--space-4);
|
||
border-top: 1px solid var(--border);
|
||
padding: 8px 18px;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
font-size: var(--fs-micro);
|
||
}
|
||
.canvas-shortcuts-close-hint {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
}
|
||
@media (max-width: 680px) {
|
||
.canvas-shortcuts-shell {
|
||
height: min(720px, 88dvh);
|
||
min-height: 440px;
|
||
}
|
||
.canvas-shortcuts-header {
|
||
grid-template-columns: 1fr;
|
||
gap: 12px;
|
||
padding: 16px 48px 14px 14px;
|
||
}
|
||
.canvas-shortcuts-body {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
.canvas-shortcuts-categories {
|
||
flex-shrink: 0;
|
||
flex-direction: row;
|
||
overflow-x: auto;
|
||
border-right: 0;
|
||
border-bottom: 1px solid var(--border);
|
||
padding: 8px 10px;
|
||
}
|
||
.canvas-shortcuts-categories button {
|
||
width: auto;
|
||
min-width: max-content;
|
||
gap: 7px;
|
||
padding: 0 10px;
|
||
}
|
||
.canvas-shortcuts-results {
|
||
padding: 6px 10px 14px;
|
||
}
|
||
.canvas-shortcuts-row {
|
||
min-height: 0;
|
||
grid-template-columns: 1fr;
|
||
gap: 9px;
|
||
padding: 12px 6px;
|
||
}
|
||
.canvas-shortcuts-row-copy p {
|
||
white-space: normal;
|
||
}
|
||
.canvas-shortcuts-keys {
|
||
justify-content: flex-start;
|
||
}
|
||
}
|
||
.asset-library-picker-modal { margin: 0 auto !important; }
|
||
.asset-library-picker-modal .ant-modal-container { padding: 0 !important; }
|
||
.asset-library-picker-modal .ant-modal-body { padding: 0 !important; }
|
||
.asset-library-picker-modal .ant-modal-close { top: 12px; right: 12px; }
|
||
.asset-picker-shell { display: flex; height: min(640px, calc(100vh - var(--space-12))); min-height: 460px; flex-direction: column; color: var(--foreground); overscroll-behavior: contain; }
|
||
.asset-picker-toolbar { display: grid; min-height: 64px; flex-shrink: 0; grid-template-columns: minmax(132px, 1fr) minmax(240px, 360px) minmax(132px, 1fr); align-items: center; gap: 16px; padding: 10px 52px 10px 18px; }
|
||
.asset-picker-heading { display: flex; min-width: 0; align-items: center; gap: 10px; overflow: hidden; }
|
||
.asset-picker-heading-copy { display: flex; min-width: 0; flex-shrink: 0; align-items: center; gap: 10px; }
|
||
.asset-picker-heading-copy > span { color: var(--foreground); font-size: var(--fs-label); font-weight: 650; line-height: 1.2; }
|
||
.asset-picker-title-trigger { display: inline-flex; min-height: 32px; align-items: center; gap: 6px; border: 0; border-radius: var(--r-sm); background: transparent; padding: 0 6px; color: var(--foreground); cursor: pointer; transition: background-color var(--motion-state) ease, color var(--motion-state) ease; }
|
||
.asset-picker-title-trigger strong { color: color-mix(in srgb, var(--foreground) 40%, transparent); font-size: var(--fs-label); font-weight: 560; line-height: 1.2; }
|
||
.asset-picker-title-trigger:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); }
|
||
.asset-picker-title-trigger:hover strong { color: var(--foreground); }
|
||
.asset-picker-title-trigger:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: -2px; }
|
||
.asset-picker-title-trigger svg { width: 14px; height: 14px; color: color-mix(in srgb, var(--foreground) 48%, transparent); }
|
||
.asset-picker-source-dropdown .ant-dropdown-menu { width: 148px !important; min-width: 0 !important; padding: 3px !important; }
|
||
.asset-picker-source-dropdown .ant-dropdown-menu-item { min-height: 30px; padding: 4px 8px !important; border-radius: var(--r-sm) !important; font-size: var(--fs-micro); line-height: 20px; }
|
||
.asset-picker-source-dropdown .ant-dropdown-menu-item-icon { width: 15px; height: 15px; margin-inline-end: 6px !important; }
|
||
.asset-picker-source-menu-label { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
|
||
.asset-picker-source-menu-label em { color: color-mix(in srgb, currentColor 58%, transparent); font-size: var(--fs-micro); font-style: normal; }
|
||
.asset-picker-search { display: flex; height: 38px; min-width: 0; align-items: center; gap: 9px; border-radius: var(--r-sm); background: color-mix(in srgb, var(--foreground) 6%, transparent); padding: 0 12px; transition: background-color var(--motion-state) ease, box-shadow var(--motion-state) ease; }
|
||
.asset-picker-search:focus-within { background: color-mix(in srgb, var(--foreground) 8%, transparent); box-shadow: none; }
|
||
.asset-picker-search svg { width: 16px; height: 16px; flex-shrink: 0; color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.asset-picker-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--foreground); font-size: var(--fs-label); }
|
||
.asset-picker-count { justify-self: end; color: color-mix(in srgb, var(--foreground) 42%, transparent); font-size: var(--fs-micro); }
|
||
.asset-picker-body { display: grid; min-height: 0; flex: 1; grid-template-columns: 176px minmax(0, 1fr); gap: var(--space-4); padding: 0 18px; }
|
||
.asset-picker-categories { overflow-y: auto; padding: 10px 0; }
|
||
.asset-picker-nav-label { display: block; padding: 10px 10px 4px; color: color-mix(in srgb, var(--foreground) 38%, transparent); font-size: var(--fs-micro); font-weight: 650; letter-spacing: .04em; }
|
||
.asset-picker-categories .assets-filter-item { width: 100%; height: 32px; }
|
||
.asset-picker-categories .assets-filter-item:hover { background: color-mix(in srgb, var(--foreground) 6%, transparent); color: var(--foreground); }
|
||
.asset-picker-categories .assets-filter-item.is-active { background: var(--control-selected-bg); color: var(--control-selected-fg); font-weight: 560; }
|
||
.asset-picker-categories .assets-filter-item.is-active:hover { background: var(--control-selected-hover-bg); color: var(--control-selected-fg); }
|
||
.asset-picker-grid-wrap { min-width: 0; overflow-y: auto; padding: 8px 0 16px; }
|
||
.asset-picker-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); align-content: start; }
|
||
.asset-picker-card { min-width: 0; overflow: hidden; }
|
||
.asset-picker-card-action { display: block; width: 100%; border: 0; background: transparent; padding: 0; color: inherit; cursor: pointer; text-align: left; }
|
||
.asset-picker-card-action:disabled { cursor: not-allowed; }
|
||
.asset-library-picker-modal .asset-picker-card > .asset-picker-card-action { padding-inline: 0; }
|
||
.asset-picker-card:hover { background: var(--library-surface-hover); }
|
||
.asset-picker-card:active { transform: translateY(var(--library-active-offset)) scale(.995); }
|
||
.asset-picker-card-action:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: -2px; }
|
||
.asset-picker-card.is-selected { box-shadow: inset 0 0 0 1px var(--library-selected-stroke); }
|
||
.asset-picker-card.is-disabled { opacity: .46; }
|
||
.asset-picker-card-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--library-cover-surface); }
|
||
.cached-resource-image-shell { display: grid; width: 100%; height: 100%; place-items: center; }
|
||
.asset-picker-card-media > img, .asset-picker-card-media > video, .asset-picker-card-media > .cached-resource-image-shell > img { display: block; width: 100%; height: 100%; object-fit: cover; }
|
||
.asset-picker-card-media > img.is-contain, .asset-picker-card-media > .cached-resource-image-shell > img.is-contain { object-fit: contain; padding: 4px; }
|
||
.asset-picker-card-check { position: absolute; right: 8px; bottom: 8px; z-index: 3; display: grid; width: 22px; height: 22px; place-items: center; border: 1.5px solid rgba(255, 255, 255, .72); border-radius: 7px; background: rgba(10, 10, 10, .42); color: transparent; opacity: 0; backdrop-filter: blur(6px); transition: opacity 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out; }
|
||
.asset-picker-card-check svg { width: 13px; height: 13px; }
|
||
.asset-picker-card:hover .asset-picker-card-check, .asset-picker-card:focus-within .asset-picker-card-check, .asset-picker-card.is-selected .asset-picker-card-check { opacity: 1; }
|
||
.asset-picker-card.is-selected .asset-picker-card-check { border-color: var(--control-check-bg); background: var(--control-check-bg); color: var(--control-check-fg); }
|
||
|
||
.asset-picker-card-lock { position: absolute; right: 38px; bottom: 8px; max-width: 112px; color: rgba(255, 255, 255, .82); font-size: var(--fs-micro); text-align: right; }
|
||
.asset-picker-card-copy { display: flex; min-height: 64px; min-width: 0; flex-direction: column; justify-content: center; gap: 4px; padding: 10px 10px 12px; }
|
||
.asset-picker-card-copy strong, .asset-picker-card-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||
.asset-picker-card-copy strong { font-size: var(--fs-body); font-weight: 620; }
|
||
.asset-picker-card-copy span { color: color-mix(in srgb, var(--foreground) 42%, transparent); font-size: var(--fs-micro); }
|
||
.asset-picker-card-fallback, .asset-picker-empty { display: grid; place-items: center; color: color-mix(in srgb, var(--foreground) 36%, transparent); }
|
||
.asset-picker-card-fallback { height: 100%; }
|
||
.asset-picker-card-fallback svg { width: 27px; height: 27px; }
|
||
.asset-picker-empty { grid-column: 1 / -1; min-height: 260px; align-content: center; gap: 8px; text-align: center; }
|
||
.asset-picker-empty svg { width: 30px; height: 30px; color: color-mix(in srgb, var(--foreground) 48%, transparent); }
|
||
.asset-picker-empty strong { color: color-mix(in srgb, var(--foreground) 70%, transparent); font-size: var(--fs-label); }
|
||
.asset-picker-empty span { font-size: var(--fs-micro); }
|
||
.asset-picker-footer { display: flex; flex-shrink: 0; align-items: center; gap: 16px; padding: 12px 16px 14px; }
|
||
.asset-picker-footer.is-compact { min-height: 64px; justify-content: space-between; }
|
||
.asset-picker-upload { display: flex; min-height: 56px; flex: 1; align-items: center; gap: 12px; border: 0; border-radius: var(--r-md); background: color-mix(in srgb, var(--foreground) 5%, transparent); padding: 0 16px; color: var(--foreground); text-align: left; transition: background-color var(--motion-state) ease; }
|
||
.asset-picker-upload:hover:not(:disabled) { background: var(--library-surface-hover); }
|
||
.asset-picker-upload:disabled { cursor: wait; opacity: .72; }
|
||
.asset-picker-upload > svg { width: 20px; height: 20px; color: color-mix(in srgb, var(--foreground) 58%, transparent); }
|
||
.asset-picker-upload span { display: flex; flex-direction: column; gap: 3px; }
|
||
.asset-picker-upload strong { font-size: var(--fs-label); font-weight: 650; }
|
||
.asset-picker-upload small, .asset-picker-footer-note { color: color-mix(in srgb, var(--foreground) 46%, transparent); font-size: var(--fs-micro); }
|
||
.asset-picker-footer-error { max-width: 240px; color: var(--destructive); font-size: var(--fs-micro); line-height: 1.45; }
|
||
.asset-picker-actions { display: flex; flex-shrink: 0; align-items: center; gap: 8px; }
|
||
.asset-picker-categories button:focus-visible, .asset-picker-upload:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: -2px; }
|
||
.asset-picker-actions .ant-btn { box-shadow: none; }
|
||
.asset-picker-actions svg { width: 14px; height: 14px; }
|
||
|
||
@media (max-width: 680px) {
|
||
.creation-empty-workspace { width: calc(100% - 28px); padding-top: 28px; }
|
||
.creation-empty-art { width: min(390px, 90vw); height: 142px; }
|
||
.creation-empty-art-frame.is-main { height: 130px; }
|
||
.creation-empty-art-frame.is-back, .creation-empty-art-frame.is-front { height: 102px; }
|
||
.asset-picker-shell { min-height: 0; height: min(640px, calc(100vh - var(--space-8))); }
|
||
.asset-picker-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; padding: 10px 42px 10px 12px; }
|
||
.asset-picker-heading { gap: 6px; }
|
||
.asset-picker-heading-copy { gap: 6px; }
|
||
.asset-picker-title-trigger { padding-inline: 4px; }
|
||
.asset-picker-search { grid-column: 1 / -1; grid-row: 2; max-width: none; }
|
||
.asset-picker-count { grid-column: 2; grid-row: 1; }
|
||
.asset-picker-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
|
||
.asset-picker-categories { display: flex; gap: 6px; overflow-x: auto; padding: 8px; }
|
||
.asset-picker-nav-label { display: none; }
|
||
.asset-picker-categories button { width: auto; min-width: 96px; }
|
||
.asset-picker-grid-wrap { padding: 10px 4px; }
|
||
.asset-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
|
||
.asset-picker-footer { flex-direction: column; align-items: stretch; gap: 10px; padding: 10px 12px 12px; }
|
||
.asset-picker-footer.is-compact { min-height: 0; }
|
||
.asset-picker-actions { justify-content: flex-end; }
|
||
}
|
||
|
||
/* 轮播承担首屏视觉主角,工作区只保留很窄的安全边距。 */
|
||
.creation-empty-workspace { width: min(1320px, calc(100% - 24px)); padding-top: clamp(18px, 3vh, 40px); }
|
||
.creation-empty-art { width: min(1060px, calc(100% - 72px)); height: 300px; margin-bottom: 22px; }
|
||
.creation-empty-art-frame.is-back { top: 28px; left: 2%; width: 23%; height: 220px; }
|
||
.creation-empty-art-frame.is-main { top: 0; left: 19%; width: 62%; height: 270px; }
|
||
.creation-empty-art-frame.is-front { top: 34px; right: 2%; width: 23%; height: 220px; }
|
||
.creation-empty-art-frame img { animation: creation-empty-art-image-in 500ms var(--motion-ease-out) both; }
|
||
.creation-empty-art-caption { right: 19%; bottom: -4px; }
|
||
.creation-empty-workspace .creation-chat-intro { margin-top: 42px; }
|
||
.creation-empty-composer { width: min(1120px, calc(100% - 48px)); }
|
||
|
||
@keyframes creation-empty-art-image-in {
|
||
from { opacity: .35; transform: scale(1.035); }
|
||
to { opacity: 1; transform: scale(1); }
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.creation-empty-art-frame img { animation: none; }
|
||
}
|
||
|
||
@media (max-width: 680px) {
|
||
.creation-empty-workspace { width: calc(100% - 16px); padding-top: 18px; }
|
||
.creation-empty-art { width: calc(100% - 10px); height: 210px; margin-bottom: 20px; }
|
||
.creation-empty-art-frame.is-back { top: 18px; height: 150px; }
|
||
.creation-empty-art-frame.is-main { left: 14%; width: 72%; height: 190px; }
|
||
.creation-empty-art-frame.is-front { top: 23px; height: 150px; }
|
||
.creation-empty-art-caption { right: 14%; }
|
||
.creation-empty-workspace .creation-chat-intro { margin-top: 28px; }
|
||
.creation-empty-composer { width: 100%; }
|
||
}
|
||
|
||
/* 用户端浮层:更像创作工作室的工作面,不保留默认后台表单的硬边和密集分隔。 */
|
||
.library-modal .ant-modal-container {
|
||
padding: 0 !important;
|
||
}
|
||
.library-modal .ant-modal-content { border: 0 !important; background: transparent !important; box-shadow: none !important; }
|
||
.library-modal .ant-modal-header { border-bottom: 0; background: transparent; padding: 28px 32px 8px; }
|
||
.library-modal .ant-modal-title { color: var(--foreground); font-size: var(--fs-title); font-weight: 620; line-height: 1.25; }
|
||
.library-modal .ant-modal-body { padding: 12px 32px 26px; }
|
||
.library-modal .ant-modal-footer { border-top: 0; background: transparent; padding: 14px 32px 18px; }
|
||
.library-modal .ant-modal-close { top: 23px; right: 24px; width: 34px; height: 34px; border-radius: var(--r-full); color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.library-modal .ant-modal-close:hover { background: color-mix(in srgb, var(--foreground) 8%, transparent); color: var(--foreground); }
|
||
.library-modal .ant-form-item-label > label { color: color-mix(in srgb, var(--foreground) 68%, transparent); font-size: var(--fs-caption); font-weight: 560; }
|
||
.library-modal :where(.ant-input, .ant-input-affix-wrapper, .ant-select-selector, .ant-input-number, .ant-picker) { min-height: 42px; border-color: color-mix(in srgb, var(--foreground) 15%, transparent) !important; border-radius: var(--r-md) !important; background: color-mix(in srgb, var(--foreground) 3%, transparent) !important; box-shadow: none !important; }
|
||
.library-modal .ant-input-affix-wrapper .ant-input { min-height: 34px; background: transparent !important; }
|
||
.library-modal :where(.ant-input:hover, .ant-input-affix-wrapper:hover, .ant-select-selector:hover) { border-color: color-mix(in srgb, var(--foreground) 26%, transparent) !important; }
|
||
/* 聚焦态:--workspace-accent 暗色下是 #f5f5f5,直接描边会形成刺眼白圈,降到半透明。 */
|
||
.library-modal :where(.ant-input:focus, .ant-input-affix-wrapper-focused, .ant-select-focused .ant-select-selector) { border-color: var(--control-focus-ring) !important; box-shadow: none !important; }
|
||
.library-modal .ant-btn-primary { border-radius: var(--r-md); box-shadow: none; font-weight: 560; }
|
||
.library-modal .ant-btn-default { border-color: var(--btn-outline-border); border-radius: var(--r-md); background: transparent; }
|
||
|
||
/* 短剧创作:AI 创建入口面板与创建弹窗来源/画风选择 */
|
||
.app-story-create-panel {
|
||
position: relative;
|
||
overflow: hidden;
|
||
border: 1px solid var(--user-border);
|
||
border-radius: var(--user-radius-card);
|
||
background: var(--user-surface);
|
||
box-shadow: none;
|
||
}
|
||
|
||
.app-story-options {
|
||
border-top: 1px solid var(--user-border);
|
||
color: var(--user-ink-muted);
|
||
}
|
||
|
||
.app-story-options > summary {
|
||
padding: 16px;
|
||
cursor: pointer;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.app-story-options > summary:hover {
|
||
color: var(--user-ink);
|
||
background: var(--user-surface-hover);
|
||
}
|
||
|
||
.app-story-options > summary:focus-visible {
|
||
outline: 2px solid var(--user-accent);
|
||
outline-offset: -4px;
|
||
}
|
||
|
||
.app-story-create-head {
|
||
display: flex;
|
||
min-width: 0;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
padding: 16px;
|
||
}
|
||
|
||
.app-story-create-title {
|
||
display: flex;
|
||
min-width: 0;
|
||
align-items: center;
|
||
gap: 11px;
|
||
}
|
||
|
||
.app-story-create-mark {
|
||
display: grid;
|
||
width: 34px;
|
||
height: 34px;
|
||
flex: 0 0 auto;
|
||
place-items: center;
|
||
border-radius: var(--r-md);
|
||
background: var(--workspace-accent-soft);
|
||
color: var(--workspace-accent);
|
||
}
|
||
|
||
.app-story-create-title h2 {
|
||
margin: 0;
|
||
font-size: var(--fs-body-lg);
|
||
font-weight: 620;
|
||
}
|
||
|
||
.app-story-create-title p {
|
||
margin: 3px 0 0;
|
||
color: color-mix(in srgb, var(--foreground) 46%, transparent);
|
||
font-size: var(--fs-caption);
|
||
}
|
||
|
||
.app-story-create-actions {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
|
||
.app-story-create-shortcut {
|
||
display: inline-flex;
|
||
height: 34px;
|
||
align-items: center;
|
||
gap: 7px;
|
||
border: 1px solid var(--btn-outline-border);
|
||
border-radius: var(--r-md);
|
||
background: transparent;
|
||
padding: 0 12px;
|
||
color: color-mix(in srgb, var(--foreground) 72%, transparent);
|
||
font-size: var(--fs-caption);
|
||
font-weight: 520;
|
||
transition: background-color 180ms ease-out, color 180ms ease-out, border-color 180ms ease-out;
|
||
}
|
||
|
||
.app-story-create-shortcut:hover {
|
||
border-color: var(--btn-outline-hover-border);
|
||
background: var(--btn-outline-hover-bg);
|
||
color: var(--foreground);
|
||
}
|
||
|
||
.app-story-create-actions .ant-btn-default {
|
||
border: 1px solid var(--btn-outline-border);
|
||
background: transparent;
|
||
box-shadow: none;
|
||
}
|
||
|
||
.app-story-create-main {
|
||
display: flex;
|
||
min-width: 0;
|
||
align-items: flex-start;
|
||
gap: 10px;
|
||
padding: 12px 16px 14px;
|
||
}
|
||
|
||
.app-story-create-input {
|
||
min-width: 0;
|
||
flex: 1;
|
||
}
|
||
|
||
.app-story-create-input,
|
||
.app-story-create-input textarea {
|
||
resize: none !important;
|
||
border-color: transparent !important;
|
||
background: transparent !important;
|
||
box-shadow: none !important;
|
||
padding: 2px 0 !important;
|
||
font-size: var(--fs-body) !important;
|
||
color: var(--foreground) !important;
|
||
}
|
||
|
||
.app-story-create-input:focus,
|
||
.app-story-create-input textarea:focus {
|
||
border-color: transparent !important;
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
.app-story-create-input::placeholder,
|
||
.app-story-create-input textarea::placeholder {
|
||
color: color-mix(in srgb, var(--foreground) 38%, transparent) !important;
|
||
}
|
||
|
||
.app-story-create-style-chip {
|
||
display: inline-flex;
|
||
height: 34px;
|
||
flex: 0 0 auto;
|
||
align-items: center;
|
||
gap: 8px;
|
||
max-width: 220px;
|
||
border: 0;
|
||
border-radius: var(--r-full);
|
||
background: color-mix(in srgb, var(--foreground) 4%, transparent);
|
||
padding: 0 11px 0 4px;
|
||
color: color-mix(in srgb, var(--foreground) 72%, transparent);
|
||
font-size: var(--fs-caption);
|
||
transition: background-color 180ms ease-out, color 180ms ease-out;
|
||
}
|
||
|
||
.app-story-create-style-chip:hover {
|
||
background: color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
color: var(--foreground);
|
||
}
|
||
|
||
.app-story-create-style-chip img {
|
||
width: 26px;
|
||
height: 26px;
|
||
flex: 0 0 auto;
|
||
border-radius: var(--r-full);
|
||
object-fit: cover;
|
||
}
|
||
|
||
.app-story-create-style-chip span {
|
||
min-width: 0;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.app-story-create-controls {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
gap: 10px 14px;
|
||
padding: 0 16px 16px;
|
||
}
|
||
|
||
.app-story-create-controls label {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
}
|
||
|
||
.app-story-create-controls .ant-select {
|
||
min-width: 96px;
|
||
}
|
||
|
||
.app-story-create-controls .ant-select-selector {
|
||
border: 0 !important;
|
||
border-radius: var(--r-md) !important;
|
||
background: color-mix(in srgb, var(--foreground) 3%, transparent) !important;
|
||
box-shadow: none !important;
|
||
color: var(--foreground) !important;
|
||
}
|
||
|
||
.app-story-generating-meta {
|
||
display: inline-flex;
|
||
margin-top: 6px;
|
||
border-radius: var(--r-xs);
|
||
background: color-mix(in srgb, var(--workspace-accent) 9%, transparent);
|
||
padding: 3px 7px;
|
||
color: var(--workspace-accent);
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 520;
|
||
}
|
||
|
||
.app-story-source {
|
||
display: flex;
|
||
min-width: 0;
|
||
min-height: 58px;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 6px;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 12%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--foreground) 3%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 52%, transparent);
|
||
font-size: var(--fs-caption);
|
||
transition: border-color 180ms ease-out, background-color 180ms ease-out, color 180ms ease-out;
|
||
}
|
||
|
||
.app-story-source:hover {
|
||
border-color: color-mix(in srgb, var(--foreground) 24%, transparent);
|
||
color: var(--foreground);
|
||
}
|
||
|
||
.app-story-source.is-active {
|
||
border-color: var(--control-selected-border);
|
||
background: var(--control-selected-bg);
|
||
color: var(--control-selected-fg);
|
||
font-weight: 560;
|
||
}
|
||
|
||
.app-story-modal-style {
|
||
display: flex;
|
||
width: 100%;
|
||
min-height: 42px;
|
||
align-items: center;
|
||
gap: 10px;
|
||
border: 1px dashed color-mix(in srgb, var(--foreground) 18%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--foreground) 2%, transparent);
|
||
padding: 5px 10px;
|
||
color: color-mix(in srgb, var(--foreground) 52%, transparent);
|
||
font-size: var(--fs-caption);
|
||
text-align: left;
|
||
transition: border-color 180ms ease-out, color 180ms ease-out;
|
||
}
|
||
|
||
.app-story-modal-style:hover {
|
||
border-color: color-mix(in srgb, var(--workspace-accent) 46%, transparent);
|
||
color: var(--foreground);
|
||
}
|
||
|
||
.app-story-modal-style img {
|
||
width: 32px;
|
||
height: 32px;
|
||
flex: 0 0 auto;
|
||
border-radius: var(--r-sm);
|
||
object-fit: cover;
|
||
}
|
||
|
||
.app-story-modal-style span {
|
||
min-width: 0;
|
||
flex: 1;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.app-story-modal-style em {
|
||
flex: 0 0 auto;
|
||
color: color-mix(in srgb, var(--workspace-accent) 70%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-style: normal;
|
||
}
|
||
|
||
.app-story-generating {
|
||
display: flex;
|
||
min-height: 120px;
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
gap: 14px;
|
||
}
|
||
|
||
.app-story-generating-head {
|
||
display: flex;
|
||
width: 100%;
|
||
align-items: center;
|
||
gap: 10px;
|
||
}
|
||
|
||
.app-story-generating-model {
|
||
margin-left: auto;
|
||
flex: 0 0 auto;
|
||
max-width: 220px;
|
||
overflow: hidden;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 12%, transparent);
|
||
border-radius: var(--r-full);
|
||
background: color-mix(in srgb, var(--foreground) 4%, transparent);
|
||
padding: 4px 10px;
|
||
color: color-mix(in srgb, var(--foreground) 58%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.app-story-generating-mark {
|
||
display: grid;
|
||
width: 34px;
|
||
height: 34px;
|
||
flex: 0 0 auto;
|
||
place-items: center;
|
||
border-radius: var(--r-md);
|
||
background: var(--workspace-accent-soft);
|
||
color: var(--workspace-accent);
|
||
}
|
||
|
||
.app-story-generating-progress {
|
||
position: relative;
|
||
width: 100%;
|
||
height: 3px;
|
||
overflow: hidden;
|
||
border-radius: var(--r-full);
|
||
background: color-mix(in srgb, var(--foreground) 8%, transparent);
|
||
}
|
||
|
||
.app-story-generating-progress::after {
|
||
content: "";
|
||
position: absolute;
|
||
inset: 0 auto 0 0;
|
||
width: 38%;
|
||
border-radius: inherit;
|
||
background: linear-gradient(90deg, color-mix(in srgb, var(--workspace-accent) 55%, transparent), var(--workspace-accent));
|
||
animation: story-generating-slide 1.4s var(--motion-ease-out) infinite;
|
||
}
|
||
|
||
.app-story-generating-grid {
|
||
display: grid;
|
||
width: 100%;
|
||
grid-template-columns: minmax(0, 1fr) minmax(200px, 0.72fr);
|
||
gap: 12px;
|
||
}
|
||
|
||
.app-story-generating-story,
|
||
.app-story-generating-steps,
|
||
.app-story-generating-preview {
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--foreground) 2%, transparent);
|
||
}
|
||
|
||
.app-story-generating-story {
|
||
min-width: 0;
|
||
padding: 10px 12px;
|
||
}
|
||
|
||
.app-story-generating-caption {
|
||
display: block;
|
||
color: color-mix(in srgb, var(--foreground) 38%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 560;
|
||
}
|
||
|
||
.app-story-generating-story p {
|
||
margin-top: 5px;
|
||
color: color-mix(in srgb, var(--foreground) 72%, transparent);
|
||
font-size: var(--fs-caption);
|
||
line-height: 1.6;
|
||
font-weight: 450;
|
||
}
|
||
|
||
.app-story-generating-style {
|
||
display: inline-flex;
|
||
max-width: 100%;
|
||
align-items: center;
|
||
gap: 6px;
|
||
margin-top: 7px;
|
||
overflow: hidden;
|
||
color: color-mix(in srgb, var(--foreground) 48%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
}
|
||
|
||
.app-story-generating-style img {
|
||
width: 20px;
|
||
height: 20px;
|
||
flex: 0 0 auto;
|
||
border-radius: var(--r-full);
|
||
object-fit: cover;
|
||
}
|
||
|
||
.app-story-generating-style span {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.app-story-generating-steps {
|
||
min-width: 0;
|
||
margin: 0;
|
||
padding: 8px 10px;
|
||
list-style: none;
|
||
}
|
||
|
||
.app-story-generating-steps li {
|
||
display: flex;
|
||
min-height: 30px;
|
||
align-items: center;
|
||
gap: 8px;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
font-size: var(--fs-caption);
|
||
}
|
||
|
||
.app-story-generating-steps li em {
|
||
margin-left: auto;
|
||
color: color-mix(in srgb, var(--foreground) 28%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-style: normal;
|
||
}
|
||
|
||
.app-story-generating-steps li.is-done { color: color-mix(in srgb, var(--foreground) 62%, transparent); }
|
||
.app-story-generating-steps li.is-done em { color: var(--palette-status-success, var(--green, #22c55e)); }
|
||
.app-story-generating-steps li.is-active { color: var(--foreground); font-weight: 560; }
|
||
.app-story-generating-steps li.is-active em { color: var(--workspace-accent); }
|
||
|
||
.app-story-generating-step-dot {
|
||
width: 8px;
|
||
height: 8px;
|
||
flex: 0 0 auto;
|
||
border-radius: var(--r-full);
|
||
background: color-mix(in srgb, var(--foreground) 18%, transparent);
|
||
}
|
||
|
||
.app-story-generating-steps li.is-done .app-story-generating-step-dot { background: var(--palette-status-success, #22c55e); }
|
||
.app-story-generating-steps li.is-active .app-story-generating-step-dot { background: var(--workspace-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--workspace-accent) 14%, transparent); }
|
||
|
||
.app-story-generating-preview {
|
||
width: 100%;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.app-story-generating-preview-head {
|
||
display: flex;
|
||
height: 34px;
|
||
align-items: center;
|
||
gap: 7px;
|
||
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
padding: 0 12px;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 560;
|
||
}
|
||
|
||
.app-story-generating-preview-head em {
|
||
margin-left: auto;
|
||
color: color-mix(in srgb, var(--foreground) 28%, transparent);
|
||
font-size: var(--fs-tiny);
|
||
font-style: normal;
|
||
font-weight: 450;
|
||
}
|
||
|
||
.app-story-generating-live {
|
||
width: 7px;
|
||
height: 7px;
|
||
border-radius: var(--r-full);
|
||
background: var(--workspace-accent);
|
||
animation: story-generating-pulse 1.2s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes story-generating-pulse {
|
||
0%, 100% { opacity: 0.35; }
|
||
50% { opacity: 1; }
|
||
}
|
||
|
||
.app-story-generating-preview pre {
|
||
max-height: 240px;
|
||
min-height: 96px;
|
||
border: 0;
|
||
border-radius: 0;
|
||
background: transparent;
|
||
}
|
||
|
||
@keyframes story-generating-slide {
|
||
0% { transform: translateX(-110%); }
|
||
100% { transform: translateX(320%); }
|
||
}
|
||
|
||
.app-story-generating p {
|
||
margin: 0;
|
||
color: var(--foreground);
|
||
font-size: var(--fs-caption);
|
||
font-weight: 560;
|
||
}
|
||
|
||
.app-story-generating pre {
|
||
max-height: 220px;
|
||
min-height: 72px;
|
||
width: 100%;
|
||
overflow: auto;
|
||
margin: 0;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
||
border-radius: var(--r-md);
|
||
background:
|
||
linear-gradient(180deg, color-mix(in srgb, var(--foreground) 3%, transparent), color-mix(in srgb, var(--foreground) 1.5%, transparent));
|
||
padding: 10px 12px;
|
||
color: color-mix(in srgb, var(--foreground) 56%, transparent);
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||
font-size: 11px;
|
||
line-height: 1.6;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.app-story-generating-actions {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
width: 100%;
|
||
}
|
||
|
||
@media (max-width: 640px) {
|
||
.app-story-generating-grid {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 640px) {
|
||
.app-story-create-head {
|
||
flex-direction: column;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.app-story-create-actions {
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.app-story-create-main {
|
||
flex-direction: column;
|
||
}
|
||
|
||
.app-story-create-style-chip {
|
||
max-width: 100%;
|
||
}
|
||
}
|
||
.library-confirm-modal .ant-modal-body { padding-top: 4px; padding-bottom: 12px; }
|
||
|
||
.skill-install-modal .ant-modal-container { border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); background: var(--popover); }
|
||
.skill-install-modal .ant-modal-header { margin-bottom: 8px; background: transparent; }
|
||
.skill-install-modal .ant-modal-title { font-size: var(--fs-heading-lg); font-weight: 620; }
|
||
.skill-install-modal .ant-upload-wrapper .ant-upload-drag { border-color: color-mix(in srgb, var(--foreground) 14%, transparent); border-radius: var(--r-lg); background: color-mix(in srgb, var(--foreground) 2.5%, transparent); }
|
||
.skill-install-modal .ant-upload-wrapper .ant-upload-drag:hover { border-color: color-mix(in srgb, var(--foreground) 28%, transparent); }
|
||
.skill-install-modal .skill-install-form { margin-top: 16px; }
|
||
|
||
.skill-package-modal .ant-modal-container { border: 1px solid color-mix(in srgb, var(--foreground) 11%, transparent); border-radius: var(--r-xl); background: var(--popover); box-shadow: var(--elevation-panel); }
|
||
.skill-package-modal .ant-modal-close { top: 17px; inset-inline-end: 18px; z-index: 3; border-radius: var(--r-full); color: color-mix(in srgb, var(--foreground) 45%, transparent); }
|
||
.skill-package-modal .ant-modal-close:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); color: var(--foreground); }
|
||
.skill-package-shell { display: flex; height: 100%; min-height: 0; flex-direction: column; }
|
||
.skill-package-header { display: flex; flex: 0 0 auto; align-items: center; gap: 24px; min-height: 112px; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); padding: 18px 68px 18px 24px; }
|
||
.skill-package-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
|
||
.skill-package-workspace { display: grid; min-height: 0; flex: 1 1 auto; grid-template-columns: minmax(220px, 26%) minmax(0, 1fr); }
|
||
.skill-package-sidebar { display: flex; min-width: 0; min-height: 0; flex-direction: column; gap: 10px; border-right: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); background: color-mix(in srgb, var(--foreground) 2%, transparent); padding: 14px 12px 10px; }
|
||
.skill-package-sidebar-summary, .skill-package-sidebar-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: color-mix(in srgb, var(--foreground) 44%, transparent); font-size: var(--fs-label); font-variant-numeric: tabular-nums; }
|
||
.skill-package-sidebar-summary span:first-child { display: inline-flex; align-items: center; gap: 6px; color: color-mix(in srgb, var(--foreground) 62%, transparent); }
|
||
.skill-package-sidebar-footer { flex: 0 0 auto; border-top: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent); padding: 9px 2px 0; }
|
||
.skill-package-tree { min-height: 0; flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; padding: 3px 0 8px; }
|
||
.skill-package-tree .ant-tree { background: transparent; color: color-mix(in srgb, var(--foreground) 70%, transparent); font-size: var(--fs-label); }
|
||
.skill-package-tree .ant-tree-treenode { display: flex; width: 100%; min-width: 0; min-height: 30px; align-items: center; padding-block: 0; }
|
||
.skill-package-tree .ant-tree-indent-unit { width: 14px; }
|
||
.skill-package-tree .ant-tree-switcher { display: grid; width: 20px; height: 30px; flex: 0 0 20px; place-items: center; color: color-mix(in srgb, var(--foreground) 38%, transparent); }
|
||
.skill-package-tree .ant-tree-switcher:hover { color: color-mix(in srgb, var(--foreground) 72%, transparent); }
|
||
.skill-package-tree-chevron { transition: transform var(--motion-state) ease-out; }
|
||
.skill-package-tree-chevron.is-expanded { transform: rotate(90deg); }
|
||
.skill-package-tree .ant-tree-node-content-wrapper { display: flex; height: 30px; min-width: 0; flex: 1 1 auto; align-items: center; border-radius: var(--r-sm); padding: 0 7px 0 2px; line-height: 30px; }
|
||
.skill-package-tree .ant-tree-node-content-wrapper:hover { background: color-mix(in srgb, var(--foreground) 6%, transparent); }
|
||
.skill-package-tree .ant-tree-node-content-wrapper.ant-tree-node-selected { background: color-mix(in srgb, var(--foreground) 9%, transparent) !important; color: var(--foreground); }
|
||
.skill-package-tree .ant-tree-node-content-wrapper:focus-visible { outline: 2px solid var(--ring); outline-offset: -1px; }
|
||
.skill-package-tree .ant-tree-iconEle { display: grid !important; width: 20px !important; height: 30px !important; flex: 0 0 20px; place-items: center; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
|
||
.skill-package-tree .ant-tree-title { display: block; min-width: 0; flex: 1 1 auto; line-height: normal; }
|
||
.skill-package-folder-title { display: block; overflow: hidden; color: color-mix(in srgb, var(--foreground) 76%, transparent); font-weight: 540; text-overflow: ellipsis; white-space: nowrap; }
|
||
.skill-package-tree-title { display: flex; min-width: 0; height: 30px; align-items: center; justify-content: space-between; gap: 8px; }
|
||
.skill-package-tree-title > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||
.skill-package-tree-title > span:last-child { flex: 0 0 auto; color: color-mix(in srgb, var(--foreground) 30%, transparent); font-size: var(--fs-micro); font-variant-numeric: tabular-nums; }
|
||
.skill-package-preview { display: flex; min-width: 0; min-height: 0; flex-direction: column; background: var(--background); }
|
||
.skill-package-preview-toolbar { display: flex; min-height: 48px; flex: 0 0 auto; align-items: center; gap: 10px; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent); padding: 8px 14px 8px 18px; }
|
||
.skill-package-raw-link { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: var(--r-sm); color: color-mix(in srgb, var(--foreground) 48%, transparent); }
|
||
.skill-package-raw-link:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); color: var(--foreground); }
|
||
.skill-package-raw-link:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
|
||
.skill-package-preview-body { min-height: 0; flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; padding: clamp(18px, 2.4vw, 36px); }
|
||
.skill-package-empty { display: flex; min-height: 220px; align-items: center; justify-content: center; flex-direction: column; color: color-mix(in srgb, var(--foreground) 42%, transparent); font-size: var(--fs-caption); text-align: center; }
|
||
.skill-package-source { min-height: 100%; margin: 0; color: color-mix(in srgb, var(--foreground) 78%, transparent); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.75; tab-size: 4; white-space: pre-wrap; overflow-wrap: anywhere; }
|
||
.skill-package-media-stage { display: grid; min-height: 100%; place-items: center; }
|
||
.skill-package-media-stage :where(img, video) { max-width: 100%; max-height: calc(82vh - 220px); border-radius: var(--r-md); object-fit: contain; }
|
||
.skill-package-media-stage audio { width: min(560px, 100%); }
|
||
.skill-package-markdown { max-width: 920px; margin: 0 auto; color: color-mix(in srgb, var(--foreground) 76%, transparent); font-size: 14px; line-height: 1.75; }
|
||
.skill-package-markdown :where(h1, h2, h3, h4) { color: var(--foreground); font-weight: 650; line-height: 1.35; text-wrap: balance; }
|
||
.skill-package-markdown h1 { margin: 0 0 22px; font-size: 28px; }
|
||
.skill-package-markdown h2 { margin: 30px 0 12px; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); padding-bottom: 7px; font-size: 20px; }
|
||
.skill-package-markdown h3 { margin: 24px 0 8px; font-size: 16px; }
|
||
.skill-package-markdown h4 { margin: 20px 0 6px; font-size: 14px; }
|
||
.skill-package-markdown p { margin: 10px 0; text-wrap: pretty; }
|
||
.skill-package-markdown :where(ul, ol) { margin: 10px 0; padding-left: 24px; }
|
||
.skill-package-markdown li { margin: 4px 0; }
|
||
.skill-package-markdown a { color: var(--foreground); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--foreground) 30%, transparent); text-underline-offset: 3px; }
|
||
.skill-package-markdown a:hover { text-decoration-color: currentColor; }
|
||
.skill-package-markdown blockquote { margin: 14px 0; border-left: 3px solid color-mix(in srgb, var(--foreground) 22%, transparent); padding: 2px 0 2px 14px; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
|
||
.skill-package-markdown :not(pre) > code { border-radius: var(--r-xs); background: color-mix(in srgb, var(--foreground) 7%, transparent); padding: 2px 5px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: .9em; }
|
||
.skill-package-markdown pre { overflow: auto; border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); border-radius: var(--r-md); background: color-mix(in srgb, var(--foreground) 3%, transparent); padding: 14px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.65; }
|
||
.skill-package-markdown img { display: block; max-width: 100%; height: auto; margin: 18px auto; border-radius: var(--r-md); }
|
||
.skill-package-inline-file { display: inline-flex; align-items: center; gap: 7px; border: 1px solid color-mix(in srgb, var(--foreground) 12%, transparent); border-radius: var(--r-md); background: color-mix(in srgb, var(--foreground) 3%, transparent); padding: 8px 10px; color: var(--foreground); font-size: var(--fs-caption); }
|
||
.skill-package-inline-file:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); }
|
||
.skill-package-inline-file:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
|
||
.skill-package-inline-missing { color: color-mix(in srgb, var(--foreground) 42%, transparent); font-size: var(--fs-caption); }
|
||
.skill-package-table-wrap { overflow-x: auto; margin: 16px 0; }
|
||
.skill-package-table-wrap table { width: 100%; border-collapse: collapse; font-size: var(--fs-caption); }
|
||
.skill-package-table-wrap :where(th, td) { border: 1px solid color-mix(in srgb, var(--foreground) 11%, transparent); padding: 8px 10px; text-align: left; }
|
||
.skill-package-table-wrap th { background: color-mix(in srgb, var(--foreground) 4%, transparent); color: var(--foreground); font-weight: 620; }
|
||
|
||
@media (max-width: 860px) {
|
||
.skill-package-modal { width: 96vw !important; max-width: 96vw; }
|
||
.skill-package-modal .ant-modal-container { height: 90vh !important; }
|
||
.skill-package-header { min-height: 0; align-items: flex-start; flex-direction: column; gap: 12px; padding: 18px 54px 16px 18px; }
|
||
.skill-package-actions { justify-content: flex-start; }
|
||
.skill-package-workspace { grid-template-columns: minmax(180px, 34%) minmax(0, 1fr); }
|
||
}
|
||
|
||
@media (max-width: 640px) {
|
||
.skill-package-workspace { display: flex; flex-direction: column; }
|
||
.skill-package-sidebar { min-height: 190px; max-height: 34%; border-right: 0; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); }
|
||
.skill-package-sidebar-footer { display: none; }
|
||
.skill-package-preview-body { padding: 18px; }
|
||
.skill-package-actions .ant-btn > span:not(.ant-btn-icon) { display: none; }
|
||
}
|
||
|
||
.library-drawer .ant-drawer-content { overflow: hidden; border: 0 !important; background: var(--popover); box-shadow: var(--elevation-panel) !important; }
|
||
.library-drawer .ant-drawer-header { min-height: 70px; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent); background: transparent; padding: 22px 28px 15px; }
|
||
.library-drawer .ant-drawer-title { color: var(--foreground); font-size: var(--fs-heading-lg); font-weight: 620; }
|
||
.library-drawer .ant-drawer-close { width: 34px; height: 34px; margin-inline-end: 6px; border-radius: var(--r-full); color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.library-drawer .ant-drawer-close:hover { background: color-mix(in srgb, var(--foreground) 8%, transparent); color: var(--foreground); }
|
||
.library-drawer .ant-drawer-body { padding: 22px 28px 30px; }
|
||
.library-drawer .ant-drawer-extra .ant-btn:not(.ant-btn-primary):not(.ant-btn-dangerous) { border: 1px solid var(--btn-outline-border); border-radius: var(--r-md); background: transparent; color: var(--foreground); font-weight: 560; box-shadow: none; }
|
||
.library-drawer .ant-drawer-extra .ant-btn:not(.ant-btn-primary):not(.ant-btn-dangerous):not(:disabled):hover { border-color: var(--btn-outline-hover-border); background: var(--btn-outline-hover-bg); color: var(--foreground); }
|
||
.library-drawer .ant-form-item-label > label { color: color-mix(in srgb, var(--foreground) 68%, transparent); font-size: var(--fs-caption); font-weight: 560; }
|
||
.library-drawer :where(.ant-input, .ant-input-affix-wrapper, .ant-select-selector) { border-color: color-mix(in srgb, var(--foreground) 15%, transparent) !important; border-radius: var(--r-md) !important; background: color-mix(in srgb, var(--foreground) 3%, transparent) !important; box-shadow: none !important; }
|
||
.library-drawer :where(.ant-input:hover, .ant-input-affix-wrapper:hover, .ant-select-selector:hover) { border-color: color-mix(in srgb, var(--foreground) 26%, transparent) !important; }
|
||
.library-drawer :where(.ant-input:focus, .ant-input-affix-wrapper-focused, .ant-select-focused .ant-select-selector) { border-color: color-mix(in srgb, var(--workspace-accent) 46%, transparent) !important; box-shadow: none !important; }
|
||
.library-drawer .border-border\/70 { border-color: color-mix(in srgb, var(--foreground) 10%, transparent); }
|
||
.library-drawer .asset-drawer-content { border-color: color-mix(in srgb, var(--foreground) 10%, transparent) !important; background: color-mix(in srgb, var(--foreground) 3%, transparent); }
|
||
|
||
@media (max-width: 680px) {
|
||
.library-modal .ant-modal-header { padding: 22px 20px 8px; }
|
||
.library-modal .ant-modal-body { padding: 10px 20px 20px; }
|
||
.library-modal .ant-modal-footer { padding-inline: 20px; }
|
||
.library-drawer .ant-drawer-header { padding: 18px 18px 13px; }
|
||
.library-drawer .ant-drawer-body { padding: 18px; }
|
||
}
|
||
|
||
/* ===== 工作台首页 · 创作仪表盘(欢迎区 + 统计卡 + 活跃度/素材图表 + 最近项目表格) ===== */
|
||
.app-home-dashboard {
|
||
--home-panel-radius: var(--r-lg);
|
||
--home-panel-surface: var(--workspace-surface-strong);
|
||
--home-panel-border: var(--workspace-border);
|
||
--home-title-fs: var(--fs-title);
|
||
--home-section-fs: var(--fs-heading-lg);
|
||
}
|
||
|
||
.app-home-dashboard h1,
|
||
.app-home-dashboard h2,
|
||
.app-home-dashboard h3 {
|
||
letter-spacing: 0;
|
||
text-wrap: balance;
|
||
}
|
||
|
||
.app-home-dashboard h1 { font-size: var(--home-title-fs); }
|
||
.app-home-dashboard h2 { font-size: var(--home-section-fs); }
|
||
.app-home-dashboard h3 { font-size: var(--fs-heading); }
|
||
|
||
/* 面板外壳:卡片、图表、表格共用 */
|
||
.home-panel {
|
||
border-radius: var(--home-panel-radius);
|
||
border: 1px solid var(--home-panel-border);
|
||
background: var(--home-panel-surface);
|
||
box-shadow: var(--elevation-card);
|
||
}
|
||
|
||
.home-panel-head {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 10px 16px;
|
||
padding: 16px 18px 4px;
|
||
}
|
||
|
||
.app-home-dashboard .home-panel-title { font-size: var(--fs-heading-lg); font-weight: 620; }
|
||
.home-panel-sub { margin-top: 3px; font-size: var(--fs-tiny); color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.home-panel-body { padding: 8px 12px 14px; }
|
||
.home-panel-foot {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 10px;
|
||
padding: 12px 18px 14px;
|
||
border-top: 1px solid var(--home-panel-border);
|
||
}
|
||
|
||
/* 欢迎区 */
|
||
.home-welcome {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: flex-end;
|
||
justify-content: space-between;
|
||
gap: 18px 24px;
|
||
padding: 6px 0 22px;
|
||
}
|
||
|
||
.home-welcome-kicker {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
font-size: var(--fs-label);
|
||
font-weight: 600;
|
||
letter-spacing: 0.02em;
|
||
color: color-mix(in srgb, var(--foreground) 46%, transparent);
|
||
}
|
||
|
||
.app-home-dashboard .home-welcome-title {
|
||
margin-top: 10px;
|
||
font-size: clamp(24px, 2.4vw, 30px);
|
||
font-weight: 650;
|
||
line-height: 1.2;
|
||
letter-spacing: -0.015em;
|
||
}
|
||
|
||
.home-welcome-sub {
|
||
margin-top: 8px;
|
||
max-width: 620px;
|
||
font-size: var(--fs-body);
|
||
line-height: 1.7;
|
||
color: color-mix(in srgb, var(--foreground) 55%, transparent);
|
||
}
|
||
|
||
.home-welcome-actions {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
gap: 10px;
|
||
}
|
||
|
||
/* 统计卡 */
|
||
.home-stats-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||
gap: 12px;
|
||
}
|
||
|
||
.home-stat-card {
|
||
display: flex;
|
||
min-width: 0;
|
||
flex-direction: column;
|
||
gap: 14px;
|
||
border-radius: var(--home-panel-radius);
|
||
border: 1px solid var(--home-panel-border);
|
||
background: var(--home-panel-surface);
|
||
box-shadow: var(--elevation-card);
|
||
padding: 16px 18px 15px;
|
||
transition: border-color 200ms ease-out, box-shadow 200ms ease-out, transform 200ms ease-out;
|
||
}
|
||
|
||
.home-stat-card:hover {
|
||
border-color: color-mix(in srgb, var(--foreground) 18%, transparent);
|
||
box-shadow: var(--elevation-card-hover);
|
||
transform: translateY(-2px);
|
||
}
|
||
|
||
.home-stat-top {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 8px;
|
||
}
|
||
|
||
.home-stat-icon {
|
||
display: grid;
|
||
width: 34px;
|
||
height: 34px;
|
||
place-items: center;
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--workspace-accent) 7%, transparent);
|
||
color: var(--workspace-accent);
|
||
}
|
||
|
||
.home-stat-value {
|
||
font-size: 26px;
|
||
font-weight: 650;
|
||
line-height: 1;
|
||
letter-spacing: -0.02em;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
|
||
.home-stat-label { margin-top: 8px; font-size: var(--fs-label); font-weight: 520; color: color-mix(in srgb, var(--foreground) 62%, transparent); }
|
||
.home-stat-hint {
|
||
margin-top: 3px;
|
||
overflow: hidden;
|
||
font-size: var(--fs-tiny);
|
||
line-height: 1.5;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
/* 图表区 */
|
||
.home-charts-grid {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 1fr);
|
||
gap: 12px;
|
||
}
|
||
|
||
@media (min-width: 1024px) {
|
||
.home-charts-grid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.9fr); }
|
||
}
|
||
|
||
.home-chart-empty {
|
||
display: grid;
|
||
min-height: 220px;
|
||
place-items: center;
|
||
padding: 20px;
|
||
text-align: center;
|
||
font-size: var(--fs-label);
|
||
line-height: 1.6;
|
||
color: color-mix(in srgb, var(--foreground) 42%, transparent);
|
||
}
|
||
|
||
.home-donut-center {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
pointer-events: none;
|
||
text-align: center;
|
||
}
|
||
|
||
.home-donut-center strong {
|
||
display: block;
|
||
font-size: 22px;
|
||
font-weight: 650;
|
||
line-height: 1;
|
||
letter-spacing: -0.02em;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
|
||
.home-donut-center span { margin-top: 4px; font-size: var(--fs-tiny); color: color-mix(in srgb, var(--foreground) 45%, transparent); }
|
||
|
||
.home-donut-legend {
|
||
display: flex;
|
||
min-width: 0;
|
||
flex: 1 1 auto;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
gap: 9px;
|
||
padding: 0 6px;
|
||
}
|
||
|
||
.home-donut-legend li {
|
||
display: grid;
|
||
grid-template-columns: 8px minmax(0, 1fr) auto;
|
||
gap: 8px;
|
||
align-items: center;
|
||
font-size: var(--fs-label);
|
||
}
|
||
|
||
.home-donut-legend i { width: 8px; height: 8px; border-radius: 999px; }
|
||
.home-donut-legend em { font-style: normal; color: color-mix(in srgb, var(--foreground) 45%, transparent); font-variant-numeric: tabular-nums; }
|
||
|
||
/* 最近项目表格 */
|
||
.home-lower-grid {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 1fr);
|
||
gap: 12px;
|
||
}
|
||
|
||
@media (min-width: 1024px) {
|
||
.home-lower-grid { grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.85fr); }
|
||
}
|
||
|
||
.home-side-stack {
|
||
display: grid;
|
||
align-content: start;
|
||
gap: 12px;
|
||
}
|
||
|
||
.home-recent-toolbar {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
gap: 8px;
|
||
padding: 12px 18px 10px;
|
||
border-bottom: 1px solid var(--home-panel-border);
|
||
}
|
||
|
||
.home-recent-search { max-width: 260px; }
|
||
.home-recent-scroll { overflow-x: auto; }
|
||
.home-recent-table { min-width: 680px; }
|
||
|
||
.home-recent-col-head,
|
||
.home-recent-row {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 1fr) 96px 150px 104px 20px;
|
||
gap: 12px;
|
||
align-items: center;
|
||
padding: 8px 18px;
|
||
}
|
||
|
||
.home-recent-col-head {
|
||
border-bottom: 1px solid var(--home-panel-border);
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 540;
|
||
color: color-mix(in srgb, var(--foreground) 45%, transparent);
|
||
}
|
||
|
||
.home-recent-row {
|
||
padding-block: 11px;
|
||
transition: background-color 150ms ease-out;
|
||
}
|
||
|
||
.home-recent-row + .home-recent-row { border-top: 1px solid color-mix(in srgb, var(--foreground) 6%, transparent); }
|
||
.home-recent-row:hover { background: color-mix(in srgb, var(--workspace-accent) 4%, transparent); }
|
||
|
||
.home-stage-pill {
|
||
display: inline-flex;
|
||
max-width: 100%;
|
||
align-items: center;
|
||
overflow: hidden;
|
||
border-radius: 999px;
|
||
padding: 3px 8px;
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 520;
|
||
font-style: normal;
|
||
color: color-mix(in srgb, var(--foreground) 55%, transparent);
|
||
background: color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.home-progress-track {
|
||
display: block;
|
||
height: 6px;
|
||
overflow: hidden;
|
||
border-radius: 999px;
|
||
background: color-mix(in srgb, var(--foreground) 10%, transparent);
|
||
}
|
||
|
||
.home-progress-fill {
|
||
display: block;
|
||
height: 100%;
|
||
border-radius: 999px;
|
||
background: var(--workspace-accent);
|
||
}
|
||
|
||
.home-recent-empty {
|
||
display: grid;
|
||
place-items: center;
|
||
gap: 10px;
|
||
padding: 40px 20px;
|
||
text-align: center;
|
||
}
|
||
|
||
/* 快捷创建与工作流 */
|
||
.home-quick-create { display: flex; flex-direction: column; padding-top: 4px; }
|
||
|
||
.home-quick-item {
|
||
display: grid;
|
||
grid-template-columns: 36px minmax(0, 1fr) 16px;
|
||
gap: 12px;
|
||
align-items: center;
|
||
border-radius: var(--r-md);
|
||
padding: 10px;
|
||
text-align: left;
|
||
transition: background-color 150ms ease-out;
|
||
}
|
||
|
||
.home-quick-item:hover { background: color-mix(in srgb, var(--workspace-accent) 5%, transparent); }
|
||
|
||
.home-quick-icon {
|
||
display: grid;
|
||
width: 36px;
|
||
height: 36px;
|
||
place-items: center;
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--workspace-accent) 7%, transparent);
|
||
color: var(--workspace-accent);
|
||
}
|
||
|
||
.home-quick-title { font-size: var(--fs-body); font-weight: 560; }
|
||
.home-quick-desc { margin-top: 2px; font-size: var(--fs-tiny); color: color-mix(in srgb, var(--foreground) 44%, transparent); }
|
||
|
||
.home-workflow { display: flex; flex-direction: column; padding-top: 2px; }
|
||
|
||
.home-workflow-step {
|
||
display: grid;
|
||
grid-template-columns: 24px minmax(0, 1fr);
|
||
gap: 10px;
|
||
border-radius: var(--r-md);
|
||
padding: 8px 10px;
|
||
transition: background-color 150ms ease-out;
|
||
}
|
||
|
||
.home-workflow-step:hover { background: color-mix(in srgb, var(--workspace-accent) 5%, transparent); }
|
||
|
||
.home-workflow-num {
|
||
display: grid;
|
||
width: 24px;
|
||
height: 24px;
|
||
place-items: center;
|
||
border-radius: 7px;
|
||
background: color-mix(in srgb, var(--workspace-accent) 8%, transparent);
|
||
color: var(--workspace-accent);
|
||
font-size: var(--fs-tiny);
|
||
font-weight: 650;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
|
||
.home-workflow-title { font-size: var(--fs-body); font-weight: 560; }
|
||
.home-workflow-desc { margin-top: 1px; font-size: var(--fs-tiny); color: color-mix(in srgb, var(--foreground) 44%, transparent); }
|
||
|
||
.home-workflow-hint {
|
||
margin-top: 10px;
|
||
padding: 10px 10px 2px;
|
||
border-top: 1px dashed var(--home-panel-border);
|
||
font-size: var(--fs-tiny);
|
||
color: color-mix(in srgb, var(--foreground) 45%, transparent);
|
||
}
|
||
|
||
|
||
/* 空态:banner + 对话区(控态时展示,发送后切换分镜台) */
|
||
.creation-home .creation-empty-workspace {
|
||
flex: 1 1 auto;
|
||
min-height: 0;
|
||
overflow-y: auto;
|
||
overscroll-behavior: contain;
|
||
}
|
||
|
||
.creation-empty-workspace .creation-chat-intro p { color: var(--creation-muted); }
|
||
.creation-empty-workspace .creation-empty-composer {
|
||
width: min(820px, calc(100% - 28px));
|
||
margin: 0 auto;
|
||
}
|
||
|
||
@media (max-width: 800px) {
|
||
.creation-home .creation-empty-workspace { padding-top: 24px; }
|
||
.creation-empty-workspace .creation-empty-composer { width: 100%; }
|
||
}
|
||
|
||
|
||
.creation-home .creation-empty-suggest {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 14px;
|
||
width: min(820px, calc(100% - 28px));
|
||
margin: 24px auto 0;
|
||
}
|
||
|
||
|
||
.creation-home .creation-empty-suggest .suggest-card {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
gap: 11px;
|
||
min-height: 72px;
|
||
padding: 14px 16px;
|
||
border: 1px solid var(--creation-border);
|
||
border-radius: var(--r-lg);
|
||
background: var(--creation-surface);
|
||
color: inherit;
|
||
text-align: left;
|
||
cursor: pointer;
|
||
box-shadow: var(--elevation-card);
|
||
transition: background var(--motion-state) var(--motion-ease-out), border-color var(--motion-state) var(--motion-ease-out), box-shadow var(--motion-state) var(--motion-ease-out), transform var(--motion-state) var(--motion-ease-out);
|
||
}
|
||
|
||
.creation-home .creation-empty-suggest .suggest-card:hover {
|
||
border-color: var(--creation-border-strong);
|
||
transform: translateY(-2px);
|
||
background: var(--creation-surface-hover);
|
||
box-shadow: var(--elevation-card-hover);
|
||
}
|
||
|
||
.creation-home .creation-empty-suggest .suggest-card:focus-visible {
|
||
outline: 2px solid var(--creation-accent);
|
||
outline-offset: 2px;
|
||
}
|
||
|
||
.creation-home .creation-empty-suggest .suggest-icon {
|
||
width: 34px;
|
||
height: 34px;
|
||
border: 1px solid var(--creation-border);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--creation-surface-muted) 68%, transparent);
|
||
color: var(--creation-muted);
|
||
}
|
||
.creation-home .creation-empty-suggest .suggest-icon svg { width: 16px; height: 16px; stroke-width: 2; }
|
||
.creation-home .creation-empty-suggest .suggest-card:hover .suggest-icon,
|
||
.creation-home .creation-hero-prompt:hover .suggest-icon { border-color: var(--creation-border-strong); background: var(--creation-surface-hover); color: var(--creation-text); }
|
||
.dark .creation-home .creation-empty-suggest .suggest-icon { border-color: rgba(255, 255, 255, .07); background: rgba(38, 41, 48, .44); }
|
||
|
||
.creation-home .creation-empty-suggest .suggest-copy strong {
|
||
display: block;
|
||
color: var(--creation-text);
|
||
font-size: var(--fs-body);
|
||
font-weight: 600;
|
||
line-height: 1.45;
|
||
margin-bottom: 2px;
|
||
}
|
||
|
||
.creation-home .creation-empty-suggest .suggest-copy span {
|
||
display: block;
|
||
color: var(--creation-muted);
|
||
font-size: var(--fs-label);
|
||
line-height: 1.55;
|
||
}
|
||
|
||
/* 空态布局收敛:保持图片区、文案和输入区的文档流顺序,内容超高时由主区滚动承载。 */
|
||
.creation-home .creation-empty-workspace {
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.creation-home .creation-empty-workspace > .creation-empty-art,
|
||
.creation-home .creation-empty-workspace > .creation-chat-intro,
|
||
.creation-home .creation-empty-workspace > .creation-empty-composer,
|
||
.creation-home .creation-empty-workspace > .creation-empty-suggest {
|
||
flex: 0 0 auto;
|
||
}
|
||
.creation-empty-workspace > .creation-empty-art {
|
||
width: min(820px, calc(100% - 28px));
|
||
height: 200px;
|
||
margin: 0 auto 20px;
|
||
}
|
||
|
||
.creation-empty-workspace .creation-empty-art-frame.is-back { top: 18px; height: 146px; }
|
||
.creation-empty-workspace .creation-empty-art-frame.is-main { top: 0; height: 182px; }
|
||
.creation-empty-workspace .creation-empty-art-frame.is-front { top: 24px; height: 146px; }
|
||
|
||
.creation-empty-workspace .creation-chat-intro { margin: 0 auto 18px; }
|
||
|
||
.creation-empty-workspace > .creation-empty-suggest { margin: 26px auto 0; }
|
||
|
||
@media (max-width: 800px) {
|
||
.creation-empty-workspace > .creation-empty-art { height: 168px; margin-bottom: 16px; }
|
||
.creation-empty-workspace .creation-empty-art-frame.is-back { top: 14px; height: 122px; }
|
||
.creation-empty-workspace .creation-empty-art-frame.is-main { top: 0; height: 152px; }
|
||
.creation-empty-workspace .creation-empty-art-frame.is-front { top: 18px; height: 122px; }
|
||
.creation-empty-workspace .creation-chat-intro { margin-top: 0; margin-bottom: 14px; }
|
||
.creation-empty-workspace > .creation-empty-suggest { margin-top: 20px; }
|
||
}
|
||
|
||
/* ===== 素材库 · 重构(影策影视资产) =====
|
||
与画布库共用 studio-band 毛玻璃页头与 frame 外壳;类型化封面、accent 反白筛选、
|
||
批量操作条、banner+欢迎卡空态、资产档案抽屉。全局保持黑白单色。 */
|
||
.assets-library-page .assets-header-meta { gap: 6px; }
|
||
.assets-library-page .assets-header-meta::before {
|
||
width: 6px;
|
||
height: 6px;
|
||
border-radius: var(--r-full);
|
||
background: var(--workspace-accent);
|
||
box-shadow: 0 0 0 3px color-mix(in srgb, var(--workspace-accent) 16%, transparent);
|
||
content: "";
|
||
}
|
||
.assets-header-actions { display: flex; max-width: 100%; flex-direction: column; align-items: flex-end; gap: 8px; }
|
||
.assets-header-action-buttons { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
|
||
.assets-header-actions .assets-storage-usage { justify-content: flex-end; }
|
||
.assets-storage-usage {
|
||
display: flex;
|
||
width: min(100%, 380px);
|
||
min-height: 24px;
|
||
align-items: center;
|
||
gap: 8px;
|
||
color: color-mix(in srgb, var(--foreground) 48%, transparent);
|
||
}
|
||
.assets-storage-usage-icon {
|
||
display: inline-flex;
|
||
flex: none;
|
||
align-items: center;
|
||
color: color-mix(in srgb, var(--foreground) 44%, transparent);
|
||
}
|
||
.assets-storage-usage-icon svg { width: 14px; height: 14px; }
|
||
.assets-storage-usage-title { flex: none; color: color-mix(in srgb, var(--foreground) 62%, transparent); font-size: var(--fs-label); font-weight: 560; }
|
||
.assets-storage-usage-value { flex: none; color: color-mix(in srgb, var(--foreground) 76%, transparent); font-size: var(--fs-label); font-variant-numeric: tabular-nums; }
|
||
.assets-storage-usage-track {
|
||
display: block;
|
||
flex: 1 1 96px;
|
||
min-width: 48px;
|
||
max-width: 120px;
|
||
height: 4px;
|
||
overflow: hidden;
|
||
border-radius: var(--progress-bar-radius);
|
||
background: color-mix(in srgb, var(--foreground) 9%, transparent);
|
||
}
|
||
.assets-storage-usage-track > span { display: block; height: 100%; border-radius: inherit; background: var(--workspace-accent); transition: width var(--motion-state) var(--motion-ease-out); }
|
||
.assets-storage-usage.has-usage .assets-storage-usage-track > span { min-width: 2px; }
|
||
.assets-storage-usage.is-full .assets-storage-usage-track > span { background: var(--progress-bar-fill-error); }
|
||
.assets-storage-usage-percent { min-width: 38px; flex: none; font-size: var(--fs-tiny); font-variant-numeric: tabular-nums; text-align: right; }
|
||
.assets-storage-usage-status { min-width: 0; font-size: var(--fs-label); }
|
||
.assets-storage-usage-status button { margin-left: 6px; color: var(--foreground); text-decoration: underline; text-underline-offset: 2px; }
|
||
.assets-storage-usage-status button:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: 2px; }
|
||
@media (max-width: 639px) {
|
||
.assets-header-actions { width: 100%; align-items: stretch; }
|
||
.assets-header-action-buttons,
|
||
.assets-header-actions .assets-storage-usage { justify-content: flex-start; }
|
||
.assets-storage-usage { width: 100%; }
|
||
.assets-storage-usage-track { min-width: 32px; }
|
||
}
|
||
/* 筛选胶囊:激活态 accent 反白 + 计数徽章反白 */
|
||
.assets-filter-item {
|
||
display: flex;
|
||
height: 32px;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 10px;
|
||
width: auto;
|
||
flex: 0 0 auto;
|
||
padding: 0 10px;
|
||
border-radius: var(--r-md);
|
||
color: color-mix(in srgb, var(--foreground) 56%, transparent);
|
||
font-size: var(--fs-label);
|
||
transition: background-color 160ms ease-out, color 160ms ease-out;
|
||
}
|
||
.assets-filter-item:hover { background: color-mix(in srgb, var(--foreground) 6%, transparent); color: var(--foreground); }
|
||
.assets-filter-item:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: -2px; }
|
||
.assets-filter-item-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||
.assets-filter-count {
|
||
display: inline-grid;
|
||
min-width: 19px;
|
||
height: 18px;
|
||
place-items: center;
|
||
padding: 0 5px;
|
||
border-radius: var(--r-full);
|
||
background: color-mix(in srgb, var(--foreground) 6%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 45%, transparent);
|
||
font-size: var(--fs-micro);
|
||
font-variant-numeric: tabular-nums;
|
||
transition: background-color 160ms ease-out, color 160ms ease-out;
|
||
}
|
||
.assets-filter-item.is-active { background: var(--control-selected-bg); color: var(--control-selected-fg); font-weight: 560; }
|
||
.assets-filter-item.is-active:hover { background: var(--control-selected-hover-bg); color: var(--control-selected-fg); }
|
||
.assets-filter-item.is-active .assets-filter-count { background: color-mix(in srgb, var(--control-selected-fg) 18%, transparent); color: var(--control-selected-fg); }
|
||
.assets-folder-row { display: flex; min-width: 0; align-items: center; gap: 2px; }
|
||
.assets-folder-add, .assets-folder-more { display: grid; width: 26px; height: 26px; flex: 0 0 auto; place-items: center; border: 0; border-radius: var(--r-md); background: transparent; color: color-mix(in srgb, var(--foreground) 42%, transparent); cursor: pointer; }
|
||
.assets-folder-add:hover, .assets-folder-more:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); color: var(--foreground); }
|
||
@media (min-width: 1024px) {
|
||
.assets-filter-item { width: 100%; flex: none; }
|
||
}
|
||
|
||
/* 类型化封面:容器继承 4/3 比例,内部 button 撑满 */
|
||
.assets-cover { position: relative; overflow: hidden; }
|
||
.assets-cover-link { position: relative; display: block; width: 100%; height: 100%; padding: 0; cursor: pointer; text-align: left; }
|
||
.assets-cover-link:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }
|
||
.assets-cover-media { width: 100%; height: 100%; object-fit: contain; background: color-mix(in srgb, var(--foreground) 5%, transparent); }
|
||
.assets-cover-fallback { display: grid; width: 100%; height: 100%; place-items: center; background: color-mix(in srgb, var(--foreground) 4%, transparent); color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.assets-cover-vignette { display: none; }
|
||
.assets-cover-badges { position: absolute; top: 8px; left: 38px; right: 44px; z-index: 2; display: flex; align-items: center; gap: 5px; overflow: hidden; white-space: nowrap; pointer-events: none; }
|
||
.assets-cover-badge {
|
||
display: inline-flex;
|
||
flex-shrink: 0;
|
||
height: 20px;
|
||
align-items: center;
|
||
gap: 4px;
|
||
padding: 0 7px;
|
||
border-radius: 6px;
|
||
font-size: var(--fs-micro);
|
||
font-weight: 560;
|
||
letter-spacing: .02em;
|
||
line-height: 1;
|
||
backdrop-filter: blur(6px);
|
||
}
|
||
.assets-cover-badge svg { width: 11px; height: 11px; }
|
||
.assets-cover-badge.is-kind { background: rgba(10, 10, 10, .62); color: #fff; }
|
||
.assets-cover-badge.is-category { border: 1px solid rgba(255, 255, 255, .2); background: rgba(10, 10, 10, .5); color: rgba(255, 255, 255, .86); }
|
||
.assets-cover-clock {
|
||
position: absolute;
|
||
left: 8px;
|
||
bottom: 8px;
|
||
z-index: 2;
|
||
height: 20px;
|
||
padding: 0 7px;
|
||
border-radius: 6px;
|
||
background: rgba(10, 10, 10, .6);
|
||
color: #fff;
|
||
font-size: var(--fs-micro);
|
||
font-weight: 560;
|
||
line-height: 20px;
|
||
letter-spacing: .02em;
|
||
backdrop-filter: blur(6px);
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
.assets-cover-play { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; color: #fff; opacity: 0; transition: opacity 180ms ease-out; }
|
||
.assets-cover-play::before { position: absolute; width: 42px; height: 42px; border: 1.5px solid rgba(255, 255, 255, .78); border-radius: var(--r-full); background: rgba(10, 10, 10, .36); content: ""; backdrop-filter: blur(6px); }
|
||
.assets-cover-play svg { position: relative; width: 17px; height: 17px; margin-left: 2px; filter: drop-shadow(0 1px 4px rgba(0, 0, 0, .45)); }
|
||
.assets-cover-link:hover .assets-cover-play, .assets-cover-link:focus-visible .assets-cover-play { opacity: 1; }
|
||
|
||
/* 选择入口固定在左上角,徽章预留其空间;选中描边由 is-selected 提供。 */
|
||
.assets-select-check {
|
||
position: absolute;
|
||
left: 8px;
|
||
top: 8px;
|
||
z-index: 3;
|
||
width: 22px;
|
||
height: 22px;
|
||
margin: 0;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
border: 1.5px solid rgba(255, 255, 255, .72);
|
||
border-radius: 7px;
|
||
background: rgba(10, 10, 10, .42);
|
||
cursor: pointer;
|
||
backdrop-filter: blur(6px);
|
||
opacity: 0;
|
||
transition: opacity 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out, transform 180ms var(--motion-ease-out);
|
||
}
|
||
.assets-select-check::after {
|
||
position: absolute;
|
||
top: 2px;
|
||
left: 6px;
|
||
width: 6px;
|
||
height: 11px;
|
||
border: solid var(--control-check-fg);
|
||
border-width: 0 2px 2px 0;
|
||
content: "";
|
||
opacity: 0;
|
||
transform: rotate(45deg) scale(.6);
|
||
transition: opacity 120ms ease-out, transform 180ms var(--motion-ease-out);
|
||
}
|
||
.assets-select-check:checked { border-color: var(--control-check-bg); background: var(--control-check-bg); }
|
||
.assets-select-check:checked::after { opacity: 1; transform: rotate(45deg) scale(1); }
|
||
.assets-select-check:focus-visible { outline: 2px solid var(--control-focus-ring); outline-offset: 2px; }
|
||
.asset-library-card:hover .assets-select-check, .asset-library-card:focus-within .assets-select-check { opacity: 1; }
|
||
.assets-select-check:checked { opacity: 1; }
|
||
.assets-cover-more {
|
||
position: absolute;
|
||
top: 8px;
|
||
right: 8px;
|
||
z-index: 3;
|
||
display: grid;
|
||
width: 28px;
|
||
height: 28px;
|
||
place-items: center;
|
||
border: 1px solid rgba(255, 255, 255, .18);
|
||
border-radius: var(--r-md);
|
||
background: rgba(10, 10, 10, .5);
|
||
color: rgba(255, 255, 255, .85);
|
||
cursor: pointer;
|
||
backdrop-filter: blur(8px);
|
||
opacity: 0;
|
||
transition: opacity 180ms ease-out, background-color 180ms ease-out, transform 180ms var(--motion-ease-out);
|
||
}
|
||
.assets-cover-more:hover { background: rgba(10, 10, 10, .78); color: #fff; transform: scale(1.05); }
|
||
.assets-cover-more:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
|
||
.asset-library-card:hover .assets-cover-more, .asset-library-card:focus-within .assets-cover-more { opacity: 1; }
|
||
|
||
/* 音频:频谱条占位;文本:内容摘要底纹;模型:线框图标 */
|
||
.assets-cover-wave { position: relative; display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; gap: 3px; padding: 0 14%; background: color-mix(in srgb, var(--foreground) 4%, transparent); }
|
||
.assets-cover-wave > span { display: block; width: 3px; min-height: 5px; flex: 0 1 3px; border-radius: var(--r-full); background: color-mix(in srgb, var(--workspace-accent) 46%, transparent); }
|
||
.assets-cover-wave-glyph { position: absolute; top: 50%; right: 9%; width: 30px; height: 30px; transform: translateY(-50%); color: color-mix(in srgb, var(--workspace-accent) 36%, var(--foreground)); opacity: .68; }
|
||
.assets-cover-text { width: 100%; height: 100%; padding: 16px 18px; overflow: hidden; background: color-mix(in srgb, var(--foreground) 4%, transparent); }
|
||
.assets-cover-text p {
|
||
display: -webkit-box;
|
||
margin: 0;
|
||
overflow: hidden;
|
||
color: color-mix(in srgb, var(--foreground) 58%, transparent);
|
||
font-size: var(--fs-label);
|
||
line-height: 1.7;
|
||
white-space: pre-wrap;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 5;
|
||
}
|
||
.assets-cover-model { display: flex; width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: color-mix(in srgb, var(--foreground) 4%, transparent); color: color-mix(in srgb, var(--foreground) 46%, transparent); }
|
||
.assets-cover-model > svg { width: 34px; height: 34px; stroke-width: 1.1; }
|
||
.assets-cover-model > span { max-width: 76%; overflow: hidden; font-size: var(--fs-micro); text-overflow: ellipsis; white-space: nowrap; }
|
||
|
||
/* 批量操作条随列表正常排版,留出选中描边和 hover 位移的空间。 */
|
||
.assets-batch-bar {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
flex-wrap: wrap;
|
||
margin: 2px 0 var(--space-4);
|
||
padding: 8px 12px;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent);
|
||
border-radius: var(--r-lg);
|
||
background: color-mix(in srgb, var(--surface-card) 82%, transparent);
|
||
backdrop-filter: blur(12px);
|
||
-webkit-backdrop-filter: blur(12px);
|
||
box-shadow: var(--elevation-hairline);
|
||
animation: assets-batch-in 240ms var(--motion-ease-out) both;
|
||
}
|
||
@keyframes assets-batch-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
|
||
@media (prefers-reduced-motion: reduce) { .assets-batch-bar { animation: none; } }
|
||
.assets-batch-count { display: inline-flex; align-items: baseline; gap: 6px; margin-right: auto; color: color-mix(in srgb, var(--foreground) 56%, transparent); font-size: var(--fs-label); }
|
||
.assets-batch-count strong { color: var(--foreground); font-size: var(--fs-body); font-weight: 620; font-variant-numeric: tabular-nums; }
|
||
.assets-batch-actions { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px; }
|
||
.assets-batch-actions .ant-btn { border: 0; border-radius: var(--r-md); background: transparent; color: color-mix(in srgb, var(--foreground) 56%, transparent); box-shadow: none; }
|
||
.assets-batch-actions .ant-btn:hover { background: color-mix(in srgb, var(--foreground) 7%, transparent); color: var(--foreground); }
|
||
|
||
/* 空态:banner 剧照 + 三张欢迎卡 */
|
||
.assets-empty { display: flex; width: 100%; flex-direction: column; align-items: center; padding: 5vh 0 8vh; }
|
||
.assets-empty-banner { position: relative; width: min(720px, calc(100% - 24px)); height: 180px; margin-bottom: 24px; }
|
||
.assets-empty-banner-frame { position: absolute; overflow: hidden; border: 1px solid color-mix(in srgb, var(--foreground) 14%, transparent); border-radius: var(--r-lg); box-shadow: var(--elevation-card); }
|
||
.assets-empty-banner-frame img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.45) contrast(.94) saturate(.7); }
|
||
.assets-empty-banner-frame.is-back { top: 16px; left: 2%; width: 24%; height: 132px; transform: rotate(-6deg); opacity: .45; }
|
||
.assets-empty-banner-frame.is-main { z-index: 2; top: 0; left: 20%; width: 60%; height: 168px; transform: rotate(1deg); }
|
||
.assets-empty-banner-frame.is-front { top: 20px; right: 2%; width: 24%; height: 132px; transform: rotate(6deg); opacity: .5; }
|
||
.assets-empty-banner-frame.is-main::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--foreground) 55%, transparent)); content: ""; }
|
||
.assets-empty-banner-frame span { position: absolute; right: 12px; bottom: 10px; z-index: 1; color: #fff; font-size: var(--fs-micro); letter-spacing: .08em; text-shadow: 0 1px 6px rgba(0, 0, 0, .5); }
|
||
.assets-empty-banner-caption { position: absolute; left: 0; right: 0; bottom: -22px; text-align: center; color: color-mix(in srgb, var(--foreground) 44%, transparent); font-size: var(--fs-micro); letter-spacing: .1em; z-index: 3; }
|
||
.assets-empty-banner-caption span { color: var(--workspace-accent); font-weight: 620; font-variant-numeric: tabular-nums; }
|
||
.assets-empty-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: min(680px, calc(100% - 24px)); margin-top: 24px; }
|
||
.assets-empty-card {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
gap: 8px;
|
||
padding: 16px 18px;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
|
||
border-radius: var(--r-lg);
|
||
background: var(--surface-card);
|
||
color: inherit;
|
||
cursor: pointer;
|
||
text-align: left;
|
||
transition: transform 260ms var(--motion-ease-out), border-color 200ms ease-out, background-color 200ms ease-out, box-shadow 200ms ease-out;
|
||
}
|
||
.assets-empty-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--workspace-accent) 32%, transparent); background: var(--surface-card-hover); box-shadow: var(--elevation-card-hover), var(--elevation-hairline); }
|
||
.assets-empty-card:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
|
||
.assets-empty-card-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: color-mix(in srgb, var(--workspace-accent) 10%, transparent); color: var(--workspace-accent); }
|
||
.assets-empty-card-icon svg { width: 17px; height: 17px; stroke-width: 1.8; }
|
||
.assets-empty-card strong { color: var(--foreground); font-size: var(--fs-body); font-weight: 620; }
|
||
.assets-empty-card > span:last-child { color: color-mix(in srgb, var(--foreground) 48%, transparent); font-size: var(--fs-label); line-height: 1.55; }
|
||
|
||
.asset-preview-uploading { position: relative; overflow: hidden; }
|
||
.asset-preview-uploading.is-uploading::after { position: absolute; inset: 0; background: color-mix(in srgb, var(--foreground) 16%, transparent); content: ""; pointer-events: none; }
|
||
.asset-preview-uploading-panel { position: absolute; right: var(--space-3); bottom: var(--space-3); left: var(--space-3); z-index: 1; padding: var(--space-3); border-radius: var(--r-md); background: color-mix(in srgb, var(--background) 92%, transparent); color: var(--foreground); }
|
||
.asset-preview-uploading-copy { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); font-size: var(--fs-caption); }
|
||
.asset-preview-uploading-copy strong { font-variant-numeric: tabular-nums; }
|
||
.asset-preview-uploading-panel .ant-progress { margin: var(--space-2) 0 0; }
|
||
|
||
/* 资产档案抽屉 */
|
||
.asset-archive-header { display: flex; align-items: flex-start; gap: 14px; }
|
||
.asset-archive-header-icon { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--workspace-accent) 10%, transparent); color: var(--workspace-accent); }
|
||
.asset-archive-header-icon svg { width: 22px; height: 22px; stroke-width: 1.6; }
|
||
.asset-archive-title { color: var(--foreground); font-size: var(--fs-heading-lg); font-weight: 620; line-height: 1.3; }
|
||
.asset-archive-subtitle { margin-top: 4px; color: color-mix(in srgb, var(--foreground) 46%, transparent); font-size: var(--fs-label); }
|
||
.asset-archive-preview { overflow: hidden; border-radius: var(--r-xl); background: #050505; box-shadow: var(--elevation-hairline); }
|
||
.asset-archive-preview-media { display: block; width: 100%; max-height: 400px; object-fit: contain; background: #050505; }
|
||
.asset-zoom-viewer { position: relative; display: flex; min-height: 420px; align-items: center; justify-content: center; overflow: hidden; background: #050505; touch-action: none; }
|
||
.asset-zoom-image { max-height: 70vh; transform-origin: center; transition: transform 120ms ease-out; user-select: none; }
|
||
.asset-zoom-controls { position: absolute; right: 12px; bottom: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 2px; padding: 4px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--r-md); background: rgba(15,15,15,.76); backdrop-filter: blur(8px); }
|
||
.asset-zoom-controls button { display: grid; min-width: 30px; height: 30px; place-items: center; border: 0; border-radius: 5px; background: transparent; color: rgba(255,255,255,.86); cursor: pointer; font-size: 11px; }
|
||
.asset-zoom-controls button:hover { background: rgba(255,255,255,.12); color: #fff; }
|
||
.batch-upload-dropzone { display: flex; min-height: 132px; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 100%; border: 1px dashed color-mix(in srgb, var(--foreground) 18%, transparent); border-radius: var(--r-lg); background: color-mix(in srgb, var(--foreground) 3%, transparent); color: color-mix(in srgb, var(--foreground) 52%, transparent); cursor: pointer; }
|
||
.batch-upload-dropzone:hover { border-color: var(--workspace-accent); background: color-mix(in srgb, var(--workspace-accent) 6%, transparent); color: var(--foreground); }
|
||
.batch-upload-dropzone strong { color: var(--foreground); font-size: var(--fs-body); }
|
||
.batch-upload-dropzone span { font-size: var(--fs-label); }
|
||
.batch-upload-list { max-height: 260px; overflow: auto; border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); border-radius: var(--r-lg); }
|
||
.batch-upload-item { display: flex; min-width: 0; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid color-mix(in srgb, var(--foreground) 7%, transparent); font-size: var(--fs-label); }
|
||
.batch-upload-item:last-child { border-bottom: 0; }
|
||
.batch-upload-remove { display: grid; width: 24px; height: 24px; flex: 0 0 auto; place-items: center; border: 0; border-radius: 5px; background: transparent; color: color-mix(in srgb, var(--foreground) 38%, transparent); cursor: pointer; }
|
||
.batch-upload-remove:hover { background: color-mix(in srgb, var(--foreground) 8%, transparent); color: var(--foreground); }
|
||
.asset-archive-preview-note { max-height: 400px; overflow: auto; padding: 26px 24px; color: color-mix(in srgb, var(--foreground) 72%, transparent); font-size: var(--fs-body); line-height: 1.75; white-space: pre-wrap; }
|
||
.asset-archive-preview-model { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px 24px; background: color-mix(in srgb, var(--foreground) 3%, transparent); color: color-mix(in srgb, var(--foreground) 42%, transparent); }
|
||
.asset-archive-preview-model > svg { width: 44px; height: 44px; color: color-mix(in srgb, var(--workspace-accent) 55%, var(--foreground)); stroke-width: 1; }
|
||
.asset-archive-audio { padding: 22px 18px; background: color-mix(in srgb, var(--foreground) 3%, transparent); }
|
||
.asset-archive-audio audio { width: 100%; }
|
||
.asset-archive-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); border-radius: var(--r-lg); background: color-mix(in srgb, var(--foreground) 9%, transparent); }
|
||
.asset-archive-fact { min-width: 0; padding: 11px 14px; background: var(--surface-card); }
|
||
.asset-archive-fact-label { display: block; color: color-mix(in srgb, var(--foreground) 38%, transparent); font-size: var(--fs-tiny); letter-spacing: .04em; }
|
||
.asset-archive-fact-value { display: block; margin-top: 3px; overflow: hidden; color: color-mix(in srgb, var(--foreground) 78%, transparent); font-size: var(--fs-label); font-weight: 520; text-overflow: ellipsis; white-space: nowrap; }
|
||
.asset-archive-link { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); border-radius: var(--r-lg); background: var(--surface-card); color: color-mix(in srgb, var(--foreground) 72%, transparent); font-size: var(--fs-label); }
|
||
.asset-archive-link svg { width: 15px; height: 15px; color: color-mix(in srgb, var(--workspace-accent) 60%, var(--foreground)); }
|
||
.asset-archive-link strong { margin-left: auto; color: var(--foreground); font-weight: 560; }
|
||
.asset-archive-section { padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--foreground) 9%, transparent); border-radius: var(--r-lg); background: var(--surface-card); }
|
||
.asset-archive-section-title { display: block; margin-bottom: 8px; color: color-mix(in srgb, var(--foreground) 40%, transparent); font-size: var(--fs-tiny); font-weight: 560; letter-spacing: .05em; }
|
||
.asset-archive-section-body { margin: 0; color: color-mix(in srgb, var(--foreground) 74%, transparent); font-size: var(--fs-label); line-height: 1.7; white-space: pre-wrap; }
|
||
.asset-archive-actions { display: flex; gap: 8px; flex-wrap: wrap; }
|
||
.library-drawer .ant-btn-primary { box-shadow: none; font-weight: 560; }
|
||
|
||
@media (max-width: 680px) {
|
||
.assets-empty-cards { grid-template-columns: 1fr; }
|
||
.assets-empty-banner { height: 150px; }
|
||
.assets-cover-play { opacity: 1; }
|
||
}
|
||
@media (max-width: 639px) {
|
||
.assets-select-check, .assets-cover-more { opacity: 1; }
|
||
}
|
||
|
||
/* ===== 素材页布局与线条修正 ===== */
|
||
|
||
/* 1. 欢迎卡与 banner 同列宽,边缘对齐 */
|
||
.assets-empty-cards { width: min(720px, calc(100% - 24px)); }
|
||
|
||
/* 素材密度由页面传入卡片最小宽度,网格布局统一在 workspace-product.css。 */
|
||
.assets-library-page .library-create-title { margin-top: 12px; font-size: var(--fs-body); }
|
||
.assets-library-page .library-create-meta { margin-top: 4px; font-size: var(--fs-label); }
|
||
|
||
/* 4. 封面浮层统一:窄屏隐藏分类徽章;浅底封面(文本/音频/模型)改用自适应玻璃浮层 */
|
||
@media (max-width: 1100px) { .assets-cover-badge.is-category { display: none; } }
|
||
.assets-cover.is-light .assets-cover-badge.is-category {
|
||
border-color: color-mix(in srgb, var(--foreground) 14%, transparent);
|
||
background: color-mix(in srgb, var(--foreground) 7%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 72%, transparent);
|
||
backdrop-filter: blur(6px);
|
||
}
|
||
.assets-cover.is-light .assets-cover-clock {
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 12%, transparent);
|
||
background: color-mix(in srgb, var(--foreground) 6%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 62%, transparent);
|
||
line-height: 18px;
|
||
}
|
||
.assets-cover.is-light .assets-cover-more {
|
||
border-color: color-mix(in srgb, var(--foreground) 12%, transparent);
|
||
background: color-mix(in srgb, var(--surface-card) 82%, transparent);
|
||
color: color-mix(in srgb, var(--foreground) 60%, transparent);
|
||
}
|
||
.assets-cover.is-light .assets-cover-more:hover { background: color-mix(in srgb, var(--foreground) 9%, transparent); color: var(--foreground); }
|
||
.assets-cover.is-light .assets-cover-play::before { border-color: color-mix(in srgb, var(--foreground) 30%, transparent); background: color-mix(in srgb, var(--surface-card) 78%, transparent); }
|
||
|
||
/* ===== AI Markdown ===== */
|
||
|
||
.ai-message-markdown {
|
||
min-width: 0;
|
||
color: inherit;
|
||
font-size: inherit;
|
||
line-height: 1.7;
|
||
overflow-wrap: anywhere;
|
||
}
|
||
.ai-message-markdown-streaming {
|
||
position: relative;
|
||
}
|
||
.ai-message-markdown-streaming::after {
|
||
content: ""; display: inline-block; width: 0.42em; height: 1.05em; margin-left: 0.18em; vertical-align: -0.12em;
|
||
background: currentColor; opacity: .55; animation: ai-message-caret 1s steps(1,end) infinite;
|
||
}
|
||
@keyframes ai-message-caret { 50% { opacity: 0; } }
|
||
@media (prefers-reduced-motion: reduce) { .ai-message-markdown-streaming::after { animation: none; opacity: .45; } }
|
||
.ai-message-markdown > :first-child { margin-top: 0; }
|
||
.ai-message-markdown > :last-child { margin-bottom: 0; }
|
||
.ai-message-markdown-heading {
|
||
margin: 1.15em 0 0.42em;
|
||
color: inherit;
|
||
font-weight: 650;
|
||
line-height: 1.35;
|
||
}
|
||
.ai-message-markdown-heading-1 { font-size: 1.18em; }
|
||
.ai-message-markdown-heading-2 { font-size: 1.08em; }
|
||
.ai-message-markdown-heading-3,
|
||
.ai-message-markdown-heading-4 { font-size: 1em; }
|
||
.ai-message-markdown-paragraph { margin: 0.5em 0; }
|
||
.ai-message-markdown-list {
|
||
margin: 0.55em 0;
|
||
padding-left: 1.35em;
|
||
}
|
||
.ai-message-markdown-list-unordered { list-style: disc; }
|
||
.ai-message-markdown-list-ordered { list-style: decimal; }
|
||
.ai-message-markdown-list-item { padding-left: 0.15em; }
|
||
.ai-message-markdown-list-item + .ai-message-markdown-list-item { margin-top: 0.22em; }
|
||
.ai-message-markdown-list-item > .ai-message-markdown-list { margin-top: 0.25em; margin-bottom: 0.25em; }
|
||
.ai-message-markdown-blockquote {
|
||
margin: 0.75em 0;
|
||
padding: 0.1em 0 0.1em 0.85em;
|
||
border-left: 2px solid color-mix(in srgb, currentColor 24%, transparent);
|
||
color: color-mix(in srgb, currentColor 74%, transparent);
|
||
}
|
||
.ai-message-markdown-code {
|
||
padding: 0.12em 0.34em;
|
||
border-radius: var(--r-sm);
|
||
background: color-mix(in srgb, currentColor 9%, transparent);
|
||
color: inherit;
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: 0.88em;
|
||
}
|
||
.ai-message-codeblock {
|
||
margin: 0.8em 0;
|
||
overflow: hidden;
|
||
border: 1px solid color-mix(in srgb, var(--foreground) 11%, transparent);
|
||
border-radius: var(--r-md);
|
||
background: color-mix(in srgb, var(--foreground) 5%, var(--background));
|
||
}
|
||
.ai-message-codeblock-header {
|
||
display: flex;
|
||
height: 34px;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: var(--space-2);
|
||
padding: 0 var(--space-2) 0 12px;
|
||
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
|
||
}
|
||
.ai-message-codeblock-lang {
|
||
overflow: hidden;
|
||
color: color-mix(in srgb, currentColor 56%, transparent);
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: var(--fs-micro);
|
||
font-weight: 600;
|
||
letter-spacing: 0.05em;
|
||
text-overflow: ellipsis;
|
||
text-transform: uppercase;
|
||
white-space: nowrap;
|
||
}
|
||
.ai-message-codeblock-copy {
|
||
display: inline-flex;
|
||
height: 24px;
|
||
flex: 0 0 auto;
|
||
align-items: center;
|
||
gap: 5px;
|
||
border: 0;
|
||
border-radius: 6px;
|
||
background: transparent;
|
||
padding: 0 var(--space-2);
|
||
color: color-mix(in srgb, currentColor 62%, transparent);
|
||
font: inherit;
|
||
font-size: var(--fs-micro);
|
||
transition: background-color 150ms ease, color 150ms ease;
|
||
}
|
||
.ai-message-codeblock-copy svg { width: 13px; height: 13px; }
|
||
.ai-message-codeblock-copy:hover { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }
|
||
.ai-message-codeblock-copy:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 60%, transparent); outline-offset: -1px; }
|
||
.ai-message-codeblock-pre {
|
||
margin: 0;
|
||
padding: 10px 12px;
|
||
overflow-x: auto;
|
||
background: transparent;
|
||
color: color-mix(in srgb, var(--foreground) 86%, transparent);
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: 0.84em;
|
||
line-height: 1.55;
|
||
tab-size: 2;
|
||
}
|
||
.ai-message-codeblock-pre .ai-message-markdown-code {
|
||
padding: 0;
|
||
background: transparent;
|
||
color: inherit;
|
||
font-size: inherit;
|
||
}
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.ai-message-codeblock-copy { transition: none; }
|
||
}
|
||
|
||
/* --- ai-message 代码块语法高亮(shiki 双主题 CSS 变量:--shiki-light/--shiki-dark)--- */
|
||
.ai-message-codeblock-pre .shiki { margin: 0; padding: 0; background: transparent !important; }
|
||
.ai-message-codeblock-pre .shiki code { font-family: inherit; font-size: inherit; color: inherit; }
|
||
html:not(.dark) .ai-message-codeblock-pre .shiki,
|
||
html:not(.dark) .ai-message-codeblock-pre .shiki span { color: var(--shiki-light) !important; }
|
||
html.dark .ai-message-codeblock-pre .shiki,
|
||
html.dark .ai-message-codeblock-pre .shiki span { color: var(--shiki-dark) !important; }
|
||
.ai-message-markdown-link {
|
||
color: var(--primary);
|
||
text-decoration: underline;
|
||
text-decoration-color: color-mix(in srgb, currentColor 38%, transparent);
|
||
text-underline-offset: 2px;
|
||
}
|
||
.ai-message-markdown-link:hover { text-decoration-color: currentColor; }
|
||
.ai-message-markdown-rule {
|
||
margin: 1em 0;
|
||
border: 0;
|
||
border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
|
||
}
|
||
.ai-message-markdown-table-wrap {
|
||
max-width: 100%;
|
||
margin: 0.8em 0;
|
||
overflow-x: auto;
|
||
}
|
||
.ai-message-markdown-table {
|
||
width: 100%;
|
||
min-width: 320px;
|
||
border-collapse: collapse;
|
||
font-size: 0.92em;
|
||
}
|
||
.ai-message-markdown-table-cell {
|
||
padding: 0.48em 0.65em;
|
||
border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
|
||
text-align: left;
|
||
vertical-align: top;
|
||
}
|
||
.ai-message-markdown-table-header {
|
||
color: color-mix(in srgb, currentColor 82%, transparent);
|
||
font-weight: 620;
|
||
background: color-mix(in srgb, currentColor 5%, transparent);
|
||
}
|
||
.ai-message-markdown-task {
|
||
width: 0.9em;
|
||
height: 0.9em;
|
||
margin: 0 0.35em 0 0;
|
||
vertical-align: -0.08em;
|
||
accent-color: var(--primary);
|
||
}
|
||
|
||
/* ===== 创作页 · 连续对话与媒体状态 ===== */
|
||
.creation-home .creation-thread-workbench {
|
||
display: flex;
|
||
flex: 1 1 auto;
|
||
min-height: 0;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.creation-thread-toolbar {
|
||
display: flex;
|
||
flex: 1 1 auto;
|
||
min-width: 0;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: var(--space-2);
|
||
}
|
||
.creation-home .creation-thread-toolbar {
|
||
flex: 0 0 auto;
|
||
width: min(900px, calc(100% - 56px));
|
||
padding: var(--space-3) 0;
|
||
margin: 0 auto;
|
||
}
|
||
.creation-toolbar-actions { display: inline-flex; align-items: center; gap: var(--space-1); }
|
||
.creation-toolbar-action {
|
||
display: inline-flex;
|
||
min-height: var(--space-8);
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: var(--space-1);
|
||
border: 1px solid transparent;
|
||
border-radius: var(--r-md);
|
||
background: transparent;
|
||
color: var(--creation-muted);
|
||
padding: 0 var(--space-2);
|
||
cursor: pointer;
|
||
transition: background-color var(--motion-state) ease, color var(--motion-state) ease;
|
||
}
|
||
.creation-toolbar-action:hover { background: var(--creation-surface-hover); color: var(--creation-text); }
|
||
.creation-toolbar-action:focus-visible { outline: 2px solid var(--creation-accent); outline-offset: 1px; }
|
||
.creation-toolbar-action svg { width: var(--space-4); height: var(--space-4); }
|
||
.creation-toolbar-shots { position: relative; display: inline-flex; }
|
||
.creation-rail-trigger {
|
||
display: inline-flex;
|
||
min-height: var(--space-8);
|
||
align-items: center;
|
||
gap: var(--space-1);
|
||
border: 1px solid transparent;
|
||
border-radius: var(--r-md);
|
||
background: transparent;
|
||
color: var(--creation-muted);
|
||
padding: 0 var(--space-2);
|
||
font-size: var(--fs-caption);
|
||
font-weight: 560;
|
||
cursor: pointer;
|
||
transition: background-color var(--motion-state) ease, color var(--motion-state) ease;
|
||
}
|
||
.creation-rail-trigger:hover,
|
||
.creation-rail-trigger[aria-expanded="true"] { background: var(--creation-surface-hover); color: var(--creation-text); }
|
||
.creation-rail-trigger:focus-visible { outline: 2px solid var(--creation-accent); outline-offset: 1px; }
|
||
.creation-rail-trigger svg { width: var(--space-4); height: var(--space-4); }
|
||
.creation-rail-count {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-width: 16px;
|
||
height: 16px;
|
||
border-radius: 99px;
|
||
background: color-mix(in srgb, var(--creation-accent) 14%, transparent);
|
||
color: var(--creation-accent);
|
||
padding: 0 var(--space-1);
|
||
font-size: var(--fs-micro);
|
||
font-style: normal;
|
||
font-weight: 620;
|
||
font-variant-numeric: tabular-nums;
|
||
line-height: 1;
|
||
}
|
||
.creation-rail-pop {
|
||
position: absolute;
|
||
z-index: 30;
|
||
top: calc(100% + var(--space-2));
|
||
left: 0;
|
||
width: min(360px, calc(100vw - 48px));
|
||
border: 1px solid var(--creation-border);
|
||
border-radius: var(--r-lg);
|
||
background: var(--creation-surface);
|
||
box-shadow: var(--shadow-popover);
|
||
padding: var(--space-2);
|
||
}
|
||
.creation-rail-pop-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-1) var(--space-2) var(--space-2); }
|
||
.creation-rail-pop-title { display: flex; align-items: baseline; gap: var(--space-2); color: var(--creation-text); font-size: var(--fs-body); font-weight: 620; }
|
||
.creation-rail-pop-title small { color: var(--creation-muted); font-size: var(--fs-micro); font-weight: 480; }
|
||
.creation-rail-pop-close {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border: 0;
|
||
border-radius: var(--r-sm);
|
||
background: transparent;
|
||
color: var(--creation-muted);
|
||
padding: var(--space-1);
|
||
cursor: pointer;
|
||
}
|
||
.creation-rail-pop-close:hover { background: var(--creation-surface-hover); color: var(--creation-text); }
|
||
.creation-rail-pop-close svg { width: var(--space-4); height: var(--space-4); }
|
||
.creation-rail-list { list-style: none; margin: 0; padding: 0; max-height: min(46vh, 320px); overflow-y: auto; }
|
||
.creation-rail-row {
|
||
display: grid;
|
||
width: 100%;
|
||
grid-template-columns: auto minmax(0, 1fr) auto;
|
||
align-items: center;
|
||
gap: var(--space-2);
|
||
border: 0;
|
||
border-radius: var(--r-md);
|
||
background: transparent;
|
||
color: var(--creation-text);
|
||
padding: var(--space-2);
|
||
text-align: left;
|
||
cursor: pointer;
|
||
transition: background-color var(--motion-state) ease;
|
||
}
|
||
.creation-rail-row:hover { background: var(--creation-surface-hover); }
|
||
.creation-rail-row:focus-visible { outline: 2px solid var(--creation-accent); outline-offset: -2px; }
|
||
.creation-rail-row-shot {
|
||
display: inline-flex;
|
||
min-width: 44px;
|
||
align-items: center;
|
||
justify-content: center;
|
||
border-radius: var(--r-sm);
|
||
background: color-mix(in srgb, var(--creation-accent) 10%, transparent);
|
||
color: var(--creation-accent);
|
||
padding: var(--space-1) var(--space-2);
|
||
font-size: var(--fs-micro);
|
||
font-weight: 620;
|
||
font-variant-numeric: tabular-nums;
|
||
}
|
||
.creation-rail-row-prompt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--creation-text); font-size: var(--fs-caption); }
|
||
.creation-rail-row-state { color: var(--creation-muted); font-size: var(--fs-micro); white-space: nowrap; }
|
||
.creation-rail-row-state.is-done { color: var(--palette-status-success); }
|
||
.creation-rail-row-state.is-error { color: var(--palette-status-error); }
|
||
.creation-rail-row-state.is-pending { color: var(--creation-accent); }
|
||
.creation-rail-empty { margin: 0; color: var(--creation-muted); padding: var(--space-3) var(--space-2); font-size: var(--fs-caption); }
|
||
.creation-home .creation-shot-badge {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
border: 1px solid color-mix(in srgb, var(--creation-accent) 40%, transparent);
|
||
border-radius: var(--r-sm);
|
||
background: color-mix(in srgb, var(--creation-accent) 10%, transparent);
|
||
color: var(--creation-accent);
|
||
padding: 0 var(--space-2);
|
||
font-size: var(--fs-micro);
|
||
font-weight: 620;
|
||
font-variant-numeric: tabular-nums;
|
||
line-height: 1.6;
|
||
}
|
||
.creation-home .creation-thread-message { scroll-margin-top: 92px; }
|