feat: Enhance layout density and responsiveness with tighter spacing and flex-wrap, and resolve scrolling conflicts in the bookmarklet.
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
## v1.6.16 (2026-03-11)
|
## v1.6.17 (2026-03-11)
|
||||||
|
- 🎨 **UX**: Fix Card Content Overflow – In der 5-Tage-Ansicht (Landscape) auf schmalen Bildschirmen umbrechen die Status-Badges und Buttons jetzt korrekt in eine neue Zeile, statt über den Kartenrand hinauszuragen. Das Karten-Padding wurde für Desktop-Ansichten optimiert.
|
||||||
|
|
||||||
- 🧹 **Wartbarkeit**: Alle verbliebenen hardcodierten deutschen UI-Strings in `actions.js` via `t()` übersetzt (Progress-Texte, Fehler-Labels, 'Angemeldet', 'Hintergrund-Synchronisation').
|
- 🧹 **Wartbarkeit**: Alle verbliebenen hardcodierten deutschen UI-Strings in `actions.js` via `t()` übersetzt (Progress-Texte, Fehler-Labels, 'Angemeldet', 'Hintergrund-Synchronisation').
|
||||||
- 🔑 **Wartbarkeit**: Alle `localStorage`-Schlüssel in einheitliches `LS`-Objekt in `constants.js` zentralisiert. Alle Quelldateien verwenden jetzt `LS.*` statt Rohstrings.
|
- 🔑 **Wartbarkeit**: Alle `localStorage`-Schlüssel in einheitliches `LS`-Objekt in `constants.js` zentralisiert. Alle Quelldateien verwenden jetzt `LS.*` statt Rohstrings.
|
||||||
- 🛡️ **Robustheit**: `setLangMode()` und `setDisplayMode()` in `state.js` prüfen jetzt Eingabewerte – ungültige Werte werden verworfen und protokolliert.
|
- 🛡️ **Robustheit**: `setLangMode()` und `setDisplayMode()` in `state.js` prüfen jetzt Eingabewerte – ungültige Werte werden verworfen und protokolliert.
|
||||||
|
|||||||
4
dist/bookmarklet-payload.js
vendored
4
dist/bookmarklet-payload.js
vendored
File diff suppressed because one or more lines are too long
2
dist/bookmarklet.txt
vendored
2
dist/bookmarklet.txt
vendored
File diff suppressed because one or more lines are too long
14
dist/install.html
vendored
14
dist/install.html
vendored
File diff suppressed because one or more lines are too long
26
dist/kantine-standalone.html
vendored
26
dist/kantine-standalone.html
vendored
File diff suppressed because one or more lines are too long
2
dist/kantine.bundle.js
vendored
2
dist/kantine.bundle.js
vendored
@@ -1136,7 +1136,7 @@ const API_BASE = 'https://api.bessa.app/v1';
|
|||||||
const GUEST_TOKEN = 'c3418725e95a9f90e3645cbc846b4d67c7c66131';
|
const GUEST_TOKEN = 'c3418725e95a9f90e3645cbc846b4d67c7c66131';
|
||||||
|
|
||||||
/** The client version injected into every API request header. */
|
/** The client version injected into every API request header. */
|
||||||
const CLIENT_VERSION = 'v1.6.16';
|
const CLIENT_VERSION = 'v1.6.17';
|
||||||
|
|
||||||
/** Bessa venue ID for Knapp-Kantine. */
|
/** Bessa venue ID for Knapp-Kantine. */
|
||||||
const VENUE_ID = 591;
|
const VENUE_ID = 591;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export const API_BASE = 'https://api.bessa.app/v1';
|
|||||||
export const GUEST_TOKEN = 'c3418725e95a9f90e3645cbc846b4d67c7c66131';
|
export const GUEST_TOKEN = 'c3418725e95a9f90e3645cbc846b4d67c7c66131';
|
||||||
|
|
||||||
/** The client version injected into every API request header. */
|
/** The client version injected into every API request header. */
|
||||||
export const CLIENT_VERSION = 'v1.6.16';
|
export const CLIENT_VERSION = 'v1.6.17';
|
||||||
|
|
||||||
/** Bessa venue ID for Knapp-Kantine. */
|
/** Bessa venue ID for Knapp-Kantine. */
|
||||||
export const VENUE_ID = 591;
|
export const VENUE_ID = 591;
|
||||||
|
|||||||
16
style.css
16
style.css
@@ -829,8 +829,8 @@ body {
|
|||||||
|
|
||||||
.days-grid {
|
.days-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
||||||
gap: 0.75rem;
|
gap: 0.5rem;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
/* This is the scroll container at the window edge */
|
/* This is the scroll container at the window edge */
|
||||||
@@ -997,6 +997,7 @@ body {
|
|||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-status-row {
|
.item-status-row {
|
||||||
@@ -1004,6 +1005,7 @@ body {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.badge {
|
.badge {
|
||||||
@@ -1280,6 +1282,16 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Tighter layout for high column counts (e.g., 5-day landscape) */
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.card-body {
|
||||||
|
padding: 1rem 0.75rem;
|
||||||
|
}
|
||||||
|
.item-header {
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* === Flagging & Notification Styles === */
|
/* === Flagging & Notification Styles === */
|
||||||
|
|
||||||
.btn-flag {
|
.btn-flag {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
v1.6.16
|
v1.6.17
|
||||||
|
|||||||
Reference in New Issue
Block a user