合并 master 的滑动条样式改造
Project CI / Repository checks (pull_request) Successful in 1m24s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Has been cancelled

音效面板跟随 master 从 form 提交改为按钮 onClick,保留 canonical soundEffectDialog 与 canGenerate 守卫。

音效锁定态断言改读 aria-readonly,适配 AutoGrowTextArea 改用 Lexical contentEditable。
This commit is contained in:
2026-08-08 07:53:47 +00:00
39 changed files with 1351 additions and 970 deletions
+142 -39
View File
@@ -6828,13 +6828,13 @@ html[data-mobile-keyboard-open='true'] .platform-mobile-bottom-dock {
}
.image-canvas-editor__generation-prompt {
--auto-grow-editor-radius: 1.05rem;
--auto-grow-editor-min-height: 3.35rem;
--auto-grow-editor-padding: 0.52rem 0.82rem;
grid-column: 1 / -1;
min-height: 3.35rem;
resize: none;
border: 1px solid rgba(15, 23, 42, 0.08);
border-radius: 1.05rem;
border-radius: var(--auto-grow-editor-radius);
background: #f8fafc;
padding: 0.52rem 0.82rem;
color: #0f172a;
font: inherit;
font-size: 0.82rem;
@@ -6843,23 +6843,27 @@ html[data-mobile-keyboard-open='true'] .platform-mobile-bottom-dock {
outline: none;
}
.image-canvas-editor__generation-prompt:focus,
.image-canvas-editor__generation-prompt:focus-within,
.image-canvas-editor__video-prompt:focus {
border-color: var(--image-canvas-brand-border-strong);
background: #ffffff;
box-shadow: 0 0 0 3px var(--image-canvas-brand-focus-ring);
}
.image-canvas-editor__generation-prompt::placeholder {
.image-canvas-editor__generation-prompt .auto-grow-text-area__placeholder {
color: #94a3b8;
}
.image-canvas-editor__generation-prompt[aria-invalid='true'] {
.image-canvas-editor__generation-prompt:has(
.auto-grow-text-area__content[aria-invalid='true']
) {
border-color: #e11d48;
background: #fff7f8;
}
.image-canvas-editor__generation-prompt[aria-invalid='true']:focus {
.image-canvas-editor__generation-prompt:has(
.auto-grow-text-area__content[aria-invalid='true']
):focus-within {
border-color: #e11d48;
box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.14);
}
@@ -6886,7 +6890,9 @@ html[data-mobile-keyboard-open='true'] .platform-mobile-bottom-dock {
.image-canvas-editor__generation-composer-footer {
grid-column: 1 / -1;
display: grid;
grid-template-columns: max-content minmax(0, 1fr) max-content max-content max-content;
grid-template-columns:
max-content minmax(0, 1fr)
max-content max-content max-content;
align-items: center;
gap: 0.1rem;
justify-content: start;
@@ -7676,8 +7682,8 @@ button.image-canvas-editor__reference-chip:disabled {
.image-canvas-editor__character-composer
.image-canvas-editor__generation-prompt {
min-height: 5.1rem;
padding-top: 0.42rem;
--auto-grow-editor-min-height: 5.1rem;
--auto-grow-editor-padding: 0.42rem 0.82rem 0.52rem;
}
.image-canvas-editor__character-composer
@@ -7725,7 +7731,7 @@ button.image-canvas-editor__reference-chip:disabled {
}
.image-canvas-editor__publication-description {
min-height: 4rem;
--auto-grow-editor-min-height: 4rem;
}
.image-canvas-editor__publication-composer
@@ -7762,8 +7768,8 @@ button.image-canvas-editor__reference-chip:disabled {
}
.image-canvas-editor__icon-composer .image-canvas-editor__generation-prompt {
min-height: 5.1rem;
padding-top: 0.42rem;
--auto-grow-editor-min-height: 5.1rem;
--auto-grow-editor-padding: 0.42rem 0.82rem 0.52rem;
}
.image-canvas-editor__character-composer
@@ -8036,11 +8042,7 @@ button.image-canvas-editor__reference-chip:disabled {
}
.image-canvas-editor__spec-textarea {
min-height: 3.8rem;
}
.image-canvas-editor__spec-textarea::placeholder {
color: #94a3b8;
--auto-grow-editor-min-height: 3.8rem;
}
.image-canvas-editor__spec-textarea--view {
@@ -8621,7 +8623,7 @@ button.image-canvas-editor__reference-chip:disabled {
}
.image-canvas-editor__quick-edit-prompt {
min-height: 5.6rem;
--auto-grow-editor-min-height: 5.6rem;
}
.image-canvas-editor__quick-edit-controls {
@@ -8771,7 +8773,8 @@ button.image-canvas-editor__reference-chip:disabled {
.image-canvas-editor__character-animation-textarea {
grid-column: 1 / -1;
min-height: 8rem;
--auto-grow-editor-min-height: 8rem;
--auto-grow-editor-max-height: 16rem;
}
.image-canvas-editor__character-animation-presets {
@@ -8863,12 +8866,12 @@ button.image-canvas-editor__reference-chip:disabled {
}
.image-canvas-editor__generate-prompt {
min-height: 7rem;
resize: none;
--auto-grow-editor-radius: 0.45rem;
--auto-grow-editor-min-height: 7rem;
--auto-grow-editor-padding: 0.7rem;
border: 1px solid #d9dee8;
border-radius: 0.45rem;
border-radius: var(--auto-grow-editor-radius);
background: #f8fafc;
padding: 0.7rem;
color: #1f2937;
font: inherit;
font-size: 0.82rem;
@@ -8876,7 +8879,7 @@ button.image-canvas-editor__reference-chip:disabled {
outline: none;
}
.image-canvas-editor__generate-prompt:focus {
.image-canvas-editor__generate-prompt:focus-within {
border-color: var(--image-canvas-brand-border-strong);
background: #ffffff;
box-shadow: 0 0 0 3px var(--image-canvas-brand-focus-ring);
@@ -16878,28 +16881,128 @@ button {
}
.auto-grow-text-area {
scrollbar-color: #cbd5e1 transparent;
scrollbar-width: thin;
position: relative;
display: block;
box-sizing: border-box;
width: 100%;
min-width: 0;
min-height: var(--auto-grow-editor-min-height, 2.5rem);
max-height: var(--auto-grow-editor-max-height, 8rem);
border-radius: var(--auto-grow-editor-radius, 1rem);
overflow: hidden;
}
.auto-grow-text-area::-webkit-scrollbar {
width: 6px;
.auto-grow-text-area__content {
box-sizing: border-box;
width: 100%;
min-height: calc(var(--auto-grow-editor-min-height, 2.5rem) - 2px);
padding: var(--auto-grow-editor-padding, 0.5rem 0.75rem);
padding-right: 2.25rem;
outline: none;
overflow-wrap: anywhere;
white-space: pre-wrap;
-webkit-user-select: text;
user-select: text;
}
.auto-grow-text-area::-webkit-scrollbar-track {
margin-block: 10px;
background-color: transparent;
.auto-grow-text-area__placeholder {
position: absolute;
inset: 0;
box-sizing: border-box;
padding: var(--auto-grow-editor-padding, 0.5rem 0.75rem);
padding-right: 2.25rem;
overflow: hidden;
color: #94a3b8;
pointer-events: none;
text-overflow: ellipsis;
white-space: nowrap;
}
.auto-grow-text-area::-webkit-scrollbar-thumb {
border: 1px solid transparent;
.auto-grow-text-area__viewport,
.auto-grow-text-area [data-overlayscrollbars-viewport] {
/* 独立 viewport 不随内容增高,达到上限后只由它承接滚动。 */
display: block;
height: 100%;
min-height: 0;
overflow-x: hidden !important;
overflow-y: auto !important;
overscroll-behavior: contain;
}
.auto-grow-text-area__content-root {
box-sizing: border-box;
min-height: calc(var(--auto-grow-editor-min-height, 2.5rem) - 2px);
}
.auto-grow-text-area[data-disabled='true'] {
cursor: not-allowed;
opacity: 0.6;
}
.auto-grow-text-area[data-readonly='true'] {
cursor: default;
}
.editor-agent-conversation__draft-input {
--auto-grow-editor-radius: 1.5rem;
--auto-grow-editor-padding: 0.5rem 0.75rem;
border-radius: var(--auto-grow-editor-radius);
}
/* 微信式编辑器滚动条:轨道透明,8px 胶囊滑块内缩于输入框圆角之内。 */
.auto-grow-text-area
> .os-theme-auto-grow-text-area.os-scrollbar-vertical.os-scrollbar-cornerless {
--os-size: 8px;
--os-padding-axis: 0;
--os-padding-perpendicular: 0;
--os-track-border-radius: 999px;
--os-track-bg: transparent;
--os-track-bg-hover: transparent;
--os-track-bg-active: transparent;
--os-handle-border-radius: 999px;
--os-handle-bg: rgba(98, 98, 98, 0.56);
--os-handle-bg-hover: rgba(98, 98, 98, 0.72);
--os-handle-bg-active: rgba(98, 98, 98, 0.86);
--os-handle-min-size: 24px;
--os-handle-perpendicular-size: 100%;
--os-handle-perpendicular-size-hover: 100%;
--os-handle-perpendicular-size-active: 100%;
box-sizing: border-box;
top: var(--auto-grow-editor-radius, 1rem) !important;
right: 5px;
bottom: var(--auto-grow-editor-radius, 1rem) !important;
width: 8px;
padding: 0;
}
.auto-grow-text-area
> .os-theme-auto-grow-text-area.os-scrollbar-vertical
.os-scrollbar-track {
width: 8px;
border-radius: 999px;
background-color: #cbd5e1;
background-clip: padding-box;
background: transparent;
}
.auto-grow-text-area::-webkit-scrollbar-thumb:hover {
background-color: #94a3b8;
.auto-grow-text-area
> .os-theme-auto-grow-text-area.os-scrollbar-vertical
.os-scrollbar-handle {
width: 8px;
min-height: 24px;
border: 0;
border-radius: 999px;
background: rgba(98, 98, 98, 0.56);
}
.auto-grow-text-area
> .os-theme-auto-grow-text-area.os-scrollbar-vertical:hover
.os-scrollbar-handle {
background: rgba(98, 98, 98, 0.72);
}
.auto-grow-text-area
> .os-theme-auto-grow-text-area.os-scrollbar-vertical:active
.os-scrollbar-handle {
background: rgba(98, 98, 98, 0.86);
}
.image-canvas-editor__metadata-dialog.platform-modal-shell {