Skip to content
design
Components

Components

The kit's components rendered live, and the system patterns they are built on.

On this page
1 min
HealthyUnderway
Anchor drag21:02
38 m outside the swing circle
A helm in one view: the compass, two soundings in different states, the actions a watchkeeper presses, and the card an alarm raises. Switch themes in the sidebar to read it in Night, Dusk, Day and Bright.

Every specimen on these pages is drawn live. The components are imported from @bosunkit/components and @bosunkit/instruments and rendered with the kit's own stylesheets, in the UI's typeface, so a change to a component shows here on the next build. Use the theme switch in the sidebar to see each one in all four themes.

01Rendered from the sourceA specimen is the component itself, not a picture of it. What renders here is what the crew sees.
02Fixed inputsSpecimens render from fixed values, never from live data, so a page shows the same states every time it is opened.
03Built on patternsComponents follow the system patterns below: readouts, alarm rows, status pills and navigation rows.

Live components

Every kit component has its own page: live examples with their source, then every prop. The instruments have their own section.

Layout

Skip to main content

Anchor

Holding: 18 m from the drop point, inside the 35 m swing radius.

App shellComponentThe frame of every screen: header, navigation, page, side panel and footer, laid out by its own width.

VHF

Channel 16 and 12 by dual watch; last DSC call 09:41 UTC from Brest Port Control.
CardComponentA bordered surface that holds related content under a header, with an optional footer and a priority edge.
Anchor drag
Shallow water
Alert card gridComponentAlert cards in two columns, or one on a narrow screen, with section dividers across both.
From
Brest
To
A Coruña
Distance
412 NM
Departure
06:00 UTC, 14 October
Description listComponentTerms and their values as a list, stacked, in aligned columns or along a row.

Tides

Header barComponentThe bar atop every screen: the logo, the page title, the alert zone and the status strip.
LogoComponentThe bosun anchor mark with the product name and its tagline, in three sizes.
Page headerComponentA page's label, title and subtitle, with an optional bar under them and an option to stay at the top.
Anchor drag02:11
42 m from the drop position, outside the 35 m swing radius.
Section dividerComponentA named rule between groups of alert cards, colored by urgency.

Crew aboard 4

Section headingComponentThe small capitals heading over a group of rows, cards or settings, with an icon, a count and an action.
SkeletonComponentA shimmering placeholder where content is loading.
Readings
Chart

Saved width: 200 px

SplitterComponentThe handle on the edge between two panels that resizes one, by dragging or by the keyboard.
Step 2 of 3

When is it due?

Bosun reminds you a week before.

Engine hours come from the last reading

Wizard stepComponentOne step of a flow that asks the crew for something, with a title, its content and a footer.

Actions and selection

Critical
BadgeComponentA short status label with a colored dot, which becomes a button when it takes a click handler.
ButtonComponentThe action the crew takes, in four emphases and three sizes.
Coolant temperature82 °C
Oil pressure4.1 bar
Engine hours1,284 h
CollapsibleComponentA region that opens and closes from a button.
21:04 · Wind NW 14 kn, 1012 hPa, all well. Right-click or long-press this entry.
Context menuComponentThe menu of commands a right click or a long press opens on a row or an entry, where it was pressed.
Copy buttonComponentA button that puts a value on the clipboard and says it did, labeled or as an icon alone.
Create buttonComponentThe button that opens a grid of what can be created, such as a maintenance record, a log entry or a checklist.
TrueApparent
Segmented radio groupComponentTwo to five options in one row, of which exactly one is chosen, the chosen one marked.
SelectComponentA list of choices that opens from a button.
SwitchComponentAn on/off control with a thumb that moves along a track.

Entry and forms

Describe itBosun drafts the record from plain words.From a templateStart from a tested schedule for your engine.Blank recordFill in every field yourself.
Radio cardsComponentA choice between a few options, each drawn as a card with a mark, a name and a line about it.

Custom audience names are allowed.

AutocompleteComponentA free-text input that suggests values as the crew type.
Crew pickerComponentA name field that offers the saved crew and fills the rest of a form from the chosen record.
Date of birth
Date of birth inputComponentDay, month and year segments, each typed or chosen from a grid.
1 March 2027
Date pickerComponentA date typed or chosen from a month calendar that states its time zone.
Email inputComponentAn email address that offers the common mail domains after the @.
2 entries
Amount
Currency
Diesel, Valletta
fuel
182.4
EUR
2026-08-14
Marina berth
mooring
65
EUR
2026-08-15
Entity listComponentA table of records with an Add button, and the dialog that creates or edits one through its form.
Form fieldComponentA label, an input and the input's error, stacked.
InputComponentA text input in the kit's style.
LabelComponentThe caption of a form control, which focuses the control when pressed.
The six-digit code the marina sent by text.
One-time code inputComponentA visible numeric field for a code sent for one use, which a phone fills from the message it arrived in.
Outlined fieldComponentThe outlined box with the field's name on its top edge that the maritime inputs draw in.
Password inputComponentA password field that password managers recognize, with show and hide and a Caps Lock warning.
Phone inputComponentA country with its calling code and the national number, stored in E.164 form.
14 / 200
For legal and medical purposes
Speak times as five p m instead of seventeen hundred
Schema formComponentA form built from a schema, with required, choice and place fields and fields that depend on others.
Disabled
podcastmusic
Setting chipsComponentA setting that holds a list of names or numbers, shown as removable chips with a field to add one.
Anchor watch
Sound the alarm when the vessel moves outside her swing circle.
Setting controlComponentThe rows of a settings page, a switch, a field and a select, each with the save state beside it.
Text areaComponentA multi-line text field whose height the crew drag a whole line at a time.

