feat: upgrade student vocabulary learning flow

This commit is contained in:
Codex
2026-06-30 00:07:52 +08:00
parent e17b44274b
commit 3d10497ea8
10 changed files with 518 additions and 57 deletions

View File

@@ -392,3 +392,127 @@
word-break: break-all;
overflow-wrap: anywhere;
}
.vocabulary-page .student-topbar {
margin-bottom: 20px;
}
.vocabulary-modebar {
margin-top: 18px;
}
.vocabulary-study {
display: flex;
flex-direction: column;
gap: 18px;
}
.vocabulary-progress {
display: flex;
flex-direction: column;
gap: 10px;
}
.vocabulary-progress-track {
width: 100%;
height: 12px;
overflow: hidden;
border-radius: 999px;
background: #e2e8f0;
}
.vocabulary-progress-fill {
height: 100%;
border-radius: 999px;
background: #2563eb;
transition: width 180ms ease;
}
.vocabulary-card {
min-height: 560px;
padding: 32px;
border: 1px solid #dbe3ee;
border-radius: 8px;
background: #fff;
}
.vocabulary-card.revealed {
border-color: #bfdbfe;
background: #f8fbff;
}
.vocabulary-word {
display: block;
margin-top: 36px;
color: #0f172a;
font-size: 64px;
font-weight: 850;
line-height: 1.05;
text-align: center;
word-break: break-word;
}
.vocabulary-phonetic {
display: block;
margin-top: 16px;
color: #64748b;
font-size: 28px;
line-height: 1.3;
text-align: center;
}
.vocabulary-card-actions {
justify-content: center;
margin-top: 26px;
}
.vocabulary-answer {
margin-top: 34px;
padding: 24px;
border: 1px solid #e2e8f0;
border-radius: 8px;
background: #fff;
}
.vocabulary-actions {
justify-content: center;
}
.vocabulary-word-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.vocabulary-word-chip {
min-width: 0;
padding: 18px;
border: 1px solid #e2e8f0;
border-radius: 8px;
background: #fff;
}
.vocabulary-word-chip.active {
border-color: #2563eb;
background: #eff6ff;
}
.vocabulary-word-chip.favorite {
border-color: #f59e0b;
}
.vocabulary-chip-word {
display: block;
color: #0f172a;
font-size: 24px;
font-weight: 820;
line-height: 1.3;
word-break: break-word;
}
.vocabulary-chip-meta {
display: block;
margin-top: 6px;
color: #94a3b8;
font-size: 20px;
}