UX - Filter #12
|
|
@ -215,6 +215,11 @@ body { font-family: var(--font); background: var(--bg); color: var(--text1); -we
|
||||||
/* Cards */
|
/* Cards */
|
||||||
.card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px; }
|
.card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px; }
|
||||||
.card + .card { margin-top: 12px; }
|
.card + .card { margin-top: 12px; }
|
||||||
|
/* In CSS-Grids: Abstände nur über gap, nicht über Adjacent-Sibling-Margin */
|
||||||
|
.exercises-list-grid > .card + .card,
|
||||||
|
.ref-value-tiles-grid > .card + .card {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
.card-title { font-size: 13px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 10px; }
|
.card-title { font-size: 13px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 10px; }
|
||||||
|
|
||||||
/* Stats grid */
|
/* Stats grid */
|
||||||
|
|
@ -961,7 +966,7 @@ a.analysis-split__nav-item {
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Erfassung: Sub-Navigation (Mobil = Chips, Desktop = linke Spalte) */
|
/* Erfassung: Sub-Navigation — oben Chip-Zeile (alle Viewports); wie admin-page-subtabs */
|
||||||
.capture-shell {
|
.capture-shell {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
@ -970,11 +975,26 @@ a.analysis-split__nav-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 16px;
|
gap: 16px;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.capture-shell__nav-wrap {
|
||||||
|
width: 100%;
|
||||||
|
min-width: 0;
|
||||||
|
position: sticky;
|
||||||
|
top: var(--header-h);
|
||||||
|
z-index: 4;
|
||||||
|
background: var(--bg);
|
||||||
|
padding-bottom: 4px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
}
|
}
|
||||||
|
|
||||||
.capture-shell__nav {
|
.capture-shell__nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
padding-bottom: 6px;
|
padding-bottom: 6px;
|
||||||
|
|
@ -1036,42 +1056,32 @@ a.analysis-split__nav-item {
|
||||||
|
|
||||||
.capture-shell__main {
|
.capture-shell__main {
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1024px) {
|
@media (min-width: 1024px) {
|
||||||
.capture-shell__layout {
|
.capture-shell__layout {
|
||||||
flex-direction: row;
|
gap: 20px;
|
||||||
align-items: flex-start;
|
|
||||||
gap: 24px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.capture-shell__nav-wrap {
|
.capture-shell__nav-wrap {
|
||||||
flex: 0 0 260px;
|
top: var(--header-h);
|
||||||
max-width: 280px;
|
padding-top: 2px;
|
||||||
position: sticky;
|
padding-bottom: 10px;
|
||||||
top: 16px;
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.capture-shell__nav {
|
.capture-shell__nav {
|
||||||
flex-direction: column;
|
flex-wrap: wrap;
|
||||||
overflow-x: visible;
|
overflow-x: visible;
|
||||||
overflow-y: auto;
|
|
||||||
max-height: calc(100vh - 140px);
|
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.capture-shell__nav-item {
|
.capture-shell__nav-item {
|
||||||
width: 100%;
|
padding: 9px 14px;
|
||||||
justify-content: flex-start;
|
border-radius: 999px;
|
||||||
border-radius: 10px;
|
font-size: 13px;
|
||||||
white-space: normal;
|
font-weight: 600;
|
||||||
padding: 9px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.capture-shell__main {
|
|
||||||
flex: 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1492,6 +1502,15 @@ button.capture-shell__nav-item {
|
||||||
font-size: 0.92rem;
|
font-size: 0.92rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Navigations-Ebenen (Kurzreferenz) ----------
|
||||||
|
* Hauptbereiche: Bottom-Nav / App-Header.
|
||||||
|
* Sektionsumschalter auf einer Seite (2–n Einträge): horizontale Chip-Zeile oben —
|
||||||
|
* • AppSubnavShell → .capture-shell (sticky unter dem Header, Wrap auf großen Screens)
|
||||||
|
* • viele flache Tabs (z. B. Stammdaten) → .admin-page-subtabs (gleiche Chip-Idee, Edge-Scroll mobil)
|
||||||
|
* Wechsel zwischen Admin-Seiten → .admin-top-nav
|
||||||
|
* „Sub-Sub“ (dritte Ebene, z. B. Editor-Spalten): bewusst in jeweiligen Feature-Layouts (Seitenleiste / Panel).
|
||||||
|
* ---------- */
|
||||||
|
|
||||||
/* Admin-Kataloge: Seite „Stammdaten“ — viele Unter-Tabs, Chip-Scroll */
|
/* Admin-Kataloge: Seite „Stammdaten“ — viele Unter-Tabs, Chip-Scroll */
|
||||||
.admin-page-subtabs {
|
.admin-page-subtabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/**
|
/**
|
||||||
* Einheitliche Sub-Navigation (Jinkendo-Muster):
|
* Sub-Navigation (einheitlich mit Admin-Sektionsschaltern):
|
||||||
* Mobil = horizontale Chips, Desktop ≥1024px = linke Spalte (sticky).
|
* — Mobil & Desktop: eine horizontale Chip-/Registerzeile oben (scroll auf schmalen Viewports).
|
||||||
|
* — Eine darunter liegende „Sub-Sub“-Ebene (z. B. Rahmen bearbeiten) bleibt bewusst
|
||||||
|
* seitlich / in eigenen Layout-Komponenten (z. B. Trainingseinheit, Framework-Editor).
|
||||||
* Nutzt .capture-shell* aus app.css.
|
* Nutzt .capture-shell* aus app.css.
|
||||||
*/
|
*/
|
||||||
export default function AppSubnavShell({
|
export default function AppSubnavShell({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user