Skip to content

Info block / callout

In review
Live · web

Embedded in content: tab to a link, persistent (no dismiss)

Sessions stream over SSE and reconnect with backoff. The callout below sits in the prose like any other paragraph, and it stays put.

Note
Tokens are the source of truth: bind to --color-accent-primary rather than a literal. See the token contract for the full vocabulary.

Because it is part of the document flow, a callout never floats over the layout and is never dismissed.

Tones: a filled disc + text, never color alone

Tip
Press ⌘K to jump to any session. You can also pin a session from the picker to keep it at the top.
Warning
Running nockerl git push squashes local commits into one. Pass --preserve-commits to keep each commit separate.
Caution
DELETE operations are not proxied by the credential store. Destructive actions bypass the allowlist and cannot be undone. Confirm first.

Notice: the rare warm accent (orange), a special heads-up (not a status)

Notice
Special notice: agent spawning is now live. This warm orange accent is reserved for featured, seasonal, or heads-up announcements. See the design laws.

Important, the reserved emphasis: nested hairline frames

Important
Cyan is the one editorial-emphasis tone. Reserve important for the thing a reader must not miss. See the design laws.

Quote: an editorial pull-quote (italic, quietest, no disc)

Quote

Bounded autonomy: autonomy calibrated by task risk. Human-in-the-loop for judgment, AI for speed-to-next-decision.

Nockerl design principles

Custom eyebrow + icon off, still persistent prose

Pro tip
Demos consume var(--token) for every value, so changing one token in tokens.css re-skins the whole page at once.

Live: tab to the link, Enter / click (the island is live)

Try it
Tab to this link and press Enter, or click it. NockerlLink fired 0 times. It stays here, persistent in the prose.
// Web: React, consuming @dizyx/nockerl-tokens. No Callout ships yet on ANY
// platform; this is the proposed @dizyx/nockerl-react API, derived from the
// shipped emphasis vocabulary (the agent ThinkingSegment + ToolSegment inset +
// the SettingsCard eyebrow + the markdown body styling). A callout is STATIC
// editorial prose, with no dismiss and no actions (that is the Banner).
export function InstallNotes() {
return (
<>
<Callout tone="note">
Bind to <code>--color-accent-primary</code> rather than a literal. See the{' '}
<a href="/foundations/tokens/">token contract</a>.
</Callout>
<Callout tone="tip" title="Pro tip">
Press <code>⌘K</code> to jump to any session.
</Callout>
<Callout tone="important">Cyan is the one editorial-emphasis tone.</Callout>
<Callout tone="warning">
<code>nockerl git push</code> squashes local commits into one.
</Callout>
<Callout tone="caution">Destructive actions cannot be undone.</Callout>
<Callout tone="quote">Bounded autonomy: autonomy calibrated by task risk.</Callout>
</>
);
}
PropTypeDefaultDescription
children *stringRich body content (the prose). Accepts a small, trusted HTML string so a callout can carry a link + inline code + emphasis like real body copy.
toneNockerlCalloutTone'note'Editorial tone. Drives the disc/frame color, the default eyebrow, the icon.
titlestringOptional eyebrow override (an uppercase lead label). Defaults per tone.
iconbooleantrueShow the leading disc. Defaults on; quote is disc-less (a quote mark instead).

There is no dismissible / onDismiss / action. A callout is persistent editorial content. For a dismissible, action-bearing, app-state alert, use the Banner.

Cross-platform drift (tracked for reconciliation)

The callout now ships on web as NockerlCallout in @dizyx/nockerl-react, and on both natives as NockerlCallout. The web component is the one documented above; the native surfaces are on their own migration track, so treat the sections below as the reconciliation list rather than as a description of one shared API. The callout stays deliberately distinct from the Banner: a banner is a lifted, transient inline alert (drop shadow + catch-light + status wash + an X + an action, reacting to app state); a callout is a recessed, persistent editorial aside (an inset tonal well

  • a filled tone disc + prose, part of the document flow, no dismiss). The divergences to reconcile when it lands, tracked in the Review queue:
  • Source patterns differ: Android has the inline ThinkingSegment (italic + muted prose) and the ToolSegment (a tonal inset + hairline), but neither is a reusable aside. Voice has the SettingsCard eyebrow + the InfoTip popover, but no in-content note. This page proposes the shared one.
  • important tone color: this is the one place cyan is used editorially (brand emphasis, not status). The warm tones map to status tokens; one cyan-vs-status mapping should be canonized so callout and banner stay legibly different.
  • Quote treatment: the quote tone reuses Android’s italic + muted reasoning style; Voice/web would need a matching italic prose style + a quote glyph token.