Skip to content

Commit 38d0427

Browse files
committed
feat(ritual): 模块仪式化页头与沉浸视觉升级——萤火海沟/秩序之井/深潜背景
- 新增 ModuleRitualHeader 共享仪式页头组件与 module-ritual.css(模块色印章 + 衬线大字 + 竖排注文) - 灵感页沉浸模式:DeepSeaAmbient 替换为 OrderWellBackground(暗物质场 + 秩序之井,沉浸强制深色)+ FallingEmber 落烬动画 - 番茄钟新增 DiveBackground 深潜氛围背景与「深潜」仪式页头;Dashboard 新增 DashboardNebula 星云背景 - FunctionalOverlay 支持 panelClassName/maskClassName 覆盖,隐藏时移除 backdrop-blur 避免合成层遮挡 3D canvas - 各模块页面接入仪式化页头(费曼/闪卡/笔记/沉淀/灵感) - 入库 .superdesign 设计系统浓缩文档(design-system.md + init 提取),gitignore 排除其 tmp 目录
1 parent 1395058 commit 38d0427

38 files changed

Lines changed: 1976 additions & 320 deletions

‎.gitignore‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ client/release/
2828
# Git worktree
2929
vPpiCi/
3030

31+
# Superdesign 临时文件
32+
.superdesign/tmp/
33+
3134
# OS
3235
.DS_Store
3336
Thumbs.db

