From c8a77a01a6b2218db90fc71a2446f3d5eed43bf5 Mon Sep 17 00:00:00 2001
From: Remi <73385395+itsrubberduck@users.noreply.github.com>
Date: Fri, 19 Sep 2025 12:47:39 +0200
Subject: [PATCH] Make next objective pill compact and clickable
---
app/pages/learn.vue | 70 +++++++++++++++++++++++++++++++++++++++------
1 file changed, 61 insertions(+), 9 deletions(-)
diff --git a/app/pages/learn.vue b/app/pages/learn.vue
index 6ce7fc0..5546fa9 100644
--- a/app/pages/learn.vue
+++ b/app/pages/learn.vue
@@ -14,11 +14,19 @@
-
- Next up
+
+
@@ -2468,6 +2476,18 @@ function resumeMissionObjective() {
panel.value = 'hub'
}
+function goToPrimaryObjective() {
+ const objective = primaryObjective.value
+ if (!objective) return
+
+ if (objective.moduleId) {
+ quickContinue(objective.moduleId)
+ return
+ }
+
+ panel.value = 'hub'
+}
+
function selectLesson(lesson: Lesson) {
activeLesson.value = lesson
}
@@ -3053,16 +3073,41 @@ onMounted(() => {
}
.next-objective {
- display: flex;
+ display: inline-flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
- padding: 8px 12px;
+ padding: 5px 12px;
border-radius: 12px;
border: 1px solid var(--border);
background: color-mix(in srgb, var(--text) 6%, transparent);
min-width: 180px;
max-width: 240px;
+ text-align: right;
+ color: inherit;
+ font: inherit;
+ appearance: none;
+ cursor: pointer;
+ transition: background .2s ease, border-color .2s ease, transform .2s ease;
+}
+
+.next-objective:hover,
+.next-objective:focus-visible {
+ background: color-mix(in srgb, var(--text) 10%, transparent);
+ border-color: color-mix(in srgb, var(--text) 18%, transparent);
+ outline: none;
+}
+
+.next-objective:active {
+ transform: translateY(1px);
+}
+
+.next-header {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 6px;
+ width: 100%;
}
.next-label {
@@ -3075,13 +3120,15 @@ onMounted(() => {
.next-value {
font-weight: 600;
color: var(--t2);
- text-align: right;
+ font-size: 14px;
+ line-height: 1.1;
}
.next-status {
- font-size: 12px;
+ font-size: 10px;
color: var(--t3);
- text-align: right;
+ letter-spacing: .06em;
+ text-transform: uppercase;
}
.icon-btn {
@@ -3998,6 +4045,11 @@ onMounted(() => {
.next-objective {
align-items: flex-start;
+ text-align: left;
+ }
+
+ .next-header {
+ justify-content: flex-start;
}
.next-value,