Skip to content

Commit fca2631

Browse files
committed
style: redesign product page layout, fix width and copy
1 parent 83f2af7 commit fca2631

4 files changed

Lines changed: 117 additions & 59 deletions

File tree

site-src/docs/.vitepress/config.mts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,10 @@ export default defineConfig({
6767
]
6868
},
6969
footer: {
70-
message: "基于 MIT License 发布",
71-
copyright: "(c) 2026 MathClaw"
70+
message: "基于 MIT License 发布",
71+
copyright: "© 2026 MathClaw"
7272
},
73-
editLink: {
74-
pattern: "https://github.com/MathClaw-ruc/MathClaw/edit/main/docs/:path",
75-
text: "在 GitHub 上编辑此页"
76-
},
77-
outline: {
73+
outline: {
7874
label: "本页目录"
7975
},
8076
docFooter: {

site-src/docs/.vitepress/theme/custom.css

Lines changed: 68 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -172,19 +172,25 @@
172172
}
173173

174174
.vp-doc {
175-
max-width: 1280px !important;
175+
max-width: 100% !important;
176176
}
177177

178-
.VPContent:not(.has-sidebar) .VPDoc .container {
179-
max-width: 1320px;
178+
.VPDoc:not(.has-sidebar) .container {
179+
max-width: 1400px !important;
180180
}
181181

182-
.VPContent:not(.has-sidebar) .VPDoc .content {
183-
padding: 0 24px 84px;
182+
.VPDoc:not(.has-sidebar) .content {
183+
max-width: 100% !important;
184+
padding: 0 48px 84px;
184185
}
185186

186-
.VPContent:not(.has-sidebar) .VPDoc .content-container {
187-
max-width: 1260px;
187+
.VPDoc:not(.has-sidebar) .content-container {
188+
max-width: 1400px !important;
189+
margin: 0 auto;
190+
}
191+
192+
.VPDoc.has-aside .content-container {
193+
max-width: 1400px !important;
188194
}
189195

190196
.VPContent.has-sidebar .VPDoc .content-container {
@@ -400,6 +406,12 @@
400406
position: relative;
401407
padding: 22px;
402408
border-radius: 24px;
409+
transition: box-shadow 0.3s ease, transform 0.3s ease;
410+
}
411+
412+
.timeline-card:hover {
413+
box-shadow: var(--mathclaw-card-shadow-strong);
414+
transform: translateY(-2px);
403415
}
404416

405417
.timeline-card::after {
@@ -549,12 +561,23 @@
549561
display: grid;
550562
grid-template-columns: minmax(0, 1fr) 300px;
551563
gap: 24px;
552-
align-items: stretch;
564+
align-items: start;
553565
padding: 32px;
554566
border-radius: 32px;
555567
margin: 20px 0 0;
556568
}
557569

570+
.product-header--stacked {
571+
grid-template-columns: 1fr;
572+
gap: 28px;
573+
}
574+
575+
.product-header__stats--row {
576+
display: grid;
577+
grid-template-columns: repeat(3, minmax(0, 1fr));
578+
gap: 14px;
579+
}
580+
558581
.product-header__copy h1 {
559582
margin: 10px 0 12px;
560583
font-size: clamp(30px, 3.4vw, 44px);
@@ -579,17 +602,30 @@
579602
}
580603

581604
.product-stat strong {
582-
display: block;
583-
font-size: 36px;
605+
display: inline;
606+
font-size: 40px;
584607
line-height: 1;
585608
letter-spacing: -0.05em;
609+
color: var(--vp-c-brand-1);
610+
margin-right: 2px;
586611
}
587612

588-
.product-stat span {
613+
.product-stat .product-stat__label {
614+
display: inline;
615+
margin-top: 0;
616+
font-size: 18px;
617+
font-weight: 600;
618+
color: var(--vp-c-text-1);
619+
line-height: 1;
620+
vertical-align: bottom;
621+
}
622+
623+
.product-stat .product-stat__desc {
589624
display: block;
590625
margin-top: 8px;
591-
color: var(--vp-c-text-2);
592-
line-height: 1.6;
626+
color: var(--vp-c-text-3);
627+
font-size: 13px;
628+
line-height: 1.5;
593629
}
594630

595631
.scenario-grid {
@@ -614,10 +650,16 @@
614650
align-items: center;
615651
padding: 26px;
616652
border-radius: 30px;
653+
transition: box-shadow 0.3s ease, transform 0.3s ease;
654+
}
655+
656+
.page-showcase:hover {
657+
box-shadow: var(--mathclaw-card-shadow-strong);
658+
transform: translateY(-2px);
617659
}
618660

619661
.page-showcase + .page-showcase {
620-
margin-top: 18px;
662+
margin-top: 28px;
621663
}
622664

623665
.page-showcase--reverse .page-showcase__body {
@@ -1216,6 +1258,10 @@
12161258
grid-template-columns: repeat(2, minmax(0, 1fr));
12171259
}
12181260

1261+
.timeline-card::after {
1262+
display: none;
1263+
}
1264+
12191265
.VPHero .container,
12201266
.surface-panel,
12211267
.product-header,
@@ -1318,10 +1364,18 @@
13181364
grid-column: auto;
13191365
}
13201366

1367+
.page-showcase--reverse .page-showcase__body {
1368+
order: unset;
1369+
}
1370+
13211371
.page-showcase__body h3 {
13221372
font-size: 26px;
13231373
}
13241374

1375+
.timeline-card::after {
1376+
display: none;
1377+
}
1378+
13251379
.cta-panel {
13261380
padding: 22px;
13271381
}

site-src/docs/product.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ outline: false
33
aside: false
44
---
55

6-
<div class="product-header">
6+
<div class="product-header product-header--stacked">
77
<div class="product-header__copy">
88
<span class="section-kicker">产品概览</span>
99
<h1>一套产品,串起做题、计划、图谱与回看</h1>
@@ -14,21 +14,25 @@ aside: false
1414
<span>知识图谱</span>
1515
<span>错题图谱</span>
1616
<span>运行状态</span>
17-
<span>附加输出</span>
17+
<span>心跳调度</span>
18+
<span>技能面板</span>
1819
</div>
1920
</div>
20-
<div class="product-header__stats">
21+
<div class="product-header__stats product-header__stats--row">
2122
<div class="product-stat">
2223
<strong>7</strong>
23-
<span>核心界面,覆盖学生侧与管理侧</span>
24+
<span class="product-stat__label">个核心界面</span>
25+
<span class="product-stat__desc">覆盖学生工作区与管理控制台</span>
2426
</div>
2527
<div class="product-stat">
2628
<strong>4</strong>
27-
<span>连续阶段,从输入到长期回看</span>
29+
<span class="product-stat__label">个连续阶段</span>
30+
<span class="product-stat__desc">输入 → 运行 → 沉淀 → 回看</span>
2831
</div>
2932
<div class="product-stat">
3033
<strong>3</strong>
31-
<span>外部通道,可接入企业微信、QQ、飞书</span>
34+
<span class="product-stat__label">个外部通道</span>
35+
<span class="product-stat__desc">企业微信 · QQ · 飞书</span>
3236
</div>
3337
</div>
3438
</div>

site-src/docs/zh/product.md

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ outline: false
33
aside: false
44
---
55

6-
<div class="product-header">
6+
<div class="product-header product-header--stacked">
77
<div class="product-header__copy">
88
<span class="section-kicker">产品概览</span>
99
<h1>一套产品,串起做题、计划、图谱与回看</h1>
@@ -14,41 +14,45 @@ aside: false
1414
<span>知识图谱</span>
1515
<span>错题图谱</span>
1616
<span>运行状态</span>
17-
<span>附加输出</span>
17+
<span>定时任务</span>
18+
<span>技能面板</span>
1819
</div>
1920
</div>
20-
<div class="product-header__stats">
21+
<div class="product-header__stats product-header__stats--row">
2122
<div class="product-stat">
2223
<strong>7</strong>
23-
<span>核心界面,覆盖学生侧与管理侧</span>
24+
<span class="product-stat__label">个核心界面</span>
25+
<span class="product-stat__desc">覆盖学生工作区与管理控制台</span>
2426
</div>
2527
<div class="product-stat">
2628
<strong>4</strong>
27-
<span>连续阶段,从输入到长期回看</span>
29+
<span class="product-stat__label">个连续阶段</span>
30+
<span class="product-stat__desc">输入 → 运行 → 沉淀 → 回看</span>
2831
</div>
2932
<div class="product-stat">
3033
<strong>3</strong>
31-
<span>外部通道,可接入企业微信、QQ、飞书</span>
34+
<span class="product-stat__label">个外部通道</span>
35+
<span class="product-stat__desc">企业微信 · QQ · 飞书</span>
3236
</div>
3337
</div>
3438
</div>
3539

3640
<section class="section-block">
3741
<div class="section-header">
3842
<span class="section-kicker">关键页面</span>
39-
<h2>按页面分工来理解这套产品</h2>
40-
<p>首页只负责概览;产品页应该把每个关键页面承担什么角色讲清楚,所以这里直接按页面展开,不再重复堆截图。</p>
43+
<h2>每个界面各司其职</h2>
44+
<p>从解题到复盘,每个页面承担一个明确的角色,下面按功能逐一展开。</p>
4145
</div>
4246

4347
<div class="page-showcase">
4448
<div class="page-showcase__body">
4549
<span class="section-kicker">学生入口</span>
4650
<h3>解题工作台是整个学习体验的起点</h3>
47-
<p>学生在这里上传图片和 PDF,查看诊断、讲解、批改和连续追问。它既是交互入口,也是后续记忆沉淀的来源。</p>
51+
<p>学生在这里上传图片和 PDF,获得分步讲解、批改反馈,并可以连续追问。所有交互记录会自动沉淀为后续记忆的来源。</p>
4852
<ul class="page-checklist">
49-
<li>统一承接题目输入和追问上下文</li>
50-
<li>把做题、讲解和批改放在同一界面内</li>
51-
<li>避免“聊天在一边、资料在另一边”的割裂感</li>
53+
<li>支持文本、图片、截图和 PDF 多种输入方式</li>
54+
<li>做题、讲解和批改集中在同一界面</li>
55+
<li>对话上下文自动保持,支持连续追问</li>
5256
</ul>
5357
</div>
5458
<div class="page-showcase__media">
@@ -60,11 +64,11 @@ aside: false
6064
<div class="page-showcase__body">
6165
<span class="section-kicker">行动层</span>
6266
<h3>学习计划把记忆结果转成可执行动作</h3>
63-
<p>优先复习点、重点纠错方向、明日建议和每周目标都从记忆层抽取出来,让学生知道下一步该做什么,而不是只得到一段回答。</p>
67+
<p>优先复习点、重点纠错方向、明日建议和每周目标都从记忆层自动提取,让学生清楚下一步该做什么。</p>
6468
<ul class="page-checklist">
65-
<li>从历史会话提炼优先级和任务顺序</li>
66-
<li>让学习推进有明确节奏,而不是纯靠即时提问</li>
67-
<li>把长期跟踪结果转成每天可执行的面板</li>
69+
<li>从历史会话中自动提炼优先级和任务顺序</li>
70+
<li>每天生成可执行的复习面板</li>
71+
<li>学习推进有明确节奏,不再纯靠即时提问</li>
6872
</ul>
6973
</div>
7074
<div class="page-showcase__media">
@@ -75,12 +79,12 @@ aside: false
7579
<div class="page-showcase">
7680
<div class="page-showcase__body">
7781
<span class="section-kicker">结构化记忆</span>
78-
<h3>知识图谱和错题图谱让复盘真正长期化</h3>
79-
<p>知识图谱突出前置关系和掌握结构,错题图谱聚焦高频错误模式和建议动作。两者一起把“会不会”变成可见的结构状态。</p>
82+
<h3>知识图谱将学习状态结构化沉淀</h3>
83+
<p>通过图结构呈现知识点之间的前置依赖、掌握程度和高频错因,将零散的学习记录转化为可持续追踪的结构化资产。</p>
8084
<ul class="page-checklist">
81-
<li>突出知识点之间的前置关系和掌握情况</li>
82-
<li>沉淀高频错因,方便针对性复盘</li>
83-
<li>让长期学习不再停留在零散对话记录里</li>
85+
<li>可视化知识点之间的前置依赖与掌握情况</li>
86+
<li>自动归纳高频错因,定位真正的薄弱环节</li>
87+
<li>学习轨迹持续积累,支持长期针对性复盘</li>
8488
</ul>
8589
</div>
8690
<div class="page-showcase__media">
@@ -91,12 +95,12 @@ aside: false
9195
<div class="page-showcase page-showcase--reverse">
9296
<div class="page-showcase__body">
9397
<span class="section-kicker">管理侧</span>
94-
<h3>运行状态、心跳和附加输出构成控制平面</h3>
95-
<p>除了学生体验本身,MathClaw 也把系统是否健康、任务是否按节律运行、输出风格如何控制做成了明确页面,方便持续运营。</p>
98+
<h3>运行状态与定时任务构成系统控制面</h3>
99+
<p>MathClaw 将系统健康度、定时任务节律和技能配置做成独立页面,方便管理员监控和持续运营。</p>
96100
<ul class="page-checklist">
97-
<li>监控 gateway、console 和自动任务的健康度</li>
98-
<li>通过心跳和运行状态快速定位问题</li>
99-
<li>用附加输出规则管理附件回复的风格表达</li>
101+
<li>实时查看 Gateway、Console 和自动任务的运行状态</li>
102+
<li>通过定时巡检快速发现异常并定位问题</li>
103+
<li>技能面板集中管理 AI 助手的能力配置</li>
100104
</ul>
101105
</div>
102106
<div class="page-showcase__media">
@@ -108,29 +112,29 @@ aside: false
108112
<section class="section-block">
109113
<div class="section-header">
110114
<span class="section-kicker">产品链路</span>
111-
<h2>这些页面前后相接,而不是平铺罗列</h2>
112-
<p>从产品展示的角度,重点不是把页面列全,而是说明它们为什么会一起出现。MathClaw 的页面分别承担输入、运行、沉淀和回看四个阶段。</p>
115+
<h2>四个阶段前后相接,形成完整闭环</h2>
116+
<p>每个页面不是孤立存在,而是分别承担输入、运行、沉淀和回看四个阶段,数据在页面之间自然流转。</p>
113117
</div>
114118
<div class="timeline-grid">
115119
<article class="timeline-card">
116120
<span class="timeline-card__step">01</span>
117121
<h3>输入</h3>
118-
<p>题目、附件和追问都从统一入口进入,产品链路从这里开始建立上下文。</p>
122+
<p>题目、图片和追问从统一入口进入,建立完整的学习上下文。</p>
119123
</article>
120124
<article class="timeline-card">
121125
<span class="timeline-card__step">02</span>
122126
<h3>运行</h3>
123-
<p>代理负责解题、讲解、批改和连续追问,并在需要时叠加更合适的输出风格。</p>
127+
<p>AI 助手完成解题、讲解、批改和连续追问,实时输出学习反馈。</p>
124128
</article>
125129
<article class="timeline-card">
126130
<span class="timeline-card__step">03</span>
127131
<h3>沉淀</h3>
128-
<p>学习会话被更新到计划、知识图谱、错题图谱和总结里,形成可持续的学习资产。</p>
132+
<p>学习记录自动更新到计划、知识图谱和错题图谱,形成持续积累的学习资产。</p>
129133
</article>
130134
<article class="timeline-card">
131135
<span class="timeline-card__step">04</span>
132136
<h3>回看</h3>
133-
<p>管理侧通过运行状态、心跳和控制页面判断系统是否稳定,并继续优化整体产品节律。</p>
137+
<p>管理侧通过运行状态和定时巡检掌握系统健康度,持续优化整体运行节律。</p>
134138
</article>
135139
</div>
136140
</section>

0 commit comments

Comments
 (0)