‎.superdesign/design-system.md‎

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# 熵减 (Entropydecrease) — Design System
2+
3+
> 浓缩自 `docs/product/entropy-visualization-constitution.md`(最高宪法)+ `docs/product/ui-ux-system.md`(执行圣经)+ `client/src/styles/tokens.css`(令牌)+ `client/src/index.css`(高级效果类)。
4+
5+
## 品牌核心叙事(宪法第一条,一票否决)
6+
7+
**形式即概念——热力学第二定律是本产品唯一的视觉主角。** 叙事范式:「万物趋于无序,而你在此造序」。
8+
9+
核心映射表(学习变量→视觉元素,禁止破坏):
10+
| 学习变量 | 视觉元素 |
11+
|---------|---------|
12+
| 概念掌握度 | 发光体亮度 |
13+
| 遗忘 | 混沌雾(≤40% 不透明度) |
14+
| 复习 | 秩序波纹 |
15+
| 累计专注 | 珊瑚地形 |
16+
| 灵感数 | 萤火 |
17+
18+
品牌美学 DNA:「深海生物发光美学」——深海萤火 / 认知琥珀金 / 赛博青。
19+
20+
**第二条 焦虑防线**:零负向语言、零倒计时(禁止红色倒计时压力)、零赤字、一切可关闭、回归奖赏。
21+
22+
**第三条 签名时刻**:三幕结构(静默 1-2s → 事件 4-6s → 余韵 2s,总 ≤10s),可打断、可变重奏、声音占一半。
23+
24+
**第五条 排印**:跳率 ≥4x(64-96px 衬线大字 + 10-12px 注文;竖排注文+印章;内容占屏 ≤40%)。
25+
26+
**第四条 性能降级**:high/medium/low 三级——粒子 ≤1500/≤500/≤100、Bloom+DoF/仅 Bloom/关闭。降级不删叙事,只调精度。
27+
28+
## 双世界主题
29+
30+
| | 深色「深海意识」(主用) | 浅色「晨曦穹顶」 |
31+
|--|--|--|
32+
| 背景 | `#0C1524` / `#12203A` / `#182A48` | `#FAF8F5` / `#F2EDE6` / `#EBE5DC` |
33+
| 品牌主色 | 靛蓝 `brand-400 #6366F1` / `brand-500 #818CF8` | 蓝 `brand-500 #3B82F6` / `brand-600 #2563EB` |
34+
| 品牌辅色 | 赛博青 `accent-500 #06B6D4` / `accent-600 #22D3EE`(AI 呼吸灯) | 琥珀金 `accent-500 #F59E0B` |
35+
| 文字 | `#E0E6F0` / `#90A0B8` / `#607088` | `#2C2720` / `#7A7570` / `#9C9590` |
36+
| 功能色 | `--kb-amber #FBBF24`(顿悟)、moss `#82C9A3`(进展)、cyber-cyan `#22D3EE`(AI) | 同族浅色 |
37+
38+
模块色(Tailwind 级):pomodoro `#5B8A72`(深潜)、note `#6B9BD2`(结礁)、flashcard `#7BC4B8`(反衰减呼吸)、feynman `#C4956A`(浮出水面)、classroom `#14B8A6`(回声定位)。
39+
40+
## 排印 / 间距 / 圆角 / 阴影
41+
42+
- 字体:Inter(UI)/ 霞鹜文楷 Lite(衬线,仪式文字)/ JetBrains Mono(计时器 `clamp(4rem,8vw,6rem)`)
43+
- 字号:d1 36 / d2 30 / h1 24 / h2 20 / h3 16 / b1 16 / b2 14 / b3 12 / c1 12 / c2 10
44+
- 间距 4px 基准(xs4 sm8 md16 lg24 xl32 2xl48);节奏 rhythm 12/20/32/48/72
45+
- 圆角:8/12/16/20/full;功能面板不对称 `24px 12px 20px 16px`
46+
- 阴影:深色带品牌蓝弥散光晕(`0 0 16px rgba(59,130,246,0.08)`)
47+
48+
## 动效系统
49+
50+
- 节拍 120ms 基准:60/120/240/360/600ms;时长 150/250/400ms;沉浸 600/synapse 800/converge 400ms
51+
- 缓动:default `cubic-bezier(0.4,0,0.2,1)`、bounce `(0.34,1.56,0.64,1)`、spring `(0.175,0.885,0.32,1.275)`
52+
- Framer Motion 弹簧:default 300/28、bouncy 400/20、gentle 200/35、stiff 500/35
53+
- `prefers-reduced-motion: reduce` → 动画瞬间到终态(不冻结)
54+
- 核心动效词汇:kb-float-up(14-24s 浮动)、kb-constellation-breathe(呼吸脉动)、kb-pulse-ring、kb-orb-breathe、kb-caustic-light(焦散光)、kb-immersive-bg、kb-shimmer、kb-glow-border、kb-stagger、kb-tilt-card、kb-press-bounce、kb-squircle
55+
56+
## 组件风格约束
57+
58+
- 毛玻璃面板:`bg-bg-secondary/60 backdrop-blur-xl border border-border/40`
59+
- 按钮:primary `bg-brand-600` / secondary 边框 / ghost / ai 渐变 `from-accent-500 to-brand-500`;active:scale-0.97
60+
- 图标:Lucide 线性 1.5 stroke;尺寸 14/16/20/24/32
61+
- 卡片 hoverable:-translate-y-0.5 + shadow 增强
62+
- 布局三层:Layer 0 3D 场景(z-0)/ Layer 1 功能面板(毛玻璃)/ Layer 2 标题栏
63+
64+
## 已知设计缺口(改进方向线索)
65+
66+
1. **硬编码色**:InspirationPage 用 `from-purple-400 to-purple-600`、`purple-500 to-cyan-500`、slate 灰,偏离品牌靛蓝/赛博青令牌
67+
2. **3D 场景仍为概念原型**:深海缺粒子系统/生物发光体/焦散光落地
68+
3. **动效分布不均**:灵感激活动效集中在 inspiration 模块;仪表盘统计卡 `kb-stat-breathe` 为唯一常驻动效
69+
4. **叙事弱化**:部分状态直接暴露内部数据(如星座 title=sortStatus),未做叙事化翻译

