diff --git a/README.md b/README.md index 169056e..12899a2 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,36 @@ epigraph: 题记 # 可选 代码风格:Astro/TS/TSX 一律 2 空格缩进。组件命名 `PascalCase` 与 `kebab-case` 混用,跟着所在目录的既有风格走即可。项目没有配 formatter,改动尽量贴合周围代码。 +### 移动端字号 + +移动端(<768px)的字号比桌面端小一档,用 Tailwind 的移动优先写法表达 —— 基础值是手机用的,`md:` 前缀是桌面恢复值: + +```html + +prose-p:text-[15.5px] md:prose-p:text-[16.5px] +prose-p:leading-[1.78] md:prose-p:leading-[1.85] +``` + +改动集中在 `ArticleContent.astro`(正文、标题、引用、列表)和 `article-list.tsx`(列表区标题)。**不要动 `html` 的根字号**,那会连带缩放所有 rem 间距,容易连锁出问题。 + +### 磨砂玻璃 + +`global.css` 里有四个 token: + +| token | 默认 | 用途 | +|---|---|---| +| `--glass-bg` | `color-mix(in oklch, var(--card) 72%, transparent)` | 面板底色,由 `--card` 派生,亮/暗自动跟随 | +| `--glass-border` | `color-mix(in oklch, var(--border) 75%, transparent)` | 面板描边 | +| `--glass-blur` | `14px` | 模糊半径 | +| `--glass-saturate` | `1.5` | 饱和度补偿,纯模糊会发灰 | + +用法:`background-color: var(--glass-bg); backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));` + +**只给「浮在内容上方、面积不大」的元素用**(移动端菜单面板、页眉、搜索面板)。不要给文章卡片大面积用,一屏十几个元素同时 `backdrop-filter` 会明显掉帧。另外记得带上 `-webkit-` 前缀,并在 `@supports not (backdrop-filter: blur(1px))` 里回退成不透明的 `var(--card)`。 + +> 移动端页眉目前**故意关掉**了常驻磨砂(`site-header.astro` 的 `@media (max-width: 767px)` 那段):固定元素持续模糊会让移动端合成开销变大。要开的话建议用「滚动后才开」的方式,别让它一直生效。 + + ## 书架数据 书架页的数据来自这三个文件,由 `src/components/bookshelf-content.astro` 在**构建时 import**(所以文件必须存在,删掉会导致构建失败): diff --git a/src/components/ArticleContent.astro b/src/components/ArticleContent.astro index df24da7..f227508 100644 --- a/src/components/ArticleContent.astro +++ b/src/components/ArticleContent.astro @@ -35,7 +35,7 @@ const primaryTagHref = primaryTag ? `/?tag=${encodeURIComponent(primaryTag)}#hom

@@ -119,17 +119,17 @@ const primaryTagHref = primaryTag ? `/?tag=${encodeURIComponent(primaryTag)}#hom
{activeCategory === "all" && !activeTag ? ( -

+

{headerMeta.heading}

) : ( -

+

{headerMeta.eyebrow} / {headerMeta.heading} diff --git a/src/components/site-header.astro b/src/components/site-header.astro index 39be483..d9342e5 100644 --- a/src/components/site-header.astro +++ b/src/components/site-header.astro @@ -15,6 +15,12 @@ const navItems: { name: string; href: string; external?: boolean }[] = [ { name: "关于", href: "/about/" }, { name: "开往", href: "https://www.travellings.cn/go.html", external: true }, ] + +// 静态站:当前页在构建时就知道,直接拿来高亮菜单项。 +// 切页后页眉会随新页面一起被换掉,所以这个标记始终对应当前页。 +const currentPath = Astro.url.pathname +const isCurrent = (href: string) => + href === "/#home-main" ? currentPath === "/" : currentPath.startsWith(href) ---