diff --git a/web/frontend/app/features/breweries/components/BreweryMap.tsx b/web/frontend/app/features/breweries/components/BreweryMap.tsx
index 3d793dbd..d624a4cd 100644
--- a/web/frontend/app/features/breweries/components/BreweryMap.tsx
+++ b/web/frontend/app/features/breweries/components/BreweryMap.tsx
@@ -32,7 +32,7 @@ const WORLD_BOUNDS: LatLngTuple[] = [
const CURRENT_LOCATION_ICON = L.divIcon({
className: 'brewery-map-current-location',
- html: '',
+ html: '',
iconSize: [14, 14],
iconAnchor: [7, 7],
});
diff --git a/web/frontend/app/features/breweries/components/NearbyBreweriesSection.tsx b/web/frontend/app/features/breweries/components/NearbyBreweriesSection.tsx
index 51ac7ee9..955842a2 100644
--- a/web/frontend/app/features/breweries/components/NearbyBreweriesSection.tsx
+++ b/web/frontend/app/features/breweries/components/NearbyBreweriesSection.tsx
@@ -10,7 +10,7 @@ import type { NearbyMapPin } from './NearbyBreweryMap';
const NearbyBreweryMap = lazy(() => import('./NearbyBreweryMap'));
-const MAP_PLACEHOLDER_CLASS = 'min-h-[30rem] h-full w-full rounded-box bg-base-300';
+const MAP_PLACEHOLDER_CLASS = 'skeleton min-h-[30rem] h-full w-full rounded-box';
const DEFAULT_RADIUS_KM = 120;
const MIN_RADIUS_KM = 10;
const MAX_RADIUS_KM = 150;
@@ -41,8 +41,8 @@ interface NearbyBreweriesSectionProps {
const FILLER_NOTE = 'A stop worth the detour.';
const cardClassName = (selected: boolean) =>
- `text-left rounded-box bg-base-100 shadow p-4 cursor-pointer transition-shadow hover:shadow-lg border-l-4 ${
- selected ? 'border-l-primary' : 'border-l-transparent'
+ `card card-sm card-border bg-base-100 text-left shadow transition-shadow hover:shadow-lg ${
+ selected ? 'border-2 border-primary' : ''
}`;
interface BreweriesNearByHeaderParams {
@@ -288,21 +288,23 @@ const NearbyBreweriesSection = ({
onClick={() => onSelect(brewery.breweryPostId)}
className={cardClassName(selectedId === brewery.breweryPostId)}
>
-
-
- {brewery.breweryName}
-
-
- {formatDistance(distanceMetres, unit)}
-
-
- {brewery.location && (
-
- {brewery.location.cityName},{' '}
- {brewery.location.stateProvinceCode}
+
+
+
+ {brewery.breweryName}
+
+
+ {formatDistance(distanceMetres, unit)}
+
- )}
-
{FILLER_NOTE}
+ {brewery.location && (
+
+ {brewery.location.cityName},{' '}
+ {brewery.location.stateProvinceCode}
+
+ )}
+
{FILLER_NOTE}
+
)}
/>
diff --git a/web/frontend/app/features/breweries/components/NearbyBreweryMap.tsx b/web/frontend/app/features/breweries/components/NearbyBreweryMap.tsx
index 423e9e40..8302ebdf 100644
--- a/web/frontend/app/features/breweries/components/NearbyBreweryMap.tsx
+++ b/web/frontend/app/features/breweries/components/NearbyBreweryMap.tsx
@@ -19,6 +19,14 @@ interface NearbyBreweryMapProps {
userLocationLabel: string;
}
+// Leaflet paints markers as SVG attributes, which can't reference CSS custom
+// properties the way class names can - resolve the current theme's colors instead.
+const resolveThemeColor = (variable: string, fallback: string) => {
+ if (typeof document === 'undefined') return fallback;
+ const value = getComputedStyle(document.documentElement).getPropertyValue(variable).trim();
+ return value || fallback;
+};
+
const pinIcon = (active: boolean) =>
L.divIcon({
className: '',
@@ -85,7 +93,12 @@ const NearbyBreweryMap = ({
You are here — {userLocationLabel}
diff --git a/web/frontend/app/features/breweries/components/RecentBreweries.tsx b/web/frontend/app/features/breweries/components/RecentBreweries.tsx
index 04984593..d6cca409 100644
--- a/web/frontend/app/features/breweries/components/RecentBreweries.tsx
+++ b/web/frontend/app/features/breweries/components/RecentBreweries.tsx
@@ -13,25 +13,27 @@ const RecentBreweries = ({ breweries }: RecentBreweriesProps) => {
Recently added
{breweries.map((brewery) => (
-
-
{brewery.breweryName}
- {brewery.location && (
-
- {brewery.location.cityName}, {brewery.location.stateProvinceCode}
-
- )}
-
- {brewery.description}
-
-
- View brewery →
-
+
+
+
+ {brewery.breweryName}
+
+ {brewery.location && (
+
+ {brewery.location.cityName},{' '}
+ {brewery.location.stateProvinceCode}
+
+ )}
+
+ {brewery.description}
+
+
+ View brewery →
+
+
))}
diff --git a/web/frontend/app/features/breweries/routes/brewery-directory.tsx b/web/frontend/app/features/breweries/routes/brewery-directory.tsx
index 6f5f15c0..9c67223c 100644
--- a/web/frontend/app/features/breweries/routes/brewery-directory.tsx
+++ b/web/frontend/app/features/breweries/routes/brewery-directory.tsx
@@ -9,7 +9,7 @@ import { useFetcher } from 'react-router';
import type { BreweryMapPin } from '../components/BreweryMap';
const PAGE_SIZE = 12;
-const MAP_PLACEHOLDER_CLASS = 'h-[28rem] md:h-[34rem] w-full rounded-box bg-base-300';
+const MAP_PLACEHOLDER_CLASS = 'skeleton h-[28rem] md:h-[34rem] w-full rounded-box';
export const meta = ({}: Route.MetaArgs) => {
return [{ title: 'Brewery Directory | The Biergarten App' }];