‎.superdesign/init/components.md‎

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# 熵减 (Entropydecrease) — 共享 UI 原语
2+
3+
基于 shadcn/radix 封装(cva 变体),前缀类 `rounded-kb-*`、`bg-bg-*`、`text-text-*`、`shadow-kb-*`、`duration-kb-*`、`ease-kb-*`。
4+
5+
## Button(client/src/components/ui/Button.tsx)
6+
7+
```tsx
8+
const buttonVariants = cva(
9+
[
10+
'inline-flex items-center justify-center font-medium',
11+
'transition-all duration-kb-fast ease-kb-smooth',
12+
'select-none whitespace-nowrap',
13+
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
14+
'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none',
15+
'active:scale-[0.97] active:duration-kb-fast',
16+
].join(' '),
17+
{
18+
variants: {
19+
variant: {
20+
primary: ['bg-brand-600 text-white', 'hover:bg-brand-700 hover:shadow-md hover:shadow-brand-600/20', 'active:bg-brand-800', 'shadow-kb-sm'],
21+
secondary: ['bg-bg-tertiary text-text-primary', 'hover:bg-border hover:shadow-md', 'active:bg-border-strong', 'border border-border/40'],
22+
ghost: ['bg-transparent text-text-secondary', 'hover:bg-bg-tertiary hover:text-text-primary', 'active:bg-bg-secondary'],
23+
danger: ['bg-semantic-error text-white', 'hover:bg-semantic-error/90 hover:shadow-md hover:shadow-semantic-error/20', 'active:bg-semantic-error/80', 'shadow-kb-sm'],
24+
ai: ['bg-gradient-to-r from-accent-500 to-brand-500 text-white', 'hover:from-accent-600 hover:to-brand-600', 'hover:shadow-md hover:shadow-accent-500/20', 'shadow-kb-sm'],
25+
},
26+
size: { sm: 'px-3 py-1.5 text-b3 rounded-kb-sm gap-1.5', md: 'px-4 py-2 text-b2 rounded-kb-md gap-2', lg: 'px-6 py-3 text-b1 rounded-kb-lg gap-2.5' },
27+
},
28+
defaultVariants: { variant: 'primary', size: 'md' },
29+
},
30+
);
31+
// 支持 loading(Loader2 spin)、icon、iconRight、asChild(radix Slot)
32+
```
33+
34+
## Card(client/src/components/ui/Card.tsx)
35+
36+
```tsx
37+
const cardVariants = cva('transition-all duration-300 ease-kb-smooth backdrop-blur-xl overflow-hidden', {
38+
variants: {
39+
variant: {
40+
default: ['bg-bg-secondary/60 rounded-kb-lg shadow-kb-sm kb-squircle', 'border border-border/40', 'hover:shadow-kb-md hover:border-border/60'],
41+
elevated: ['bg-bg-secondary/60 rounded-kb-lg shadow-kb-md kb-squircle', 'border border-border/20', 'hover:shadow-lg hover:border-border/40'],
42+
outlined: ['bg-bg-secondary/40 rounded-kb-lg kb-squircle', 'border border-border/50', 'hover:border-border-strong hover:shadow-kb-sm'],
43+
},
44+
padding: { none: '', sm: 'p-kb-sm', md: 'p-kb-md', lg: 'p-kb-lg' },
45+
hoverable: { true: 'cursor-pointer hover:-translate-y-0.5 hover:shadow-lg hover:border-border/60', false: '' },
46+
},
47+
defaultVariants: { variant: 'default', padding: 'md', hoverable: false },
48+
});
49+
// 子组件:CardHeader(flex flex-col gap-kb-xs pb-kb-md)、CardContent(pb-kb-md last:pb-0)、CardFooter(flex items-center pt-kb-md)
50+
```
51+
52+
## Tag(client/src/components/ui/Tag.tsx)
53+
54+
```tsx
55+
const tagVariants = cva(['inline-flex items-center gap-1', 'px-2.5 py-0.5', 'text-b3 font-medium', 'rounded-kb-full', 'transition-colors duration-kb-fast'], {
56+
variants: {
57+
color: {
58+
brand: 'bg-brand-100/70 text-brand-700',
59+
pomodoro: 'bg-rose-100/70 text-rose-700', // 注意:硬编码 rose,非令牌
60+
note: 'bg-accent-100/70 text-accent-700',
61+
flashcard: 'bg-cyan-100/70 text-cyan-700', // 注意:硬编码 cyan,非令牌
62+
feynman: 'bg-indigo-100/70 text-indigo-700', // 注意:硬编码 indigo,非令牌
63+
default: 'bg-bg-tertiary text-text-secondary',
64+
},
65+
},
66+
defaultVariants: { color: 'default' },
67+
});
68+
// 支持 closable(X 关闭按钮)
69+
```
70+
71+
## EmptyState(client/src/components/ui/EmptyState.tsx)
72+
73+
```tsx
74+
<div className="flex flex-col items-center justify-center text-center py-kb-2xl px-kb-lg">
75+
<div className="text-text-tertiary/60 mb-kb-md">{icon || <BrandLogo mode="floating" size={64} className="text-brand-500/60" />}</div>
76+
<h3 className="text-h3 font-medium text-text-secondary">{title}</h3>
77+
{description && <p className="mt-kb-xs text-b2 text-text-tertiary max-w-xs">{description}</p>}
78+
{action && <div className="mt-kb-md">{action}</div>}
79+
</div>
80+
```
81+
82+
## 其他共享组件(client/src/components/ui/)
83+
84+
| 组件 | 用途 |
85+
|------|------|
86+
| IconButton | 图标按钮(size/tooltip/variant) |
87+
| Input / AIButton | 输入框 / AI 渐变按钮 |
88+
| Modal / CloseConfirmDialog / ConsentModal | 模态层(modal-enter 动画) |
89+
| Toast / AchievementToast | 通知(顶部成就演出) |
90+
| CommandPalette | 命令面板(⌘K) |
91+
| ContextMenu / RichTooltip / Tip | 交互辅助 |
92+
| Skeleton / VirtualList | 加载/虚拟列表 |
93+
| BrandLogo | SVG 品牌标志(floating/draw 模式) |
94+
| Avatar | 用户头像 |
95+
| TypewriterText | 打字机文字 |
96+
| AIThinkingIndicator | AI 思考指示(三点脉冲) |
97+
| KnowledgeGalaxy | 知识星系(旋转光点) |
98+
| AmbientLightPool | 环境光点池 |
99+
| ModeIndicator / ComingSoonBadge / ComingSoonPlaceholder | 状态标识 |
100+
| ErrorBoundary / UpdateNotification | 兜底 |
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 熵减 (Entropydecrease) — 可提取组件
2+
3+
## 高价值可复用组件(可提取为 DraftComponent)
4+
5+
| 组件 | 位置 | 提取理由 |
6+
|------|------|---------|
7+
| KnowledgePreviewCard | features/dashboard/components/ | 知识足迹预览卡,跨模块复用价值高 |
8+
| StreakBubble | features/retention/components/ | 连续打卡气泡(海洋隐喻),品牌叙事核心 |
9+
| DepthMeter | features/retention/components/ | 累计深度计(身份认同) |
10+
| CoralEcosystem | features/retention/components/ | 珊瑚生态缸(损失规避机制) |
11+
| LearningProfile | features/retention/components/ | 学习画像洞察卡 |
12+
| LearningPulse | features/dashboard/components/ | 学习强度曲线 |
13+
| StartupRitual | features/dashboard/components/ | 学习启动仪式模态(宪法第三条签名时刻载体) |
14+
| ImmersiveCanvas | features/inspiration/components/ | 沉浸式萤火海沟视图(相机飞行) |
15+
| FilterBar | features/inspiration/components/ | 筛选栏(内容性质/认知深度/学科 chips) |
16+
| SortPendingBanner | features/inspiration/components/ | 沉淀提醒条 |
17+
| SignatureMoment | features/retention/components/ | 三幕签名时刻演出(静默→事件→余韵) |
18+
| DiscoveryReveal | features/retention/components/ | 深海发现揭示弹窗 |
19+
| WorldRecap | features/retention/components/ | 延时摄影开场(每日生长摘要) |
20+
| FatigueEmpathy | features/retention/components/ | 疲劳共情觉察 |
21+
| KnowledgeConstellation / KnowledgeSky | features/constellation/ + lib/3d/scenes/ | 知识星座(DOM/SVG 轨 + 3D 轨) |
22+
23+
## 环境光效组件
24+
25+
- AmbientLightPool(components/ui/AmbientLightPool.tsx)— 环境光点池
26+
- KnowledgeGalaxy(components/ui/KnowledgeGalaxy.tsx)— 知识星系旋转光点
27+
- InspirationConstellation — 灵感星座光点层
28+
29+
## 注意
30+
31+
- 全部组件要求 ≤300 行/文件(AI 编程规范),含 `@ai-context` 双语注释
32+
- 设计宪法约束:不可重造 retention 引擎;降级 L1/L2 必须保留叙事语义

