style: improve pill layout for mobile

- Wrap lesson label in span for mobile hiding
- Truncate module name with ellipsis if too long
- Hide "Lesson/Lektion" label on mobile, show only "1 / 3"
- Add lessonLabel i18n keys for EN/DE
This commit is contained in:
2025-12-30 20:03:33 +01:00
parent e9e8490737
commit 583c53371d
4 changed files with 18 additions and 3 deletions

View File

@@ -163,7 +163,8 @@ export function renderLesson(titleEl, descriptionEl, taskEl, previewEl, prefixEl
* @param {number} total - The total number of levels
*/
export function renderLevelIndicator(element, current, total) {
element.textContent = t("levelIndicator", { current, total });
const label = t("lessonLabel");
element.innerHTML = `<span class="level-label">${label}</span> ${current} / ${total}`;
}
/**

View File

@@ -31,6 +31,7 @@ const translations = {
previous: "Previous",
next: "Next",
levelIndicator: "Lesson {current} of {total}",
lessonLabel: "Lesson",
// Sidebar
menu: "Menu",
@@ -119,6 +120,7 @@ const translations = {
previous: "Zurück",
next: "Weiter",
levelIndicator: "Lektion {current} von {total}",
lessonLabel: "Lektion",
// Sidebar
menu: "Menü",

View File

@@ -243,6 +243,10 @@ code, kbd {
.module-name {
text-transform: uppercase;
letter-spacing: 0.5px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 150px;
}
.module-pill .level-indicator {
@@ -1079,6 +1083,14 @@ input:checked + .toggle-slider::before {
padding: var(--spacing-sm);
}
.module-name {
max-width: 100px;
}
.level-label {
display: none;
}
.btn {
padding: var(--spacing-xs) var(--spacing-sm);
font-size: 0.85rem;