From 68aba93c7d09cd6a7f715bd18566060e081e8205 Mon Sep 17 00:00:00 2001 From: Manuel Fegerl <> Date: Sun, 5 Jul 2026 18:13:20 +0200 Subject: [PATCH] feat(ui): Atlas Editorial redesign, dark mode, and new travel-planning features Complete frontend redesign in the "Atlas Editorial" direction: warm paper/ink semantic tokens (terracotta + deep-teal accents), Fraunces display serif with Instrument Sans body and IBM Plex Mono details, cartographic grid/grain textures, and shared UI primitives (Button, Card, Sheet, CrowdCurve, ...). Design system & theming - Semantic light/dark tokens in globals.css via @custom-variant dark; "night atlas" dark mode follows the system, overridable via a toggle persisted to localStorage (pp_theme), with a no-FOUC inline script - Map basemap swaps Positron/Dark Matter with the theme; label localization re-applied on style data; unified crowd palette (src/lib/crowd-palette.ts) replaces the previously triplicated green-red ramp Pages - Marketing (landing, 7 feature pages, destination, contact, privacy) rebuilt in the editorial language; mobile-first map screen with bottom control dock, thumb-size slider controls, and accessible bottom sheets - Localized metadata (new "meta" namespace); German exonyms (Wien, Rom, ...) shown in search results, destination pages, compare, and the map sheet New features - Best-time finder (/best-time): 52-week crowd curve per destination with quietest/busiest weeks and map deep link - Saved places + compare (/compare): local favourites, multi-series curve, shareable ?ids= links - Quieter alternatives on destination pages (same category, calmer in peak) - Map destination tap-sheet with year curve, save and share - PWA: manifest, icons, apple-icon; native share with clipboard fallback; OG images for the site root and per destination (/api/og/destination) Data fixes - Venice was drastically under-modelled (2 travel patterns, metropolis default capacity): added 15 realistic source flows and capacityOverride 3.0 so it now reads packed May-Sep with a real winter dip - API caches shortened to max-age=3600 + stale-while-revalidate so recomputed heatmap data reaches clients quickly i18n: all new strings in en/de/es/fr, guarded by a messages-parity test. Tests: 272 passing (60+ new: crowd palette, theme provider, saved places, quiet alternatives, /api/busyness route, UI primitives). Co-Authored-By: Claude Fable 5 --- public/icons/icon-192.png | Bin 0 -> 9409 bytes public/icons/icon-512.png | Bin 0 -> 31224 bytes public/icons/maskable-512.png | Bin 0 -> 25375 bytes src/app/(map)/map/page.tsx | 68 ++-- src/app/(marketing)/best-time/page.tsx | 42 +++ src/app/(marketing)/compare/page.tsx | 43 +++ src/app/(marketing)/contact/page.tsx | 39 +- .../(marketing)/destination/[slug]/page.tsx | 152 ++++++-- .../(marketing)/features/categories/page.tsx | 50 +-- .../(marketing)/features/crowdedness/page.tsx | 153 ++++---- src/app/(marketing)/features/events/page.tsx | 102 +++--- .../features/holiday-boost/page.tsx | 83 ++--- .../features/holiday-providers/page.tsx | 96 +++-- .../(marketing)/features/seasonality/page.tsx | 73 ++-- .../(marketing)/features/timeline/page.tsx | 82 ++--- src/app/(marketing)/page.tsx | 332 +++++++++-------- src/app/(marketing)/privacy/page.tsx | 166 +++++---- src/app/api/busyness/__tests__/route.test.ts | 120 ++++++ src/app/api/busyness/route.ts | 60 +++ src/app/api/heatmap/route.ts | 4 +- src/app/api/og/destination/[slug]/route.tsx | 140 +++++++ src/app/apple-icon.png | Bin 0 -> 6604 bytes src/app/globals.css | 320 ++++++++++++---- src/app/icon.svg | 32 +- src/app/layout.tsx | 100 +++-- src/app/manifest.ts | 38 ++ src/app/opengraph-image.tsx | 114 ++++++ src/app/sitemap.ts | 1 + src/components/ConsentControls.tsx | 39 +- src/components/CookieConsent.tsx | 23 +- src/components/HeroDestinationSearch.tsx | 114 ++---- src/components/LanguageSwitcher.tsx | 6 +- src/components/MobileNav.tsx | 66 ++++ src/components/SiteFooter.tsx | 88 +++-- src/components/SiteHeader.tsx | 72 ++-- src/components/best-time/BestTimeFinder.tsx | 345 ++++++++++++++++++ src/components/compare/CompareView.tsx | 208 +++++++++++ src/components/contact/ContactForm.tsx | 63 ++-- src/components/controls/HolidayPanel.tsx | 45 +-- src/components/controls/LayerToggle.tsx | 61 ++-- src/components/controls/Legend.tsx | 19 +- src/components/controls/TimeSlider.tsx | 70 ++-- src/components/controls/YearSelector.tsx | 10 +- .../controls/__tests__/Legend.test.tsx | 12 +- .../controls/__tests__/YearSelector.test.tsx | 8 +- .../destination/DestinationActions.tsx | 70 ++++ src/components/features/FeaturePageShell.tsx | 71 ++-- src/components/map/DestinationSheet.tsx | 135 +++++++ src/components/map/DestinationTooltip.tsx | 26 +- src/components/map/HeatmapLayer.tsx | 57 +-- src/components/map/HolidayRegionsLayer.tsx | 10 +- src/components/map/MapDisclaimer.tsx | 24 +- src/components/map/MapHeader.tsx | 39 +- src/components/map/MapView.tsx | 48 ++- src/components/theme/ThemeProvider.tsx | 111 ++++++ src/components/theme/ThemeToggle.tsx | 52 +++ .../theme/__tests__/ThemeProvider.test.tsx | 84 +++++ src/components/theme/theme-script.ts | 11 + src/components/theme/useResolvedTheme.ts | 30 ++ src/components/ui/Button.tsx | 68 ++++ src/components/ui/Card.tsx | 23 ++ src/components/ui/Chip.tsx | 31 ++ src/components/ui/CrowdCurve.tsx | 287 +++++++++++++++ src/components/ui/IconButton.tsx | 24 ++ src/components/ui/Input.tsx | 13 + src/components/ui/Ornaments.tsx | 61 ++++ src/components/ui/SectionHeading.tsx | 33 ++ src/components/ui/Sheet.tsx | 131 +++++++ src/components/ui/Switch.tsx | 39 ++ .../ui/__tests__/primitives.test.tsx | 171 +++++++++ src/components/ui/cx.ts | 4 + src/hooks/useBusynessSeries.ts | 22 ++ src/lib/__tests__/busyness-scale.test.ts | 18 +- src/lib/__tests__/crowd-palette.test.ts | 109 ++++++ src/lib/__tests__/quiet-alternatives.test.ts | 58 +++ src/lib/busyness-scale.ts | 11 +- src/lib/crowd-palette.ts | 105 ++++++ src/lib/data/destinations/europe-central.ts | 6 +- src/lib/data/patterns/europe-central.ts | 20 + src/lib/destination-search.ts | 91 +++++ src/lib/destinations.ts | 13 + src/lib/event-categories.ts | 12 + src/lib/quiet-alternatives.ts | 95 +++++ .../destination-busyness-weekly.test.ts | 39 ++ src/lib/services/destination-busyness.ts | 37 +- src/lib/share.ts | 29 ++ src/lib/week-dates.ts | 35 ++ .../__tests__/messages-parity.test.ts | 44 +++ src/messages/de.json | 91 ++++- src/messages/en.json | 91 ++++- src/messages/es.json | 91 ++++- src/messages/fr.json | 91 ++++- src/middleware.ts | 5 +- .../__tests__/useSavedPlacesStore.test.ts | 52 +++ src/store/useSavedPlacesStore.ts | 42 +++ src/test-setup.ts | 14 + 96 files changed, 5296 insertions(+), 1237 deletions(-) create mode 100644 public/icons/icon-192.png create mode 100644 public/icons/icon-512.png create mode 100644 public/icons/maskable-512.png create mode 100644 src/app/(marketing)/best-time/page.tsx create mode 100644 src/app/(marketing)/compare/page.tsx create mode 100644 src/app/api/busyness/__tests__/route.test.ts create mode 100644 src/app/api/busyness/route.ts create mode 100644 src/app/api/og/destination/[slug]/route.tsx create mode 100644 src/app/apple-icon.png create mode 100644 src/app/manifest.ts create mode 100644 src/app/opengraph-image.tsx create mode 100644 src/components/MobileNav.tsx create mode 100644 src/components/best-time/BestTimeFinder.tsx create mode 100644 src/components/compare/CompareView.tsx create mode 100644 src/components/destination/DestinationActions.tsx create mode 100644 src/components/map/DestinationSheet.tsx create mode 100644 src/components/theme/ThemeProvider.tsx create mode 100644 src/components/theme/ThemeToggle.tsx create mode 100644 src/components/theme/__tests__/ThemeProvider.test.tsx create mode 100644 src/components/theme/theme-script.ts create mode 100644 src/components/theme/useResolvedTheme.ts create mode 100644 src/components/ui/Button.tsx create mode 100644 src/components/ui/Card.tsx create mode 100644 src/components/ui/Chip.tsx create mode 100644 src/components/ui/CrowdCurve.tsx create mode 100644 src/components/ui/IconButton.tsx create mode 100644 src/components/ui/Input.tsx create mode 100644 src/components/ui/Ornaments.tsx create mode 100644 src/components/ui/SectionHeading.tsx create mode 100644 src/components/ui/Sheet.tsx create mode 100644 src/components/ui/Switch.tsx create mode 100644 src/components/ui/__tests__/primitives.test.tsx create mode 100644 src/components/ui/cx.ts create mode 100644 src/hooks/useBusynessSeries.ts create mode 100644 src/lib/__tests__/crowd-palette.test.ts create mode 100644 src/lib/__tests__/quiet-alternatives.test.ts create mode 100644 src/lib/crowd-palette.ts create mode 100644 src/lib/destination-search.ts create mode 100644 src/lib/event-categories.ts create mode 100644 src/lib/quiet-alternatives.ts create mode 100644 src/lib/services/__tests__/destination-busyness-weekly.test.ts create mode 100644 src/lib/share.ts create mode 100644 src/lib/week-dates.ts create mode 100644 src/messages/__tests__/messages-parity.test.ts create mode 100644 src/store/__tests__/useSavedPlacesStore.test.ts create mode 100644 src/store/useSavedPlacesStore.ts diff --git a/public/icons/icon-192.png b/public/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..d87fbd6a4f0b77d2770ae0e87e46de8414bbdca1 GIT binary patch literal 9409 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 literal 0 HcmV?d00001 diff --git a/public/icons/icon-512.png b/public/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..972e1ee48d5ba4b2c0cbc6221e47101aac30c33a GIT binary patch literal 31224 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 literal 0 HcmV?d00001 diff --git a/public/icons/maskable-512.png b/public/icons/maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..537ef971f435f3edc6d775faa4199ce31cbc699e GIT binary patch literal 25375 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 literal 0 HcmV?d00001 diff --git a/src/app/(map)/map/page.tsx b/src/app/(map)/map/page.tsx index 75db4bb..67e9650 100644 --- a/src/app/(map)/map/page.tsx +++ b/src/app/(map)/map/page.tsx @@ -1,19 +1,24 @@ "use client"; import { useState } from "react"; -import { MapView } from "@/components/map/MapView"; +import { useTranslations } from "next-intl"; +import { MapView, type MapDestinationClick } from "@/components/map/MapView"; import { MapHeader } from "@/components/map/MapHeader"; import { MapDisclaimer } from "@/components/map/MapDisclaimer"; +import { DestinationSheet } from "@/components/map/DestinationSheet"; import { TimeSlider } from "@/components/controls/TimeSlider"; import { YearSelector } from "@/components/controls/YearSelector"; import { HolidayPanel } from "@/components/controls/HolidayPanel"; import { Legend } from "@/components/controls/Legend"; +import { Sheet } from "@/components/ui/Sheet"; import { useUrlSync } from "@/hooks/useUrlSync"; export default function MapPage() { useUrlSync(); + const t = useTranslations("map"); const [isPanelOpen, setIsPanelOpen] = useState(false); const [mobileSheetOpen, setMobileSheetOpen] = useState(false); + const [selectedDestination, setSelectedDestination] = useState(null); function handleTogglePanel() { setIsPanelOpen((v) => !v); @@ -31,13 +36,13 @@ export default function MapPage() {
    - +
    {/* Desktop sidebar — always mounted, animated width */}
    - {/* Footer */} -