Design

The rules every Storm screen follows. Every sample on this page is drawn with assets/storm.css, the same file the mockups are built from, so a mock can’t say something this page doesn’t.

Character. An onNAV instrument, not a weather toy. Dark, calm, and quiet until it matters, and then one color, one sentence and one number. MarNav’s look, Anchor Alert’s discipline about color, and plain honesty about where every number comes from.

The family

onNAV apps share one white mark, NWS-radar-like arcs around an anchor, and change only the color behind it. The swirl already reads as a storm, so Storm keeps the mark whole.

onNAV Marine icon
onNAV Marine
#0C60AB
Anchor Alert icon
Anchor Alert
#1C7B5A
Storm icon, teal
Storm, teal
#0E8EA5 · the pick
Storm icon, slate
Storm, slate
#2F3B5C
Storm icon, amber
Storm, amber
#B86E00

Teal is MarNav’s own secondary color, so it’s already onNAV, and it sits apart from blue and green on a Home Screen. In the app it means one thing: NWS has nothing for this place. Amber reads as alarm on the icon, and amber is the watch color inside; slate disappears on a dark wallpaper.

Color

Chrome: MarNav’s, unchanged

#373340
chromeThe bar, the menu circle, sheets
#45434E
cellCards and panels on a sheet
#1E1C24
groundNew: behind full-screen lists, one step under chrome
#6EA8E8
linkTint, links, secondary buttons
#0C60AB
brand-blueThe one filled button on a screen
#0E8EA5
brand (teal)The icon, switches, and “No alerts”
#5EC8E5
waterNew: tides and the sea. Never a level, never a link

The four levels

Storm sorts all 111 kinds of NWS alert into four levels by what NWS wants you to do. The color belongs to the level; the words always belong to NWS.

#D93A2B · white
WarningHappening or about to. Act now. Tornado, Severe Thunderstorm, Flash Flood, Hurricane
#F5A524 · #1B1A18
WatchConditions are right. Get ready
#5B9BD5 · #0B1A2A
AdvisoryBe aware. Heat, wind, winter weather
#8E8C96 · white
StatementInformation. Special Weather Statements, updates
Red is only for a warning. Never for an error, a delete button, a badge on its own, or decoration. When the screen goes red, something is coming. Anchor Alert’s rule, made stricter.
Color never stands alone. Every level shows its word, and a warning its hazard’s symbol. About one man in twelve sees red and amber differently.
Not NWS’s hazard colors. NWS gives each of its 111 alerts a color, from tornado red to winter-storm hot pink. Nobody knows them, and five reds can’t be told apart on a phone. Four levels can.

Type

SF Pro at iOS’s Dynamic Type sizes, as MarNav. No custom fonts. Numbers that change use even-width digits.

23min
Tornado Warning
Home
Move to a basement or an interior room.
You’re inside it · until 6:45 PM
What NWS says
/O.NEW.KOUN.TO.W.0042.270518T2318Z-270518T2345Z/
RoleStyleUse
The countdownSF Rounded Bold 48, even digitsOne per screen: the minutes left. From Anchor Alert
TitleTitle 2, boldThe event, in NWS’s words
NameHeadline, or Title 3 on a place cardA place, a row’s label
BodyBody; Callout in quotesNWS’s text
Fact lineSubheadline, secondaryWhere, how long, how far, joined by “ · ”
Panel headingFootnote semibold, uppercase, secondaryThe name of a panel
ReferenceCaption, SF MonoNWS’s VTEC code, for anyone who checks

Shape and space

Anchor Alert’s shapes, the family’s newest, over MarNav’s colors.

TokenValueUse
r-tool5MarNav’s toolbar square
r-card18Cards, panels, place cards, widgets’ insides
r-panel22Glass over the map
r-sheet28A sheet’s top corners
capsulehalf the heightButtons, chips
4 · sp-1
8 · sp-2
12 · sp-3
16 · sp-4, the default
20 · sp-5

Anything tappable is at least 44 points.

