AurumGlobalHeader

Aurum's global header — the persistent top bar used on every top-level destination (Home, Transactions, NEK, Rewards).

familyNavigation
platformiOS 17+ · SwiftUI
figmacomponent master ↗
sourceSources/Aurum/Component/Navigation/AurumGlobalHeader.swift
code connectFigmaConnect/Sources/AurumFigmaConnect/AurumGlobalHeader.figma.swift
snapshots1 baselines · iPhone 17 Pro · iOS 26.5

Aurum's global header — the persistent top bar used on every top-level destination (Home, Transactions, NEK, Rewards). The SwiftUI port of aurum-android's AurumGlobalHeader (Figma node 5252:2274).

Visual structure (left → right): - Leading profile pill — 44 pt circular pill with a 1 pt interactive/border/neutral/muted border and a soft radial sheen. Accepts an AurumIconAsset glyph via profileIcon (default AurumIcons.User.user) or any caller-supplied view via the profileContent slot for URL-loaded avatars. - Right group — see AurumGlobalHeaderRightContent.

When the header touches the top screen edge, containerColor bleeds under the status bar automatically while content stays clear — the equivalent of Android's internal status-bar inset handling.

Intended use

Use as the persistent top bar on every top-level destination — Home, Transactions, NEK, Rewards. The two AurumGlobalHeaderRightContent variants cover the design-system canonical right-side affordances; don't roll a custom header for these screens.

Do

  • Choose the .livePrice variant only on screens where the live gold buy price is part of the screen's purpose (e.g. the home feed); use .default elsewhere.
  • Hoist the rewards / notifications tap handlers up to your navigation coordinator so badge counts stay in sync with state changes.
  • Pass profileContent for URL-loaded avatars — the slot fills the pill's inner circle (inside the 1 pt border, clipped circular), so hand it a full-bleed image with .scaledToFill(); don't size or clip it yourself.

Don’t

  • Roll a custom top bar and tint it with Aurum colours — this component exists to prevent that anti-pattern.
  • Render two AurumGlobalHeaders on one screen — one per screen, anchored to the top inset.
  • Mix .livePrice with nil rewards on a screen where users expect Rewards / Notifications access — hide the rewards pill only where those affordances are unambiguously available elsewhere.

Snapshots

Recorded on the pinned simulator — iPhone 17 Pro · iOS 26.5 · Xcode 26.6.

AurumGlobalHeader — HeaderSnapshotTests · testGlobalHeaderVariants
HeaderSnapshotTests · testGlobalHeaderVariants

Code Connect

Mapped to Figma node 5252:2274 ↗ — SwiftUI snippets appear in Dev Mode for the latest release.