From d41b2f0ecefa75154b9b9d3f9a17552fb98e7b38 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Fri, 28 Aug 2026 18:26:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E4=B8=8E=E5=AF=BC=E8=88=AA=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/css/main.scss | 9 +++------ app/components/PublicPageLayout.vue | 2 +- app/components/SiteHeader.vue | 20 ++++++++++---------- app/pages/admin/settings.vue | 2 +- app/pages/index.vue | 2 +- app/pages/news/[slug].vue | 2 +- app/pages/products/[slug].vue | 2 +- server/utils/site-schema.ts | 2 ++ tests/site-schema.test.ts | 7 +++++++ 9 files changed, 27 insertions(+), 21 deletions(-) diff --git a/app/assets/css/main.scss b/app/assets/css/main.scss index cad0e0a..3cec771 100644 --- a/app/assets/css/main.scss +++ b/app/assets/css/main.scss @@ -43,8 +43,7 @@ img { max-width: 100%; } .site-header { position: absolute; z-index: 20; top: 0; left: 0; display: grid; grid-template-columns: 250px 1fr 160px; align-items: center; width: 100%; padding: 26px 4.2vw; } .main-nav { display: flex; justify-content: center; gap: clamp(18px, 2.4vw, 42px); } .main-nav a { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-height: 54px; padding: 0 3px; color: #17364e; white-space: nowrap; } -.nav-label { font-size: 14px; line-height: 1.2; } -.nav-english { margin-top: 5px; color: #71889b; font-size: 9px; font-weight: 500; line-height: 1; letter-spacing: .12em; } +.nav-label { font-size: var(--nav-font-size, 14px); line-height: 1.2; } .main-nav a::after { position: absolute; right: 50%; bottom: -8px; left: 50%; height: 1px; content: ""; background: var(--ink); transition: .28s ease; } .main-nav a:hover::after, .main-nav a:focus-visible::after, .main-nav a[aria-current="page"]::after { right: 0; left: 0; } .header-cta, .primary-button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 11px; overflow: hidden; border-radius: 999px; color: white; background: linear-gradient(135deg, #2b5f8b, #0a3456); box-shadow: 0 12px 28px rgba(10, 52, 86, .2); isolation: isolate; } @@ -180,8 +179,7 @@ img { max-width: 100%; } .story-page { max-width: 1060px; margin: 0 auto; padding: 72px 32px 130px; } .story-page header { text-align: center; } .story-page header > p { color: var(--muted); } -.story-page header > img { width: 100%; max-height: 530px; margin-top: 48px; border-radius: 34px; object-fit: cover; box-shadow: var(--shadow); } -.story-body { max-width: 760px; margin: 58px auto 0; } +.story-body { width: 100%; margin: 58px 0 0; } .detail-back { display: inline-flex; margin-bottom: 34px; color: #59758c; font-size: 13px; } .related-content { max-width: 760px; margin: 90px auto 0; padding-top: 42px; border-top: 1px solid var(--line); } .related-content h2 { margin: 0 0 20px; font: 500 34px var(--serif); } @@ -430,8 +428,7 @@ img { max-width: 100%; } .main-nav { position: fixed; top: 0; left: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100vw; height: 100svh; gap: 20px; visibility: hidden; opacity: 0; background: rgba(247,249,251,.97); transition: visibility .28s ease, opacity .28s ease; } .main-nav.open { visibility: visible; opacity: 1; } .main-nav a { display: flex; min-width: 220px; min-height: 56px; justify-content: center; } - .main-nav .nav-label { font: 500 23px/1.15 var(--serif); } - .main-nav .nav-english { margin-top: 6px; font: 500 9px/1 var(--sans); letter-spacing: .18em; } + .main-nav .nav-label { font-family: var(--serif); font-size: var(--nav-font-size, 14px); font-weight: 500; line-height: 1.15; } .header-cta { display: none; } .teacher-card { grid-template-columns: .9fr 1.1fr; } .official-grid { grid-template-columns: repeat(2, 1fr); } diff --git a/app/components/PublicPageLayout.vue b/app/components/PublicPageLayout.vue index d94e36e..670f448 100644 --- a/app/components/PublicPageLayout.vue +++ b/app/components/PublicPageLayout.vue @@ -6,7 +6,7 @@ defineProps<{ site: SiteDocument }>()