SF26 Live pattern system
Ticker-derived shell language, enforced across surfaces.
This is the production contract for SF26 Live surfaces. General SF26 remains navy + signal red; COR/Nights of Unity remain NAD blue + NAD red; College Bowl/youth remains youth green + youth yellow. Bebas Neue leads, DM Sans supports.
Every surface in the SF26 Live family must implement this contract. Contributors and AI coding agents should treat this page as normative implementation guidance, not inspiration.
Preserved for historical context. This page is the current canonical reference.
System contract and enforcement model
:root Must be used for all base color, text, line, and elevation decisions. Compliance requirement: if a visual decision cannot be mapped to a canonical, family, utility, or approved runtime token, it is not production-eligible.
NAD official palette
The four NAD event colors map to specific programming families. SF26 Live uses them as surface identities — not interchangeably.
#12285C · --nad-blue #B00020 · --nad-red #2F6A3A · --youth-green #F9D949 · --youth-yellow Championship Match
COR Business Session
COR and Nights of Unity surfaces use NAD blue as the stage and red as the signal accent — the inverse of the general site which uses navy + signal red.
SF26 Live surface tokens
Youth / College Bowl surface tokens
COR / Nights of Unity surface tokens
Utility tokens
Typography
Shell primitives
SF26 LIVE Live ribbon
Score and status surfaces
Marquee states
Lower thirds
Signage tiles
Ticker relationship
NAD Conference History · 58 Biennial Gatherings Panels and cards
Module panel
Standard content panel
Used for schedule, feed items, and structured content throughout the site. Panel class provides the border, radius, backdrop, and shadow in one declaration.
Ops strip
Now / Next pair
Dynamic tokens
Some surfaces inject CSS custom properties at runtime via inline style attributes. These are not defined in :root — they exist only within their component scope.
--team College Bowl live team.col (data) Team accent color in scoreboard cards --cue-accent Broadcast control cue.accent (data) Accent for broadcast cue strips --phase After Dark phase.color (data) Phase surface color (nighttime ops) --amp After Dark phase.intensity (data) Amplitude for height calculations --phase-intensity After Dark phase.intensity% (data) Phase intensity as percentage Pattern: style=--token:${value} on the component root element. Children read the token with var(--token).
Production surface inventory
Active surfaces in the system beyond the primitives shown above. Each uses the shared token set but has its own component class namespace.
/broadcast/output Countdown, welcome, lower thirds, promotions, announcements, history, scoring cards. Uses inline-styled broadcast card system. /ops/broadcast Cue management with --cue-accent dynamic tokens. Operator-facing control rail for live broadcast. /ops/cobo-live Full scoreboard with team cards, phase management, question display. Uses cobo-* class namespace (60+ classes) and --team dynamic token. /ops/cobo-scoring Operator scoring interface for live College Bowl matches. /ops/signage Uses signage-display-* classes (distinct from the signage-tile demos above). Brand bar + grid layout for venue screens. /ops/ticker Animated timeline of 58 biennial conferences. Uses ticker-display-* class namespace. /ops/opening-loop Ceremony presentation surface with scene-based rendering. /ops/retro-loop Vintage terminal aesthetic — bulletin panels, scene boards, retro window components. Uses retro-* class namespace. /after-dark Phase-driven nighttime ops surface. Uses --phase, --amp, --phase-intensity dynamic tokens for theming. Implementation rules (strict)
- Shell primitives: top shell rail, context bar, nav pills, primary/secondary actions.
- Live information: live ribbon, score strips, timer/status strips, ticker.
- Marquee broadcast: category reveal, answer reveal, lower thirds.
- Venue surfaces: signage tiles and display grids.
- Structured content: panels/cards for schedule, now/next, and operator modules.
New components must inherit one of these families and naming namespaces before entering production.
- Bebas Neue is reserved for ceremonial or structural emphasis: page/surface titles, score headers, reveal headlines, lower-third primary lines.
- DM Sans is required for explanatory language: schedules, metadata, captions, support copy, controls, and accessibility-facing text.
- Do not set long-form paragraphs in Bebas Neue.
- Do not demote critical metadata into low-contrast decorative treatments.
- Motion exists to indicate state, timing, progression, and official transitions — never as decoration.
- Sheen, glow, urgency bands, and high-signal accents are allowed only for marquee moments (answer reveal, countdown urgency, critical live calls).
- Shell rails, default cards, metadata strips, and standard signage must remain visually quiet.
- At-rest states should dominate runtime so marquee states retain ceremonial impact.
- No ad hoc color invention outside tokenized palettes.
- No random gradients unless explicitly defined by the active surface family.
- No youth palette use inside COR/Nights of Unity or general SF26 surfaces.
- No decorative animation that interferes with captioning, legibility, timing comprehension, or broadcast clarity.
- No generic SaaS card styling (flat white cards, unbranded shadows, consumer-dashboard motifs) that weakens SF26 broadcast identity.
Component status
Responsive strategy
> 1000px Full multi-column layouts. All grids at max columns. Score strip and signage in single row. ≤ 1000px Two-column grids collapse to single column. NAD palette goes 2-up. Swatch grid goes 3-up. Shell rail stacks vertically. Score strip wraps. Status box hidden. ≤ 640px Swatch grid goes 2-up. Maximum density reduction for mobile. Broadcast and display surfaces (signage, ticker, CoBo live) are designed for fixed-resolution screens and do not use responsive breakpoints.