移动端美化:悬浮磨砂导航菜单 + 保守档字号
菜单(site-header.astro) - 全屏遮罩居中大链接 -> 仿 Firefly float-panel 的悬浮磨砂卡片: fixed top-[76px] 左右各留 12px,rounded-2xl,浅阴影,max-h 兜底防横屏溢出 - 菜单项 30px -> 18px,行高 44px,圆角 hover 底色;外链右侧加 ↗ - 当前页在构建期用 Astro.url.pathname 判定,高亮为主色文字 + 淡主色底 + 正文标题那道红色短竖线(滑入/当前项显示) - 入场动画改为「面板落下 + 逐项上浮」,节奏从 420ms 收到 300ms - 遮罩从纯色全屏改为 background/45% + 极轻模糊,点它关闭 - JS 未改:data-open / ESC / body 滚动锁 / astro:before-swap 复位 / aria 全部沿用 - 补 :focus-visible 自定义焦点环(替掉浏览器默认那圈)、prefers-reduced-motion、 prefers-reduced-transparency、@supports 回退 磨砂 - global.css 新增 --glass-bg / --glass-border / --glass-blur / --glass-saturate, 由 --card 派生所以亮暗自动跟随 - 移动端页眉仍保持关闭常驻磨砂(原来就是有意为之),只有点开的菜单面板用 字号(只动 <768px,保守档) - 正文/引用/列表 16.5px/1.85 -> 15.5px/1.78,行高密度约省 10% - 文章 h1 30 -> 27px;正文 h2 30 -> 25;h3 24 -> 21;h4 20 -> 18 - 列表区标题 24 -> 21px - 桌面端用 md: 前缀原样恢复 验证(headless Chrome 131,390x844 + 1280/800/700) - 390px:正文 15.5/27.59、h1 27、菜单项 18;面板 445px 高、底边 511 < 844 - 1280/800px:正文 16.5/30.525、h1 48px,与改动前一致 - 亮/暗两套截图正常,无横向溢出
This commit is contained in:
@@ -176,6 +176,36 @@ epigraph: 题记 # 可选
|
||||
|
||||
代码风格:Astro/TS/TSX 一律 2 空格缩进。组件命名 `PascalCase` 与 `kebab-case` 混用,跟着所在目录的既有风格走即可。项目没有配 formatter,改动尽量贴合周围代码。
|
||||
|
||||
### 移动端字号
|
||||
|
||||
移动端(<768px)的字号比桌面端小一档,用 Tailwind 的移动优先写法表达 —— 基础值是手机用的,`md:` 前缀是桌面恢复值:
|
||||
|
||||
```html
|
||||
<!-- 正文:手机 15.5px / 1.78,≥768px 回到 16.5px / 1.85 -->
|
||||
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**(所以文件必须存在,删掉会导致构建失败):
|
||||
|
||||
Reference in New Issue
Block a user