Ship-It Designv0.0.20

GitHub

NotifRow

Single row in the mobile Inbox / notification list. Tone-colored unread dot on the left, title + body block in the middle, relative time on the right. Pair with isFirst / isLast so the row group rounds its outer corners like an iOS grouped list.

NotifRow is mobile-only — desktop notifications live inside the CommandPalette flyout. There is no desktop sibling.

Default#

Three rows in a single group: an error monitor, an ownership warning, and a successful deploy.

Loading…

Tones#

The unread dot color is driven by tone:

ToneUse for
errFiring monitors, failed deploys
warnOwnership gaps, drift, missing data
okSuccessful deploys, syncs, completions
neutral (default)Mentions, replies, generic activity

When unread is false the dot fades to border-strong so the read state is glanceable.

Linkable rows#

Pass href to render the row as an <a> instead of a <div> — the entire row becomes the tap target. Keyboard focus + a 3px focus ring are wired in.

Props#

Props for NotifRow
PropTypeDefaultDescription
title *ReactNodeBold first-line summary.
bodyReactNodeOne-line body underneath. Truncates to a single line for now.
timeReactNodeRight-aligned relative time string (e.g. `9:32`, `Mon`).
dateTimestring | Date | undefinedMachine-readable ISO 8601 string or `Date` for the notification's timestamp. When set, the visible `time` is wrapped in `<time dateTime="…">` so the row is crawlable / AI-readable.
toneenumneutralColoring of the unread dot.
unreadboolean | undefinedWhen true, render the unread dot.
isFirstboolean | undefinedRound the top corners — set when this is the first row in a group.
isLastboolean | undefinedRound the bottom corners — set when this is the last row in a group.
hrefstring | undefinedNavigate when the row is tapped. Renders the row as an `<a>` and wins over `onClick` for the render shape — but any `onClick` you pass is still forwarded onto the anchor, which is the right place for analytics callbacks (the link still navigates).