Maritime inputs

Ship station, United Kingdom
MMSI inputComponentA nine-digit MMSI in groups of three, naming the station it identifies.
Waypoint
Position inputComponentA position in degrees and decimal minutes with hemispheres, that reads pasted positions.
Navigation listComponentGrouped links to the pages, with icons, counts and the current page marked, as a panel or a rail.
Navigation barComponentThe phone's navigation at the foot of the screen: three to five places, the current one marked.
TabsComponentA row of tabs, with the selected one underlined.

Overlays

Task dialogComponentA dialog with a title, a body and optional actions, shown over the page.
PopoverComponentA panel that opens from a control and stays open until it is closed, and InfoTip for an explanation.
ToastComponentA short message at the edge of the screen about what the crew just did, which leaves by itself or when dismissed.
TooltipComponentA short label that opens when its element is hovered or focused.

Alerts

Anchor drag0:12since 21:02 UTC
38 m outside the swing circle
Alert cardComponentThe alert as the crew meets it — its priority, what happened, and what to do about it.
  • Anchor draggingAlarmAcknowledged02:16 UTC
  • True wind above 25 knWarningAcknowledged02:05 UTC
  • House bank at 11.9 VWarningSilenced01:40 UTC

2 more alerts

Alert listComponentThe active alerts in a named list, by priority and then newest first, with an empty state.
  • Anchor draggingAlarmAnchor watchUnacknowledged02:16 UTC
  • Anchor draggingAlarmAnchor watchSilenced02:16 UTC
  • Anchor draggingAlarmAnchor watchAcknowledged02:16 UTC
  • Anchor draggingAlarmAnchor watchCleared, unacknowledged02:16 UTC
Alert list rowComponentOne alert in an alert list, with its priority's icon and word, its state, its time and its acknowledge button.
Alert zoneComponentThe top bar's alert zone, with the unacknowledged count, the worst alert's title and age, and an ACK button.
Overdue
Due chipComponentA small chip marking a record whose date has passed or is coming, with the priority's shape as well as its color.
Live data connection noticeComponentThe red notice shown when the browser has lost its live connection to Bosun.

No instrument data

Nothing has arrived from the NMEA network for 2 min. The readings below are the last ones received, each marked with its age. Don't navigate by them until data returns.

Check that the instruments are switched on, then the NMEA gateway's power and cabling.

NMEA offline noticeComponentThe red notice shown when Bosun receives no current instrument data from the NMEA network.
Pressure barComponentHow loaded the alert board is, with the active alerts by priority, the unacknowledged count and its wait.

Readings and status

  • ROTTERDAM EXPRESSCargoMMSI 244123456Dangerous targetCPA0.3 NMTCPA8 minSOG18.2 knCOG095°6 s ago
  • ELBE SPIRITTankerMMSI 211445566CPA0.7 NMTCPA17 minSOG12.0 knCOG022°10 s ago
AIS target rowComponentOne AIS target in a list, with its ship type, name, MMSI, CPA, TCPA, SOG, COG and the age of its last report.
SOG6.2 kn
Instrument pillComponentA compact reading with a status dot, its label, its value and unit, and an arrow for the way it is moving.
House bank
  • Voltage12.6 V
  • Charge52 %
Instrument pill groupComponentInstrument pills in an even grid under a label, wrapping by the container's width.
69
%
Diesel152 of 220 L
62
%
Fresh waterWatermaker on, 27 L/h
41
%
Holding tank
Level tileComponentA tank or battery level at a glance, with the gauge bar beside its figure, name and one line of detail.
ReadingComponentA live value with its unit, trend, age and source, and the trust it carries.

Own ship data

047
HDG
°
052
COG
°
8
ROT
deg/min
50° 08.526′ N
005° 03.102′ W

Wind

14.0
Speed
kn
310
Direction
°

Current

1.2
Speed
kn
190
Direction
°
Ship dataComponentThe vessel's own data in one panel: heading figures and position, the compass, and the wind and current.
Status stripComponentThe global status strip, with the stream's state, the vessel's activity, the sensors' integrity, risk, do not disturb, theme and brightness, and the UTC clock.
CPU34%|Mem86%|NMEAoffline|Netstarlink
Telemetry stripComponentA row of labeled readings separated by bars, each colored by how it stands.
building 14kn gusts 19Partly cloudy17°C1012hPaSea 1.2m+6H 12-18kn+12H 15-22kn
Weather barComponentOne line with the weather now, the air temperature, pressure and sea state, and the forecasts after.

