Skip to content

Banner / inline alert

In review
Live · web

Intents: an inset status disc + text, never color alone

A new session was created on api-server.
Deploy finished. nockerl-design is live.
New: agent spawning is live. Dispatch a session from any task.
Read-only: this workspace is locked by your administrator.

Title vs message-only

With action vs no icon

Tip: press ⌘K to jump to any session.

Dismissible: tab to the X, Enter / Space to collapse

Memory indexed1,204 messages were embedded into the session store.
Action fired 0 times · dismissed 0. The island is live.
// Web: React, consuming @dizyx/nockerl-tokens. No Banner ships yet on ANY
// platform; this is the proposed @dizyx/nockerl-react API, derived from the
// shipped inline-alert vocabulary (errorContainer + the agent ErrorSegment).
export function SessionBanners() {
return (
<>
<Banner intent="info" message="A new session was created on api-server." />
<Banner intent="success" title="Memory indexed" message="1,204 messages embedded." dismissible onDismiss={ack} />
<Banner
intent="warning"
title="Local model unreachable"
message="Falling back to the cloud provider for this turn."
actionLabel="Retry"
onAction={retry}
/>
<Banner intent="danger" message="Build failed: the container exited 1." actionLabel="Logs" onAction={openLogs} />
<Banner intent="neutral" icon={false} message="Read-only: this workspace is locked." />
</>
);
}
PropTypeDefaultDescription
message *stringBody copy: the alert text. Bound to the body.medium role.
intent'info' | 'success' | 'warning' | 'danger' | 'neutral''info'Drives the status color, default icon, and ARIA role. Cyan is used only for info (status.info); neutral uses on-card, never cyan.
titlestringOptional bold heading (one short line) above the message, in the status color.
iconbooleantrueShow the leading status icon (top-aligned to the first text line). Never color alone: color + icon + text.
actionLabelstringOptional inline action rendered as a quiet text button in the status color, right-aligned.
onAction() => voidAction handler. Ignored when no actionLabel is set.
dismissiblebooleanfalseShow a dismiss (X), a separate focusable control with its own focus-visible ring.
onDismiss() => voidDismiss handler (the X). The collapse animates opacity + height only (reduced-motion aware).