feat: apply design tokens to stats, map, mini-map; teal markers

This commit is contained in:
2026-06-18 14:24:16 +02:00
parent c60f6726df
commit 5a3f2bc0c5
4 changed files with 60 additions and 42 deletions
+53 -35
View File
@@ -347,12 +347,12 @@ body {
.lightbox-prev:hover,
.lightbox-next:hover { background: rgba(255,255,255,0.26); }
/* ── Map page ───────────────────────────────────────────────────────────────── */
/* ── Map page ───────────────────────────────────────────────────────────────── */
.map-page .site-main { max-width: none; padding: 0; }
.map-container {
height: calc(100vh - 61px);
height: calc(100vh - var(--site-header-height));
width: 100%;
}
@@ -361,72 +361,87 @@ body {
align-items: center;
justify-content: center;
height: 100%;
color: #666;
color: var(--color-ink-muted);
font-style: italic;
}
/* ── Stats page ─────────────────────────────────────────────────────────────── */
/* ── Stats page ─────────────────────────────────────────────────────────────── */
.stats-heading {
font-family: var(--font-display);
font-size: var(--text-2xl);
font-weight: 400;
margin-bottom: var(--space-8);
color: var(--color-ink);
}
.stats-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
margin-bottom: 2rem;
gap: var(--space-4);
margin-bottom: var(--space-8);
}
.stat-block {
border: 1px solid #e5e5e5;
border-radius: 8px;
padding: 1.25rem 1rem;
background: var(--color-canvas);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--space-6) var(--space-5);
text-align: center;
box-shadow: 0 1px 3px rgba(0,0,0,0.06);
box-shadow: var(--shadow-sm);
}
.stat-value {
display: block;
font-size: 2.5rem;
font-weight: 700;
color: #0066cc;
font-family: var(--font-display);
font-size: var(--text-3xl);
font-weight: 400;
color: var(--color-accent);
line-height: 1.1;
margin-bottom: 0.3rem;
margin-bottom: var(--space-2);
}
.stat-label {
display: block;
font-size: 0.8rem;
color: #666;
font-size: var(--text-xs);
font-weight: 600;
color: var(--color-ink-muted);
text-transform: uppercase;
letter-spacing: 0.04em;
letter-spacing: 0.07em;
}
.stats-countries {
font-size: 0.9rem;
color: #444;
font-size: var(--text-sm);
color: var(--color-ink-2);
text-align: center;
line-height: 1.8;
line-height: 1.9;
}
.stats-countries-label {
font-weight: 600;
display: block;
margin-bottom: 0.4rem;
color: #1a1a1a;
margin-bottom: var(--space-2);
color: var(--color-ink);
text-transform: uppercase;
font-size: var(--text-xs);
letter-spacing: 0.07em;
}
.stats-note {
font-size: 0.78rem;
color: #999;
font-size: var(--text-xs);
color: var(--color-ink-muted);
text-align: center;
margin-top: 1.5rem;
margin-top: var(--space-6);
}
/* ── Mini-map on tracker feed ───────────────────────────────────────────────── */
/* ── Mini-map on tracker feed ───────────────────────────────────────────────── */
.feed-map-wrap {
margin-bottom: 2rem;
border-radius: 8px;
margin-bottom: var(--space-10);
border-radius: var(--radius-md);
overflow: hidden;
border: 1px solid #e5e5e5;
border: 1px solid var(--color-border);
box-shadow: var(--shadow-sm);
}
.feed-map {
@@ -435,20 +450,23 @@ body {
}
@media (min-width: 520px) {
.feed-map { height: 320px; }
.feed-map { height: 300px; }
}
.feed-map-link {
display: block;
text-align: right;
font-size: 0.8rem;
color: #0066cc;
font-size: var(--text-xs);
font-weight: 500;
color: var(--color-accent);
text-decoration: none;
padding: 0.4rem 0.6rem;
background: #fafafa;
border-top: 1px solid #e5e5e5;
padding: var(--space-2) var(--space-4);
background: var(--color-paper);
border-top: 1px solid var(--color-border);
}
.feed-map-link:hover { color: var(--color-accent-hover); }
/* ── Login form ─────────────────────────────────────────────────────────────── */
.login-form { max-width: 400px; margin: var(--space-8) auto; padding: 0 var(--space-4); }
+4 -4
View File
@@ -48,17 +48,17 @@ if (ENTRIES.length === 0) {
var latLngs = ENTRIES.map(function(e) { return [parseFloat(e.lat), parseFloat(e.lng)]; });
// Route polyline
L.polyline(latLngs, { color: '#0066cc', weight: 3, opacity: 0.7 }).addTo(map);
L.polyline(latLngs, { color: '#1F6B5A', weight: 3, opacity: 0.7 }).addTo(map);
// Markers
ENTRIES.forEach(function(entry, i) {
var isLatest = (i === ENTRIES.length - 1);
var size = isLatest ? 18 : 12;
var color = isLatest ? '#0044aa' : '#0066cc';
var color = isLatest ? '#155244' : '#1F6B5A';
var icon = L.divIcon({
className: '',
html: '<div style="width:' + size + 'px;height:' + size + 'px;background:' + color + ';border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.4);' + (isLatest ? 'box-shadow:0 0 0 3px rgba(0,102,204,0.3),0 1px 4px rgba(0,0,0,0.4);' : '') + '"></div>',
html: '<div style="width:' + size + 'px;height:' + size + 'px;background:' + color + ';border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.4);' + (isLatest ? 'box-shadow:0 0 0 3px rgba(31,107,90,0.3),0 1px 4px rgba(0,0,0,0.4);' : '') + '"></div>',
iconSize: [size, size],
iconAnchor: [size/2, size/2],
popupAnchor: [0, -(size/2 + 4)]
@@ -70,7 +70,7 @@ if (ENTRIES.length === 0) {
}
popupContent += '<div style="font-size:0.75rem;color:#666;margin-bottom:2px;">📅 ' + entry.date + '</div>';
popupContent += '<div style="font-weight:600;font-size:0.9rem;margin-bottom:8px;">' + entry.title + '</div>';
popupContent += '<a href="' + entry.url + '" style="color:#0066cc;font-size:0.85rem;text-decoration:none;">Read entry →</a>';
popupContent += '<a href="' + entry.url + '" style="color:#1F6B5A;font-size:0.85rem;text-decoration:none;">Read entry →</a>';
popupContent += '</div>';
L.marker([parseFloat(entry.lat), parseFloat(entry.lng)], { icon: icon })
+1 -1
View File
@@ -45,7 +45,7 @@
{% endfor %}
<div class="stats-page">
<h1 style="font-size:1.5rem;margin-bottom:1.5rem;">Trip Statistics</h1>
<h1 class="stats-heading">Trip Statistics</h1>
<div class="stats-grid">
<div class="stat-block">
@@ -35,13 +35,13 @@ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
var latLngs = FEED_ENTRIES.map(function(e) { return [parseFloat(e.lat), parseFloat(e.lng)]; });
if (latLngs.length > 1) {
L.polyline(latLngs, { color: '#0066cc', weight: 3, opacity: 0.7 }).addTo(map);
L.polyline(latLngs, { color: '#1F6B5A', weight: 3, opacity: 0.7 }).addTo(map);
}
FEED_ENTRIES.forEach(function(entry, i) {
var isLatest = (i === FEED_ENTRIES.length - 1);
var size = isLatest ? 16 : 10;
var color = isLatest ? '#0044aa' : '#0066cc';
var color = isLatest ? '#155244' : '#1F6B5A';
var icon = L.divIcon({
className: '',
html: '<div style="width:' + size + 'px;height:' + size + 'px;background:' + color + ';border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,0.35);cursor:pointer;"></div>',