Add basic responsive layout for tablet and mobile

Planner: hide title on small screens, wrap header items, hide waypoint
sidebar below md breakpoint (map takes full width).
Journal: stack route stats and action buttons on mobile, responsive
header layout on route detail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-03-25 02:11:22 +01:00
parent bdb72ae141
commit 69f420e879
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
2 changed files with 7 additions and 7 deletions

View file

@ -90,7 +90,7 @@ export default function RouteDetailPage({ loaderData }: Route.ComponentProps) {
return (
<div className="mx-auto max-w-4xl px-4 py-8">
<div className="flex items-start justify-between">
<div className="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
<div>
<h1 className="text-2xl font-bold text-gray-900">{route.name}</h1>
{route.description && (
@ -98,7 +98,7 @@ export default function RouteDetailPage({ loaderData }: Route.ComponentProps) {
)}
</div>
{isOwner && (
<div className="flex gap-2">
<div className="flex flex-wrap gap-2">
<button
onClick={handleEditInPlanner}
disabled={editLoading}
@ -125,7 +125,7 @@ export default function RouteDetailPage({ loaderData }: Route.ComponentProps) {
)}
</div>
<div className="mt-6 grid grid-cols-3 gap-4">
<div className="mt-6 grid grid-cols-1 gap-4 sm:grid-cols-3">
{route.distance != null && (
<div className="rounded-md bg-gray-50 p-4">
<p className="text-2xl font-bold text-gray-900">

View file

@ -43,9 +43,9 @@ export function SessionView({ sessionId, callbackUrl, callbackToken, returnUrl,
return (
<>
<header className="flex items-center justify-between border-b border-gray-200 px-4 py-2">
<div className="flex items-center gap-4">
<h1 className="text-lg font-semibold text-gray-900">trails.cool Planner</h1>
<header className="flex flex-wrap items-center justify-between gap-2 border-b border-gray-200 px-4 py-2">
<div className="flex items-center gap-2 md:gap-4">
<h1 className="hidden text-lg font-semibold text-gray-900 sm:block">trails.cool Planner</h1>
<ProfileSelector yjs={yjs} />
</div>
<div className="flex items-center gap-3">
@ -95,7 +95,7 @@ export function SessionView({ sessionId, callbackUrl, callbackToken, returnUrl,
<ElevationChart yjs={yjs} onHover={handleElevationHover} />
</Suspense>
</main>
<aside className="w-72 border-l border-gray-200 bg-white">
<aside className="hidden w-72 border-l border-gray-200 bg-white md:block">
<Suspense fallback={null}>
<WaypointSidebar yjs={yjs} routeStats={routeStats} />
</Suspense>