CodingNic

Dynamic Weather Themes

Map Weather Conditions to Themes

Dynamic Weather Themes 10 min read

Map Weather Conditions to Themes

Task

Use the existing weather helper to choose the app theme.

File / section

src/utils/weather.js and src/App.jsx

Change

Use the existing themeForWeather(id, night) mapping. In App.jsx, calculate const night = weather?.weather?.[0]?.icon?.endsWith("n"); and const theme = weather ? themeForWeather(weather.weather[0].id, night) : "clear";.

Why this change matters

Keeping the mapping in a utility makes the theme rules easy to reuse and review.

Test it

Search for conditions with different weather codes and inspect the root class.

Checkpoint

Weather data now determines a semantic theme name.

javascript
const night = weather?.weather?.[0]?.icon?.endsWith("n");
const theme = weather
  ? themeForWeather(weather.weather[0].id, night)
  : "clear";