Add local weather forecast with live-weather backgrounds
Visitors can save a postal code (international, via Zippopotam) to get the local forecast from Open-Meteo — a header chip + a 5-day home-page card — and the canvas background switches from the seasonal effect to live conditions. Entirely client-side: no keys, no server logic. Geocode cached permanently, forecast cached 2h. Celsius by default, Fahrenheit opt-in. New canvas effects: clear (sun by day, shaded moon + stars at night), clouds (blurred drifting sprites), snow, fog, and storm (rain + lightning). Seasonal effects remain the no-location fallback.
This commit is contained in:
@@ -60,6 +60,11 @@
|
||||
<span class="sr-only">Toggle weather animation</span>
|
||||
</button>
|
||||
{{end}}
|
||||
<button type="button" data-weather-loc
|
||||
title="Set your location"
|
||||
class="inline-flex shrink-0 items-center gap-1.5 rounded-full bg-[color:var(--card)] px-3 py-2 text-sm font-semibold shadow-pete border-2 border-[color:var(--ink)]/10 hover:bg-[color:var(--ink)]/5 transition">
|
||||
<span data-weather-chip class="tabular-nums">📍 Weather</span>
|
||||
</button>
|
||||
<div class="flex items-center gap-2 min-w-0 max-w-full">
|
||||
<button type="button" data-search-trigger title="Search (⌘K)"
|
||||
class="flex shrink-0 items-center gap-2 rounded-full bg-[color:var(--card)] px-3 py-2 text-sm shadow-pete border-2 border-[color:var(--ink)]/10 hover:bg-[color:var(--ink)]/5 transition">
|
||||
@@ -145,6 +150,7 @@
|
||||
|
||||
<script>window.PETE_SOURCES = {{.AllSources}};</script>
|
||||
<script src="/static/js/weather.js" defer></script>
|
||||
<script src="/static/js/weather-forecast.js" defer></script>
|
||||
<script src="/static/js/search.js" defer></script>
|
||||
<script src="/static/js/settings.js" defer></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user