diff --git a/backend/static/css/layout.css b/backend/static/css/layout.css index 5b5f4d9..33fde8e 100644 --- a/backend/static/css/layout.css +++ b/backend/static/css/layout.css @@ -685,6 +685,20 @@ white-space: nowrap; } + /* Übungen: Tabs auf 2 Zeilen */ + #page-uebungen #ueb-tabs { + display: grid; + grid-template-columns: repeat(var(--ueb-tab-cols, 5), minmax(0, 1fr)); + overflow: visible; + gap: var(--space-1); + padding-bottom: var(--space-2); + } + #page-uebungen #ueb-tabs .by-tab { + justify-content: center; + text-align: center; + white-space: nowrap; + } + /* Karte: Legende auf 2 Zeilen — #page-map nötig für Spezifität > .map-legend (components.css lädt später) */ #page-map .map-legend { diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 5d11c09..0b85718 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '472'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '473'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const App = (() => { diff --git a/backend/static/js/pages/uebungen.js b/backend/static/js/pages/uebungen.js index 6c0a276..5118f1a 100644 --- a/backend/static/js/pages/uebungen.js +++ b/backend/static/js/pages/uebungen.js @@ -578,8 +578,11 @@ window.Page_uebungen = (() => { `; _container.querySelector('#ueb-quicksetup-btn').addEventListener('click', _openQuickSetupModal); + _container.querySelector('#ueb-tabs')?.style.setProperty('--ueb-tab-cols', Math.ceil(TABS.length / 2)); _container.querySelector('#ueb-search')?.addEventListener('input', e => { _searchQuery = e.target.value.trim().toLowerCase(); + const tabs = _container.querySelector('#ueb-tabs'); + if (tabs) tabs.style.display = _searchQuery ? 'none' : ''; _renderContent(); }); _bindTabs(); @@ -961,12 +964,15 @@ window.Page_uebungen = (() => { case 'hundesport': case 'koerperpflege': case 'welpe-basics': { - const list = _exercisesByTab[_activeTab] || []; - el.innerHTML = list.length - ? _renderUebungsList(list) - : `