Add Wortbaukasten, Preposition+Case trainer, and Listening Dictation modules

This commit is contained in:
chrisf committed 2026-10-21 04:53:52 +00:00
1 parent e636350940
commit 5f013dbdfe
5 files changed
+1646 -23

No files matched your search

+137
View File
@@ -1125,3 +1125,140 @@ body.hover-translate-on .word-token:hover {
margin-top: 0.15rem;
}
/* === WORTBAUKASTEN (COMPOUND & PREFIX LAB) === */
.compound-blocks-row {
display: flex;
align-items: stretch;
gap: 0.5rem;
flex-wrap: wrap;
margin: 1rem 0;
}
.compound-block {
background: var(--bg-main);
border: 2px solid var(--border-strong);
border-radius: 12px;
padding: 0.75rem 1rem;
display: flex;
flex-direction: column;
gap: 0.2rem;
min-width: 130px;
}
.compound-block.head-word {
border-color: var(--primary);
background: #fffbeb;
box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.12);
}
.compound-plus {
display: flex;
align-items: center;
font-weight: 800;
font-size: 1.25rem;
color: var(--text-muted);
}
.prefix-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
gap: 1rem;
margin-top: 1rem;
}
.prefix-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
padding: 1.15rem;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.sep-pill {
font-size: 0.72rem;
font-weight: 700;
padding: 0.15rem 0.55rem;
border-radius: 999px;
}
.sep-yes {
background: #ecfdf5;
color: #047857;
border: 1px solid #6ee7b7;
}
.sep-no {
background: #eff6ff;
color: #1d4ed8;
border: 1px solid #93c5fd;
}
/* === HÖRTRAINING (LISTENING DICTATION & SHADOWING) === */
.audio-hero-box {
background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%);
color: #fff;
border-radius: var(--radius-md);
padding: 1.5rem;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
flex-wrap: wrap;
margin-bottom: 1.25rem;
}
.diff-word {
display: inline-block;
padding: 0.15rem 0.45rem;
border-radius: 6px;
margin: 0.12rem;
font-weight: 700;
}
.diff-ok {
background: #d1fae5;
color: #065f46;
}
.diff-miss {
background: #fee2e2;
color: #991b1b;
text-decoration: underline wavy;
}
.mic-btn-recording {
background: #dc2626 !important;
color: #fff !important;
animation: pulseMic 1.2s infinite;
}
@keyframes pulseMic {
0% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); }
70% { box-shadow: 0 0 0 10px rgba(220, 38, 38, 0); }
100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0); }
}
/* === PREPOSITION & CASE TRAINER === */
.case-badge-akk {
background: #fef3c7;
color: #b45309;
border: 1px solid #fcd34d;
font-weight: 700;
font-size: 0.76rem;
padding: 0.15rem 0.55rem;
border-radius: 6px;
}
.case-badge-dat {
background: #ede9fe;
color: #6d28d9;
border: 1px solid #c4b5fd;
font-weight: 700;
font-size: 0.76rem;
padding: 0.15rem 0.55rem;
border-radius: 6px;
}