← ClaudeAtlas

android-weather-adaptive-theminglisted

Use this skill whenever building or extending a weather app's UI where the visual theme (colors, icon, surface tint) should reflect the current weather condition — hot, sunny, rainy, cloudy, winter/snow, night, etc. Trigger on mentions of "weather theme", "dynamic weather colors", "mood-based UI", "condition-based background/theme", or when adding a new screen/component to an existing weather app that should stay visually consistent with the app's weather-driven theming. Also trigger when the request is to add a new weather mood/condition, a new screen that displays weather data, or a widget/component that should pick up the current theme. This is a UI/design-system skill scoped to one app's theming layer — pair with whatever Compose/architecture conventions the project already uses.
rajedev/AIWeatherApp · ★ 0 · Web & Frontend · score 62
Install: claude install-skill rajedev/AIWeatherApp
# Weather-Adaptive Theming (Compose) The goal: exactly **one** place decides "what does hot/sunny/rainy/cloudy/winter/night look like," and every screen or component consumes that decision the same way — never a per-screen `if (condition == "Rain") Color.Blue else ...` scattered across composables. When a new screen, widget, or mood gets added later, it plugs into the existing system instead of forking it. ## Core mental model ``` Weather data (condition, temp, local hour) │ ▼ resolveMood(...) ── ONE function, pure, deterministic │ ▼ WeatherMood enum value │ ▼ toThemeColors() ── ONE mapping, mood → colors/icon │ ▼ CompositionLocal or shared ViewModel state ── exposed app-wide │ ▼ Every screen/component reads from the SAME theme source (hero card, app bar tint, widget background, notification accent — all of it) ``` ## 1. Mood resolution — factors in more than just the condition string ```kotlin enum class WeatherMood { HOT, SUNNY, RAINY, CLOUDY, WINTER, NIGHT } fun resolveMood(conditionMain: String, currentTemp: Double, localHour: Int): WeatherMood = when { // Night check first — a "clear" sky at 2am shouldn't theme as SUNNY localHour !in 6..18 && conditionMain in setOf("Clear", "Clouds") -> WeatherMood.NIGHT currentTemp >= 35 -> WeatherMood.HOT currentTemp <= 5 || conditionMain == "Snow" -> WeatherMood.WINTER conditionMain in setOf("Rain", "Drizzle", "Thund