‎.superdesign/init/layouts.md‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# 熵减 (Entropydecrease) — 共享布局
2+
3+
## AppLayout(client/src/components/layout/AppLayout.tsx)
4+
5+
三层渲染模型(设计系统 §3D 分层):
6+
- **Layer 2**:`CustomTitlebar`(Electron 标题栏,始终最顶)
7+
- **Layer 0**:3D 场景全屏背景 — `SceneProvider` → `SceneTransition` → `SpatialNav`(桌面端);移动端降级为 `MobileNavGrid` 2D 导航网格
8+
- **Layer 1**:`FunctionalOverlay`(功能覆盖层,常驻挂载,`overlayVisible` 控制显隐)内含路由级 `AnimatePresence mode="wait"`(opacity 0.2s 淡入淡出)+ `<Outlet />`
9+
10+
全局:`BottomNav`(移动端底部标签栏)、`FirstDiveGate`、`OnboardingOverlay`、`ModuleTourToast`、`HelpCenter`、`CommandPalette`、`PWAInstallPrompt`、`CloseConfirmDialog`。
11+
`MotionConfig reducedMotion` 按性能模式降级。快捷键:Esc 退出模块、数字键 0-7 导航、Ctrl+/ 帮助。
12+
13+
## Sidebar(client/src/components/layout/Sidebar.tsx,453 行)
14+
15+
桌面端左侧导航(240px / 折叠 56px,`w-14`),结构:
16+
- 用户信息区(头像 + 昵称,motion 悬停)
17+
- 导航三区段:导航(首页)/ 学习(深潜/结礁/反衰减呼吸/浮出水面,带模块色点 dotColor)/ 更多(数据分析/萤火海沟/回声定位)
18+
- 学习进度条(真实数据聚合,brand-500 渐变填充,0.6s 动画)
19+
- Ghost Tasks(蔡格尼克效应待继续提示池,accent-400 脉冲点 + 斜体文字)
20+
- 底部:主题切换/反馈/设置/折叠按钮
21+
- Active 指示器:`layoutId="sidebar-active-indicator"` 3px 品牌色竖线弹簧跟随
22+
23+
侧边栏背景:深色 `linear-gradient(90deg, var(--kb-bg-primary), color-mix 97% white)`,右缘 4px 渐变过渡带。
24+
代码已迁移为 Tailwind 令牌类为主,仅主题渐变保留内联 style。
25+
26+
## CustomTitlebar(client/src/components/layout/CustomTitlebar.tsx,104 行)
27+
28+
Electron 无边框窗口标题栏(拖拽区 + 最小化/最大化/关闭)。
29+
30+
## BottomNav(client/src/components/layout/BottomNav.tsx,62 行)
31+
32+
移动端底部标签导航(图标 + 标签,active 品牌色)。
33+
34+
## FunctionalOverlay(client/src/components/overlay/FunctionalOverlay.tsx,84 行)
35+
36+
功能面板容器:毛玻璃背景 `backdrop-blur`,进入/退出 spring 动画(stiffness 300 damping 30),不对称圆角 `24px 12px 20px 16px`。
37+
38+
## PageTransition(client/src/components/layout/PageTransition.tsx,46 行)
39+
40+
页面级转场变体(fade + slide)。

