- 修改前: 使用 cyan-teal-purple 渐变色
- 修改后: 简洁的白色到紫色渐变
- 影响文件:
components/gradient-text.tsx- 标题渐变components/feature-card.tsx- 卡片边框渐变app/rd/page.tsx- 按钮样式
- 新增文件:
app/rd/loading.tsx- 骨架屏加载状态app/rd/error.tsx- 错误边界页面
- 功能:
- 优雅的加载动画
- 友好的错误提示
- 重试和返回首页功能
- 新增文件:
hooks/useInView.ts- Intersection Observer hookcomponents/animated-section.tsx- 区域动画组件components/animated-card.tsx- 卡片动画组件
- 功能:
- 懒加载动画(只在进入视口时触发)
- 减少不必要的动画渲染
- 提升性能和流畅度
- 修复内容:
- StickyNav 定位从
top-20改为top-16 - 所有页面的
scroll-mt-32改为scroll-mt-24 - 消除导航栏和内容之间的空隙
- StickyNav 定位从
- 新增文件:
config/site.ts- 站点配置app/rd/qdf/metadata.ts- QDF 页面元数据示例
- 包含: OpenGraph、Twitter Cards、关键词等
为整个区域添加入场动画:
```tsx import { AnimatedSection } from '@/components/animated-section'
为卡片列表添加交错动画:
```tsx import { AnimatedCard } from '@/components/animated-card'
{items.map((item, i) => (
))}
\`\`\`
自定义视口检测逻辑:
```tsx import { useInView } from '@/hooks/useInView'
function MyComponent() { const { ref, isInView } = useInView({ threshold: 0.5 })
return (
{isInView ? '在视口中' : '不在视口中'}
)
}
```
-
为每个页面添加独立的 metadata
/rd/cds/page.tsx- C&DS metadata/rd/gt/page.tsx- GT metadata
-
图片优化
- 使用 Next.js Image 组件
- 添加 WebP/AVIF 格式支持
- 配置图片 CDN
-
字体优化
- 检查字体加载策略
- 考虑字体子集化
-
Bundle 分析和优化
- 运行 `npm install @next/bundle-analyzer`
- 检查并移除未使用的依赖
- 优化 Radix UI 导入
-
PWA 支持
- 添加 manifest.json
- 配置 Service Worker
- 实现离线功能
-
动画性能优化
- 使用 `will-change` CSS 属性
- 优化长列表渲染
- 实现虚拟滚动(如需要)
-
可访问性增强
- 添加完整的 ARIA 标签
- 实现键盘导航
- 测试屏幕阅读器兼容性
-
国际化 (i18n)
- 配置多语言支持
- 添加语言切换器
-
测试覆盖
- 单元测试
- 集成测试
- E2E 测试
- Lighthouse Score: > 90
- First Contentful Paint (FCP): < 1.5s
- Largest Contentful Paint (LCP): < 2.5s
- Cumulative Layout Shift (CLS): < 0.1
- Time to Interactive (TTI): < 3.5s
当前已集成:
- ✅ Vercel Analytics
建议添加:
- Web Vitals 报告
- 自定义性能指标
- 错误追踪(如 Sentry)