From 36f3ad039fe13d65f2a7cc190f6a41da6bf0079d Mon Sep 17 00:00:00 2001 From: toom1996 Date: Thu, 3 Sep 2026 19:45:36 +0800 Subject: [PATCH] update --- .workbuddy/memory/2026-09-03.md | 71 +++++++++++++ .workbuddy/memory/MEMORY.md | 84 +++++++-------- src/components/Item.astro | 156 ++++++++++++++++++++++++++-- src/components/LoadingScreen.astro | 158 +++++++++++++++++++++++++++++ src/components/RunwayLooks.astro | 5 +- src/components/StreetSnap.astro | 157 ++++++++++++++++++++++++++-- src/components/StreetSnaps.astro | 5 +- src/i18n/dictionary.ts | 2 + src/layouts/Layout.astro | 20 ++-- src/lib/api.ts | 123 ++++++++++++---------- src/pages/cn/item/[id].astro | 6 +- src/pages/en/item/[id].astro | 6 +- src/pages/en/login.astro | 2 +- src/styles/global.css | 1 + 14 files changed, 672 insertions(+), 124 deletions(-) create mode 100644 .workbuddy/memory/2026-09-03.md create mode 100644 src/components/LoadingScreen.astro diff --git a/.workbuddy/memory/2026-09-03.md b/.workbuddy/memory/2026-09-03.md new file mode 100644 index 0000000..f7b91f9 --- /dev/null +++ b/.workbuddy/memory/2026-09-03.md @@ -0,0 +1,71 @@ +# 2026-09-03 工作日志 + +## Header 下拉 FOUC + 加载屏接入(12:0x)✅ +用户反馈 header 下拉在 CSS 未加载时很丑(裸奔成大块列表),并给了一份 loading 动画页(Raleway 彩虹 text-shadow + Lorem ipsum 文案)要求接入。 + +- **根因**:Layout 里 Runway/Street/语言/账号 下拉与未登录 Login 链接均用 `x-show` 但**没加 `x-cloak`**,Alpine 接管前 `x-show` 未生效 → 菜单裸奔。global.css 已有 `[x-cloak]{display:none!important}`,补 `x-cloak` 即解决。 +- **改动**: + - `src/layouts/Layout.astro`:head 引入 Raleway(`` preconnect+stylesheet);body 顶部插入 `#loading-screen` 动画屏(用户给的 HTML/CSS 还原,h1 文案保留 Lorem ipsum);所有 `x-show` 下拉补 `x-cloak`(含 login.astro 语言 ul);footer 后加 `is:inline` 淡出脚本(`window.load` 后淡出,最少 500ms / 最多 3s 兜底)。 + - `src/styles/global.css`:追加**作用域隔离**的 loading 样式(全部在 `#loading-screen` 内;`@keyframes` 改名 `ls-text-shadow`;`prefers-reduced-motion` 仅限加载屏;避免 `#fdf9fd` 背景/`Raleway`/`a` 颜色污染整站黑白调性)。 +- **验证**:lint 0;`GET /en` 200,输出含 `id="loading-screen"`、`x-cloak`(×13)、淡出脚本、Raleway link 均到位。 +- **提醒点**:loading 屏用彩色(与站点纯黑白调性冲突),是用户明确要求;若要统一风格可改 `#loading-screen` 背景为白/黑。h1 文案是占位 Lorem ipsum,用户可能想换成品牌名。 + +## 加载屏黑白化 + 文案替换(12:1x)✅ +用户要求加载屏改成黑白(与站点纯黑白调性一致)并换文案。改动: +- Layout.astro 加载屏 h1 Lorem ipsum dolor sit amet. → Portfolio Studio(取自 siteTitle 品牌名),删掉 demo 残留(Hover over text to pause / Inspired by Tomas Brunsdon dribbble 链接),加小号副标

Loading

。 +- global.css 加载屏配色:背景 #fdf9fd→#fff、文字 #011a32→#0a0a0a、链接 #024794→#0a0a0a;动画 keyframes 彩色 shadow(#0c2ffb/#2cfcfd/#fb203b/#fefc4b)改灰阶(#000/#3a3a3a/#777/#bbb),保留偏移运动;h1 字号 5em→clamp(2.5rem,8vw,5rem) 防移动端溢出;新增 .ls-sub 等宽大写灰字样式。 +- 验证:GET /en 200,输出含 Portfolio Studio + ls-sub Loading,已无 Lorem/dribbble;CSS 黑白校验全通过(无 fdf9fd/0c2ffb/024794/011a32)。lint 0。 + +## 加载屏重构:is:inline → 独立组件 + 打包脚本(12:2x)✅ +用户认为 is:inline 不合理,要求优化(Alpine 或组件化)。结论:抽 src/components/LoadingScreen.astro 组件,最合理——不需为小事引入 Alpine(且有 window.load 竞态),普通 Astro 打包 diff --git a/src/components/RunwayLooks.astro b/src/components/RunwayLooks.astro index 742e9f8..71b91d9 100644 --- a/src/components/RunwayLooks.astro +++ b/src/components/RunwayLooks.astro @@ -250,7 +250,7 @@ const seasonOptions: { value: string; label: string }[] = [ -