{title}
+ + + +{summary}
+ + {tags.length > 0 && ( + + )} +From 081f072a391d987e3e7e4ec31d99874834df4e97 Mon Sep 17 00:00:00 2001
From: xy <10816187@qq.com>
Date: Fri, 21 Nov 2025 12:26:58 +0800
Subject: [PATCH] feat: a2
---
.qoder/quests/personal-blog-design.md | 1198 +++++++++++++++++
IMPLEMENTATION.md | 166 +++
src/components/BaseFooter.astro | 125 +-
src/components/BaseHeader.astro | 122 +-
src/components/PostCard.astro | 152 +++
src/components/Tag.astro | 51 +
src/components/ThemeToggle.tsx | 49 +
src/consts.ts | 28 +
src/content/config.ts | 17 +
src/content/posts/astro-introduction.md | 160 +++
src/content/posts/css-variables.md | 145 ++
src/content/posts/responsive-design.md | 281 ++++
.../posts/typescript-best-practices.md | 237 ++++
src/content/posts/welcome.md | 62 +
src/layouts/Layout.astro | 62 +-
src/pages/about.astro | 298 ++++
src/pages/index.astro | 132 +-
src/pages/posts/[...slug].astro | 341 ++++-
src/styles/base.css | 116 ++
19 files changed, 3641 insertions(+), 101 deletions(-)
create mode 100644 .qoder/quests/personal-blog-design.md
create mode 100644 IMPLEMENTATION.md
create mode 100644 src/components/PostCard.astro
create mode 100644 src/components/Tag.astro
create mode 100644 src/components/ThemeToggle.tsx
create mode 100644 src/content/config.ts
create mode 100644 src/content/posts/astro-introduction.md
create mode 100644 src/content/posts/css-variables.md
create mode 100644 src/content/posts/responsive-design.md
create mode 100644 src/content/posts/typescript-best-practices.md
create mode 100644 src/content/posts/welcome.md
create mode 100644 src/pages/about.astro
diff --git a/.qoder/quests/personal-blog-design.md b/.qoder/quests/personal-blog-design.md
new file mode 100644
index 0000000..ac8dc79
--- /dev/null
+++ b/.qoder/quests/personal-blog-design.md
@@ -0,0 +1,1198 @@
+# 个人博客设计文档
+
+## 设计目标
+
+设计并实现一个**美观、现代化**的个人博客系统,提供优质的阅读体验和视觉享受。
+
+## 核心设计理念
+
+### 视觉风格定位
+
+- **现代简约**:采用简洁的设计语言,避免视觉噪音,突出内容本身
+- **优雅配色**:构建和谐的色彩体系,支持明暗双主题切换
+- **流畅交互**:提供平滑的动画过渡和响应式反馈
+- **沉浸阅读**:优化排版和间距,营造舒适的阅读氛围
+
+### 用户体验目标
+
+- 访问者能够快速浏览博客文章列表
+- 文章内容呈现清晰易读,排版美观
+- 界面响应迅速,交互流畅自然
+- 支持多种设备和屏幕尺寸访问
+
+## 整体架构设计
+
+### 页面结构规划
+
+博客系统由以下核心页面组成:
+
+| 页面 | 路由 | 功能定位 |
+|------|------|----------|
+| 首页 | `/` | 展示博客文章列表,提供快速导航和内容预览 |
+| 文章详情页 | `/posts/[slug]` | 展示完整文章内容,包含标题、元信息、正文和相关操作 |
+| 关于页面 | `/about` | 介绍博主信息、联系方式和个人简介 |
+
+### 布局层次设计
+
+系统采用统一的布局框架,确保页面一致性:
+
+```mermaid
+graph TB
+ Layout[布局容器 Layout]
+ Header[页头 Header]
+ Main[主内容区 Main]
+ Footer[页脚 Footer]
+
+ Layout --> Header
+ Layout --> Main
+ Layout --> Footer
+
+ Header --> Nav[导航菜单]
+ Header --> Theme[主题切换]
+
+ Main --> Content[页面内容槽]
+ Main --> BgEffect[视觉背景效果]
+
+ Footer --> Info[版权信息]
+ Footer --> Links[社交链接]
+```
+
+## 设计系统规范
+
+### 色彩体系
+
+#### 明亮主题配色方案
+
+| 用途 | 色值 | 说明 |
+|------|------|------|
+| 主背景色 | `#FAFAFA` | 柔和的浅灰白色,减少视觉疲劳 |
+| 次级背景 | `#FFFFFF` | 纯白色,用于卡片和内容容器 |
+| 主文本色 | `#1A1A1A` | 深灰色,提供良好对比度 |
+| 次级文本色 | `#666666` | 中性灰,用于辅助信息 |
+| 强调色 | `#0066FF` | 明亮蓝色,用于链接和交互元素 |
+| 边框色 | `#E5E5E5` | 浅灰色,用于分隔线和边框 |
+
+#### 暗黑主题配色方案
+
+| 用途 | 色值 | 说明 |
+|------|------|------|
+| 主背景色 | `#0F0F0F` | 深黑色,护眼且沉浸 |
+| 次级背景 | `#1A1A1A` | 稍浅的黑色,用于卡片和内容容器 |
+| 主文本色 | `#E5E5E5` | 柔和的浅色,确保可读性 |
+| 次级文本色 | `#A0A0A0` | 中性灰,用于辅助信息 |
+| 强调色 | `#3B82F6` | 柔和蓝色,降低视觉刺激 |
+| 边框色 | `#2A2A2A` | 深灰色,用于分隔线和边框 |
+
+### 字体排版规范
+
+#### 字体家族选择
+
+- **主要字体**:系统默认字体栈,确保跨平台一致性
+ - 中文:`"PingFang SC", "Microsoft YaHei", "微软雅黑"`
+ - 英文:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue"`
+ - 代码:`"JetBrains Mono", "Fira Code", Consolas, Monaco, monospace`
+
+#### 字体尺寸规范
+
+| 层级 | 尺寸 | 行高 | 用途 |
+|------|------|------|------|
+| H1 标题 | 36px | 1.3 | 文章主标题 |
+| H2 标题 | 28px | 1.4 | 章节标题 |
+| H3 标题 | 22px | 1.4 | 子章节标题 |
+| 正文 | 17px | 1.8 | 文章正文内容 |
+| 小字 | 14px | 1.6 | 元信息、标签等 |
+| 微型字 | 12px | 1.5 | 页脚信息、版权等 |
+
+### 间距与尺寸系统
+
+采用 8px 为基础单位的间距系统:
+
+| 名称 | 数值 | 使用场景 |
+|------|------|----------|
+| xs | 4px | 紧密相关元素的微小间距 |
+| sm | 8px | 小型组件内部间距 |
+| md | 16px | 常规内容间距 |
+| lg | 24px | 区块之间的间距 |
+| xl | 32px | 主要区域分隔 |
+| 2xl | 48px | 大型模块分隔 |
+
+### 视觉效果规范
+
+#### 圆角设计
+
+| 元素类型 | 圆角值 | 说明 |
+|----------|--------|------|
+| 小型元素(按钮、标签) | 6px | 轻微圆角,现代感 |
+| 中型元素(卡片) | 12px | 柔和圆角,亲和力 |
+| 大型容器 | 16px | 明显圆角,层次感 |
+
+#### 阴影系统
+
+| 层级 | 阴影值 | 使用场景 |
+|------|--------|----------|
+| 浅层阴影 | `0 2px 8px rgba(0,0,0,0.05)` | 卡片悬停、小型浮层 |
+| 中层阴影 | `0 4px 16px rgba(0,0,0,0.08)` | 导航栏、主要卡片 |
+| 深层阴影 | `0 8px 24px rgba(0,0,0,0.12)` | 模态框、重要提示 |
+
+#### 动画过渡
+
+所有交互动画采用统一的缓动函数和时长:
+
+- **标准过渡**:`200ms ease-out` - 用于常规状态变化
+- **快速过渡**:`150ms ease-in-out` - 用于微小元素变化
+- **舒缓过渡**:`300ms cubic-bezier(0.4, 0, 0.2, 1)` - 用于页面级变化
+
+## 功能模块设计
+
+### 首页设计
+
+#### 布局结构
+
+首页采用单栏布局,突出内容展示:
+
+```mermaid
+graph TB
+ Index[首页]
+ Hero[顶部横幅区]
+ PostList[文章列表区]
+
+ Index --> Hero
+ Index --> PostList
+
+ Hero --> Title[博客标题]
+ Hero --> Desc[个人简介]
+
+ PostList --> Card1[文章卡片1]
+ PostList --> Card2[文章卡片2]
+ PostList --> CardN[文章卡片N]
+```
+
+#### 顶部横幅区域
+
+- **博客标题**:展示博客名称,使用大字号突出显示
+- **个人简介**:简短介绍博主或博客定位,控制在 1-2 行
+- **视觉装饰**:使用渐变背景或几何图案增强视觉吸引力
+
+#### 文章列表展示
+
+每篇文章以卡片形式呈现,包含以下信息:
+
+| 元素 | 展示内容 | 视觉处理 |
+|------|----------|----------|
+| 文章标题 | 完整标题文本 | 大字号、加粗,悬停时变色 |
+| 发布日期 | 格式化的日期 | 小字号、次级文本色 |
+| 文章摘要 | 内容前 150-200 字 | 常规字号、行高适中 |
+| 阅读标签 | 分类或标签名称 | 小型标签样式,配色醒目 |
+| 阅读时长 | 预估阅读分钟数 | 小字号、图标配合 |
+
+#### 交互行为设计
+
+- 卡片整体可点击,引导用户进入文章详情
+- 鼠标悬停时,卡片轻微上浮并显示阴影
+- 卡片间距适中,视觉呼吸感良好
+- 支持渐进式加载,优化长列表性能
+
+### 文章详情页设计
+
+#### 布局结构
+
+文章页采用居中阅读布局,最大宽度控制在 720-800px,确保舒适的阅读行宽:
+
+```mermaid
+graph TB
+ Post[文章详情页]
+ Meta[文章元信息区]
+ Title[文章标题区]
+ Content[文章正文区]
+ Actions[互动操作区]
+
+ Post --> Meta
+ Post --> Title
+ Post --> Content
+ Post --> Actions
+
+ Meta --> Date[发布日期]
+ Meta --> Tags[标签列表]
+ Meta --> ReadTime[阅读时长]
+
+ Content --> MD[Markdown渲染内容]
+
+ Actions --> Back[返回列表]
+ Actions --> Share[分享按钮]
+```
+
+#### 文章元信息区
+
+- **发布日期**:显示完整日期,格式如 `2024年3月15日`
+- **标签**:彩色标签样式,点击可筛选同类文章
+- **阅读时长**:基于字数自动计算预估时间
+- **作者信息**:可选展示作者名称和头像
+
+#### 正文内容渲染
+
+支持完整的 Markdown 语法,包含以下元素的样式优化:
+
+| Markdown 元素 | 视觉设计 |
+|---------------|----------|
+| 标题(H1-H6) | 层级分明的字号和间距,H2 级别添加下划线装饰 |
+| 段落 | 充足的行高(1.8),段落间距适中 |
+| 引用块 | 左侧彩色边框,背景色区分,斜体文字 |
+| 代码块 | 深色背景主题,语法高亮,行号显示,复制按钮 |
+| 行内代码 | 浅色背景,等宽字体,轻微圆角 |
+| 链接 | 强调色显示,悬停下划线 |
+| 列表 | 有序/无序列表样式优化,层级缩进清晰 |
+| 图片 | 自适应宽度,添加圆角和阴影,支持点击放大 |
+| 表格 | 斑马纹背景,边框细腻,表头加粗 |
+| 分隔线 | 细线样式,淡化处理 |
+
+#### 代码高亮方案
+
+- 使用流行的语法高亮主题(如 One Dark Pro、Nord)
+- 支持多种编程语言识别
+- 提供一键复制代码功能
+- 显示语言标识和行号
+
+#### 互动操作区
+
+- **返回按钮**:返回文章列表页
+- **分享功能**:支持复制链接、分享到社交平台
+- **目录导航**:长文章自动生成目录,侧边栏固定显示
+- **上/下篇导航**:快速跳转到相邻文章
+
+### 关于页面设计
+
+#### 内容结构
+
+```mermaid
+graph TB
+ About[关于页面]
+ Profile[个人简介区]
+ Skills[技能标签云]
+ Contact[联系方式区]
+
+ About --> Profile
+ About --> Skills
+ About --> Contact
+
+ Profile --> Avatar[头像]
+ Profile --> Bio[个人介绍]
+
+ Skills --> TagCloud[技能标签]
+
+ Contact --> Email[邮箱]
+ Contact --> Social[社交链接]
+```
+
+#### 个人简介区
+
+- **头像展示**:圆形头像,尺寸 120-150px
+- **个人介绍**:多段落文本,支持 Markdown 格式
+- **职业标签**:简短的职业或身份描述
+
+#### 技能标签云
+
+- 以标签形式展示擅长的技术或领域
+- 不同标签使用不同配色区分
+- 可选实现标签大小与熟练度关联
+
+#### 联系方式区
+
+- **邮箱地址**:点击可直接发送邮件
+- **社交媒体**:GitHub、Twitter、微信等,图标化展示
+- **友情链接**:推荐的博客或网站
+
+### 页头组件设计
+
+#### 布局与结构
+
+页头采用固定定位(sticky),始终停留在顶部:
+
+| 区域 | 功能 | 位置 |
+|------|------|------|
+| 导航菜单 | 首页、关于等链接 | 左侧 |
+| 博客标志 | 品牌标识或文字 | 左侧(可选) |
+| 主题切换 | 明暗模式切换按钮 | 右侧 |
+| 搜索入口 | 文章搜索功能 | 右侧(可选) |
+
+#### 视觉样式
+
+- **背景处理**:半透明背景 + 毛玻璃效果(backdrop-filter: blur)
+- **边框**:底部细线分隔
+- **高度**:60-70px,确保不过于占据屏幕空间
+- **响应式**:移动端转为汉堡菜单
+
+#### 主题切换功能
+
+- 提供明暗模式切换按钮,图标化设计(太阳/月亮图标)
+- 切换时平滑过渡色彩变化
+- 记住用户选择,保存到本地存储
+- 默认跟随系统主题设置
+
+### 页脚组件设计
+
+#### 内容布局
+
+```mermaid
+graph LR
+ Footer[页脚]
+ Left[左侧区域]
+ Center[中央区域]
+ Right[右侧区域]
+
+ Footer --> Left
+ Footer --> Center
+ Footer --> Right
+
+ Left --> Copyright[版权信息]
+ Center --> Links[友情链接]
+ Right --> Social[社交图标]
+```
+
+#### 信息展示
+
+| 内容 | 示例 | 样式 |
+|------|------|------|
+| 版权声明 | `© 2024 42的博客` | 小字号、次级色 |
+| 备案信息 | ICP 备案号及链接 | 小字号、可点击 |
+| 社交链接 | GitHub、Email 等图标 | 图标按钮,悬停变色 |
+| 技术栈说明 | `Powered by Astro` | 微型字号 |
+
+#### 视觉样式
+
+- 深色背景(明亮主题下为深灰,暗黑主题下更深)
+- 浅色文字,确保对比度
+- 固定高度 80-100px
+- 内容居中对齐
+
+## 内容数据管理
+
+### 文章数据结构
+
+每篇文章包含以下元数据和内容:
+
+| 字段 | 类型 | 说明 | 必需 |
+|------|------|------|------|
+| title | 文本 | 文章标题 | 是 |
+| slug | 文本 | URL 友好的标识符 | 是 |
+| date | 日期 | 发布日期 | 是 |
+| summary | 文本 | 文章摘要,150-200字 | 是 |
+| tags | 标签数组 | 文章分类标签 | 否 |
+| cover | 图片URL | 封面图地址 | 否 |
+| author | 文本 | 作者名称 | 否 |
+| readingTime | 数字 | 预估阅读分钟数 | 否 |
+| content | Markdown | 文章正文内容 | 是 |
+
+### 文章存储方案
+
+文章以 Markdown 文件形式存储在项目中:
+
+- **存储位置**:`/src/content/posts/` 目录
+- **文件命名**:使用 slug 作为文件名,如 `my-first-post.md`
+- **元数据位置**:Markdown 文件的 frontmatter 区域
+- **内容组织**:元数据下方为正文内容
+
+### 文章查询与渲染流程
+
+```mermaid
+graph LR
+ Request[页面请求]
+ Read[读取Markdown文件]
+ Parse[解析Frontmatter]
+ Render[渲染Markdown内容]
+ Display[页面展示]
+
+ Request --> Read
+ Read --> Parse
+ Parse --> Render
+ Render --> Display
+```
+
+系统在构建或运行时执行以下步骤:
+
+1. 扫描文章目录,获取所有 Markdown 文件
+2. 解析每个文件的 frontmatter,提取元数据
+3. 按发布日期降序排序文章列表
+4. 根据路由参数查找对应文章
+5. 将 Markdown 转换为 HTML 并应用样式
+6. 注入到页面模板中渲染
+
+## 响应式设计策略
+
+### 断点规划
+
+| 设备类型 | 断点范围 | 布局调整 |
+|----------|----------|----------|
+| 手机 | < 640px | 单栏布局,导航折叠,间距缩小 |
+| 平板 | 640px - 1024px | 单栏布局,适度间距 |
+| 桌面 | > 1024px | 最大宽度限制,充分留白 |
+
+### 移动端优化
+
+- **导航菜单**:转为汉堡菜单,点击展开侧边抽屉
+- **文章卡片**:移除复杂效果,简化布局
+- **字体大小**:适当缩小,保证可读性
+- **图片处理**:自适应宽度,延迟加载
+- **触摸优化**:增大点击区域,至少 44x44px
+
+## 性能优化策略
+
+### 加载性能
+
+- **图片优化**:使用现代图片格式(WebP),响应式图片加载
+- **懒加载**:文章列表和图片按需加载
+- **代码分割**:页面级别的代码分割,减少初始加载体积
+- **字体优化**:使用系统字体优先,减少自定义字体加载
+
+### 渲染性能
+
+- **静态生成**:利用 Astro 的静态生成能力,预渲染页面
+- **CSS 优化**:提取关键 CSS,内联首屏样式
+- **动画性能**:使用 transform 和 opacity 实现动画,避免重排
+- **虚拟滚动**:长列表场景下考虑虚拟滚动
+
+### 缓存策略
+
+- **静态资源**:设置长期缓存,文件名包含哈希值
+- **API 数据**:合理使用浏览器缓存
+- **服务端缓存**:启用 CDN 加速静态内容分发
+
+## 可访问性设计
+
+### 语义化 HTML
+
+- 使用正确的 HTML5 语义标签(header, nav, main, article, footer)
+- 标题层级合理,避免跳级
+- 列表使用正确的 ul/ol 标签
+
+### 键盘导航
+
+- 所有交互元素支持键盘操作
+- 明确的焦点指示样式
+- 合理的 Tab 顺序
+
+### 屏幕阅读器支持
+
+- 图片提供 alt 描述
+- 链接文本有意义,避免"点击这里"
+- ARIA 标签适当使用
+- 颜色对比度符合 WCAG 标准(至少 AA 级别)
+
+## 技术实现要点
+
+### 路由设计
+
+| 路由路径 | 页面组件 | 数据来源 |
+|----------|----------|----------|
+| `/` | `index.astro` | 查询所有文章元数据 |
+| `/posts/[slug]` | `[slug].astro` | 根据 slug 查询单篇文章 |
+| `/about` | `about.astro` | 静态内容 |
+
+### 组件组织结构
+
+```mermaid
+graph TB
+ Components[组件目录]
+ Layout[布局组件]
+ UI[UI组件]
+ Feature[功能组件]
+
+ Components --> Layout
+ Components --> UI
+ Components --> Feature
+
+ Layout --> BaseLayout[基础布局]
+ Layout --> PostLayout[文章布局]
+
+ UI --> Header[页头]
+ UI --> Footer[页脚]
+ UI --> Card[卡片]
+ UI --> Button[按钮]
+ UI --> Tag[标签]
+
+ Feature --> ThemeSwitch[主题切换]
+ Feature --> TOC[目录导航]
+ Feature --> CodeBlock[代码块]
+```
+
+### 状态管理策略
+
+- **主题状态**:使用浏览器 localStorage 持久化,页面级别的响应式状态
+- **文章数据**:静态构建时注入,无需客户端状态管理
+- **UI 交互状态**:组件内部 state,如菜单展开/收起
+
+### Markdown 处理方案
+
+- **解析器选择**:使用 Astro 内置的 Markdown 支持或集成 remark/rehype 插件
+- **语法高亮**:集成 Shiki 或 Prism.js
+- **扩展语法**:支持 GFM(GitHub Flavored Markdown)
+- **自定义渲染**:可为特定元素定制渲染逻辑
+
+## 扩展功能规划
+
+以下功能为可选的增强方向,可在后续迭代中实现:
+
+### 搜索功能
+
+- 全文搜索文章内容和标题
+- 实时搜索建议
+- 搜索结果高亮关键词
+
+### 文章分类与标签
+
+- 按标签筛选文章
+- 标签云展示
+- 分类页面独立展示
+
+### 评论系统
+
+- 集成第三方评论服务(如 Giscus、Utterances)
+- 评论按时间倒序显示
+- 支持 Markdown 格式评论
+
+### RSS 订阅
+
+- 生成标准 RSS/Atom feed
+- 在页头提供订阅链接
+- 自动更新 feed 内容
+
+### 阅读进度指示
+
+- 文章顶部显示阅读进度条
+- 滚动时平滑更新进度
+- 视觉上融入页面设计
+
+### 图片预览功能
+
+- 点击文章内图片可放大查看
+- 灯箱效果展示
+- 支持键盘左右切换
+
+## 设计交付物
+
+### 必需实现的页面
+
+- 首页(文章列表)
+- 文章详情页
+- 关于页面
+
+### 必需实现的组件
+
+- 基础布局组件(Layout)
+- 页头组件(Header)
+- 页脚组件(Footer)
+- 文章卡片组件(PostCard)
+- 主题切换组件(ThemeToggle)
+
+### 样式系统
+
+- CSS 变量定义(色彩、字体、间距)
+- 响应式断点样式
+- Markdown 内容样式
+- 动画过渡效果
+
+### 内容准备
+
+- 示例文章数据(至少 3-5 篇)
+- 关于页面文案
+- 配置文件(网站标题、描述等)
+
+## 设计原则总结
+
+### 美观性保证
+
+- **一致的视觉语言**:统一的配色、字体、间距和圆角
+- **精致的细节处理**:阴影、过渡动画、悬停效果
+- **呼吸感的留白**:避免拥挤,给予视觉休息空间
+- **高质量的配色**:和谐的色彩搭配,明暗主题都优雅
+
+### 用户体验优先
+
+- **快速加载**:优化资源体积,提升首屏速度
+- **清晰导航**:用户随时知道自己在哪里,如何返回
+- **易读排版**:舒适的行高、字号和行宽
+- **流畅交互**:所有操作有即时反馈,无卡顿
+
+### 可维护性
+
+- **组件化设计**:功能模块独立,便于复用和修改
+- **命名规范**:清晰的文件和变量命名
+- **文档齐全**:关键设计决策有记录
+- **扩展友好**:预留扩展接口,便于后续功能添加
+ Main[主内容区 Main]
+ Footer[页脚 Footer]
+
+ Layout --> Header
+ Layout --> Main
+ Layout --> Footer
+
+ Header --> Nav[导航菜单]
+ Header --> Theme[主题切换]
+
+ Main --> Content[页面内容槽]
+ Main --> BgEffect[视觉背景效果]
+
+ Footer --> Info[版权信息]
+ Footer --> Links[社交链接]
+```
+
+## 设计系统规范
+
+### 色彩体系
+
+#### 明亮主题配色方案
+
+| 用途 | 色值 | 说明 |
+|------|------|------|
+| 主背景色 | `#FAFAFA` | 柔和的浅灰白色,减少视觉疲劳 |
+| 次级背景 | `#FFFFFF` | 纯白色,用于卡片和内容容器 |
+| 主文本色 | `#1A1A1A` | 深灰色,提供良好对比度 |
+| 次级文本色 | `#666666` | 中性灰,用于辅助信息 |
+| 强调色 | `#0066FF` | 明亮蓝色,用于链接和交互元素 |
+| 边框色 | `#E5E5E5` | 浅灰色,用于分隔线和边框 |
+
+#### 暗黑主题配色方案
+
+| 用途 | 色值 | 说明 |
+|------|------|------|
+| 主背景色 | `#0F0F0F` | 深黑色,护眼且沉浸 |
+| 次级背景 | `#1A1A1A` | 稍浅的黑色,用于卡片和内容容器 |
+| 主文本色 | `#E5E5E5` | 柔和的浅色,确保可读性 |
+| 次级文本色 | `#A0A0A0` | 中性灰,用于辅助信息 |
+| 强调色 | `#3B82F6` | 柔和蓝色,降低视觉刺激 |
+| 边框色 | `#2A2A2A` | 深灰色,用于分隔线和边框 |
+
+### 字体排版规范
+
+#### 字体家族选择
+
+- **主要字体**:系统默认字体栈,确保跨平台一致性
+ - 中文:`"PingFang SC", "Microsoft YaHei", "微软雅黑"`
+ - 英文:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue"`
+ - 代码:`"JetBrains Mono", "Fira Code", Consolas, Monaco, monospace`
+
+#### 字体尺寸规范
+
+| 层级 | 尺寸 | 行高 | 用途 |
+|------|------|------|------|
+| H1 标题 | 36px | 1.3 | 文章主标题 |
+| H2 标题 | 28px | 1.4 | 章节标题 |
+| H3 标题 | 22px | 1.4 | 子章节标题 |
+| 正文 | 17px | 1.8 | 文章正文内容 |
+| 小字 | 14px | 1.6 | 元信息、标签等 |
+| 微型字 | 12px | 1.5 | 页脚信息、版权等 |
+
+### 间距与尺寸系统
+
+采用 8px 为基础单位的间距系统:
+
+| 名称 | 数值 | 使用场景 |
+|------|------|----------|
+| xs | 4px | 紧密相关元素的微小间距 |
+| sm | 8px | 小型组件内部间距 |
+| md | 16px | 常规内容间距 |
+| lg | 24px | 区块之间的间距 |
+| xl | 32px | 主要区域分隔 |
+| 2xl | 48px | 大型模块分隔 |
+
+### 视觉效果规范
+
+#### 圆角设计
+
+| 元素类型 | 圆角值 | 说明 |
+|----------|--------|------|
+| 小型元素(按钮、标签) | 6px | 轻微圆角,现代感 |
+| 中型元素(卡片) | 12px | 柔和圆角,亲和力 |
+| 大型容器 | 16px | 明显圆角,层次感 |
+
+#### 阴影系统
+
+| 层级 | 阴影值 | 使用场景 |
+|------|--------|----------|
+| 浅层阴影 | `0 2px 8px rgba(0,0,0,0.05)` | 卡片悬停、小型浮层 |
+| 中层阴影 | `0 4px 16px rgba(0,0,0,0.08)` | 导航栏、主要卡片 |
+| 深层阴影 | `0 8px 24px rgba(0,0,0,0.12)` | 模态框、重要提示 |
+
+#### 动画过渡
+
+所有交互动画采用统一的缓动函数和时长:
+
+- **标准过渡**:`200ms ease-out` - 用于常规状态变化
+- **快速过渡**:`150ms ease-in-out` - 用于微小元素变化
+- **舒缓过渡**:`300ms cubic-bezier(0.4, 0, 0.2, 1)` - 用于页面级变化
+
+## 功能模块设计
+
+### 首页设计
+
+#### 布局结构
+
+首页采用单栏布局,突出内容展示:
+
+```mermaid
+graph TB
+ Index[首页]
+ Hero[顶部横幅区]
+ PostList[文章列表区]
+
+ Index --> Hero
+ Index --> PostList
+
+ Hero --> Title[博客标题]
+ Hero --> Desc[个人简介]
+
+ PostList --> Card1[文章卡片1]
+ PostList --> Card2[文章卡片2]
+ PostList --> CardN[文章卡片N]
+```
+
+#### 顶部横幅区域
+
+- **博客标题**:展示博客名称,使用大字号突出显示
+- **个人简介**:简短介绍博主或博客定位,控制在 1-2 行
+- **视觉装饰**:使用渐变背景或几何图案增强视觉吸引力
+
+#### 文章列表展示
+
+每篇文章以卡片形式呈现,包含以下信息:
+
+| 元素 | 展示内容 | 视觉处理 |
+|------|----------|----------|
+| 文章标题 | 完整标题文本 | 大字号、加粗,悬停时变色 |
+| 发布日期 | 格式化的日期 | 小字号、次级文本色 |
+| 文章摘要 | 内容前 150-200 字 | 常规字号、行高适中 |
+| 阅读标签 | 分类或标签名称 | 小型标签样式,配色醒目 |
+| 阅读时长 | 预估阅读分钟数 | 小字号、图标配合 |
+
+#### 交互行为设计
+
+- 卡片整体可点击,引导用户进入文章详情
+- 鼠标悬停时,卡片轻微上浮并显示阴影
+- 卡片间距适中,视觉呼吸感良好
+- 支持渐进式加载,优化长列表性能
+
+### 文章详情页设计
+
+#### 布局结构
+
+文章页采用居中阅读布局,最大宽度控制在 720-800px,确保舒适的阅读行宽:
+
+```mermaid
+graph TB
+ Post[文章详情页]
+ Meta[文章元信息区]
+ Title[文章标题区]
+ Content[文章正文区]
+ Actions[互动操作区]
+
+ Post --> Meta
+ Post --> Title
+ Post --> Content
+ Post --> Actions
+
+ Meta --> Date[发布日期]
+ Meta --> Tags[标签列表]
+ Meta --> ReadTime[阅读时长]
+
+ Content --> MD[Markdown渲染内容]
+
+ Actions --> Back[返回列表]
+ Actions --> Share[分享按钮]
+```
+
+#### 文章元信息区
+
+- **发布日期**:显示完整日期,格式如 `2024年3月15日`
+- **标签**:彩色标签样式,点击可筛选同类文章
+- **阅读时长**:基于字数自动计算预估时间
+- **作者信息**:可选展示作者名称和头像
+
+#### 正文内容渲染
+
+支持完整的 Markdown 语法,包含以下元素的样式优化:
+
+| Markdown 元素 | 视觉设计 |
+|---------------|----------|
+| 标题(H1-H6) | 层级分明的字号和间距,H2 级别添加下划线装饰 |
+| 段落 | 充足的行高(1.8),段落间距适中 |
+| 引用块 | 左侧彩色边框,背景色区分,斜体文字 |
+| 代码块 | 深色背景主题,语法高亮,行号显示,复制按钮 |
+| 行内代码 | 浅色背景,等宽字体,轻微圆角 |
+| 链接 | 强调色显示,悬停下划线 |
+| 列表 | 有序/无序列表样式优化,层级缩进清晰 |
+| 图片 | 自适应宽度,添加圆角和阴影,支持点击放大 |
+| 表格 | 斑马纹背景,边框细腻,表头加粗 |
+| 分隔线 | 细线样式,淡化处理 |
+
+#### 代码高亮方案
+
+- 使用流行的语法高亮主题(如 One Dark Pro、Nord)
+- 支持多种编程语言识别
+- 提供一键复制代码功能
+- 显示语言标识和行号
+
+#### 互动操作区
+
+- **返回按钮**:返回文章列表页
+- **分享功能**:支持复制链接、分享到社交平台
+- **目录导航**:长文章自动生成目录,侧边栏固定显示
+- **上/下篇导航**:快速跳转到相邻文章
+
+### 关于页面设计
+
+#### 内容结构
+
+```mermaid
+graph TB
+ About[关于页面]
+ Profile[个人简介区]
+ Skills[技能标签云]
+ Contact[联系方式区]
+
+ About --> Profile
+ About --> Skills
+ About --> Contact
+
+ Profile --> Avatar[头像]
+ Profile --> Bio[个人介绍]
+
+ Skills --> TagCloud[技能标签]
+
+ Contact --> Email[邮箱]
+ Contact --> Social[社交链接]
+```
+
+#### 个人简介区
+
+- **头像展示**:圆形头像,尺寸 120-150px
+- **个人介绍**:多段落文本,支持 Markdown 格式
+- **职业标签**:简短的职业或身份描述
+
+#### 技能标签云
+
+- 以标签形式展示擅长的技术或领域
+- 不同标签使用不同配色区分
+- 可选实现标签大小与熟练度关联
+
+#### 联系方式区
+
+- **邮箱地址**:点击可直接发送邮件
+- **社交媒体**:GitHub、Twitter、微信等,图标化展示
+- **友情链接**:推荐的博客或网站
+
+### 页头组件设计
+
+#### 布局与结构
+
+页头采用固定定位(sticky),始终停留在顶部:
+
+| 区域 | 功能 | 位置 |
+|------|------|------|
+| 导航菜单 | 首页、关于等链接 | 左侧 |
+| 博客标志 | 品牌标识或文字 | 左侧(可选) |
+| 主题切换 | 明暗模式切换按钮 | 右侧 |
+| 搜索入口 | 文章搜索功能 | 右侧(可选) |
+
+#### 视觉样式
+
+- **背景处理**:半透明背景 + 毛玻璃效果(backdrop-filter: blur)
+- **边框**:底部细线分隔
+- **高度**:60-70px,确保不过于占据屏幕空间
+- **响应式**:移动端转为汉堡菜单
+
+#### 主题切换功能
+
+- 提供明暗模式切换按钮,图标化设计(太阳/月亮图标)
+- 切换时平滑过渡色彩变化
+- 记住用户选择,保存到本地存储
+- 默认跟随系统主题设置
+
+### 页脚组件设计
+
+#### 内容布局
+
+```mermaid
+graph LR
+ Footer[页脚]
+ Left[左侧区域]
+ Center[中央区域]
+ Right[右侧区域]
+
+ Footer --> Left
+ Footer --> Center
+ Footer --> Right
+
+ Left --> Copyright[版权信息]
+ Center --> Links[友情链接]
+ Right --> Social[社交图标]
+```
+
+#### 信息展示
+
+| 内容 | 示例 | 样式 |
+|------|------|------|
+| 版权声明 | `© 2024 42的博客` | 小字号、次级色 |
+| 备案信息 | ICP 备案号及链接 | 小字号、可点击 |
+| 社交链接 | GitHub、Email 等图标 | 图标按钮,悬停变色 |
+| 技术栈说明 | `Powered by Astro` | 微型字号 |
+
+#### 视觉样式
+
+- 深色背景(明亮主题下为深灰,暗黑主题下更深)
+- 浅色文字,确保对比度
+- 固定高度 80-100px
+- 内容居中对齐
+
+## 内容数据管理
+
+### 文章数据结构
+
+每篇文章包含以下元数据和内容:
+
+| 字段 | 类型 | 说明 | 必需 |
+|------|------|------|------|
+| title | 文本 | 文章标题 | 是 |
+| slug | 文本 | URL 友好的标识符 | 是 |
+| date | 日期 | 发布日期 | 是 |
+| summary | 文本 | 文章摘要,150-200字 | 是 |
+| tags | 标签数组 | 文章分类标签 | 否 |
+| cover | 图片URL | 封面图地址 | 否 |
+| author | 文本 | 作者名称 | 否 |
+| readingTime | 数字 | 预估阅读分钟数 | 否 |
+| content | Markdown | 文章正文内容 | 是 |
+
+### 文章存储方案
+
+文章以 Markdown 文件形式存储在项目中:
+
+- **存储位置**:`/src/content/posts/` 目录
+- **文件命名**:使用 slug 作为文件名,如 `my-first-post.md`
+- **元数据位置**:Markdown 文件的 frontmatter 区域
+- **内容组织**:元数据下方为正文内容
+
+### 文章查询与渲染流程
+
+```mermaid
+graph LR
+ Request[页面请求]
+ Read[读取Markdown文件]
+ Parse[解析Frontmatter]
+ Render[渲染Markdown内容]
+ Display[页面展示]
+
+ Request --> Read
+ Read --> Parse
+ Parse --> Render
+ Render --> Display
+```
+
+系统在构建或运行时执行以下步骤:
+
+1. 扫描文章目录,获取所有 Markdown 文件
+2. 解析每个文件的 frontmatter,提取元数据
+3. 按发布日期降序排序文章列表
+4. 根据路由参数查找对应文章
+5. 将 Markdown 转换为 HTML 并应用样式
+6. 注入到页面模板中渲染
+
+## 响应式设计策略
+
+### 断点规划
+
+| 设备类型 | 断点范围 | 布局调整 |
+|----------|----------|----------|
+| 手机 | < 640px | 单栏布局,导航折叠,间距缩小 |
+| 平板 | 640px - 1024px | 单栏布局,适度间距 |
+| 桌面 | > 1024px | 最大宽度限制,充分留白 |
+
+### 移动端优化
+
+- **导航菜单**:转为汉堡菜单,点击展开侧边抽屉
+- **文章卡片**:移除复杂效果,简化布局
+- **字体大小**:适当缩小,保证可读性
+- **图片处理**:自适应宽度,延迟加载
+- **触摸优化**:增大点击区域,至少 44x44px
+
+## 性能优化策略
+
+### 加载性能
+
+- **图片优化**:使用现代图片格式(WebP),响应式图片加载
+- **懒加载**:文章列表和图片按需加载
+- **代码分割**:页面级别的代码分割,减少初始加载体积
+- **字体优化**:使用系统字体优先,减少自定义字体加载
+
+### 渲染性能
+
+- **静态生成**:利用 Astro 的静态生成能力,预渲染页面
+- **CSS 优化**:提取关键 CSS,内联首屏样式
+- **动画性能**:使用 transform 和 opacity 实现动画,避免重排
+- **虚拟滚动**:长列表场景下考虑虚拟滚动
+
+### 缓存策略
+
+- **静态资源**:设置长期缓存,文件名包含哈希值
+- **API 数据**:合理使用浏览器缓存
+- **服务端缓存**:启用 CDN 加速静态内容分发
+
+## 可访问性设计
+
+### 语义化 HTML
+
+- 使用正确的 HTML5 语义标签(header, nav, main, article, footer)
+- 标题层级合理,避免跳级
+- 列表使用正确的 ul/ol 标签
+
+### 键盘导航
+
+- 所有交互元素支持键盘操作
+- 明确的焦点指示样式
+- 合理的 Tab 顺序
+
+### 屏幕阅读器支持
+
+- 图片提供 alt 描述
+- 链接文本有意义,避免"点击这里"
+- ARIA 标签适当使用
+- 颜色对比度符合 WCAG 标准(至少 AA 级别)
+
+## 技术实现要点
+
+### 路由设计
+
+| 路由路径 | 页面组件 | 数据来源 |
+|----------|----------|----------|
+| `/` | `index.astro` | 查询所有文章元数据 |
+| `/posts/[slug]` | `[slug].astro` | 根据 slug 查询单篇文章 |
+| `/about` | `about.astro` | 静态内容 |
+
+### 组件组织结构
+
+```mermaid
+graph TB
+ Components[组件目录]
+ Layout[布局组件]
+ UI[UI组件]
+ Feature[功能组件]
+
+ Components --> Layout
+ Components --> UI
+ Components --> Feature
+
+ Layout --> BaseLayout[基础布局]
+ Layout --> PostLayout[文章布局]
+
+ UI --> Header[页头]
+ UI --> Footer[页脚]
+ UI --> Card[卡片]
+ UI --> Button[按钮]
+ UI --> Tag[标签]
+
+ Feature --> ThemeSwitch[主题切换]
+ Feature --> TOC[目录导航]
+ Feature --> CodeBlock[代码块]
+```
+
+### 状态管理策略
+
+- **主题状态**:使用浏览器 localStorage 持久化,页面级别的响应式状态
+- **文章数据**:静态构建时注入,无需客户端状态管理
+- **UI 交互状态**:组件内部 state,如菜单展开/收起
+
+### Markdown 处理方案
+
+- **解析器选择**:使用 Astro 内置的 Markdown 支持或集成 remark/rehype 插件
+- **语法高亮**:集成 Shiki 或 Prism.js
+- **扩展语法**:支持 GFM(GitHub Flavored Markdown)
+- **自定义渲染**:可为特定元素定制渲染逻辑
+
+## 扩展功能规划
+
+以下功能为可选的增强方向,可在后续迭代中实现:
+
+### 搜索功能
+
+- 全文搜索文章内容和标题
+- 实时搜索建议
+- 搜索结果高亮关键词
+
+### 文章分类与标签
+
+- 按标签筛选文章
+- 标签云展示
+- 分类页面独立展示
+
+### 评论系统
+
+- 集成第三方评论服务(如 Giscus、Utterances)
+- 评论按时间倒序显示
+- 支持 Markdown 格式评论
+
+### RSS 订阅
+
+- 生成标准 RSS/Atom feed
+- 在页头提供订阅链接
+- 自动更新 feed 内容
+
+### 阅读进度指示
+
+- 文章顶部显示阅读进度条
+- 滚动时平滑更新进度
+- 视觉上融入页面设计
+
+### 图片预览功能
+
+- 点击文章内图片可放大查看
+- 灯箱效果展示
+- 支持键盘左右切换
+
+## 设计交付物
+
+### 必需实现的页面
+
+- 首页(文章列表)
+- 文章详情页
+- 关于页面
+
+### 必需实现的组件
+
+- 基础布局组件(Layout)
+- 页头组件(Header)
+- 页脚组件(Footer)
+- 文章卡片组件(PostCard)
+- 主题切换组件(ThemeToggle)
+
+### 样式系统
+
+- CSS 变量定义(色彩、字体、间距)
+- 响应式断点样式
+- Markdown 内容样式
+- 动画过渡效果
+
+### 内容准备
+
+- 示例文章数据(至少 3-5 篇)
+- 关于页面文案
+- 配置文件(网站标题、描述等)
+
+## 设计原则总结
+
+### 美观性保证
+
+- **一致的视觉语言**:统一的配色、字体、间距和圆角
+- **精致的细节处理**:阴影、过渡动画、悬停效果
+- **呼吸感的留白**:避免拥挤,给予视觉休息空间
+- **高质量的配色**:和谐的色彩搭配,明暗主题都优雅
+
+### 用户体验优先
+
+- **快速加载**:优化资源体积,提升首屏速度
+- **清晰导航**:用户随时知道自己在哪里,如何返回
+- **易读排版**:舒适的行高、字号和行宽
+- **流畅交互**:所有操作有即时反馈,无卡顿
+
+### 可维护性
+
+- **组件化设计**:功能模块独立,便于复用和修改
+- **命名规范**:清晰的文件和变量命名
+- **文档齐全**:关键设计决策有记录
+- **扩展友好**:预留扩展接口,便于后续功能添加
diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md
new file mode 100644
index 0000000..00ce631
--- /dev/null
+++ b/IMPLEMENTATION.md
@@ -0,0 +1,166 @@
+# 个人博客实现总结
+
+## 项目概述
+
+基于设计文档成功实现了一个现代化、美观的个人博客系统,使用 Astro + SolidJS 技术栈。
+
+## 已实现功能
+
+### 核心页面
+- ✅ **首页**: Hero 区域 + 文章卡片列表
+- ✅ **文章详情页**: 完整的 Markdown 渲染和样式
+- ✅ **关于页面**: 个人简介、技能标签云、联系方式
+
+### 核心组件
+- ✅ **Layout**: 基础布局,支持自定义标题和描述
+- ✅ **BaseHeader**: 导航栏,包含主题切换功能
+- ✅ **BaseFooter**: 页脚,版权信息和社交链接
+- ✅ **ThemeToggle**: 明暗主题切换(SolidJS 组件)
+- ✅ **PostCard**: 文章卡片,带悬停效果
+- ✅ **Tag**: 彩色标签,自动配色
+
+### 设计系统
+- ✅ **CSS 变量**: 完整的色彩、字体、间距、阴影、圆角定义
+- ✅ **明暗主题**: 支持主题切换,保存到 localStorage
+- ✅ **响应式设计**: 适配移动端、平板和桌面
+- ✅ **动画过渡**: 统一的过渡效果
+
+### 内容管理
+- ✅ **Content Collections**: 使用 Astro 的类型安全内容管理
+- ✅ **示例文章**: 5 篇高质量示例博客文章
+- ✅ **Markdown 样式**: 完整的 Markdown 元素样式优化
+
+## 技术栈
+
+- **框架**: Astro 5.15.8
+- **UI 库**: SolidJS 1.9.10
+- **语言**: TypeScript
+- **包管理**: PNPM
+- **Node 版本**: 22.21.1 (Volta)
+
+## 项目结构
+
+```
+blog/
+├── src/
+│ ├── components/ # 组件
+│ │ ├── BaseHeader.astro
+│ │ ├── BaseFooter.astro
+│ │ ├── ThemeToggle.tsx
+│ │ ├── PostCard.astro
+│ │ └── Tag.astro
+│ ├── content/ # 内容
+│ │ ├── config.ts # Content Collections 配置
+│ │ └── posts/ # 博客文章
+│ │ ├── welcome.md
+│ │ ├── css-variables.md
+│ │ ├── astro-introduction.md
+│ │ ├── typescript-best-practices.md
+│ │ └── responsive-design.md
+│ ├── layouts/ # 布局
+│ │ └── Layout.astro
+│ ├── pages/ # 页面路由
+│ │ ├── index.astro # 首页
+│ │ ├── about.astro # 关于页面
+│ │ └── posts/
+│ │ └── [...slug].astro # 文章详情页
+│ ├── styles/ # 样式
+│ │ ├── base.css # 设计系统
+│ │ └── reset.css
+│ └── consts.ts # 配置常量
+├── astro.config.mjs # Astro 配置
+└── package.json
+```
+
+## 设计特色
+
+### 视觉设计
+- **现代简约**: 简洁的设计语言,突出内容
+- **优雅配色**: 和谐的明暗双主题
+- **流畅交互**: 平滑的动画过渡
+- **渐变元素**: Hero 区域标题渐变效果
+
+### 用户体验
+- **快速加载**: 利用 Astro 的静态生成
+- **主题切换**: 支持明暗模式,跟随系统偏好
+- **响应式**: 完美适配各种设备
+- **易读排版**: 舒适的行高、字号和行宽
+
+### 技术亮点
+- **类型安全**: Content Collections 提供类型检查
+- **SEO 友好**: 正确的 meta 标签和语义化 HTML
+- **性能优化**: 预渲染静态页面
+- **可维护性**: 组件化设计,CSS 变量系统
+
+## 启动项目
+
+```bash
+# 安装依赖
+pnpm install
+
+# 启动开发服务器
+pnpm dev
+
+# 构建生产版本
+pnpm build
+
+# 预览构建结果
+pnpm preview
+```
+
+## 访问地址
+
+- 本地开发: http://localhost:4322
+- 首页: http://localhost:4322/
+- 关于: http://localhost:4322/about
+- 文章示例: http://localhost:4322/posts/welcome
+
+## 自定义配置
+
+编辑 `/src/consts.ts` 修改博客配置:
+
+```typescript
+export const metadata = {
+ siteTitle: "你的博客名称",
+ siteDescription: "你的博客描述",
+ author: "你的名字",
+ email: "your-email@example.com",
+ githubUrl: "https://github.com/yourusername",
+ // ... 更多配置
+}
+```
+
+## 添加新文章
+
+1. 在 `/src/content/posts/` 创建新的 `.md` 文件
+2. 添加 frontmatter:
+
+```markdown
+---
+title: "文章标题"
+date: 2024-11-21
+summary: "文章摘要"
+tags: ["标签1", "标签2"]
+---
+
+文章内容...
+```
+
+3. 文章会自动出现在首页列表
+
+## 主题定制
+
+修改 `/src/styles/base.css` 中的 CSS 变量:
+
+```css
+:root {
+ --accent-color: #0066FF; /* 主题色 */
+ --text-h1: 36px; /* 标题字号 */
+ --space-md: 16px; /* 间距 */
+ /* ... 更多变量 */
+}
+```
+
+## 总结
+
+成功按照设计文档实现了一个功能完整、美观现代的个人博客系统。所有核心功能都已实现并测试通过,可以直接使用或进一步定制。
diff --git a/src/components/BaseFooter.astro b/src/components/BaseFooter.astro
index 484f69e..2f8b050 100644
--- a/src/components/BaseFooter.astro
+++ b/src/components/BaseFooter.astro
@@ -1,28 +1,107 @@
-
+---
+import { metadata } from "@/consts";
+const { siteTitle, icpNumber, githubUrl } = metadata;
+const currentYear = new Date().getFullYear();
+---
+
+
diff --git a/src/components/BaseHeader.astro b/src/components/BaseHeader.astro
index 6688727..597ca83 100644
--- a/src/components/BaseHeader.astro
+++ b/src/components/BaseHeader.astro
@@ -1,43 +1,125 @@
+---
+import ThemeToggle from "./ThemeToggle";
+import { metadata } from "@/consts";
+const { siteTitle } = metadata;
+---
+
+ {summary}{title}
+
+
+
+
又是静态内容
+
+```
+
+### 延迟加载
+
+非首屏图片延迟加载:
+
+```html
+
+```
+
+## 调试技巧
+
+### Chrome DevTools
+
+1. 切换设备模拟
+2. 查看断点效果
+3. 测试不同屏幕尺寸
+4. 模拟网络速度
+
+### 有用的 CSS
+
+调试边框:
+
+```css
+/* 开发时使用 */
+* {
+ outline: 1px solid red;
+}
+```
+
+## 常见陷阱
+
+1. **固定高度**: 避免使用固定高度,使用 `min-height` 代替
+2. **像素完美**: 不同设备有差异是正常的
+3. **忽略横屏**: 记得测试横屏模式
+4. **过多断点**: 保持简单,不要为每个设备单独设置
+
+## 检查清单
+
+- [ ] 移动端优先设计
+- [ ] 触摸目标至少 44x44px
+- [ ] 图片响应式处理
+- [ ] 测试常见断点
+- [ ] 检查横屏模式
+- [ ] 优化加载性能
+- [ ] 测试真实设备
+
+## 总结
+
+响应式设计是一门艺术,需要在美观、性能和用户体验之间找到平衡。记住:
+
+- 从小屏幕开始
+- 使用现代布局技术
+- 关注性能
+- 在真实设备上测试
+
+优秀的响应式设计应该让用户感觉不到它的存在 —— 一切都是那么自然流畅。
diff --git a/src/content/posts/typescript-best-practices.md b/src/content/posts/typescript-best-practices.md
new file mode 100644
index 0000000..92b3b5d
--- /dev/null
+++ b/src/content/posts/typescript-best-practices.md
@@ -0,0 +1,237 @@
+---
+title: "TypeScript 最佳实践"
+date: 2024-11-10
+summary: "TypeScript 为 JavaScript 带来了类型安全,但如何正确使用它以获得最佳开发体验?本文总结了一些 TypeScript 开发中的最佳实践和常见陷阱。"
+tags: ["TypeScript", "JavaScript", "编程"]
+---
+
+# TypeScript 最佳实践
+
+TypeScript 已经成为现代前端开发的标配。正确使用 TypeScript 可以显著提高代码质量和开发效率,但不当使用也可能适得其反。
+
+## 基础类型定义
+
+### 使用类型推断
+
+TypeScript 的类型推断很强大,不需要每个地方都显式标注类型:
+
+```typescript
+// ❌ 不必要的类型标注
+const count: number = 0;
+const name: string = "TypeScript";
+
+// ✅ 利用类型推断
+const count = 0;
+const name = "TypeScript";
+```
+
+### 优先使用接口而非类型别名
+
+对于对象类型,接口通常是更好的选择:
+
+```typescript
+// ✅ 使用接口
+interface User {
+ id: number;
+ name: string;
+ email: string;
+}
+
+// ❌ 避免过度使用 type
+type User = {
+ id: number;
+ name: string;
+ email: string;
+}
+```
+
+但是对于联合类型、元组等,type 更合适:
+
+```typescript
+type Status = "pending" | "success" | "error";
+type Point = [number, number];
+```
+
+## 高级类型技巧
+
+### 使用泛型提高复用性
+
+```typescript
+// 通用的 API 响应类型
+interface ApiResponse{paragraph}
+ ))} +{post.date}
-{post.summary}
- - )) - } -{heroDescription}
+