Skyfeed/docs/DESIGN/visual_style.md

187 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)