‎.superdesign/init/pages.md‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 熵减 (Entropydecrease) — 页面依赖树
2+
3+
## DashboardPage(client/src/features/dashboard/pages/DashboardPage.tsx,709 行)
4+
5+
「知识星空」沉浸式学习生态可视化。依赖:
6+
- 数据:useLearningAnalytics、useCheckIn、pomodoro/flashcard/note/feynman stores、useKnowledgeGraph、retention stores
7+
- 组件:`StartupRitual`(学习启动仪式模态)、`LearningPulse`(学习强度曲线)、`KnowledgePreviewCard`(知识预览卡)、lazy:`StreakBubble`/`DepthMeter`/`CoralEcosystem`/`LearningProfile`(留存四件套)、`KnowledgeConstellation`/`KnowledgeSky`(知识星座双轨)
8+
- 布局:Hero 区(问候语 text-d2 + 日期 + 连续学习徽章 + 4 个核心统计卡 grid-cols-4 + 快捷操作)→ 留存区(3 列 grid + 右上角绝对定位 StreakBubble)→ 知识星座区 → 学习脉搏区(kb-section-blend)→ 知识预览区(grid-cols-3 卡片)
9+
- 动画:staggerContainer(staggerChildren 0.08 + delayChildren 0.1)、heroStatVariant(SPRING.gentle)、kb-stat-breathe、fadeInUp
10+
- 样式:`styles/dashboard.css`(页面级 CSS)
11+
12+
## InspirationPage(client/src/features/inspiration/pages/InspirationPage.tsx,431 行)
13+
14+
「萤火海沟」灵感收集。依赖:
15+
- 组件:`FilterBar`、`InspirationCard`、`ImmersiveCanvas`(沉浸式视图)、`GlassInspirationCard`、`SortPendingBanner`(沉淀提醒条)、`AIThinkingIndicator`、EmptyState
16+
- 数据:useInspirationStore、useAITagContent(AI 自动打标)、useBatchSort、useSortPendingReminder、useImmersiveState(沉浸状态机)
17+
- 布局:Header(渐变图标 + 标题 + 沉浸入口按钮)→ 快速输入区(毛玻璃 backdrop-blur-2xl + focus 光效 + Ctrl+Enter)→ 筛选栏 → 灵感卡片列表(分组球群)
18+
- 动画变体:pageVariants/headerVariants/inputVariants/filterVariants/listVariants(constants.ts)
19+
- ⚠️ 硬编码色证据:`from-purple-400 to-purple-600`、`shadow-purple-500/20`、`from-purple-500 to-cyan-500`、`focus-within:border-purple-400/50`、`rgba(147,51,234,0.1)`(紫色,非品牌令牌)
20+
21+
## InspirationConstellation(client/src/features/inspiration/components/InspirationConstellation.tsx,282 行)
22+
23+
灵感星座光点层(沉浸背景组件):
24+
- 纯函数布局 `calculateConstellationLayout`(constellationLayout.ts)+ `calculateFlyInAnimation`(flyInAnimation.ts)+ `useRandomSurface`(随机浮现)
25+
- L1 降级每类 ≤5 光点;L2 完全不渲染
26+
- 4 种形状(circle/square/diamond/triangle clip-path)、3 种尺寸;双层动画:`kb-float-up`(14-24s 浮动)+ `kb-constellation-breathe`(呼吸脉动)
27+
- FlyInDot:新灵感从中心飞入(CSS transition,left/top)
28+
- CENTER_EXCLUSION 中心排除区(30-70%),为创作区留白
29+
- ⚠️ `title={point.sortStatus ?? point.id}` 直接暴露内部状态而非叙事化文案
30+
31+
## PomodoroPage(client/src/features/pomodoro/pages/PomodoroPage.tsx,390 行)
32+
33+
「深潜」专注番茄钟:计时器大字(--kb-text-timer clamp 64-96px JetBrains Mono)+ 环形进度 + 模式切换 + 会话列表。
34+
35+
## NotesPage / FlashcardsPage / FeynmanPage / SettlingPage / ClassroomPage
36+
37+
各模块列表页:页头(渐变图标 + 隐喻名标题 + 副标题)+ 内容列表/网格 + 空状态。
38+
39+
## OnboardingPage(client/src/pages/OnboardingPage.tsx + components/onboarding/)
40+
41+
六步引导(Step1Welcome ~ Step7Shortcuts)+ OnboardingOverlay + ModuleTourToast + HelpCenter。

