Skyfeed/docs/DESIGN/visual_style.md

5.9 KiB
Raw Blame History

Skyfeed Visual Style Guide

Leak Technologies — Terminal Weather Aesthetic

This document defines the Unicode-based icon system used throughout Skyfeed.
It ensures full coverage for Environment Canadas weather, hazard, and advisory conditions.

All symbols are terminal-safe, monospace-friendly, and intentionally minimalist —
reflecting Skyfeeds philosophy of pure data without visual clutter.


🌤️ Weather & Sky Conditions

Code Symbol Meaning
clear / sunny Clear sky / sunshine
mostly_clear / mainly_clear 🌤 Few clouds
partly_cloudy Partial cloud cover
mostly_cloudy 🌥 Cloudy with breaks
cloudy / overcast Fully overcast
night_clear 🌙 Clear night sky
night_partly_cloudy 🌃 Partial clouds at night
night_cloudy Cloudy night

🌧️ Rain & Precipitation

Code Symbol Meaning
rain / showers 🌧 Steady or intermittent rain
light_rain 🌦 Light rainfall / isolated showers
heavy_rain / rain_heavy 🌧 Heavy or prolonged rain
drizzle 💧 Light drizzle
freezing_rain / freezing_drizzle 🧊 Freezing precipitation
freezing_spray 🧊 Sea spray or freezing rain near coasts
mixed_rain_snow / mixed_precipitation 🌧❄ Mixed or changing precipitation
rainfall_warning 🌧 Heavy rainfall advisory

❄️ Snow / Ice / Winter Weather

Code Symbol Meaning
snow General snowfall
flurries / snow_grains Light flurries or grains
heavy_snow Intense snowfall
blowing_snow / drifting_snow 🌬 Snow driven by wind
ice_pellets / sleet / graupel 🧊 Ice pellets / sleet / graupel
hail 🧊 Hailstones
frost Frost or frost advisories
black_ice Black ice conditions
snow_pellets Fine ice particles

⛈️ Thunderstorms & Severe Weather

Code Symbol Meaning
thunderstorm / thundershowers Thunderstorms or heavy showers
lightning Lightning observed
tstorm / storm Electrical storms
funnel_cloud / waterspout / tornado 🌪 Tornadic activity or funnel clouds

🌬️ Wind / Gale / Tropical Systems

Code Symbol Meaning
wind / strong_wind 💨 Strong or gusty wind
gusty 💨 Occasional gusts
gale / gale_warning 💨 Gale-force winds
wind_chill 🥶 Wind chill warning
hurricane / cyclone / typhoon / tropical_storm 🌀 Tropical or post-tropical storm

🌫️ Visibility & Air Quality

Code Symbol Meaning
fog / dense_fog 🌫 Fog or dense fog
freezing_fog 🌫 Freezing fog
mist / haze Reduced visibility
smoke / ash / dust / blowing_dust 💨 Airborne particulates (smoke, ash, dust)
smog 🌫 Air pollution / smog
low_visibility / poor_visibility 👁‍🗨 Travel visibility reduced
air_quality / air_pollution / air_quality_alert 🚭 Air quality advisory

🌡️ Temperature Extremes

Code Symbol Meaning
cold / extreme_cold 🥶 Cold or extreme cold warning
hot / heat / heat_wave 🌡 Hot temperatures
heat_warning / extreme_heat 🔥 Heat alert or extreme heat

🌊 Hydrological / Flood / Marine

Code Symbol Meaning
flood / flash_flood 🌊 Flooding / flash flood
flood_warning 🌊 Official flood warning
storm_surge / tsunami / rip_current 🌊 Coastal or tidal hazard
marine_warning / wave Marine advisory

🚗 Travel / Road / Ice Hazards

Code Symbol Meaning
travel_advisory 🚗 Hazardous travel conditions
black_ice_warning / slippery_roads Black ice / slippery roads
road_closure Road closed due to conditions
freezing_rain_warning 🧊 Freezing rain warning

🔥 Fire / Environmental Hazards

Code Symbol Meaning
wildfire / forest_fire 🔥 Wildfire or forest fire
fire_weather 🔥 Elevated fire risk

⚠️ Alerts / Advisories / Statements

Code Symbol Meaning
alert General alert
advisory Advisory (lower severity)
watch 👁 Watch (monitor closely)
warning Warning (take action)
statement / special_weather_statement General information statement
hazardous_weather Dangerous atmospheric conditions
danger Extreme hazard
ok Normal / no hazard
unknown Unknown or unclassified

🧱 Design Intent

  • No branding inside the display.
    Skyfeeds presentation is pure data — branding belongs on the backend.

  • Colour palette:

    • Foreground accent: #00BFFF (sky blue)
    • Secondary highlight: #FFD300 (sunny yellow)
    • Warnings: #FF4040 (alert red)
    • Background: #000000 (pure black)
      These colours correspond to the skyfeed_default theme in src/ui/theme.py.
  • Typeface:
    assets/fonts/Modeseven.ttf — a Teletext-era monospaced bitmap font.

  • Visual tone:
    “Modern retro” — inspired by Ceefax and MS-DOS, emphasizing clarity and precision.


🧩 Developer Reference

Each condition_code from
src/core/weather_client.py → _normalize_condition()
maps one-to-one with the WEATHER_ICONS dictionary.

If a new weather phrase appears in the Environment Canada feeds:

  1. Add the normalized condition_code in weather_client.py.
  2. Add its Unicode equivalent in weather_symbols.py.
  3. Update this document.

Maintainer: Leak Technologies
Revision: v1.0.0 (November 2025)