diff --git a/assets/weather/alert-avalanche-danger.png b/assets/weather/alert-avalanche-danger.png new file mode 100644 index 00000000..98be1ab7 Binary files /dev/null and b/assets/weather/alert-avalanche-danger.png differ diff --git a/assets/weather/alert-falling-rocks.png b/assets/weather/alert-falling-rocks.png new file mode 100644 index 00000000..8f1016e4 Binary files /dev/null and b/assets/weather/alert-falling-rocks.png differ diff --git a/assets/weather/barometer.png b/assets/weather/barometer.png new file mode 100644 index 00000000..ef275b15 Binary files /dev/null and b/assets/weather/barometer.png differ diff --git a/assets/weather/beanie.png b/assets/weather/beanie.png new file mode 100644 index 00000000..43409e13 Binary files /dev/null and b/assets/weather/beanie.png differ diff --git a/assets/weather/celsius.png b/assets/weather/celsius.png new file mode 100644 index 00000000..b581a008 Binary files /dev/null and b/assets/weather/celsius.png differ diff --git a/assets/weather/clear-day.png b/assets/weather/clear-day.png new file mode 100644 index 00000000..8e3e230d Binary files /dev/null and b/assets/weather/clear-day.png differ diff --git a/assets/weather/clear-night.png b/assets/weather/clear-night.png new file mode 100644 index 00000000..3b56d8b7 Binary files /dev/null and b/assets/weather/clear-night.png differ diff --git a/assets/weather/cloud-down.png b/assets/weather/cloud-down.png new file mode 100644 index 00000000..d480bd42 Binary files /dev/null and b/assets/weather/cloud-down.png differ diff --git a/assets/weather/cloud-up.png b/assets/weather/cloud-up.png new file mode 100644 index 00000000..42d44447 Binary files /dev/null and b/assets/weather/cloud-up.png differ diff --git a/assets/weather/cloudy.png b/assets/weather/cloudy.png new file mode 100644 index 00000000..d1f7d794 Binary files /dev/null and b/assets/weather/cloudy.png differ diff --git a/assets/weather/code-green.png b/assets/weather/code-green.png new file mode 100644 index 00000000..c39b5474 Binary files /dev/null and b/assets/weather/code-green.png differ diff --git a/assets/weather/code-orange.png b/assets/weather/code-orange.png new file mode 100644 index 00000000..2a65456c Binary files /dev/null and b/assets/weather/code-orange.png differ diff --git a/assets/weather/code-red.png b/assets/weather/code-red.png new file mode 100644 index 00000000..577d30d5 Binary files /dev/null and b/assets/weather/code-red.png differ diff --git a/assets/weather/code-yellow.png b/assets/weather/code-yellow.png new file mode 100644 index 00000000..171e7469 Binary files /dev/null and b/assets/weather/code-yellow.png differ diff --git a/assets/weather/compass.png b/assets/weather/compass.png new file mode 100644 index 00000000..c6d87a1c Binary files /dev/null and b/assets/weather/compass.png differ diff --git a/assets/weather/drizzle.png b/assets/weather/drizzle.png new file mode 100644 index 00000000..0eb62d98 Binary files /dev/null and b/assets/weather/drizzle.png differ diff --git a/assets/weather/dust-day.png b/assets/weather/dust-day.png new file mode 100644 index 00000000..d9fa3c62 Binary files /dev/null and b/assets/weather/dust-day.png differ diff --git a/assets/weather/dust-night.png b/assets/weather/dust-night.png new file mode 100644 index 00000000..f3ab2e67 Binary files /dev/null and b/assets/weather/dust-night.png differ diff --git a/assets/weather/dust-wind.png b/assets/weather/dust-wind.png new file mode 100644 index 00000000..20197cde Binary files /dev/null and b/assets/weather/dust-wind.png differ diff --git a/assets/weather/dust.png b/assets/weather/dust.png new file mode 100644 index 00000000..e92504f0 Binary files /dev/null and b/assets/weather/dust.png differ diff --git a/assets/weather/extreme-day-drizzle.png b/assets/weather/extreme-day-drizzle.png new file mode 100644 index 00000000..99531bf5 Binary files /dev/null and b/assets/weather/extreme-day-drizzle.png differ diff --git a/assets/weather/extreme-day-fog.png b/assets/weather/extreme-day-fog.png new file mode 100644 index 00000000..fb0706fd Binary files /dev/null and b/assets/weather/extreme-day-fog.png differ diff --git a/assets/weather/extreme-day-hail.png b/assets/weather/extreme-day-hail.png new file mode 100644 index 00000000..a39bb9a6 Binary files /dev/null and b/assets/weather/extreme-day-hail.png differ diff --git a/assets/weather/extreme-day-haze.png b/assets/weather/extreme-day-haze.png new file mode 100644 index 00000000..b7a56e79 Binary files /dev/null and b/assets/weather/extreme-day-haze.png differ diff --git a/assets/weather/extreme-day-rain.png b/assets/weather/extreme-day-rain.png new file mode 100644 index 00000000..03973c11 Binary files /dev/null and b/assets/weather/extreme-day-rain.png differ diff --git a/assets/weather/extreme-day-sleet.png b/assets/weather/extreme-day-sleet.png new file mode 100644 index 00000000..c6b48d18 Binary files /dev/null and b/assets/weather/extreme-day-sleet.png differ diff --git a/assets/weather/extreme-day-smoke.png b/assets/weather/extreme-day-smoke.png new file mode 100644 index 00000000..615b9829 Binary files /dev/null and b/assets/weather/extreme-day-smoke.png differ diff --git a/assets/weather/extreme-day-snow.png b/assets/weather/extreme-day-snow.png new file mode 100644 index 00000000..ec5e91b3 Binary files /dev/null and b/assets/weather/extreme-day-snow.png differ diff --git a/assets/weather/extreme-day.png b/assets/weather/extreme-day.png new file mode 100644 index 00000000..d0225b9a Binary files /dev/null and b/assets/weather/extreme-day.png differ diff --git a/assets/weather/extreme-drizzle.png b/assets/weather/extreme-drizzle.png new file mode 100644 index 00000000..08c2bf9e Binary files /dev/null and b/assets/weather/extreme-drizzle.png differ diff --git a/assets/weather/extreme-fog.png b/assets/weather/extreme-fog.png new file mode 100644 index 00000000..2765baec Binary files /dev/null and b/assets/weather/extreme-fog.png differ diff --git a/assets/weather/extreme-hail.png b/assets/weather/extreme-hail.png new file mode 100644 index 00000000..ac45aea6 Binary files /dev/null and b/assets/weather/extreme-hail.png differ diff --git a/assets/weather/extreme-haze.png b/assets/weather/extreme-haze.png new file mode 100644 index 00000000..c416b3bc Binary files /dev/null and b/assets/weather/extreme-haze.png differ diff --git a/assets/weather/extreme-night-drizzle.png b/assets/weather/extreme-night-drizzle.png new file mode 100644 index 00000000..05576334 Binary files /dev/null and b/assets/weather/extreme-night-drizzle.png differ diff --git a/assets/weather/extreme-night-fog.png b/assets/weather/extreme-night-fog.png new file mode 100644 index 00000000..d797e516 Binary files /dev/null and b/assets/weather/extreme-night-fog.png differ diff --git a/assets/weather/extreme-night-hail.png b/assets/weather/extreme-night-hail.png new file mode 100644 index 00000000..6f66ee21 Binary files /dev/null and b/assets/weather/extreme-night-hail.png differ diff --git a/assets/weather/extreme-night-haze.png b/assets/weather/extreme-night-haze.png new file mode 100644 index 00000000..15d1fe63 Binary files /dev/null and b/assets/weather/extreme-night-haze.png differ diff --git a/assets/weather/extreme-night-rain.png b/assets/weather/extreme-night-rain.png new file mode 100644 index 00000000..ffb43f61 Binary files /dev/null and b/assets/weather/extreme-night-rain.png differ diff --git a/assets/weather/extreme-night-sleet.png b/assets/weather/extreme-night-sleet.png new file mode 100644 index 00000000..e5262d09 Binary files /dev/null and b/assets/weather/extreme-night-sleet.png differ diff --git a/assets/weather/extreme-night-smoke.png b/assets/weather/extreme-night-smoke.png new file mode 100644 index 00000000..40a235cb Binary files /dev/null and b/assets/weather/extreme-night-smoke.png differ diff --git a/assets/weather/extreme-night-snow.png b/assets/weather/extreme-night-snow.png new file mode 100644 index 00000000..8d69fd6c Binary files /dev/null and b/assets/weather/extreme-night-snow.png differ diff --git a/assets/weather/extreme-night.png b/assets/weather/extreme-night.png new file mode 100644 index 00000000..fbfa00fe Binary files /dev/null and b/assets/weather/extreme-night.png differ diff --git a/assets/weather/extreme-rain.png b/assets/weather/extreme-rain.png new file mode 100644 index 00000000..4cdaf792 Binary files /dev/null and b/assets/weather/extreme-rain.png differ diff --git a/assets/weather/extreme-sleet.png b/assets/weather/extreme-sleet.png new file mode 100644 index 00000000..3e1bcf9a Binary files /dev/null and b/assets/weather/extreme-sleet.png differ diff --git a/assets/weather/extreme-smoke.png b/assets/weather/extreme-smoke.png new file mode 100644 index 00000000..46d15a94 Binary files /dev/null and b/assets/weather/extreme-smoke.png differ diff --git a/assets/weather/extreme-snow.png b/assets/weather/extreme-snow.png new file mode 100644 index 00000000..5f40629c Binary files /dev/null and b/assets/weather/extreme-snow.png differ diff --git a/assets/weather/extreme.png b/assets/weather/extreme.png new file mode 100644 index 00000000..71792837 Binary files /dev/null and b/assets/weather/extreme.png differ diff --git a/assets/weather/fahrenheit.png b/assets/weather/fahrenheit.png new file mode 100644 index 00000000..76dbf33d Binary files /dev/null and b/assets/weather/fahrenheit.png differ diff --git a/assets/weather/falling-stars.png b/assets/weather/falling-stars.png new file mode 100644 index 00000000..58d009ea Binary files /dev/null and b/assets/weather/falling-stars.png differ diff --git a/assets/weather/flag-gale-warning.png b/assets/weather/flag-gale-warning.png new file mode 100644 index 00000000..df002721 Binary files /dev/null and b/assets/weather/flag-gale-warning.png differ diff --git a/assets/weather/flag-hurricane-warning.png b/assets/weather/flag-hurricane-warning.png new file mode 100644 index 00000000..d8dbeb18 Binary files /dev/null and b/assets/weather/flag-hurricane-warning.png differ diff --git a/assets/weather/flag-small-craft-advisory.png b/assets/weather/flag-small-craft-advisory.png new file mode 100644 index 00000000..b480a4b5 Binary files /dev/null and b/assets/weather/flag-small-craft-advisory.png differ diff --git a/assets/weather/flag-storm-warning.png b/assets/weather/flag-storm-warning.png new file mode 100644 index 00000000..f3e7ba75 Binary files /dev/null and b/assets/weather/flag-storm-warning.png differ diff --git a/assets/weather/fog-day.png b/assets/weather/fog-day.png new file mode 100644 index 00000000..1a7eea11 Binary files /dev/null and b/assets/weather/fog-day.png differ diff --git a/assets/weather/fog-night.png b/assets/weather/fog-night.png new file mode 100644 index 00000000..e91ba8f0 Binary files /dev/null and b/assets/weather/fog-night.png differ diff --git a/assets/weather/fog.png b/assets/weather/fog.png new file mode 100644 index 00000000..7091297f Binary files /dev/null and b/assets/weather/fog.png differ diff --git a/assets/weather/glove.png b/assets/weather/glove.png new file mode 100644 index 00000000..f7802b89 Binary files /dev/null and b/assets/weather/glove.png differ diff --git a/assets/weather/hail.png b/assets/weather/hail.png new file mode 100644 index 00000000..f4ca9d64 Binary files /dev/null and b/assets/weather/hail.png differ diff --git a/assets/weather/haze-day.png b/assets/weather/haze-day.png new file mode 100644 index 00000000..cfebd4eb Binary files /dev/null and b/assets/weather/haze-day.png differ diff --git a/assets/weather/haze-night.png b/assets/weather/haze-night.png new file mode 100644 index 00000000..00b3b708 Binary files /dev/null and b/assets/weather/haze-night.png differ diff --git a/assets/weather/haze.png b/assets/weather/haze.png new file mode 100644 index 00000000..c8b09fb7 Binary files /dev/null and b/assets/weather/haze.png differ diff --git a/assets/weather/horizon.png b/assets/weather/horizon.png new file mode 100644 index 00000000..f6e97c5c Binary files /dev/null and b/assets/weather/horizon.png differ diff --git a/assets/weather/humidity.png b/assets/weather/humidity.png new file mode 100644 index 00000000..3cce9f95 Binary files /dev/null and b/assets/weather/humidity.png differ diff --git a/assets/weather/hurricane.png b/assets/weather/hurricane.png new file mode 100644 index 00000000..3f143d31 Binary files /dev/null and b/assets/weather/hurricane.png differ diff --git a/assets/weather/lightning-bolt.png b/assets/weather/lightning-bolt.png new file mode 100644 index 00000000..bd983260 Binary files /dev/null and b/assets/weather/lightning-bolt.png differ diff --git a/assets/weather/mist.png b/assets/weather/mist.png new file mode 100644 index 00000000..dda82ff6 Binary files /dev/null and b/assets/weather/mist.png differ diff --git a/assets/weather/moon-first-quarter.png b/assets/weather/moon-first-quarter.png new file mode 100644 index 00000000..b879263a Binary files /dev/null and b/assets/weather/moon-first-quarter.png differ diff --git a/assets/weather/moon-full.png b/assets/weather/moon-full.png new file mode 100644 index 00000000..ed6b1cc3 Binary files /dev/null and b/assets/weather/moon-full.png differ diff --git a/assets/weather/moon-last-quarter.png b/assets/weather/moon-last-quarter.png new file mode 100644 index 00000000..99b42bd5 Binary files /dev/null and b/assets/weather/moon-last-quarter.png differ diff --git a/assets/weather/moon-new.png b/assets/weather/moon-new.png new file mode 100644 index 00000000..222eaa54 Binary files /dev/null and b/assets/weather/moon-new.png differ diff --git a/assets/weather/moon-waning-crescent.png b/assets/weather/moon-waning-crescent.png new file mode 100644 index 00000000..dd2b6ae5 Binary files /dev/null and b/assets/weather/moon-waning-crescent.png differ diff --git a/assets/weather/moon-waning-gibbous.png b/assets/weather/moon-waning-gibbous.png new file mode 100644 index 00000000..93b48a35 Binary files /dev/null and b/assets/weather/moon-waning-gibbous.png differ diff --git a/assets/weather/moon-waxing-crescent.png b/assets/weather/moon-waxing-crescent.png new file mode 100644 index 00000000..0a4ca63f Binary files /dev/null and b/assets/weather/moon-waxing-crescent.png differ diff --git a/assets/weather/moon-waxing-gibbous.png b/assets/weather/moon-waxing-gibbous.png new file mode 100644 index 00000000..aa1d6d2a Binary files /dev/null and b/assets/weather/moon-waxing-gibbous.png differ diff --git a/assets/weather/moonrise.png b/assets/weather/moonrise.png new file mode 100644 index 00000000..3c8ae20c Binary files /dev/null and b/assets/weather/moonrise.png differ diff --git a/assets/weather/moonset.png b/assets/weather/moonset.png new file mode 100644 index 00000000..56c7c816 Binary files /dev/null and b/assets/weather/moonset.png differ diff --git a/assets/weather/not-available.png b/assets/weather/not-available.png new file mode 100644 index 00000000..f5abd389 Binary files /dev/null and b/assets/weather/not-available.png differ diff --git a/assets/weather/overcast-day-drizzle.png b/assets/weather/overcast-day-drizzle.png new file mode 100644 index 00000000..8666897e Binary files /dev/null and b/assets/weather/overcast-day-drizzle.png differ diff --git a/assets/weather/overcast-day-fog.png b/assets/weather/overcast-day-fog.png new file mode 100644 index 00000000..124a36c3 Binary files /dev/null and b/assets/weather/overcast-day-fog.png differ diff --git a/assets/weather/overcast-day-hail.png b/assets/weather/overcast-day-hail.png new file mode 100644 index 00000000..a53b3632 Binary files /dev/null and b/assets/weather/overcast-day-hail.png differ diff --git a/assets/weather/overcast-day-haze.png b/assets/weather/overcast-day-haze.png new file mode 100644 index 00000000..42a31e7a Binary files /dev/null and b/assets/weather/overcast-day-haze.png differ diff --git a/assets/weather/overcast-day-rain.png b/assets/weather/overcast-day-rain.png new file mode 100644 index 00000000..69cbd8b4 Binary files /dev/null and b/assets/weather/overcast-day-rain.png differ diff --git a/assets/weather/overcast-day-sleet.png b/assets/weather/overcast-day-sleet.png new file mode 100644 index 00000000..73395b7e Binary files /dev/null and b/assets/weather/overcast-day-sleet.png differ diff --git a/assets/weather/overcast-day-smoke.png b/assets/weather/overcast-day-smoke.png new file mode 100644 index 00000000..693dfe20 Binary files /dev/null and b/assets/weather/overcast-day-smoke.png differ diff --git a/assets/weather/overcast-day-snow.png b/assets/weather/overcast-day-snow.png new file mode 100644 index 00000000..a892ab74 Binary files /dev/null and b/assets/weather/overcast-day-snow.png differ diff --git a/assets/weather/overcast-day.png b/assets/weather/overcast-day.png new file mode 100644 index 00000000..bbfbf566 Binary files /dev/null and b/assets/weather/overcast-day.png differ diff --git a/assets/weather/overcast-drizzle.png b/assets/weather/overcast-drizzle.png new file mode 100644 index 00000000..be7dc669 Binary files /dev/null and b/assets/weather/overcast-drizzle.png differ diff --git a/assets/weather/overcast-fog.png b/assets/weather/overcast-fog.png new file mode 100644 index 00000000..8f805f61 Binary files /dev/null and b/assets/weather/overcast-fog.png differ diff --git a/assets/weather/overcast-hail.png b/assets/weather/overcast-hail.png new file mode 100644 index 00000000..4f00a125 Binary files /dev/null and b/assets/weather/overcast-hail.png differ diff --git a/assets/weather/overcast-haze.png b/assets/weather/overcast-haze.png new file mode 100644 index 00000000..79a3750e Binary files /dev/null and b/assets/weather/overcast-haze.png differ diff --git a/assets/weather/overcast-night-drizzle.png b/assets/weather/overcast-night-drizzle.png new file mode 100644 index 00000000..3a488cb9 Binary files /dev/null and b/assets/weather/overcast-night-drizzle.png differ diff --git a/assets/weather/overcast-night-fog.png b/assets/weather/overcast-night-fog.png new file mode 100644 index 00000000..4c1a5139 Binary files /dev/null and b/assets/weather/overcast-night-fog.png differ diff --git a/assets/weather/overcast-night-hail.png b/assets/weather/overcast-night-hail.png new file mode 100644 index 00000000..364b3699 Binary files /dev/null and b/assets/weather/overcast-night-hail.png differ diff --git a/assets/weather/overcast-night-haze.png b/assets/weather/overcast-night-haze.png new file mode 100644 index 00000000..d54f47d4 Binary files /dev/null and b/assets/weather/overcast-night-haze.png differ diff --git a/assets/weather/overcast-night-rain.png b/assets/weather/overcast-night-rain.png new file mode 100644 index 00000000..91438296 Binary files /dev/null and b/assets/weather/overcast-night-rain.png differ diff --git a/assets/weather/overcast-night-sleet.png b/assets/weather/overcast-night-sleet.png new file mode 100644 index 00000000..86085d84 Binary files /dev/null and b/assets/weather/overcast-night-sleet.png differ diff --git a/assets/weather/overcast-night-smoke.png b/assets/weather/overcast-night-smoke.png new file mode 100644 index 00000000..94ec85d5 Binary files /dev/null and b/assets/weather/overcast-night-smoke.png differ diff --git a/assets/weather/overcast-night-snow.png b/assets/weather/overcast-night-snow.png new file mode 100644 index 00000000..a3ee4642 Binary files /dev/null and b/assets/weather/overcast-night-snow.png differ diff --git a/assets/weather/overcast-night.png b/assets/weather/overcast-night.png new file mode 100644 index 00000000..dba98e22 Binary files /dev/null and b/assets/weather/overcast-night.png differ diff --git a/assets/weather/overcast-rain.png b/assets/weather/overcast-rain.png new file mode 100644 index 00000000..85e8c9f4 Binary files /dev/null and b/assets/weather/overcast-rain.png differ diff --git a/assets/weather/overcast-sleet.png b/assets/weather/overcast-sleet.png new file mode 100644 index 00000000..e881302b Binary files /dev/null and b/assets/weather/overcast-sleet.png differ diff --git a/assets/weather/overcast-smoke.png b/assets/weather/overcast-smoke.png new file mode 100644 index 00000000..697e1c0e Binary files /dev/null and b/assets/weather/overcast-smoke.png differ diff --git a/assets/weather/overcast-snow.png b/assets/weather/overcast-snow.png new file mode 100644 index 00000000..50cedf0c Binary files /dev/null and b/assets/weather/overcast-snow.png differ diff --git a/assets/weather/overcast.png b/assets/weather/overcast.png new file mode 100644 index 00000000..d7ab982d Binary files /dev/null and b/assets/weather/overcast.png differ diff --git a/assets/weather/partly-cloudy-day-drizzle.png b/assets/weather/partly-cloudy-day-drizzle.png new file mode 100644 index 00000000..8a7042b1 Binary files /dev/null and b/assets/weather/partly-cloudy-day-drizzle.png differ diff --git a/assets/weather/partly-cloudy-day-fog.png b/assets/weather/partly-cloudy-day-fog.png new file mode 100644 index 00000000..7e6fa3c1 Binary files /dev/null and b/assets/weather/partly-cloudy-day-fog.png differ diff --git a/assets/weather/partly-cloudy-day-hail.png b/assets/weather/partly-cloudy-day-hail.png new file mode 100644 index 00000000..55ebfd0f Binary files /dev/null and b/assets/weather/partly-cloudy-day-hail.png differ diff --git a/assets/weather/partly-cloudy-day-haze.png b/assets/weather/partly-cloudy-day-haze.png new file mode 100644 index 00000000..7ea5bae8 Binary files /dev/null and b/assets/weather/partly-cloudy-day-haze.png differ diff --git a/assets/weather/partly-cloudy-day-rain.png b/assets/weather/partly-cloudy-day-rain.png new file mode 100644 index 00000000..03f505f4 Binary files /dev/null and b/assets/weather/partly-cloudy-day-rain.png differ diff --git a/assets/weather/partly-cloudy-day-sleet.png b/assets/weather/partly-cloudy-day-sleet.png new file mode 100644 index 00000000..5b52d645 Binary files /dev/null and b/assets/weather/partly-cloudy-day-sleet.png differ diff --git a/assets/weather/partly-cloudy-day-smoke.png b/assets/weather/partly-cloudy-day-smoke.png new file mode 100644 index 00000000..cc3f13ee Binary files /dev/null and b/assets/weather/partly-cloudy-day-smoke.png differ diff --git a/assets/weather/partly-cloudy-day-snow.png b/assets/weather/partly-cloudy-day-snow.png new file mode 100644 index 00000000..ea66401c Binary files /dev/null and b/assets/weather/partly-cloudy-day-snow.png differ diff --git a/assets/weather/partly-cloudy-day.png b/assets/weather/partly-cloudy-day.png new file mode 100644 index 00000000..f5263e20 Binary files /dev/null and b/assets/weather/partly-cloudy-day.png differ diff --git a/assets/weather/partly-cloudy-night-drizzle.png b/assets/weather/partly-cloudy-night-drizzle.png new file mode 100644 index 00000000..22dbb679 Binary files /dev/null and b/assets/weather/partly-cloudy-night-drizzle.png differ diff --git a/assets/weather/partly-cloudy-night-fog.png b/assets/weather/partly-cloudy-night-fog.png new file mode 100644 index 00000000..2a3aa7bb Binary files /dev/null and b/assets/weather/partly-cloudy-night-fog.png differ diff --git a/assets/weather/partly-cloudy-night-hail.png b/assets/weather/partly-cloudy-night-hail.png new file mode 100644 index 00000000..5d63cbfa Binary files /dev/null and b/assets/weather/partly-cloudy-night-hail.png differ diff --git a/assets/weather/partly-cloudy-night-haze.png b/assets/weather/partly-cloudy-night-haze.png new file mode 100644 index 00000000..911ff221 Binary files /dev/null and b/assets/weather/partly-cloudy-night-haze.png differ diff --git a/assets/weather/partly-cloudy-night-rain.png b/assets/weather/partly-cloudy-night-rain.png new file mode 100644 index 00000000..35e521c5 Binary files /dev/null and b/assets/weather/partly-cloudy-night-rain.png differ diff --git a/assets/weather/partly-cloudy-night-sleet.png b/assets/weather/partly-cloudy-night-sleet.png new file mode 100644 index 00000000..94e620f1 Binary files /dev/null and b/assets/weather/partly-cloudy-night-sleet.png differ diff --git a/assets/weather/partly-cloudy-night-smoke.png b/assets/weather/partly-cloudy-night-smoke.png new file mode 100644 index 00000000..2f0ec59e Binary files /dev/null and b/assets/weather/partly-cloudy-night-smoke.png differ diff --git a/assets/weather/partly-cloudy-night-snow.png b/assets/weather/partly-cloudy-night-snow.png new file mode 100644 index 00000000..516d8f0f Binary files /dev/null and b/assets/weather/partly-cloudy-night-snow.png differ diff --git a/assets/weather/partly-cloudy-night.png b/assets/weather/partly-cloudy-night.png new file mode 100644 index 00000000..ec12f6c9 Binary files /dev/null and b/assets/weather/partly-cloudy-night.png differ diff --git a/assets/weather/pollen-flower.png b/assets/weather/pollen-flower.png new file mode 100644 index 00000000..98fd3f21 Binary files /dev/null and b/assets/weather/pollen-flower.png differ diff --git a/assets/weather/pollen-grass.png b/assets/weather/pollen-grass.png new file mode 100644 index 00000000..bb3ebed8 Binary files /dev/null and b/assets/weather/pollen-grass.png differ diff --git a/assets/weather/pollen-tree.png b/assets/weather/pollen-tree.png new file mode 100644 index 00000000..812eeb3b Binary files /dev/null and b/assets/weather/pollen-tree.png differ diff --git a/assets/weather/pollen.png b/assets/weather/pollen.png new file mode 100644 index 00000000..4f4bfa9c Binary files /dev/null and b/assets/weather/pollen.png differ diff --git a/assets/weather/pressure-high-alt.png b/assets/weather/pressure-high-alt.png new file mode 100644 index 00000000..52695737 Binary files /dev/null and b/assets/weather/pressure-high-alt.png differ diff --git a/assets/weather/pressure-high.png b/assets/weather/pressure-high.png new file mode 100644 index 00000000..6cb0ddbe Binary files /dev/null and b/assets/weather/pressure-high.png differ diff --git a/assets/weather/pressure-low-alt.png b/assets/weather/pressure-low-alt.png new file mode 100644 index 00000000..e722c063 Binary files /dev/null and b/assets/weather/pressure-low-alt.png differ diff --git a/assets/weather/pressure-low.png b/assets/weather/pressure-low.png new file mode 100644 index 00000000..9d2dca29 Binary files /dev/null and b/assets/weather/pressure-low.png differ diff --git a/assets/weather/rain.png b/assets/weather/rain.png new file mode 100644 index 00000000..6460614e Binary files /dev/null and b/assets/weather/rain.png differ diff --git a/assets/weather/rainbow-clear.png b/assets/weather/rainbow-clear.png new file mode 100644 index 00000000..67f555fe Binary files /dev/null and b/assets/weather/rainbow-clear.png differ diff --git a/assets/weather/rainbow.png b/assets/weather/rainbow.png new file mode 100644 index 00000000..957f74ae Binary files /dev/null and b/assets/weather/rainbow.png differ diff --git a/assets/weather/raindrop-measure.png b/assets/weather/raindrop-measure.png new file mode 100644 index 00000000..062a7bfa Binary files /dev/null and b/assets/weather/raindrop-measure.png differ diff --git a/assets/weather/raindrop.png b/assets/weather/raindrop.png new file mode 100644 index 00000000..f6aad8d3 Binary files /dev/null and b/assets/weather/raindrop.png differ diff --git a/assets/weather/raindrops.png b/assets/weather/raindrops.png new file mode 100644 index 00000000..41a8b97d Binary files /dev/null and b/assets/weather/raindrops.png differ diff --git a/assets/weather/sleet.png b/assets/weather/sleet.png new file mode 100644 index 00000000..3f1667b3 Binary files /dev/null and b/assets/weather/sleet.png differ diff --git a/assets/weather/smoke-particles.png b/assets/weather/smoke-particles.png new file mode 100644 index 00000000..baad3537 Binary files /dev/null and b/assets/weather/smoke-particles.png differ diff --git a/assets/weather/smoke.png b/assets/weather/smoke.png new file mode 100644 index 00000000..2b6324b1 Binary files /dev/null and b/assets/weather/smoke.png differ diff --git a/assets/weather/snow.png b/assets/weather/snow.png new file mode 100644 index 00000000..41206312 Binary files /dev/null and b/assets/weather/snow.png differ diff --git a/assets/weather/snowflake.png b/assets/weather/snowflake.png new file mode 100644 index 00000000..25f28580 Binary files /dev/null and b/assets/weather/snowflake.png differ diff --git a/assets/weather/snowman.png b/assets/weather/snowman.png new file mode 100644 index 00000000..f60fefa2 Binary files /dev/null and b/assets/weather/snowman.png differ diff --git a/assets/weather/solar-eclipse.png b/assets/weather/solar-eclipse.png new file mode 100644 index 00000000..bee6863f Binary files /dev/null and b/assets/weather/solar-eclipse.png differ diff --git a/assets/weather/star.png b/assets/weather/star.png new file mode 100644 index 00000000..d34ca3c9 Binary files /dev/null and b/assets/weather/star.png differ diff --git a/assets/weather/starry-night.png b/assets/weather/starry-night.png new file mode 100644 index 00000000..2e9d725d Binary files /dev/null and b/assets/weather/starry-night.png differ diff --git a/assets/weather/sun-hot.png b/assets/weather/sun-hot.png new file mode 100644 index 00000000..a0fd9a0d Binary files /dev/null and b/assets/weather/sun-hot.png differ diff --git a/assets/weather/sunrise.png b/assets/weather/sunrise.png new file mode 100644 index 00000000..f47d638a Binary files /dev/null and b/assets/weather/sunrise.png differ diff --git a/assets/weather/sunset.png b/assets/weather/sunset.png new file mode 100644 index 00000000..87de7f59 Binary files /dev/null and b/assets/weather/sunset.png differ diff --git a/assets/weather/thermometer-celsius.png b/assets/weather/thermometer-celsius.png new file mode 100644 index 00000000..5fa977f9 Binary files /dev/null and b/assets/weather/thermometer-celsius.png differ diff --git a/assets/weather/thermometer-colder.png b/assets/weather/thermometer-colder.png new file mode 100644 index 00000000..2a6788f6 Binary files /dev/null and b/assets/weather/thermometer-colder.png differ diff --git a/assets/weather/thermometer-fahrenheit.png b/assets/weather/thermometer-fahrenheit.png new file mode 100644 index 00000000..ac8bc6da Binary files /dev/null and b/assets/weather/thermometer-fahrenheit.png differ diff --git a/assets/weather/thermometer-glass-celsius.png b/assets/weather/thermometer-glass-celsius.png new file mode 100644 index 00000000..ab548189 Binary files /dev/null and b/assets/weather/thermometer-glass-celsius.png differ diff --git a/assets/weather/thermometer-glass-fahrenheit.png b/assets/weather/thermometer-glass-fahrenheit.png new file mode 100644 index 00000000..a2fb16d6 Binary files /dev/null and b/assets/weather/thermometer-glass-fahrenheit.png differ diff --git a/assets/weather/thermometer-glass.png b/assets/weather/thermometer-glass.png new file mode 100644 index 00000000..61708cb7 Binary files /dev/null and b/assets/weather/thermometer-glass.png differ diff --git a/assets/weather/thermometer-mercury-cold.png b/assets/weather/thermometer-mercury-cold.png new file mode 100644 index 00000000..22e20298 Binary files /dev/null and b/assets/weather/thermometer-mercury-cold.png differ diff --git a/assets/weather/thermometer-mercury.png b/assets/weather/thermometer-mercury.png new file mode 100644 index 00000000..8344fc8b Binary files /dev/null and b/assets/weather/thermometer-mercury.png differ diff --git a/assets/weather/thermometer-moon.png b/assets/weather/thermometer-moon.png new file mode 100644 index 00000000..77937c63 Binary files /dev/null and b/assets/weather/thermometer-moon.png differ diff --git a/assets/weather/thermometer-raindrop.png b/assets/weather/thermometer-raindrop.png new file mode 100644 index 00000000..f9eae8fc Binary files /dev/null and b/assets/weather/thermometer-raindrop.png differ diff --git a/assets/weather/thermometer-snow.png b/assets/weather/thermometer-snow.png new file mode 100644 index 00000000..b168de8d Binary files /dev/null and b/assets/weather/thermometer-snow.png differ diff --git a/assets/weather/thermometer-sun.png b/assets/weather/thermometer-sun.png new file mode 100644 index 00000000..b9c9cd70 Binary files /dev/null and b/assets/weather/thermometer-sun.png differ diff --git a/assets/weather/thermometer-warmer.png b/assets/weather/thermometer-warmer.png new file mode 100644 index 00000000..634daf80 Binary files /dev/null and b/assets/weather/thermometer-warmer.png differ diff --git a/assets/weather/thermometer-water.png b/assets/weather/thermometer-water.png new file mode 100644 index 00000000..7d75009a Binary files /dev/null and b/assets/weather/thermometer-water.png differ diff --git a/assets/weather/thermometer.png b/assets/weather/thermometer.png new file mode 100644 index 00000000..6aa661af Binary files /dev/null and b/assets/weather/thermometer.png differ diff --git a/assets/weather/thunderstorms-day-extreme-rain.png b/assets/weather/thunderstorms-day-extreme-rain.png new file mode 100644 index 00000000..2db3c00f Binary files /dev/null and b/assets/weather/thunderstorms-day-extreme-rain.png differ diff --git a/assets/weather/thunderstorms-day-extreme-snow.png b/assets/weather/thunderstorms-day-extreme-snow.png new file mode 100644 index 00000000..6c1c923b Binary files /dev/null and b/assets/weather/thunderstorms-day-extreme-snow.png differ diff --git a/assets/weather/thunderstorms-day-extreme.png b/assets/weather/thunderstorms-day-extreme.png new file mode 100644 index 00000000..05974d77 Binary files /dev/null and b/assets/weather/thunderstorms-day-extreme.png differ diff --git a/assets/weather/thunderstorms-day-overcast-rain.png b/assets/weather/thunderstorms-day-overcast-rain.png new file mode 100644 index 00000000..78b85cfb Binary files /dev/null and b/assets/weather/thunderstorms-day-overcast-rain.png differ diff --git a/assets/weather/thunderstorms-day-overcast-snow.png b/assets/weather/thunderstorms-day-overcast-snow.png new file mode 100644 index 00000000..dee3c765 Binary files /dev/null and b/assets/weather/thunderstorms-day-overcast-snow.png differ diff --git a/assets/weather/thunderstorms-day-overcast.png b/assets/weather/thunderstorms-day-overcast.png new file mode 100644 index 00000000..6bbe2eac Binary files /dev/null and b/assets/weather/thunderstorms-day-overcast.png differ diff --git a/assets/weather/thunderstorms-day-rain.png b/assets/weather/thunderstorms-day-rain.png new file mode 100644 index 00000000..8a9d924b Binary files /dev/null and b/assets/weather/thunderstorms-day-rain.png differ diff --git a/assets/weather/thunderstorms-day-snow.png b/assets/weather/thunderstorms-day-snow.png new file mode 100644 index 00000000..b09cbee3 Binary files /dev/null and b/assets/weather/thunderstorms-day-snow.png differ diff --git a/assets/weather/thunderstorms-day.png b/assets/weather/thunderstorms-day.png new file mode 100644 index 00000000..75fe04ae Binary files /dev/null and b/assets/weather/thunderstorms-day.png differ diff --git a/assets/weather/thunderstorms-extreme-rain.png b/assets/weather/thunderstorms-extreme-rain.png new file mode 100644 index 00000000..098b8c37 Binary files /dev/null and b/assets/weather/thunderstorms-extreme-rain.png differ diff --git a/assets/weather/thunderstorms-extreme-snow.png b/assets/weather/thunderstorms-extreme-snow.png new file mode 100644 index 00000000..1f627dcf Binary files /dev/null and b/assets/weather/thunderstorms-extreme-snow.png differ diff --git a/assets/weather/thunderstorms-extreme.png b/assets/weather/thunderstorms-extreme.png new file mode 100644 index 00000000..989ffa83 Binary files /dev/null and b/assets/weather/thunderstorms-extreme.png differ diff --git a/assets/weather/thunderstorms-night-extreme-rain.png b/assets/weather/thunderstorms-night-extreme-rain.png new file mode 100644 index 00000000..9975bb8e Binary files /dev/null and b/assets/weather/thunderstorms-night-extreme-rain.png differ diff --git a/assets/weather/thunderstorms-night-extreme-snow.png b/assets/weather/thunderstorms-night-extreme-snow.png new file mode 100644 index 00000000..eaacc314 Binary files /dev/null and b/assets/weather/thunderstorms-night-extreme-snow.png differ diff --git a/assets/weather/thunderstorms-night-extreme.png b/assets/weather/thunderstorms-night-extreme.png new file mode 100644 index 00000000..2b15f831 Binary files /dev/null and b/assets/weather/thunderstorms-night-extreme.png differ diff --git a/assets/weather/thunderstorms-night-overcast-rain.png b/assets/weather/thunderstorms-night-overcast-rain.png new file mode 100644 index 00000000..efda0386 Binary files /dev/null and b/assets/weather/thunderstorms-night-overcast-rain.png differ diff --git a/assets/weather/thunderstorms-night-overcast-snow.png b/assets/weather/thunderstorms-night-overcast-snow.png new file mode 100644 index 00000000..c56b7281 Binary files /dev/null and b/assets/weather/thunderstorms-night-overcast-snow.png differ diff --git a/assets/weather/thunderstorms-night-overcast.png b/assets/weather/thunderstorms-night-overcast.png new file mode 100644 index 00000000..892b111b Binary files /dev/null and b/assets/weather/thunderstorms-night-overcast.png differ diff --git a/assets/weather/thunderstorms-night-rain.png b/assets/weather/thunderstorms-night-rain.png new file mode 100644 index 00000000..4507d4ff Binary files /dev/null and b/assets/weather/thunderstorms-night-rain.png differ diff --git a/assets/weather/thunderstorms-night-snow.png b/assets/weather/thunderstorms-night-snow.png new file mode 100644 index 00000000..fdbd149d Binary files /dev/null and b/assets/weather/thunderstorms-night-snow.png differ diff --git a/assets/weather/thunderstorms-night.png b/assets/weather/thunderstorms-night.png new file mode 100644 index 00000000..84f6b367 Binary files /dev/null and b/assets/weather/thunderstorms-night.png differ diff --git a/assets/weather/thunderstorms-overcast-rain.png b/assets/weather/thunderstorms-overcast-rain.png new file mode 100644 index 00000000..1d5f3fd2 Binary files /dev/null and b/assets/weather/thunderstorms-overcast-rain.png differ diff --git a/assets/weather/thunderstorms-overcast-snow.png b/assets/weather/thunderstorms-overcast-snow.png new file mode 100644 index 00000000..de97fe7e Binary files /dev/null and b/assets/weather/thunderstorms-overcast-snow.png differ diff --git a/assets/weather/thunderstorms-overcast.png b/assets/weather/thunderstorms-overcast.png new file mode 100644 index 00000000..3de21c3c Binary files /dev/null and b/assets/weather/thunderstorms-overcast.png differ diff --git a/assets/weather/thunderstorms-rain.png b/assets/weather/thunderstorms-rain.png new file mode 100644 index 00000000..2a87e22b Binary files /dev/null and b/assets/weather/thunderstorms-rain.png differ diff --git a/assets/weather/thunderstorms-snow.png b/assets/weather/thunderstorms-snow.png new file mode 100644 index 00000000..e07ef72f Binary files /dev/null and b/assets/weather/thunderstorms-snow.png differ diff --git a/assets/weather/thunderstorms.png b/assets/weather/thunderstorms.png new file mode 100644 index 00000000..2f09f880 Binary files /dev/null and b/assets/weather/thunderstorms.png differ diff --git a/assets/weather/tide-high.png b/assets/weather/tide-high.png new file mode 100644 index 00000000..0d50a0c8 Binary files /dev/null and b/assets/weather/tide-high.png differ diff --git a/assets/weather/tide-low.png b/assets/weather/tide-low.png new file mode 100644 index 00000000..d695dbcf Binary files /dev/null and b/assets/weather/tide-low.png differ diff --git a/assets/weather/time-afternoon.png b/assets/weather/time-afternoon.png new file mode 100644 index 00000000..6e7063c5 Binary files /dev/null and b/assets/weather/time-afternoon.png differ diff --git a/assets/weather/time-evening.png b/assets/weather/time-evening.png new file mode 100644 index 00000000..24aaa40d Binary files /dev/null and b/assets/weather/time-evening.png differ diff --git a/assets/weather/time-late-afternoon.png b/assets/weather/time-late-afternoon.png new file mode 100644 index 00000000..9a7ae91c Binary files /dev/null and b/assets/weather/time-late-afternoon.png differ diff --git a/assets/weather/time-late-evening.png b/assets/weather/time-late-evening.png new file mode 100644 index 00000000..7f9d68b7 Binary files /dev/null and b/assets/weather/time-late-evening.png differ diff --git a/assets/weather/time-late-morning.png b/assets/weather/time-late-morning.png new file mode 100644 index 00000000..e907518b Binary files /dev/null and b/assets/weather/time-late-morning.png differ diff --git a/assets/weather/time-late-night.png b/assets/weather/time-late-night.png new file mode 100644 index 00000000..71f78778 Binary files /dev/null and b/assets/weather/time-late-night.png differ diff --git a/assets/weather/time-morning.png b/assets/weather/time-morning.png new file mode 100644 index 00000000..4280d006 Binary files /dev/null and b/assets/weather/time-morning.png differ diff --git a/assets/weather/time-night.png b/assets/weather/time-night.png new file mode 100644 index 00000000..464d6abe Binary files /dev/null and b/assets/weather/time-night.png differ diff --git a/assets/weather/tornado.png b/assets/weather/tornado.png new file mode 100644 index 00000000..6b3b7cd1 Binary files /dev/null and b/assets/weather/tornado.png differ diff --git a/assets/weather/umbrella-wind-alt.png b/assets/weather/umbrella-wind-alt.png new file mode 100644 index 00000000..66d3f6b1 Binary files /dev/null and b/assets/weather/umbrella-wind-alt.png differ diff --git a/assets/weather/umbrella-wind.png b/assets/weather/umbrella-wind.png new file mode 100644 index 00000000..bd669636 Binary files /dev/null and b/assets/weather/umbrella-wind.png differ diff --git a/assets/weather/umbrella.png b/assets/weather/umbrella.png new file mode 100644 index 00000000..d15c3e6a Binary files /dev/null and b/assets/weather/umbrella.png differ diff --git a/assets/weather/uv-index-1.png b/assets/weather/uv-index-1.png new file mode 100644 index 00000000..5c6c40b8 Binary files /dev/null and b/assets/weather/uv-index-1.png differ diff --git a/assets/weather/uv-index-10.png b/assets/weather/uv-index-10.png new file mode 100644 index 00000000..010470bd Binary files /dev/null and b/assets/weather/uv-index-10.png differ diff --git a/assets/weather/uv-index-11.png b/assets/weather/uv-index-11.png new file mode 100644 index 00000000..aceb8da7 Binary files /dev/null and b/assets/weather/uv-index-11.png differ diff --git a/assets/weather/uv-index-2.png b/assets/weather/uv-index-2.png new file mode 100644 index 00000000..94e9c3f4 Binary files /dev/null and b/assets/weather/uv-index-2.png differ diff --git a/assets/weather/uv-index-3.png b/assets/weather/uv-index-3.png new file mode 100644 index 00000000..16b89a27 Binary files /dev/null and b/assets/weather/uv-index-3.png differ diff --git a/assets/weather/uv-index-4.png b/assets/weather/uv-index-4.png new file mode 100644 index 00000000..70098ea9 Binary files /dev/null and b/assets/weather/uv-index-4.png differ diff --git a/assets/weather/uv-index-5.png b/assets/weather/uv-index-5.png new file mode 100644 index 00000000..f8c535a7 Binary files /dev/null and b/assets/weather/uv-index-5.png differ diff --git a/assets/weather/uv-index-6.png b/assets/weather/uv-index-6.png new file mode 100644 index 00000000..f2401bfc Binary files /dev/null and b/assets/weather/uv-index-6.png differ diff --git a/assets/weather/uv-index-7.png b/assets/weather/uv-index-7.png new file mode 100644 index 00000000..6a20b804 Binary files /dev/null and b/assets/weather/uv-index-7.png differ diff --git a/assets/weather/uv-index-8.png b/assets/weather/uv-index-8.png new file mode 100644 index 00000000..bc883633 Binary files /dev/null and b/assets/weather/uv-index-8.png differ diff --git a/assets/weather/uv-index-9.png b/assets/weather/uv-index-9.png new file mode 100644 index 00000000..ba3a00ba Binary files /dev/null and b/assets/weather/uv-index-9.png differ diff --git a/assets/weather/uv-index.png b/assets/weather/uv-index.png new file mode 100644 index 00000000..6dee5c3a Binary files /dev/null and b/assets/weather/uv-index.png differ diff --git a/assets/weather/wind-alert.png b/assets/weather/wind-alert.png new file mode 100644 index 00000000..d5f96b4a Binary files /dev/null and b/assets/weather/wind-alert.png differ diff --git a/assets/weather/wind-beaufort-0.png b/assets/weather/wind-beaufort-0.png new file mode 100644 index 00000000..abc130af Binary files /dev/null and b/assets/weather/wind-beaufort-0.png differ diff --git a/assets/weather/wind-beaufort-1.png b/assets/weather/wind-beaufort-1.png new file mode 100644 index 00000000..7c11ba8e Binary files /dev/null and b/assets/weather/wind-beaufort-1.png differ diff --git a/assets/weather/wind-beaufort-10.png b/assets/weather/wind-beaufort-10.png new file mode 100644 index 00000000..e648408d Binary files /dev/null and b/assets/weather/wind-beaufort-10.png differ diff --git a/assets/weather/wind-beaufort-11.png b/assets/weather/wind-beaufort-11.png new file mode 100644 index 00000000..c8ef903d Binary files /dev/null and b/assets/weather/wind-beaufort-11.png differ diff --git a/assets/weather/wind-beaufort-12.png b/assets/weather/wind-beaufort-12.png new file mode 100644 index 00000000..c7f76b34 Binary files /dev/null and b/assets/weather/wind-beaufort-12.png differ diff --git a/assets/weather/wind-beaufort-2.png b/assets/weather/wind-beaufort-2.png new file mode 100644 index 00000000..e3db4a4a Binary files /dev/null and b/assets/weather/wind-beaufort-2.png differ diff --git a/assets/weather/wind-beaufort-3.png b/assets/weather/wind-beaufort-3.png new file mode 100644 index 00000000..b4439f14 Binary files /dev/null and b/assets/weather/wind-beaufort-3.png differ diff --git a/assets/weather/wind-beaufort-4.png b/assets/weather/wind-beaufort-4.png new file mode 100644 index 00000000..188a624f Binary files /dev/null and b/assets/weather/wind-beaufort-4.png differ diff --git a/assets/weather/wind-beaufort-5.png b/assets/weather/wind-beaufort-5.png new file mode 100644 index 00000000..053b4adf Binary files /dev/null and b/assets/weather/wind-beaufort-5.png differ diff --git a/assets/weather/wind-beaufort-6.png b/assets/weather/wind-beaufort-6.png new file mode 100644 index 00000000..c4bdd402 Binary files /dev/null and b/assets/weather/wind-beaufort-6.png differ diff --git a/assets/weather/wind-beaufort-7.png b/assets/weather/wind-beaufort-7.png new file mode 100644 index 00000000..566c51bc Binary files /dev/null and b/assets/weather/wind-beaufort-7.png differ diff --git a/assets/weather/wind-beaufort-8.png b/assets/weather/wind-beaufort-8.png new file mode 100644 index 00000000..9a4ebb7f Binary files /dev/null and b/assets/weather/wind-beaufort-8.png differ diff --git a/assets/weather/wind-beaufort-9.png b/assets/weather/wind-beaufort-9.png new file mode 100644 index 00000000..d885a7a6 Binary files /dev/null and b/assets/weather/wind-beaufort-9.png differ diff --git a/assets/weather/wind-offshore.png b/assets/weather/wind-offshore.png new file mode 100644 index 00000000..d3560ad6 Binary files /dev/null and b/assets/weather/wind-offshore.png differ diff --git a/assets/weather/wind-onshore.png b/assets/weather/wind-onshore.png new file mode 100644 index 00000000..c4c51412 Binary files /dev/null and b/assets/weather/wind-onshore.png differ diff --git a/assets/weather/wind-snow.png b/assets/weather/wind-snow.png new file mode 100644 index 00000000..34db607f Binary files /dev/null and b/assets/weather/wind-snow.png differ diff --git a/assets/weather/wind.png b/assets/weather/wind.png new file mode 100644 index 00000000..c1804f82 Binary files /dev/null and b/assets/weather/wind.png differ diff --git a/assets/weather/windsock-weak.png b/assets/weather/windsock-weak.png new file mode 100644 index 00000000..7f224475 Binary files /dev/null and b/assets/weather/windsock-weak.png differ diff --git a/assets/weather/windsock.png b/assets/weather/windsock.png new file mode 100644 index 00000000..c6db5ab3 Binary files /dev/null and b/assets/weather/windsock.png differ diff --git a/src/weather_icons.py b/src/weather_icons.py index 76782619..592b9251 100644 --- a/src/weather_icons.py +++ b/src/weather_icons.py @@ -1,7 +1,99 @@ +import os from PIL import Image, ImageDraw -import math +# math is no longer needed for drawing, remove if not used elsewhere +# import math class WeatherIcons: + ICON_DIR = "assets/weather/" # Path where PNG icons are stored + DEFAULT_ICON = "not-available.png" + DEFAULT_SIZE = 64 # Default size, should match icons but can be overridden + + @staticmethod + def _get_icon_filename(condition: str) -> str: + """Maps a weather condition string to an icon filename.""" + condition = condition.lower().strip() + filename = WeatherIcons.DEFAULT_ICON # Start with default + + # Prioritize more specific conditions based on keywords (order matters) + if "thunderstorm" in condition or "thunder" in condition or "storm" in condition: + if "rain" in condition: filename = "thunderstorms-rain.png" + elif "snow" in condition: filename = "thunderstorms-snow.png" + else: filename = "thunderstorms.png" + elif "sleet" in condition: filename = "sleet.png" + elif "snow" in condition: filename = "snow.png" + elif "rain" in condition: filename = "rain.png" + elif "drizzle" in condition: filename = "drizzle.png" + elif "hail" in condition: filename = "hail.png" + elif "fog" in condition: filename = "fog.png" + elif "mist" in condition: filename = "mist.png" + elif "haze" in condition: filename = "haze.png" + elif "smoke" in condition: filename = "smoke.png" + # General sky conditions + elif "partly cloudy" in condition: + filename = "partly-cloudy-night.png" if "night" in condition else "partly-cloudy-day.png" + elif "overcast" in condition: filename = "overcast.png" + elif "cloudy" in condition: # Catches variations like 'mostly cloudy' + filename = "cloudy.png" + elif "clear" in condition or "sunny" in condition: + filename = "clear-night.png" if "night" in condition else "clear-day.png" + + # Check if the chosen icon file actually exists + potential_path = os.path.join(WeatherIcons.ICON_DIR, filename) + if not os.path.exists(potential_path): + # If the specific icon doesn't exist, print a warning and fall back to the default + if filename != WeatherIcons.DEFAULT_ICON: + print(f"Warning: Specific icon file not found: {potential_path}. Falling back to default.") + filename = WeatherIcons.DEFAULT_ICON + # Check if even the default icon exists + default_path = os.path.join(WeatherIcons.ICON_DIR, WeatherIcons.DEFAULT_ICON) + if not os.path.exists(default_path): + print(f"Error: Default icon file also not found: {default_path}") + # No icon found, return the default name; load_weather_icon will handle the FileNotFoundError + + return filename + + @staticmethod + def load_weather_icon(condition: str, size: int = DEFAULT_SIZE) -> Image.Image | None: + """Loads, converts, and resizes the appropriate weather icon. Returns None on failure.""" + filename = WeatherIcons._get_icon_filename(condition) + icon_path = os.path.join(WeatherIcons.ICON_DIR, filename) + + try: + # Open image and ensure it's RGBA for transparency handling + icon_img = Image.open(icon_path).convert("RGBA") + + # Resize if necessary using high-quality downsampling (LANCZOS/ANTIALIAS) + if icon_img.width != size or icon_img.height != size: + icon_img = icon_img.resize((size, size), Image.Resampling.LANCZOS) + + return icon_img + except FileNotFoundError: + print(f"Error: Icon file not found: {icon_path}") + # Don't try to load default here, _get_icon_filename already handled fallback logic + return None + except Exception as e: + print(f"Error processing icon {icon_path}: {e}") + return None + + @staticmethod + def draw_weather_icon(image: Image.Image, condition: str, x: int, y: int, size: int = DEFAULT_SIZE): + """Loads the appropriate weather icon and pastes it onto the target PIL Image object.""" + icon_to_draw = WeatherIcons.load_weather_icon(condition, size) + if icon_to_draw: + # Paste the icon using its alpha channel as the mask for transparency + # This ensures transparent parts of the PNG are handled correctly. + try: + image.paste(icon_to_draw, (x, y), icon_to_draw) + except Exception as e: + print(f"Error pasting icon for condition '{condition}' at ({x},{y}): {e}") + else: + # Optional: Draw a placeholder if icon loading fails completely + print(f"Could not load icon for condition '{condition}' to draw at ({x},{y})") + # Example placeholder: draw a small magenta square + # placeholder_draw = ImageDraw.Draw(image) + # placeholder_draw.rectangle([x, y, x + size, y + size], fill=(255, 0, 255)) + pass # Default: do nothing if icon cannot be loaded + @staticmethod def draw_sun(draw: ImageDraw, x: int, y: int, size: int = 16, color: tuple = (255, 200, 0)): """Draw a sun icon with rays.""" @@ -111,25 +203,4 @@ class WeatherIcons: draw.line([ x + size//4, wave_y, x + size//4 + size//2, wave_y + wave_height - ], fill=mist_color, width=2) - - @staticmethod - def draw_weather_icon(draw: ImageDraw, condition: str, x: int, y: int, size: int = 16): - """Draw the appropriate weather icon based on the condition.""" - condition = condition.lower() - - if 'clear' in condition or 'sunny' in condition: - WeatherIcons.draw_sun(draw, x, y, size) - elif 'cloud' in condition: - WeatherIcons.draw_cloud(draw, x, y, size) - elif 'rain' in condition or 'drizzle' in condition: - WeatherIcons.draw_rain(draw, x, y, size) - elif 'snow' in condition: - WeatherIcons.draw_snow(draw, x, y, size) - elif 'thunder' in condition or 'storm' in condition: - WeatherIcons.draw_thunderstorm(draw, x, y, size) - elif 'mist' in condition or 'fog' in condition or 'haze' in condition: - WeatherIcons.draw_mist(draw, x, y, size) - else: - # Default to cloud for unknown conditions - WeatherIcons.draw_cloud(draw, x, y, size) \ No newline at end of file + ], fill=mist_color, width=2) \ No newline at end of file diff --git a/src/weather_manager.py b/src/weather_manager.py index c7c93b4c..f26e7e0c 100644 --- a/src/weather_manager.py +++ b/src/weather_manager.py @@ -229,9 +229,9 @@ class WeatherManager: # Draw weather condition icon and text at the top condition = weather_data['weather'][0]['main'] - icon_x = 1 - icon_y = 1 - WeatherIcons.draw_weather_icon(draw, condition, icon_x, icon_y, size=self.ICON_SIZE['large']) + icon_y = 1 # Adjusted y position + icon_x = (self.display_manager.matrix.width - self.ICON_SIZE['large']) // 2 # Center horizontally + WeatherIcons.draw_weather_icon(image, condition, icon_x, icon_y, size=self.ICON_SIZE['large']) # Draw condition text next to icon (using small font) condition_text = condition @@ -363,7 +363,7 @@ class WeatherManager: icon_size = self.ICON_SIZE['medium'] icon_y = self.display_manager.matrix.height // 3 # Position icon in upper third icon_x = center_x - icon_size // 2 - WeatherIcons.draw_weather_icon(draw, forecast['condition'], icon_x, icon_y, icon_size) + WeatherIcons.draw_weather_icon(image, forecast['condition'], icon_x, icon_y, icon_size) # Draw temperature at bottom temp_text = f"{forecast['temp']}°" @@ -428,7 +428,7 @@ class WeatherManager: icon_size = self.ICON_SIZE['medium'] icon_y = self.display_manager.matrix.height // 3 # Position icon in upper third icon_x = center_x - icon_size // 2 - WeatherIcons.draw_weather_icon(draw, forecast['condition'], icon_x, icon_y, icon_size) + WeatherIcons.draw_weather_icon(image, forecast['condition'], icon_x, icon_y, icon_size) # Draw high/low temperatures at bottom (without degree symbol) temp_text = f"{forecast['temp_low']}/{forecast['temp_high']}" # Removed degree symbols