From 50b3461ebc10113e55fa49eccfd2e86305140ff9 Mon Sep 17 00:00:00 2001 From: GJ Date: Fri, 4 Sep 2026 18:24:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B6=E7=B4=A7=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=89=A7=E6=9C=AC=E5=88=97=E8=A1=A8=E4=B8=8E=E5=88=9B?= =?UTF-8?q?=E4=BD=9C=E9=A1=B5=E9=A1=B6=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/create-drama/CreateDramaPage.vue | 57 +++++++-- src/features/projects/ProjectsPage.vue | 114 ++++++++++++------ src/testing/styles.ts | 1 + tests/components/ui/flatTheme.test.ts | 4 + 4 files changed, 130 insertions(+), 46 deletions(-) diff --git a/src/features/create-drama/CreateDramaPage.vue b/src/features/create-drama/CreateDramaPage.vue index 06fa8b1..609c2d1 100644 --- a/src/features/create-drama/CreateDramaPage.vue +++ b/src/features/create-drama/CreateDramaPage.vue @@ -72,14 +72,17 @@ function exportScript() {
@@ -254,10 +257,13 @@ function exportScript() { /* 本组件专属布局与 Naive 内部结构覆盖。 */ @reference "../../styles/styles.css"; .stage-strip { - @apply flex flex-wrap items-center gap-3.5; + @apply flex items-center gap-3; +} +.stage-strip-track { + @apply flex min-w-0 flex-1 flex-wrap items-center gap-3.5; } .stage-item { - @apply flex items-center gap-[7px] text-muted text-[11px]; + @apply flex shrink-0 items-center gap-[7px] text-muted text-[11px]; } .stage-item.done { @apply text-ink; @@ -268,13 +274,40 @@ function exportScript() { .json-view { @apply whitespace-pre-wrap wrap-anywhere p-4 bg-(--app-subtle) rounded-none font-mono text-[11px] leading-[1.9]; } -@media (max-width: 760px) { +@media (max-width: 800px) { + .script-workspace-page .workspace-heading { + @apply py-2.5 px-3; + } .stage-strip { - @apply gap-[9px]; + @apply gap-2; + } + .stage-strip-track { + @apply min-w-0 flex-1 flex-nowrap overflow-x-auto overflow-y-hidden overscroll-x-contain; + scrollbar-width: none; + mask-image: linear-gradient(to right, #000 calc(100% - 16px), transparent); + } + .stage-strip-track::-webkit-scrollbar { + display: none; } .stage-arrow { @apply ml-[3px]; } + .script-section .tabs-toolbar { + container-type: normal; + } + .script-section .workspace-tabs > .n-tabs-nav { + @apply flex-nowrap; + } + .script-section .workspace-tabs .n-tabs-nav-scroll-wrapper { + @apply min-w-0 flex-1; + flex-basis: auto; + } + .script-section .workspace-tabs .n-tabs-nav__suffix { + @apply w-auto pl-2; + } + .script-section .tabs-toolbar-actions { + @apply min-h-0 flex-nowrap; + } } .script-section { @apply flex-1 flex flex-col min-h-0; diff --git a/src/features/projects/ProjectsPage.vue b/src/features/projects/ProjectsPage.vue index e11ac3a..ba136c4 100644 --- a/src/features/projects/ProjectsPage.vue +++ b/src/features/projects/ProjectsPage.vue @@ -67,39 +67,49 @@ function clearFilters() {