Skip to content
CroStreamUI kit

App navigation

How streamers get around the app: top bars, a collapsible sidebar, a bottom status bar, a phone tab bar and a Ctrl+K command palette.

01AppTopBar

AppTopBar

Where you are, a way to jump anywhere, whether you're live and what's connected, and who's signed in. In a desktop window it leaves room for the window's own buttons and drags the window.

In the browser Breadcrumbs, the Ctrl+K search trigger, live pill with viewers, connections and the account menu.
  • --cs-surface-1
  • --cs-control-h-md
With a second row View filters and page actions sit under the bar, joined to it by a hairline.
Desktop window: macOS Room for the traffic lights on the left; the bar drags the window (data-drag).
Dashboard
Desktop window: Windows Room for the caption buttons on the right.
Dashboard
Narrow window Under 38rem the crumbs fold to the current page (still read as a breadcrumb) and search becomes an icon; connection names go, dots stay. Under 30rem the dots move to screen readers only and the row wraps instead of clipping.

02AppSidebar

AppSidebar

Every page in the app, grouped the way streamers think about them. Folds to an icon rail that keeps every name, as the accessible label and as a tooltip. The choice is remembered.

Expanded and rail Counts, a locked Supporter page, a pop-out window, nested integrations with live status, and a pinned bottom. Click a row to move the bar.
  • --cs-surface-1
  • --cs-ease-spring
Comfortable and compact Compact is the app's working density: 26px rows, still above the 24px target.

03AppStatusBar

AppStatusBar

The strip along the bottom of the app: every integration's state at a glance, a few live readouts and the time. Each connection's dot has its own shape, its value says the state in words, and the full story is on hover and in the accessible name.

Live Flip the states: changes are announced to screen readers once, politely; the clock never is.
  • --cs-control-h-sm
  • --cs-surface-1
Every state Connected shows the account or scene; connecting pulses (still under reduced motion); errors say so in words.
Two PCs Companion integrations carry the PC they run on; one that's away is quiet: fainter text, never faded out of reach.
Narrow windows Names hide first (still read aloud), then connections that don't fit fold into +N, whose popover lists every one. Drag the frame's corner to resize.
Density Comfortable for the website and big screens; compact is the app's own.
Comfortable
Compact

04BottomTabBar

BottomTabBar

The phone layout's navigation: up to five destinations within thumb's reach, above the home indicator. Anything more goes into a More sheet.

Seven destinations Four tabs and More. The current tab gets a pill, an accent icon and a heavier label.
Five or fewer No More tab; every destination fits.

05CommandPalette

CommandPalette

Ctrl+K (⌘K on a Mac) from anywhere: type a few letters of a page, trigger, macro, action or setting and press Enter. The letters that matched are underlined.

Live Opens as a dialog near the top of the window; Escape closes and returns focus. Ctrl+K works on this page too.
  • --cs-surface-2
  • --cs-elev-4
or press Ctrl K
Empty search Recent first, then everything, grouped.
Fuzzy matches “trg” finds Triggers: scattered letters match in order, word starts rank first. Keywords count too (“obs” finds Overlays).
Searching An async source shows a working row; results arrive in place.

Nothing matches that.

Try a page name like “Triggers”, or part of a macro’s name.

Nothing found Says so, and suggests what to try.

Nothing matches that.

Try a page name like “Triggers”, or part of a macro’s name.

06App shell

App shell

The pieces together: sidebar, top bar and a page. Expanded at comfortable density, then as a rail at the app's compact density.

Expanded · comfortable Pick a page in the sidebar; the breadcrumbs follow. The search box opens the palette.
Viewers 1,284 peak 1,402 tonight
Triggers fired 312 last: Hydrate! · 2 min ago
Stream health OBS connected Twitch connected Discord reconnecting

Recent activity

Live from chat and Twitch
  • Reward vibecheck_99 redeemed Hydrate!
  • Raid pixel_mage raided with 34 viewers
  • Command violet_skies used !lurk
Rail · compact The rail hands its room to the page; tooltips name every icon.
Viewers 1,284 peak 1,402 tonight
Triggers fired 312 last: Hydrate! · 2 min ago
Stream health OBS connected Twitch connected Discord reconnecting

Recent activity

Live from chat and Twitch
  • Reward vibecheck_99 redeemed Hydrate!
  • Raid pixel_mage raided with 34 viewers
  • Command violet_skies used !lurk