Foundation Software Guide
Widget & Cast Development Standards · WBN CastNetwork™
§1 Purpose & Scope
This is a living document. It captures agreed decisions, standards, and patterns that govern the development of all WBN widgets, casts, and platform modules. It is uploaded at the start of every development session and updated as new decisions are made. Its purpose is to eliminate ambiguity, reduce rework, and ensure every WBN product looks and behaves consistently — regardless of which cast or publication it is deployed on.
When this document conflicts with a one-off instruction in a session, this document wins unless the session instruction explicitly says "override the Foundation Guide."
§2 Visual Standards Confirmed
All WBN widgets and casts follow WBN Style Guide v3.1 unless explicitly overridden for a specific publication. The palette, typography, border radii, and spacing scale are non-negotiable.
body background is always a neutral page colour (#f0f4f7). The Robin Blue gradient (--bg1 → --bg2) lives exclusively inside the .shell container. It must never be applied to the body, html, or any wrapper outside the shell.linear-gradient(180deg, #ffffff, #eaf8fe). Panel gradient applied to cards and conference panels: linear-gradient(180deg, var(--panel1), var(--panel2)). All borders use var(--robin-dim).background: var(--robin) with white text and a var(--robin-dark) border. Inactive tabs are transparent with var(--muted) text. Hover state: background: var(--robin-faint) with var(--robin-dark) text. Border radius: 10px.new Date() on page load. Format: Tue, May 13, 2026 (Day abbreviation, Month Day, Year). Rendered in Source Code Pro, 11px, var(--muted). Never hardcoded.WBN [WidgetName]™ v[X.X] | [Context]. Examples: WBN SportsCast™ v1.1 | WNBA 2026 · WBN WeatherCast™ v2.0 | Delta, BC. Source Code Pro, 10–11px, var(--muted).§3 Layout Standards Confirmed
#ffffff → #f5fafd), distinct from the Robin Blue shell. Border: 1px solid #d0dde6. This visually separates admin from public content while staying within the WBN family aesthetic.localStorage.§4 Admin Standards Confirmed
All WBN widgets include an admin panel. The following rules apply to every admin implementation.
var DEFAULT_PW = 'wbn2026'). Stored and overrideable in localStorage. Login state persisted to localStorage with key pattern wbn_[widget]_authed. Enter key triggers login.var(--success), error uses var(--danger).§5 Foundation Software Standard — Data Portability Confirmed
This is the core infrastructure standard. Every WBN widget must support data portability so that when a new version of the widget is deployed, all previous configuration and data can be restored from a backup file without manual re-entry.
localStorage and applied to the UI immediately. This is the primary upgrade migration tool.All backup files follow this structure to ensure forward compatibility:
§6 JavaScript Standards Confirmed
(function () { 'use strict'; /* ... */ })(); — prevents global scope collisions when multiple widgets share a Ghost page.onclick=, onchange=, or any inline event attributes. All event binding via addEventListener. Dynamic lists use event delegation on a parent container. Ghost's CSP blocks inline handlers silently.localStorage read/write operations are wrapped in try/catch. Provide fallback values on failed reads. Failed writes surface as a flash error, not a thrown exception.max-width: 600px (standard widgets) or max-width: 760px (wide layouts). No horizontal scroll on any viewport.§7 Naming & Versioning Confirmed
WBN [Name]Cast™ or WBN [Name]Stream™
Examples: WBN SportsCast™ · WBN WeatherCast™ · WBN NewsCast™ · WBN DealStream™
WBN [WidgetName]™ v[X.X] | [Context]
Examples:
WBN SportsCast™ v1.1 | WNBA 2026
WBN WeatherCast™ v2.0 | Delta, BC
wbn-[widget]-[publication].html
Examples:
wbn-sportscast-delta.html
wbn-weathercast-surrey.html
wbn-[widget]-full-backup-YYYY-MM-DD.json
Examples:
wbn-sportscast-full-backup-2026-05-12.json
wbn-sportscast-config-2026-05-12.json
§8 Open Items & TBD Draft
The following areas need decisions before they can be codified as rules.
§9 Changelog
| Version | Date | Changes | Status |
|---|---|---|---|
| v0.1 | May 12, 2026 | Initial draft. Established §1–9. Rules R-01 through R-18 confirmed from SportsCast–Delta development session. TBD-01 through TBD-04 identified as open items. | Draft |