# Skyfeed UI API Reference Leak Technologies — Developer Visual Reference This document defines how Skyfeed renders Unicode icons and text using the skyfeed_default theme (black terminal aesthetic). It ensures visual consistency between the CLI mode and the graphical UI. ---------------------------------------------------------------------- Base Theme Mapping ---------------------------------------------------------------------- Role | Colour | Usage -------------------|------------|--------------------------------------- Background | #000000 | Terminal canvas, alert frame background Foreground Text | #E0E0E0 | General text, city name, data values Primary Accent | #00BFFF | Weather icons, temperature emphasis Secondary Accent | #FFD300 | Headings, highlights, sun indicators Advisory / Alert | #FF4040 | Red border and alert messages Advisory Text | #FFA500 | Amber warning for travel/advisory notices Font: assets/fonts/Modeseven.ttf (Teletext-style monospace, ~20pt nominal) Icon scale: Display.IconScale in config (default 4x) ---------------------------------------------------------------------- Layout Overview ---------------------------------------------------------------------- Minimal View +-------------------------------------------------------------------+ | Cornwall, ON ☀ | | Updated: 14:05 EST 21°C | | Clear Sky | | Feels: 22°C Wind: W 10 km/h RH: 55% | | Pressure: 101.3 kPa Visibility: 24 km | +-------------------------------------------------------------------+ - Left column: text data - Right column: enlarged Unicode weather icon - Border: red (#FF4040) if an alert is active; black otherwise Fullscreen View (planned) Fullscreen will display extended conditions, forecasts, and alerts in a Teletext-inspired grid using the same colour mapping. ---------------------------------------------------------------------- Weather Icon Colours ---------------------------------------------------------------------- Condition | Symbol | Foreground | Example note --------------------|--------|-------------|------------------------------ Clear / Sunny | ☀ | #FFD300 | Bright yellow on black Mostly Cloudy | 🌥 | #00BFFF | Sky blue on black Rain / Showers | 🌧 | #00BFFF | Blue icon, white text Snow / Flurries | ❄ | #E0E0E0 | White icon Freezing Rain | 🧊 | #00FFFF | Cyan tint Fog / Mist | 🌫 | #AAAAAA | Soft grey Wind / Gale | 💨 | #00BFFF | Blue accent Thunderstorm | ⛈ | #FFD300 | Yellow lightning emphasis Tornado / Funnel | 🌪 | #FF4040 | Red icon Hail / Ice Pellets | 🧊 | #00FFFF | Cyan tint ---------------------------------------------------------------------- Alert Level Rendering ---------------------------------------------------------------------- Severity | Symbol | Border | Text Colour | Meaning -----------|--------|----------|--------------|----------------------------- Warning | ⚠ | #FF4040 | White | Action likely required Watch | 👁 | #FFA500 | White | Conditions favourable Advisory | ⚡ | #FFD300 | White | Minor / travel risk Statement | ℹ | #00BFFF | White | Informational None / OK | ✓ | #00FF00 | White | Normal conditions When an alert is active: - The frame border colour reflects severity. - Alert text appears below the main conditions in the same hue. ---------------------------------------------------------------------- Time and Refresh ---------------------------------------------------------------------- - The window title updates each second, e.g. Skyfeed — 14:27:05 - Weather refresh interval defaults to 15 minutes (RefreshMinutes in config) ---------------------------------------------------------------------- Design Goals ---------------------------------------------------------------------- Principle | Description -------------------|--------------------------------------------------------- No Branding in UI | Skyfeed presents pure data; branding stays in backend. MS-DOS Safe | Colours and Unicode symbols render in text-only environments. Retro-Futuristic | Ceefax / MS-DOS-inspired clarity. Zero-Distraction | No animations, no bitmap icons; Unicode glyphs only. B&W Readable | Icons remain legible without colour. ---------------------------------------------------------------------- Developer Integration ---------------------------------------------------------------------- Access icons programmatically: from src.utils.weather_symbols import get_icon symbol = get_icon("rain") Use with theme: from src.ui.theme import get_color fg = get_color("fg_primary") bg = get_color("bg") Localization: from src.localization.localization_manager import LocalizationManager loc = LocalizationManager("fr_CA") label = loc.get_label("temperature") ---------------------------------------------------------------------- Maintainer: Leak Technologies Revision: v0.1.0 (November 2025)