refactor: comprehensive frontend review — consistency, a11y, code quality

- Replace event dispatchers with BookingContext (Hero, Header, FloatingContact)
- Add focus trap hook for modals (SignupModal, NewsModal)
- Extract shared components: CollapsibleSection, ConfirmDialog, PriceField, AdminSkeleton
- Add delete confirmation dialog to ArrayEditor
- Replace hardcoded colors (#050505, #0a0a0a, #c9a96e, #2ecc71) with theme tokens
- Add CSS variables --color-surface-deep/dark for consistent dark surfaces
- Improve contrast: muted text neutral-500 → neutral-400 in dark mode
- Fix modal z-index hierarchy (modals z-60, header z-50, floats z-40)
- Consolidate duplicate formatDate → shared formatting.ts
- Add useMemo to TeamProfile groupMap computation
- Fix typography: responsive price text in Pricing section
- Add ARIA labels/expanded to FAQ, OpenDay, ArrayEditor grip handles
- Hide number input spinners globally
- Reorder admin sidebar: Dashboard → SEO → Bookings → site section order
- Use shared PriceField in Open Day editor
- Fix schedule grid first time slot (09:00) clipped by container
- Fix pre-existing type errors (bookings, hero, db interfaces)
This commit is contained in:
2026-03-26 19:45:37 +03:00
parent ec08f8e8d5
commit 76307e298b
32 changed files with 613 additions and 319 deletions
+4 -4
View File
@@ -2,12 +2,12 @@
.surface-base {
@apply bg-neutral-50 text-neutral-900;
@apply dark:bg-[#050505] dark:text-neutral-100;
@apply dark:bg-[var(--color-surface-deep)] dark:text-neutral-100;
}
.surface-muted {
@apply bg-neutral-100;
@apply dark:bg-[#080808];
@apply dark:bg-[var(--color-surface-deep)];
}
.surface-glass {
@@ -17,7 +17,7 @@
.surface-card {
@apply bg-white/80 backdrop-blur-sm;
@apply dark:bg-[#111] dark:backdrop-blur-sm;
@apply dark:bg-neutral-900 dark:backdrop-blur-sm;
}
/* ===== Borders ===== */
@@ -41,7 +41,7 @@
.muted-text {
@apply text-neutral-500;
@apply dark:text-neutral-500;
@apply dark:text-neutral-400;
}
.accent-text {