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 Canada’s weather, hazard, and advisory conditions.
All symbols are terminal-safe, monospace-friendly, and intentionally minimalist —
reflecting Skyfeed’s 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.
Skyfeed’s 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:
- Add the normalized
condition_code in weather_client.py.
- Add its Unicode equivalent in
weather_symbols.py.
- Update this document.
Maintainer: Leak Technologies
Revision: v1.0.0 (November 2025)