Surfaces

Glass over the map, solid on sheets. The warning banner and the radar controls float on glass so the map shows through. Sheets are MarNav’s chrome gray with solid cards, because text on a sheet has to be read in a hurry.
The map comes first. Storm opens on the map, where you are, like MarNav. Places, a warning and settings are sheets over it. Only settings push a full screen.

Symbols

SF Symbols only. One symbol per hazard, the same everywhere: map, banner, notification, widget.

Tornado Severe thunderstorm Flood Hurricane, tropical storm Winter Heat Wind The Warning level

The triangle means “warning” and nothing else. Anchor Alert’s design site found it standing for six different things; Storm gives it one.

Components

onNAV

The onNAV bar

MarNav’s bar and its 76-point menu circle, with the wordmark on the right. The circle carries a red badge with the number of warnings, and nothing else does.

Warning WatchAdvisory Statement No alerts

The level chip

A capsule with the level’s word. Only the warning chip carries a symbol, so it reads first. “No alerts” is teal, not green: it means NWS is quiet, not that you’re safe.

The warning banner

Glass over the map, with a red edge. In order: the level, the time left, the hazard, where you are against it, and NWS’s instruction in its words. Only a warning gets a banner.

Home
Norman, OK
71°
Warning Tornado Warning · 23 min left

The place card

The place in its own sky, tinted by its weather. Under the name, the worst level and one line: the event and its time left, or how far a place is from a warning it isn’t in.

What to do
“Take cover now. Move to a basement or an interior room on the lowest floor of a sturdy building.”
Details
SourceNWS Norman, OK
Updated6:31 PM

Panels and quotes

A titled panel, solid on a sheet. NWS’s words sit behind a gray rule in quotation marks, never rewritten. The panels run in one order: the event, now, where, what to do, then the details for anyone checking.

Try It Free
Add a Place
PRO

Buttons and switches

Capsules, as Anchor Alert. One brand-blue button per screen at most. Switches are teal. A Pro feature shows its tag where it lives, not behind a separate screen.

The coast

A place by the sea adds what the water is doing: the nearest buoy camera, the day’s tide, and the water, waves and wind. Every reading says where it came from and how old it is.

Buoy 42035 · 40 min ago

The buoy camera

NOAA’s cameras shoot six views every hour in daylight. Storm shows one at a time, with the buoy and the age on glass. At night it says when the last picture was taken, instead of showing black.

Water
77°
Pier 21
Waves
3.6 ft
7 s · SE
Wind
7 mph
E · gusts 9

Stat tiles

One reading each, in SF Rounded with even digits, and its source or detail underneath. Three across, never four: a fourth tile makes every number too small to read in a hurry.

The tide is water-blue, and nothing else is. The curve, its fill and the now dot use #5EC8E5, so the tide never reads as a level or a link.

The map

Areas are drawn the way NWS issued them: a polygon as a polygon, a zone as its zone.

Watch: dashed, faint fill Advisory: dotted Warning: solid edge, red fill OUTLOOK: LINES, NEVER FILLS

Radar uses the usual green-to-red reflectivity ramp, which people already read. It stops at dark red; no magenta, so it never meets a warning’s red or a mockup’s fuchsia.

Notifications

AlertiOS levelSound
A warning where you areCriticalRings on silent and through Focus. Starts the Live Activity
A warning at one of your placesTime SensitiveBreaks through Focus, not silent
A watch (Pro)Time Sensitive, or held for quiet hoursDefault
An advisory (Pro)ActiveDefault, held for quiet hours
An update or an all-endedPassiveNone
One ring per warning. Updates to a warning change the banner and the Live Activity; they don’t ring again unless it now covers somewhere it didn’t.

Motion

Almost none. A warning arrives with one haptic and no animation; the countdown ticks once a minute, not every second, until the last five minutes. A panel that loads late fades in and pushes the rest down rather than popping in.

Accessibility


onNAV Storm • A pitch for onNAV, October 2026