Skip to content

Commit b072318

Browse files
committed
style: 残留归位终极清理 - 幽灵令牌覆盖删除、3D/印章/标签色全面生物发光化
1 parent e3df416 commit b072318

19 files changed

Lines changed: 59 additions & 75 deletions

File tree

‎client/src/components/onboarding/OnboardingCard.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function OnboardingCard({
3131
className={`
3232
backdrop-blur-2xl bg-white/10 dark:bg-black/30
3333
border border-white/20 ${rounded}
34-
${pulse ? 'ring-2 ring-indigo-400/50 animate-pulse' : ''}
34+
${pulse ? 'ring-2 ring-brand-400/50 animate-pulse' : ''}
3535
p-6 shadow-2xl
3636
${className}
3737
`}

‎client/src/components/onboarding/onboardingConstants.ts‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export const STEP_TEXTS = [
4444
// Step 5: Panorama
4545
{
4646
title: '全景总览',
47-
description: '这是你的完整学习空间,包含 6 个功能模块。记住它们的位置,随时通过点击或快捷键进入。',
47+
description: '这是你的完整学习空间,包含 7 个功能模块。记住它们的位置,随时通过点击或快捷键进入。',
4848
},
4949
// Step 6: Shortcuts
5050
{
@@ -64,12 +64,13 @@ export interface ModuleInfo {
6464
}
6565

6666
export const MODULE_INFO: ModuleInfo[] = [
67-
{ id: 'dashboard', name: '首页', number: '①', color: '#6366F1', description: '数据仪表盘,总览学习进度与统计' },
68-
{ id: 'pomodoro', name: '深潜', number: '②', color: '#F97316', description: '番茄钟专注计时,沉浸式学习' },
69-
{ id: 'notes', name: '结礁', number: '③', color: '#3B82F6', description: '富文本笔记,知识结构化存储' },
70-
{ id: 'flashcards', name: '闪卡', number: '④', color: '#10B981', description: '间隔重复记忆卡片' },
71-
{ id: 'feynman', name: '反衰减呼吸', number: '⑤', color: '#8B5CF6', description: '费曼学习法,以教代学' },
72-
{ id: 'inspiration', name: '萤火海沟', number: '⑥', color: '#EC4899', description: '灵感收集与AI辅助思考' },
67+
{ id: 'dashboard', name: '首页', number: '①', color: '#40AB92', description: '数据仪表盘,总览学习进度与统计' },
68+
{ id: 'pomodoro', name: '深潜', number: '②', color: '#E8833A', description: '番茄钟专注计时,沉浸式学习' },
69+
{ id: 'notes', name: '结礁', number: '③', color: '#4A9BD9', description: '富文本笔记,知识结构化存储' },
70+
{ id: 'flashcards', name: '闪卡', number: '④', color: '#43C58B', description: '间隔重复记忆卡片' },
71+
{ id: 'feynman', name: '反衰减呼吸', number: '⑤', color: '#F0E3C8', description: '费曼学习法,以教代学' },
72+
{ id: 'inspiration', name: '萤火海沟', number: '⑥', color: '#E8B84B', description: '灵感收集与AI辅助思考' },
73+
{ id: 'sop', name: '标准作业', number: '⑦', color: '#B5D84E', description: '标准作业流程模板与执行' },
7374
];
7475

7576
/* ────────── 快捷键表格 ────────── */

‎client/src/features/constellation/pages/ConstellationPage.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export default function ConstellationPage() {
8787
title="星座大厅"
8888
note="知识宇宙的多种打开方式"
8989
sealChar="座"
90-
sealColor="#6366F1"
90+
sealColor="#40AB92"
9191
compact
9292
className="mb-rhythm-sm"
9393
/>

‎client/src/features/dashboard/components/DashboardWelcome.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function DashboardWelcome({ greetingText, streakDays, streakState }: Dash
4141

4242
<motion.div className="mb-rhythm-md" {...fadeInUp}>
4343
<div className="flex items-start gap-3">
44-
<ModuleRitualHeader sealChar="星" sealColor="#6366F1" compact />
44+
<ModuleRitualHeader sealChar="星" sealColor="#40AB92" compact />
4545
<div>
4646
<h1 className="text-d2 font-semibold text-text-primary tracking-tight mb-2">
4747
{greetingText}

‎client/src/features/dashboard/components/deep-sea/creatures/PearlGoal.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ export default function PearlGoal({ goals, loading }: Props) {
3333

3434
return (
3535
<motion.div
36-
className="rounded-[var(--kb-radius-lg)] border border-cyan-400/15 bg-bg-elevated/20 backdrop-blur-sm p-3"
36+
className="rounded-[var(--kb-radius-lg)] border border-cyber/15 bg-bg-elevated/20 backdrop-blur-sm p-3"
3737
whileHover={{ scale: 1.01 }}
3838
transition={{ duration: 0.4, ease: 'easeOut' }}
3939
aria-label="目标进度"
4040
>
41-
<h3 className="text-[10px] font-medium text-cyan-200/60 mb-3">深海珍珠 -- 本周目标</h3>
41+
<h3 className="text-[10px] font-medium text-cyber/60 mb-3">深海珍珠 -- 本周目标</h3>
4242
<div className="flex items-end justify-around gap-3">
4343
{goals.map((goal, i) => {
4444
const ps = pearlStyle(goal.progressPercent);
@@ -73,7 +73,7 @@ export default function PearlGoal({ goals, loading }: Props) {
7373
</span>
7474
</motion.div>
7575
{/* 标签 */}
76-
<span className="text-[8px] text-cyan-200/50 text-center leading-tight max-w-[60px]">
76+
<span className="text-[8px] text-cyber/50 text-center leading-tight max-w-[60px]">
7777
{goal.title}
7878
</span>
7979
<span className="text-[7px] text-text-tertiary/40 tabular-nums">

‎client/src/features/dashboard/components/ritual/ClosingCeremony.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,15 @@ export function ClosingCeremony({ goal, masteryMark, streakDays, durationMs, onC
105105
{/* D2 蔡格尼克悬念引擎:AI 回顾小问,制造未完成感 */}
106106
{suspenseQuestion && (
107107
<motion.div
108-
className="w-full rounded-kb-lg border border-indigo-500/20 bg-indigo-500/5 px-4 py-3"
108+
className="w-full rounded-kb-lg border border-brand-500/20 bg-brand-500/5 px-4 py-3"
109109
initial={{ opacity: 0, y: 6 }}
110110
animate={{ opacity: 1, y: 0 }}
111111
transition={{ delay: 0.3, duration: 0.5 }}
112112
>
113113
<div className="flex items-start gap-2">
114-
<HelpCircle className="w-4 h-4 text-indigo-400 flex-shrink-0 mt-0.5" strokeWidth={1.5} />
114+
<HelpCircle className="w-4 h-4 text-brand-400 flex-shrink-0 mt-0.5" strokeWidth={1.5} />
115115
<div className="flex flex-col gap-1">
116-
<span className="text-[11px] text-indigo-400/70 font-medium tracking-wider uppercase">未解悬念</span>
116+
<span className="text-[11px] text-brand-400/70 font-medium tracking-wider uppercase">未解悬念</span>
117117
<p className="text-sm text-text-primary leading-relaxed">{suspenseQuestion}</p>
118118
<p className="text-[11px] text-text-tertiary mt-0.5">
119119
下次学习时回想一下这个问题,看看有没有新的理解

‎client/src/features/dashboard/components/views/TodayView.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ export function TodayView({
217217
title="知识预览"
218218
note="最近的学习足迹"
219219
sealChar="星"
220-
sealColor="#6366F1"
220+
sealColor="#40AB92"
221221
compact
222222
/>
223223
</motion.div>

‎client/src/features/dashboard/pages/AnalyticsPage.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ function FlowChannelCard({ cells, insight }: { cells: import('../types/analytics
343343
return (
344344
<motion.div variants={cardVariants} className="rounded-[var(--kb-radius-xl)] border border-border/30 bg-bg-elevated/50 backdrop-blur-sm p-5">
345345
<h2 className="text-[13px] font-semibold text-text-primary mb-1 flex items-center gap-2">
346-
<Waves className="w-4 h-4 text-cyan-500" strokeWidth={1.5} />
346+
<Waves className="w-4 h-4 text-cyber" strokeWidth={1.5} />
347347
心流通道
348348
<span className="text-[10px] font-normal text-text-tertiary">挑战 × 能力匹配(近 30 天)</span>
349349
</h2>
@@ -378,7 +378,7 @@ function FlowChannelCard({ cells, insight }: { cells: import('../types/analytics
378378
className={cn(
379379
'flex h-[26px] flex-1 items-center justify-center rounded-[6px] text-[11px] font-medium tabular-nums transition-colors',
380380
count === 0 && 'bg-bg-tertiary/15 text-text-tertiary/50',
381-
count > 0 && !isFlow && 'bg-cyan-500/15 text-cyan-400',
381+
count > 0 && !isFlow && 'bg-cyber/15 text-cyber',
382382
count > 0 && isFlow && 'bg-emerald-500/25 text-emerald-300',
383383
)}
384384
style={count > 0 ? { opacity: 0.4 + ratio * 0.6 } : undefined}

‎client/src/features/feynman/components/DebatePanel.tsx‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
5353
{/* 头部 */}
5454
<div className="flex items-center justify-between px-4 py-3 border-b border-border/10">
5555
<div className="flex items-center gap-2">
56-
<Swords className="w-4 h-4 text-violet-500" strokeWidth={1.5} />
56+
<Swords className="w-4 h-4 text-cyber" strokeWidth={1.5} />
5757
<span className="text-[13px] font-semibold text-text-primary">AI 辩论对手</span>
5858
{isFallback && (
5959
<span className="rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] text-amber-400">降级</span>
@@ -67,7 +67,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
6767
{/* 内容 */}
6868
<div className="flex-1 overflow-y-auto p-4 space-y-4">
6969
{/* 主题展示 */}
70-
<div className="rounded-xl bg-violet-500/5 border border-violet-500/15 p-3">
70+
<div className="rounded-xl bg-cyber/5 border border-cyber/15 p-3">
7171
<p className="text-[12px] text-text-tertiary mb-1">辩论主题</p>
7272
<p className="text-[14px] font-medium text-text-primary">{topic}</p>
7373
</div>
@@ -84,7 +84,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
8484
className={cn(
8585
'rounded-xl border p-3 text-left transition-all',
8686
debateType === dt.value
87-
? 'border-violet-500/40 bg-violet-500/10'
87+
? 'border-cyber/40 bg-cyber/10'
8888
: 'border-border/20 bg-bg-elevated/30 hover:border-border/40',
8989
)}
9090
>
@@ -95,7 +95,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
9595
</div>
9696
<button
9797
onClick={handleStartDebate}
98-
className="w-full py-2.5 rounded-xl bg-violet-500 text-white text-[13px] font-medium hover:bg-violet-600 transition-colors"
98+
className="w-full py-2.5 rounded-xl bg-cyber text-text-inverse text-[13px] font-medium hover:bg-cyber/90 transition-colors"
9999
>
100100
开始辩论
101101
</button>
@@ -133,16 +133,16 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
133133
className="space-y-2"
134134
>
135135
<div className="flex items-center gap-2">
136-
<span className="rounded-full bg-violet-500/10 px-2 py-0.5 text-[10px] text-violet-500 font-medium">
136+
<span className="rounded-full bg-cyber/10 px-2 py-0.5 text-[10px] text-cyber font-medium">
137137
第 {round.roundNumber} 轮
138138
</span>
139139
{round.score !== undefined && (
140140
<span className="text-[10px] text-text-tertiary">得分:{round.score}</span>
141141
)}
142142
</div>
143143
{/* AI 论点 */}
144-
<div className="rounded-xl bg-violet-500/5 border border-violet-500/15 p-3">
145-
<p className="text-[11px] text-violet-500 font-medium mb-1">AI 论点</p>
144+
<div className="rounded-xl bg-cyber/5 border border-cyber/15 p-3">
145+
<p className="text-[11px] text-cyber font-medium mb-1">AI 论点</p>
146146
<p className="text-[13px] text-text-primary leading-relaxed">{round.aiArgument}</p>
147147
</div>
148148
{/* 用户反驳 */}
@@ -165,7 +165,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
165165

166166
{loading && (
167167
<div className="flex items-center gap-2 text-text-tertiary py-2">
168-
<div className="w-2 h-2 rounded-full bg-violet-500 animate-pulse" />
168+
<div className="w-2 h-2 rounded-full bg-cyber animate-pulse" />
169169
<span className="text-[12px]">AI 正在思考论点...</span>
170170
</div>
171171
)}
@@ -176,7 +176,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
176176
{/* 输入区 */}
177177
{debateStarted && (
178178
<div className="border-t border-border/10 p-3">
179-
<div className="flex items-end gap-2 rounded-xl border border-border/20 bg-bg-elevated/50 p-2 focus-within:border-violet-400/50 transition-colors">
179+
<div className="flex items-end gap-2 rounded-xl border border-border/20 bg-bg-elevated/50 p-2 focus-within:border-cyber/50 transition-colors">
180180
<textarea
181181
value={userInput}
182182
onChange={e => setUserInput(e.target.value)}
@@ -191,7 +191,7 @@ export default function DebatePanel({ topic, onClose }: DebatePanelProps) {
191191
className={cn(
192192
'p-2 rounded-lg transition-all',
193193
userInput.trim() && !loading
194-
? 'bg-violet-500 text-white hover:bg-violet-600'
194+
? 'bg-cyber text-text-inverse hover:bg-cyber/90'
195195
: 'bg-bg-tertiary text-text-tertiary cursor-not-allowed',
196196
)}
197197
>

‎client/src/features/feynman/hooks/useSocraticFlow.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const DEFAULT_DEEPENING_ANGLES: DeepeningAngle[] = [
2929
{ key: 'analogy', label: '类比联想', question: '这个概念像什么?能用生活中什么东西来比喻?', icon: null, color: 'text-blue-500 bg-blue-500/10' },
3030
{ key: 'counter', label: '反例验证', question: '什么情况下这个概念不成立?有例外吗?', icon: null, color: 'text-amber-600 bg-amber-500/10 dark:text-amber-400' },
3131
{ key: 'apply', label: '实际应用', question: '在实际生活或工作中,这个概念怎么用?', icon: null, color: 'text-emerald-600 bg-emerald-500/10 dark:text-emerald-400' },
32-
{ key: 'history', label: '历史脉络', question: '这个概念是怎么来的?谁发现的?为什么?', icon: null, color: 'text-cyan-600 bg-cyan-500/10 dark:text-cyan-400' },
32+
{ key: 'history', label: '历史脉络', question: '这个概念是怎么来的?谁发现的?为什么?', icon: null, color: 'text-cyber bg-cyber/10 dark:text-cyber' },
3333
{ key: 'debate', label: '争议反思', question: '关于这个概念,有什么不同的看法或争论?', icon: null, color: 'text-orange-600 bg-orange-500/10 dark:text-orange-400' },
3434
];
3535

@@ -51,7 +51,7 @@ const FALLBACK_COLORS = [
5151
'text-blue-500 bg-blue-500/10',
5252
'text-amber-600 bg-amber-500/10 dark:text-amber-400',
5353
'text-emerald-600 bg-emerald-500/10 dark:text-emerald-400',
54-
'text-cyan-600 bg-cyan-500/10 dark:text-cyan-400',
54+
'text-cyber bg-cyber/10 dark:text-cyber',
5555
'text-orange-600 bg-orange-500/10 dark:text-orange-400',
5656
];
5757

0 commit comments

Comments
 (0)