Add word list preview, young learner mode, and practice improvements

- Show full word list before practice starts so students can study words first
- Add per-student young learner mode (set in admin): word stays visible while typing
- Center all practice card content (speak button, prompt, feedback, check button)
- Remove 10-word-per-session cap so large lists (25-30 words) practice all words
- Double the misspelled-word study countdown from 4s to 8s
- Fix word list preview numbering for 10+ items (inline numbers, no clipping)
- Add young_learner column to students table with admin toggle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-08-05 10:43:24 -04:00
1 parent 006c865b87
commit 7f6268d6e5
6 files changed
+115 -7

No files matched your search

+32 -1
View File
@@ -35,13 +35,16 @@ body {
#view-assignment,
#view-quiz,
#view-flashcards,
#view-practice,
#view-test,
#view-worksheet {
max-width: 960px;
text-align: left;
}
#view-practice {
max-width: 960px;
}
#view-crossword {
max-width: 100%;
text-align: left;
@@ -279,6 +282,34 @@ body:has(#view-home:not([hidden])) .page-confetti { display: block; }
.countdown { color: var(--muted); }
.hint-badge { font-size: 1rem; color: var(--accent-dark); margin: 0.3rem 0 0.5rem; }
/* Word list preview */
.preview-title { font-size: 1.5rem; margin: 0 0 0.25rem; }
.word-preview-list {
list-style: none;
padding: 0;
margin: 0.75rem 0 1.5rem;
text-align: left;
max-height: 55vh;
overflow-y: auto;
}
.word-preview-list li { margin: 0.45rem 0; font-size: 1.2rem; font-weight: 700; display: flex; gap: 0.4rem; }
.word-num { color: var(--muted); min-width: 2rem; text-align: right; flex-shrink: 0; font-weight: 400; }
.word-sentence { display: block; font-size: 0.88rem; font-weight: normal; color: var(--muted); }
/* Young learner toggle */
.young-toggle-row { margin-top: 0.9rem; text-align: center; }
.young-toggle {
cursor: pointer;
font-size: 0.95rem;
display: inline-flex;
align-items: center;
gap: 0.45rem;
color: var(--muted);
user-select: none;
}
.young-toggle input { accent-color: var(--accent); width: 1.1rem; height: 1.1rem; cursor: pointer; }
.young-countdown { font-size: 1.1rem; margin-top: 0.25rem; color: var(--accent-dark); }
.streak-badge {
display: inline-block; margin-left: 0.5rem;
background: #fff3cd; color: #7c5200;