Skyfeed/docs/API/ui.md

5.3 KiB
Raw Permalink Blame History

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)