Visual identity, component patterns, and voice standards for the TFR Tracker product family.
Version1.0
Maintained byTom Patzelt
Domaintfrtracker.com
Updated2025
Contents
01Color Palette
02Typography
03Logo & Mark
04App Components
05Spacing & Motion
06Voice & Tone
01 — Color Palette
Color system
Eight tokens cover the entire product. Deep navy backgrounds recede behind a single electric blue accent — keeping attention on flight data, not chrome.
Core tokens
#080c16
--bg
Page background
#0b1422
--bg2
Section alternate bg
#0e1828
--bg3
Cards, panels
#0c1220
--ctrl
Controls bar
#0a101e
badge bar bg
Team/venue badge row
#111928
--chip
Chips, selects, buttons
#1C8FE3
--accent
Primary accent, brand blue
#4AABF7
--accent2
TFR warning text, links
Borders & text
#1a2840
--border
Structural dividers
#253550
--border2
Interactive borders
#607080
--muted
Secondary text, labels
#8a9ab8
--muted2
Badge body text
#dde3f0
--text
Primary text
#b0bdd0
modal body text
TOS/modal paragraph
Status colors
#22c55e
saved-border
Saved game card border
#86efac
saved-text
Saved button text
#14381a
saved-btn-bg
Saved button background
#0a1a0a
saved-card-bg
Saved card background
#0e1a10
error-bg
Error / warning card bg
#1a3d20
error-border
Error card border
02 — Typography
Type system
DM Sans exclusively. Variable optical-size axis (9–40). Weight 200 for display, 300 for body, 400–700 for UI labels and buttons.
The mark combines a globe grid with a map-pin drop — hinting at both airspace awareness and geographic coverage. The diagonal grid line added in v1.1 ties the mark to the drone's spread-arm silhouette.
TFR TrackerDrone Flight Intelligence
On dark — primary
TFR TrackerDrone Flight Intelligence
On bg2 — nav scrolled
TFR TrackerDrone Flight Intelligence
On light — print / docs
Footer mark (28 × 28)
TFR Tracker
Footer uses the 28 × 28 mark (border-radius 5px), weight-300 uppercase logo-name at 0.2em tracking in #607080.
Nav uses the 36 × 36 mark (border-radius 7px), weight-400 name in #1C8FE3.
Every interactive surface is built from the same dark-panel vocabulary. Components are shown here at exact production dimensions pulled directly from the source.
bg --bg · border-top 1px --border · padding 32px 40px · flex wrap space-between gap 12px
Footer-logo: mark 28×28 br-5px · name 12px/300/0.2em uppercase #607080
Footer-copy: 11px/300/0.04em #607080 · width 100% order 2
Links: 11px/300/0.12em uppercase #607080 · gap 22px
05 — Spacing & Motion
Space & rhythm
The instrument-panel aesthetic depends on consistent, generous spacing. Motion is minimal and purposeful — no decorative animation.
Spacing scale
6pxgap xs
8pxbtn pad v
10pxgap sm
12pxctrl gap
14pxbtn pad h
16pxcard pad v
20pxgame-list px
22pxmodal pad v
24pxmodal pad h
28pxlist px
32pxfooter px
40pxnav px
68pxnav height
Motion tokens
Nav scroll fade
bg + backdrop-filter appear on scroll
0.4s ease
Nav link hover
color --muted → --text
0.2s
Sport toggle button
bg + color swap on click
0.15s
Game card border-color
--border → #1a3d1a on save
0.2s
Hamburger open/close
span transform + opacity
0.25s
Preloader badge pulse
box-shadow 0→18px rgba(56,182,232,0.4)→0
1.8s ease-in-out ∞
Preloader icon spin
drone SVG rotate 0→360°
2.4s linear ∞
Preloader scan bar
translateX -100% → 300% alternate
1.2s ease-in-out ∞ alt
Preloader fade out
opacity 1→0 then remove from DOM
0.5s ease
06 — Voice & Tone
Voice & tone
TFR Tracker speaks like an instrument panel — precise, minimal, authoritative. No alarm, no fluff. Pilots and drone operators need information they can act on immediately.
We do
Lead with the most actionable information first
Use specific altitudes, radii, dates, and coordinates
Keep sentences short — one fact per sentence
Uppercase short labels, lowercase natural prose
Name the authority: "FAA", "AFAC", "Transport Canada"
We don't
Use alarm language for routine informational TFRs
Add filler phrases like "please be aware that…"
Over-explain regulations pilots already know
Use exclamation marks or emoji in product copy
Apologize for restrictions we didn't create
✓ Do this
"Active TFR — Coors Field, Denver. 3 NM radius, surface to FL180. In effect 6:00–11:00 PM MDT. No UAS operations."
✕ Not this
"Warning! There may be a temporary flight restriction in your area. Please be aware that flying your drone could potentially be illegal and dangerous in this zone!"
Empty state
"No active TFRs within 25 NM of your location."
Clear, confident. Never "nothing found" or "no results."
Error state
"Could not load schedule. Check your connection."
Tell them what happened and how to fix it. No apology.
Authority labels
US games → "verify at tfr.faa.gov"
Mexico games → "verify at AFAC"
Canada games → "verify at Transport Canada"
TFR timing language
Game starts: shown as-is.
TFR start = game time − 1 hr.
For WC / round games use: "Airspace restricted match day" instead of a start time.