‎.superdesign/init/routes.md‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 熵减 (Entropydecrease) — 路由映射
2+
3+
React Router v6 `createHashRouter`,全部页面 lazy 加载 + Suspense 骨架屏。
4+
5+
## 主布局(AuthGuard → AppLayout)
6+
7+
所有业务页面嵌套在 `AppLayout` 中:Electron 标题栏(Layer 2)+ 3D 场景全屏背景(Layer 0)+ 功能覆盖层 FunctionalOverlay(Layer 1,含页面 Outlet)。
8+
9+
| 路径 | 页面 | 模块隐喻名 |
10+
|------|------|-----------|
11+
| `/` | DashboardPage — 知识星空仪表盘 | 首页 |
12+
| `/pomodoro` | PomodoroPage | 深潜(专注番茄钟) |
13+
| `/pomodoro/stats` | PomodoroStatsPage | 统计 |
14+
| `/pomodoro/settings` | PomodoroSettingsPage | 设置 |
15+
| `/notes` | NotesPage | 结礁(学习笔记) |
16+
| `/notes/graph` | NotesGraphPage | 笔记图谱 |
17+
| `/notes/:id` | NoteEditPage | 笔记编辑 |
18+
| `/flashcards` | FlashcardsPage | 反衰减呼吸(记忆闪卡) |
19+
| `/flashcards/:deckId` | DeckDetailPage | 卡组详情 |
20+
| `/flashcards/:deckId/study` | StudySessionPage | 学习会话 |
21+
| `/flashcards/:deckId/generative-review` | GenerativeReviewPage | AI 生成复习 |
22+
| `/feynman` | FeynmanPage | 浮出水面(费曼讲解) |
23+
| `/feynman/graph` | FeynmanGraphPage | 费曼图谱 |
24+
| `/feynman/:sessionId` | FeynmanSessionPage | 费曼会话 |
25+
| `/socratic` | SocraticSessionPage | 苏格拉底会话 |
26+
| `/settings` | SettingsPage | 设置 |
27+
| `/analytics` | AnalyticsPage | 数据分析 |
28+
| `/inspiration` | InspirationPage | 萤火海沟(灵感收集) |
29+
| `/classroom` | ClassroomPage | 回声定位(课堂采集) |
30+
| `/settling` | SettlingPage | 沉淀 |
31+
32+
## 独立路由(无 AppLayout)
33+
34+
`/onboarding`、`/login`、`/register`、`/privacy`、`/terms`、`/reset-password`、`/verify-email`
35+
36+
## 路由与 3D 模块映射(OrbitalStore)
37+
38+
模块 ID 与路由:dashboard→`/`、pomodoro→`/pomodoro`、notes→`/notes`、flashcards→`/flashcards`、feynman→`/feynman`、inspiration→`/inspiration`、classroom→`/classroom`、settling→`/settling`。数字键 0-7 快捷导航。

0 commit comments

Comments
 (0)