Charts and displays

14 14 18 18 26 26 31 31 24 24 42 42 68 68 64 64 61 61 89 89 46 46 125 125 142 142 73 73 22 22 274 274 248 248 31 31 336 336 Pier W Pier E No 2 No 1 No 4 No 3 Fairway Bank S Head Head Gull Rock Wreck Marina Anchorage 0.25 nm N
ChartComponentA nautical chart with the server's geometry underneath and a React layer drawn over it.
KerlaouenNordic Vega244456789Galatea ▲ Dangerous target
Chart symbolsComponentOwn vessel, AIS targets and the track, drawn in the chart's dynamic layer.
Vessel
Skipper
Ended
Biscay crossing
Althea
Mathias
2026-09-01
2026-09-05
Solent day sail
Althea
Ana
2026-08-12
Data tableComponentRows of records in columns, sorted by a press on a column heading.
Heading196°Compass
Rudder3° SAutopilot
Dial frameComponentA square face for one dial with its label, value and source under it.
SparklineComponentA small line through recent values, with no axes, for a trend seen at a glance.
Voice Pipeline
0µs13ms25ms38ms50mspipeline.mainLoop50msnlu.classify12msllm.generate30mstts.synthesize4.0ms
Trace waterfallComponentA trace's timed spans as bars on a shared time axis, nested under their parents.
1.11.72.43.00 min3 min
Trend chartComponentA series drawn as a line over a time axis, with reference lines and a marker.

Analytical charts and diagrams

Choose by the question the reader needs to answer. Analytical charts share registry labels, formatters, inspection and source data; a nautical Chart uses a geographic scene and vessel symbols.

QuestionComponent
How does a value change over time?Line chart
How do amounts compare?Bar chart
How do amounts compose over time?Area chart
What are the parts of a whole?Pie chart
What belongs to the plot's frame and explanation?Chart panel, legend and tooltip
How is a system connected?Mermaid

Reports and documentation

Start a report with Report metadata, then choose Report blocks for facts, metrics, comparisons, processes and evidence. Use Report figure for authored artwork with a caption and source. The report types guide supplies complete structures and downloadable starters. These components share the kit's document roles and work inside the available page width.

Conversation

What is the depth?
Chat bubbleComponentOne chat message, set apart by who wrote it.
Chat inputComponentA one-line message field with a send button, which sends on Enter.

Other

Output

Output level

Alarms still sound at their own volume.

Audio controlComponentThe output with its level and mute, and the microphone with its gain and live level.
♞♟♟♖♘♙♙Material: bosun +5
Your move
Fried Liver Attack
♞o direct threat
bosun is clearly better · +2.8
depth 12/27 · 567k nodes
Best for you: d4 (c6)
Moves22 plies
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Chess boardComponentA chess position drawn from a FEN string, with move entry by tap or drag.
Language pickerComponentThe crew's choice of language for the screen, each language named in itself, as a menu or a list.
LLM statusComponentWhich language model answers, how each provider is doing, and the tokens, cost and budget behind it.

Guest Wi-Fi

Network
Althea Guest
Password
harbor-lantern-41
QR codeComponentA QR code drawn dark on a light panel in every theme, such as the code that joins the guest Wi-Fi network.
Startup modalComponentbosund's startup as a modal, with the boot steps, a progress bar and a status line.
WL
Vessel profileComponentThe vessel's side-view silhouette, drawn as an SVG that scales to its box.

System patterns

Patterns define the anatomy that components share. They are drawn here with the system's tokens, its typefaces and the vendored OpenBridge icons.

Althea
Go to…/
Underway
Dashboard
Situation⬤ 1
Conning
Chart7
Anchor
Passage
Aboard
SidebarPatternIcon rail and grouped panel. The active row is raised, counts carry their severity shape, and keys are shown.
GPS 3DRisk low ▼21:04
Status pillPatternA compact status with an optional marker dot in the accent, or a severity color.
ALARMAnchor drag · 38 m outside swing circle · since 21:02ACK
WARNINGGusts 22 kn, above your reef point of 20 kn · since 20:47ACK
Alarm rowPatternSeverity shape, severity word, cause icon, cause and time, and ACK with its A key.
DepthSOUNDER
8.4m
▲ +0.3 m / 10 min
True windMAST
14G22kn
TWD 214°
SOGGPS
0.4kn
COG 087°
Readout stripPatternReadouts separated by hairlines: icon, label and source above a large, light, tabular value.

Drawing with the system

Do
1 min
Reach for the component that already carries the state. The reading below knows its unit, its source, its age and its integrity, and its accessible label announces all four.
Don't
12.4 m
Don't rebuild a value by hand. Type and unit on their own carry no source, no age and no trust state, and nothing downstream can tell how old the number is.