style: Refine UI/UX with color and spacing adjustments, enhance accessibility and mobile responsiveness, and update the application version.
This commit is contained in:
13
changelog.md
13
changelog.md
@@ -1,3 +1,16 @@
|
|||||||
|
## v1.6.23 (2026-03-12)
|
||||||
|
- 🎨 **UI**: Umfassende UI-Verbesserungen umgesetzt:
|
||||||
|
- **Glassmorphism**: Header-Hintergrundtransparenz auf 72% reduziert (war 90%) – der Blur-Effekt ist nun beim Scrollen sichtbar.
|
||||||
|
- **Dark-Mode Kontrast**: `--bg-card` abgedunkelt (`#283548`), `--border-color` leicht aufgehellt (`#526377`) – bessere Trennung zwischen Body und Card.
|
||||||
|
- **Accent-Color**: Im Light-Mode von Slate-900 (fast schwarz) auf Blue-600 (`#2563eb`) geändert – klarer sichtbarer Akzent.
|
||||||
|
- **Typography**: `.item-desc` `line-height` auf 1.5 (body-konsistent), `.day-date` kleiner und dezenter (0.8rem, opacity 0.75), `.item-name` leicht reduziert (0.95rem).
|
||||||
|
- **Item-Separator**: Subtile Trennlinie zwischen Menü-Items in der Tageskarte.
|
||||||
|
- **Badge-Konsistenz**: Alle Badges (`badge`, `tag-badge-small`) auf `border-radius: 6px` vereinheitlicht.
|
||||||
|
- **A11y – Reduced Motion**: `@media (prefers-reduced-motion: reduce)` deaktiviert alle dekorativen Puls-/Glow-Animationen für Motion-sensitive Nutzer.
|
||||||
|
- **A11y – Focus-Visible**: Globaler `:focus-visible` Outline-Ring (2px, accent-color) für Tastaturnavigation.
|
||||||
|
- **Active-States**: `:active` Feedback (`scale(0.97)`) für Bestell-, Storno- und Flag-Buttons.
|
||||||
|
- **Mobile Breakpoint**: Von 600px auf 768px erweitert (deckt Tablets ab); Grid-Deklaration explizit gesetzt um Browser-Override-Bug zu vermeiden.
|
||||||
|
|
||||||
## v1.6.22 (2026-03-12)
|
## v1.6.22 (2026-03-12)
|
||||||
- 🧹 **UX Cleanup**: Text-Label am Sprachumschalter entfernt. Der Button zeigt nun nur noch das `translate`-Icon an, was die Controls-Bar ruhiger macht.
|
- 🧹 **UX Cleanup**: Text-Label am Sprachumschalter entfernt. Der Button zeigt nun nur noch das `translate`-Icon an, was die Controls-Bar ruhiger macht.
|
||||||
|
|
||||||
|
|||||||
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
24
dist/install.html
vendored
24
dist/install.html
vendored
File diff suppressed because one or more lines are too long
96
dist/kantine-standalone.html
vendored
96
dist/kantine-standalone.html
vendored
File diff suppressed because one or more lines are too long
88
style.css
88
style.css
@@ -6,8 +6,8 @@
|
|||||||
--text-primary: #334155;
|
--text-primary: #334155;
|
||||||
/* Slate 700 */
|
/* Slate 700 */
|
||||||
--text-secondary: #64748b;
|
--text-secondary: #64748b;
|
||||||
--accent-color: #0f172a;
|
--accent-color: #2563eb;
|
||||||
/* Slate 900 (High contrast) */
|
/* Blue 600 – visible accent, distinguishable from text */
|
||||||
--border-color: #cbd5e1;
|
--border-color: #cbd5e1;
|
||||||
/* Slate 300 */
|
/* Slate 300 */
|
||||||
--banner-bg: #e2e8f0;
|
--banner-bg: #e2e8f0;
|
||||||
@@ -15,7 +15,8 @@
|
|||||||
--success-color: #059669;
|
--success-color: #059669;
|
||||||
--error-color: #dc2626;
|
--error-color: #dc2626;
|
||||||
--card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
|
--card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
|
||||||
--header-bg: rgba(255, 255, 255, 0.9);
|
/* Reduced opacity for visible glassmorphism blur effect */
|
||||||
|
--header-bg: rgba(255, 255, 255, 0.72);
|
||||||
--header-border: 1px solid rgba(203, 213, 225, 0.6);
|
--header-border: 1px solid rgba(203, 213, 225, 0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,19 +24,20 @@
|
|||||||
/* Premium Slate/Gray-Blue Palette - Dark Mode */
|
/* Premium Slate/Gray-Blue Palette - Dark Mode */
|
||||||
--bg-body: #1e293b;
|
--bg-body: #1e293b;
|
||||||
/* Deep Slate Gray (Requested) */
|
/* Deep Slate Gray (Requested) */
|
||||||
--bg-card: #334155;
|
--bg-card: #283548;
|
||||||
/* Slate 700 */
|
/* Darker than Slate 700 → more layer contrast vs bg-body */
|
||||||
--text-primary: #f8fafc;
|
--text-primary: #f8fafc;
|
||||||
/* Slate 50 */
|
/* Slate 50 */
|
||||||
--text-secondary: #cbd5e1;
|
--text-secondary: #cbd5e1;
|
||||||
/* Slate 300 */
|
/* Slate 300 */
|
||||||
--accent-color: #60a5fa;
|
--accent-color: #60a5fa;
|
||||||
/* Blue 400 */
|
/* Blue 400 */
|
||||||
--border-color: #475569;
|
--border-color: #526377;
|
||||||
/* Slate 600 */
|
/* Slightly lighter → visible border on darker card bg */
|
||||||
--banner-bg: #475569;
|
--banner-bg: #475569;
|
||||||
--banner-text: #e2e8f0;
|
--banner-text: #e2e8f0;
|
||||||
--header-bg: rgba(30, 41, 59, 0.9);
|
/* Reduced opacity for visible glassmorphism blur effect */
|
||||||
|
--header-bg: rgba(30, 41, 59, 0.72);
|
||||||
--header-border: 1px solid rgba(71, 85, 105, 0.6);
|
--header-border: 1px solid rgba(71, 85, 105, 0.6);
|
||||||
--card-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.4);
|
--card-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.4);
|
||||||
}
|
}
|
||||||
@@ -984,8 +986,11 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.day-date {
|
.day-date {
|
||||||
font-size: 0.875rem;
|
font-size: 0.8rem;
|
||||||
|
font-weight: 400;
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
|
opacity: 0.75;
|
||||||
|
/* Visually subordinate to day-name */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1001,6 +1006,9 @@ body {
|
|||||||
/* Spacing now handled by .card-body grid gap */
|
/* Spacing now handled by .card-body grid gap */
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
/* Subtle separator between items */
|
||||||
|
border-bottom: 1px solid var(--border-color);
|
||||||
|
padding-bottom: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-item:last-child {
|
.menu-item:last-child {
|
||||||
@@ -1020,7 +1028,8 @@ body {
|
|||||||
.item-name {
|
.item-name {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: var(--text-primary);
|
color: var(--text-primary);
|
||||||
font-size: 1rem;
|
font-size: 0.95rem;
|
||||||
|
/* Slightly smaller to reduce visual competition with day header */
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-price {
|
.item-price {
|
||||||
@@ -1032,7 +1041,8 @@ body {
|
|||||||
.item-desc {
|
.item-desc {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
line-height: 1.6;
|
line-height: 1.5;
|
||||||
|
/* Consistent with body line-height */
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
@@ -1059,7 +1069,8 @@ body {
|
|||||||
height: 24px;
|
height: 24px;
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
|
/* Unified radius matching buttons and tag-badge-small */
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.05em;
|
letter-spacing: 0.05em;
|
||||||
@@ -1153,6 +1164,11 @@ body {
|
|||||||
transform: translateY(-1px);
|
transform: translateY(-1px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-order:active:not(:disabled) {
|
||||||
|
transform: scale(0.97);
|
||||||
|
filter: brightness(0.95);
|
||||||
|
}
|
||||||
|
|
||||||
.btn-order:disabled {
|
.btn-order:disabled {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
@@ -1196,6 +1212,11 @@ body {
|
|||||||
transform: translateY(-1px);
|
transform: translateY(-1px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-cancel:active:not(:disabled) {
|
||||||
|
transform: scale(0.97);
|
||||||
|
filter: brightness(0.95);
|
||||||
|
}
|
||||||
|
|
||||||
.btn-cancel:disabled {
|
.btn-cancel:disabled {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
@@ -1275,9 +1296,12 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* === Mobile Responsiveness === */
|
/* === Mobile Responsiveness === */
|
||||||
@media (max-width: 600px) {
|
/* 768px covers tablets (e.g. iPad Mini); 600px was too narrow-only */
|
||||||
|
@media (max-width: 768px) {
|
||||||
.header-content {
|
.header-content {
|
||||||
flex-direction: column;
|
display: grid;
|
||||||
|
/* Ensure grid is active, prevents flex-only fallback */
|
||||||
|
grid-template-columns: 1fr;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
padding: 0.75rem;
|
padding: 0.75rem;
|
||||||
}
|
}
|
||||||
@@ -1300,8 +1324,9 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.days-grid {
|
.days-grid {
|
||||||
|
display: grid;
|
||||||
|
/* Explicit grid declaration to prevent flex-context override */
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
/* Force single column */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
@@ -1337,6 +1362,32 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* === Accessibility: Respect prefers-reduced-motion === */
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
/* Disable all decorative pulse/glow animations */
|
||||||
|
.menu-item.today-ordered,
|
||||||
|
.menu-item.flagged-sold-out,
|
||||||
|
.menu-item.flagged-available,
|
||||||
|
.menu-item.highlight-glow,
|
||||||
|
.nav-btn.new-week-available,
|
||||||
|
.update-icon,
|
||||||
|
#order-countdown.urgent {
|
||||||
|
animation: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Keep functional animations (modal slide, spinner) */
|
||||||
|
.toast {
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* === Focus Visibility (A11y: Keyboard Navigation) === */
|
||||||
|
:focus-visible {
|
||||||
|
outline: 2px solid var(--accent-color);
|
||||||
|
outline-offset: 2px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
/* === Flagging & Notification Styles === */
|
/* === Flagging & Notification Styles === */
|
||||||
|
|
||||||
.btn-flag {
|
.btn-flag {
|
||||||
@@ -1368,6 +1419,10 @@ body {
|
|||||||
border-color: #eab308;
|
border-color: #eab308;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-flag:active {
|
||||||
|
transform: scale(0.97);
|
||||||
|
}
|
||||||
|
|
||||||
.btn-flag .material-icons-round {
|
.btn-flag .material-icons-round {
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
}
|
}
|
||||||
@@ -1716,7 +1771,8 @@ body {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 0.7rem;
|
font-size: 0.7rem;
|
||||||
padding: 2px 8px;
|
padding: 2px 8px;
|
||||||
border-radius: 4px;
|
border-radius: 6px;
|
||||||
|
/* Unified with .badge and button border-radius */
|
||||||
background: rgba(59, 130, 246, 0.15);
|
background: rgba(59, 130, 246, 0.15);
|
||||||
color: #60a5fa;
|
color: #60a5fa;
|
||||||
border: 1px solid rgba(59, 130, 246, 0.3);
|
border: 1px solid rgba(59, 130, 246, 0.3);
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
v1.6.22
|
v1.6.23
|
||||||
|
|||||||
Reference in New Issue
Block a user