From 026b469ee978e273a0b29d6244199f210ebc6ef9 Mon Sep 17 00:00:00 2001 From: Remi <73385395+itsrubberduck@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:44:15 +0200 Subject: [PATCH] Hide hero in mission view and restyle module layout --- app/pages/learn.vue | 420 +++++++++++++++++++++++++------------------- 1 file changed, 239 insertions(+), 181 deletions(-) diff --git a/app/pages/learn.vue b/app/pages/learn.vue index 6ce7fc0..0da72db 100644 --- a/app/pages/learn.vue +++ b/app/pages/learn.vue @@ -42,7 +42,7 @@ -
+
@@ -291,202 +291,208 @@
-
- -
- -
-
-
- Callsign -
{{ scenario.callsign }}
-
{{ scenario.radioCall }}
-
-
- Airport -
{{ scenario.airport.icao }}
-
{{ scenario.airport.name }}
-
-
- Frequencies -
- -
-
- {{ scenario.frequencyWords[activeFrequency.type] }} -
+ + {{ lessonScoreIcon(current.id, l.id) }} + {{ lessonScoreLabel(current.id, l.id) }} + +
+
+ mdi-headset + {{ l.title }} +
+
+
{{ l.desc }}
+
+ {{ k }} +
+
-
-
-
Briefing
-
-
-
-
{{ activeLesson.desc }}
+ +
+
+
+
+ Callsign +
{{ scenario.callsign }}
+
{{ scenario.radioCall }}
+
+
+ Airport +
{{ scenario.airport.icao }}
+
{{ scenario.airport.name }}
+
+
+ Frequencies +
+ +
+
+ {{ scenario.frequencyWords[activeFrequency.type] }} +
+
+
+
+
+
Briefing
+
+
+
+
{{ activeLesson.desc }}
+
+ {{ targetPhrase }} +
+
+ Audio challenge active – listen first. +
+
+
+ + + +
+
+
+
+
+ mdi-lightbulb-on-outline + {{ hint }} +
- {{ targetPhrase }} -
-
- Audio challenge active – listen first. + v-for="info in lessonInfo" + :key="info" + :class="['hint', 'secondary', { 'audio-blur': audioContentHidden }]" + :aria-hidden="audioContentHidden ? 'true' : 'false'" + > + mdi-information-outline + {{ info }}
-
-
+ +
+
Your readback
+
+
+ +
+
+
+ - -
+
+
{{ result.score }}%
+
+ Fields correct: {{ result.hits }}/{{ activeLesson.fields.length }} · Similarity: {{ Math.round(result.sim * 100) }}% +
+
+
+
+
{{ field.label }}
+
{{ field.answer || '—' }}
+
Expected: {{ field.expected }}
+
+
-
-
- mdi-lightbulb-on-outline - {{ hint }} + +
+
+
+ Next: {{ nextLessonMeta.lesson.title }} · Lesson {{ nextLessonMeta.position }} of {{ nextLessonMeta.total }} +
+
+ Last lesson in this module. +
-
- mdi-information-outline - {{ info }} +
+ +
- -
-
Your readback
-
-
- -
-
-
- - - -
-
-
{{ result.score }}%
-
- Fields correct: {{ result.hits }}/{{ activeLesson.fields.length }} · Similarity: {{ Math.round(result.sim * 100) }}% -
-
-
-
-
{{ field.label }}
-
{{ field.answer || '—' }}
-
Expected: {{ field.expected }}
-
-
-
-
- -
-
-
- Next: {{ nextLessonMeta.lesson.title }} · Lesson {{ nextLessonMeta.position }} of {{ nextLessonMeta.total }} -
-
- Last lesson in this module. -
-
-
- - -
@@ -3801,6 +3807,49 @@ onMounted(() => { background: color-mix(in srgb, var(--text) 6%, transparent) } +.module-content { + display: flex; + flex-direction: column; + gap: 24px; + margin-top: 20px; +} + +.module-overview, +.module-detail { + position: relative; + padding: 24px; + border-radius: 24px; + border: 1px solid color-mix(in srgb, var(--text) 14%, transparent); + background: color-mix(in srgb, var(--text) 4%, transparent); + box-shadow: 0 24px 48px rgba(2, 6, 23, .5); + backdrop-filter: blur(18px); + overflow: hidden; +} + +.module-overview { + border-color: color-mix(in srgb, var(--accent) 40%, transparent); + background: linear-gradient(150deg, color-mix(in srgb, var(--accent) 14%, transparent) 0%, color-mix(in srgb, var(--text) 4%, transparent) 100%); +} + +.module-overview::before { + content: ""; + position: absolute; + inset: -60% 40% auto -10%; + height: 240px; + background: radial-gradient(160px 160px at center, color-mix(in srgb, var(--accent) 28%, transparent), transparent 70%); + opacity: .5; + pointer-events: none; +} + +.module-detail { + border-color: color-mix(in srgb, var(--text) 22%, transparent); + background: linear-gradient(160deg, color-mix(in srgb, var(--text) 6%, transparent) 0%, color-mix(in srgb, var(--bg2) 70%, transparent) 100%); +} + +.module-detail .console { + margin-top: 0; +} + .lesson-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); @@ -3966,6 +4015,15 @@ onMounted(() => { grid-template-columns: 1fr } + .module-content { + gap: 18px; + } + + .module-overview, + .module-detail { + padding: 18px; + } + .console-grid { grid-template-columns: 1fr }