Components

Every theme, component, and composed block in the registry. Open an item for live examples, install commands, API notes, and source.

Theme

1 items

One dark palette, shared by every component.

Foundations

--voidpage background
--panelsurfaces
--phosphortext and controls
--phosphor-brightemphasis and glow
--phosphor-dimmuted text and borders

Semantic roles

--signalactions and live states
--infoinformational states
--warningwarnings
--destructivedestructive states
--metricnumeric emphasis

Pigments

--amberwarm accent
--azurecool accent
--violetpurple accent
--emberred accent

Chart series

--chart-1series 1
--chart-2series 2
--chart-3series 3
--chart-4series 4
--chart-5series 5

The tokens, typography, motion and CRT effects used by every component.

Primitives

42 items

shadcn primitives, redrawn for Afterglow. Monospace type, hairline borders, square corners and stepped motion.

Accordion

accordion

Sections that open one at a time or many. The marker is a plus that rotates into a minus.

Alert

alert

A notice with a lit left edge and a matching icon. Four tones.

Alert Dialog

alert-dialog

A pink confirmation dialog for destructive or irreversible actions.

DSN4OP

Avatar

avatar

Initials in mono inside a bordered square.

mountedofflineprimaryidleread-onlydocumentaudiocorrupt

Badge

badge

A bordered rectangle of tracked-out mono for a status or a count. Eight variants.

Button

button

Seven variants and five sizes in uppercase mono. primary is filled phosphor; signal marks urgent states.

August 2026

Calendar

calendar

A square month grid with phosphor selection, an amber today marker and Afterglow navigation buttons.

/capture
92 780 blocks, mounted read-only.
Written by the frame grabber. Nothing else has a handle on it.

Card

card

A panel with a coloured left edge. One accent property drives both the edge and the title.

Relay strength

Last seven channels, dB

76

Chart

chart

Recharts wired to the five chart colours, terminal tooltip and stepped reveal.

Checkbox

checkbox

[ ] and [x]. A square that fills with the beam when it is on.

Three retries

Collapsible

collapsible

The accordion without the styling, for when you have drawn the trigger yourself.

wire it toK

Command palette

Search for a command to run.

Command

command

A search line and a list that narrows as you type. Groups, shortcuts, and a dialog wrapper.

/volumes/capture

Right click, long press or press Shift+F10

Context Menu

context-menu

A system menu at the pointer, with choices, submenus, shortcut hints and destructive actions.

Dialog

dialog

Opens in four steps rather than on a curve, with one pass of the beam down the panel.

Dropdown Menu

dropdown-menu

Items, checkbox and radio items, submenus, and shortcut hints in the same mono as the keys.

No volumes mounted

Nothing has answered since the last power cycle.

Empty

empty

A dashed hairline box for a list with nothing in it.

Downlink routed through relay/r7.

Hover Card

hover-card

A bordered preview panel for a link, with one phosphor edge and room for interactive content.

Input

input

A hairline field in mono with a phosphor caret. Focus brightens the border instead of adding a ring.

Input OTP

input-otp

One cell per character, with a drawn caret in the active one.

KsearchrunESCdismiss

Kbd

kbd

A key with two pixels of implied depth under it. Pass glyph for , and .

Label

label

A field's name, set as an eyebrow. Small, tracked out, phosphor.

Pagination

pagination

Page numbers as joined cells, so a run of them reads as one control.

Popover

popover

A bordered panel anchored to its trigger.

Determinate68%
x
Indeterminateunknown
x

Progress

progress

Three pixels of track and a light in it. Pass indeterminate for a segment that sweeps and leaves.

Radio Group

radio-group

Terminal-style radio marks in their unchecked and checked states: ( ) and (•).

manifest
preview

Resizable

resizable

Panels split by a hairline that lights when you take hold of it.

Scroll Area

scroll-area

A hairline track and a square thumb, in place of the operating system's own.

Select

select

A trigger that reads as a field, and a list whose chosen row carries a lit left edge.

Uplink
rx 41mstx 38ms0 dropped

Separator

separator

One pixel of the border colour, horizontal or vertical.

Sheet

sheet

A drawer from any of the four edges. The edge it slides from keeps a lit border.

Skeleton

skeleton

Placeholder rows in dim phosphor.

Beam72
Window20 to 80

Slider

slider

A hairline track, a lit range, and a square handle. Single value or range.

indexing

Spinner

spinner

A lit pixel travelling a 3x3 grid, four brightness levels trailing behind it.

Switch

switch

A squared-off rocker in two sizes.

VolumeStateBlocks
/coremounted18 442
/archivemounted4 011
/captureread-only92 780

Table

table

A manifest in mono with hairline rules. is-numeric gives a cell amber tabular figures.

412 entries, 3 locked.

Tabs

tabs

Two variants: joined segments and a quieter line.

Textarea

textarea

A multiline field that grows with its content.

Toast

toast

Sonner alerts that blink into place with a border, tint and icon for each tone.

Toggle

toggle

A button that stays down.

Toggle Group

toggle-group

Toggles joined the way the segmented tabs are.

Tooltip

tooltip

A compact label with one lit edge and no arrow.

Terminal

11 items

CRT-specific components for scanlines, screens, status lights, prompts, boot logs and window chrome.

Alarm Button

alarm-button

Two flashes and a rest, the way a warning lamp blinks. Pointing at it stops the flashing.

Boot Log

boot-log

A self test that prints itself line by line, at its final height from the first frame.

Small

Default

Large

Caret

caret

A blinking block that follows the surrounding font size.

Points right

Points left

Connector

connector

A rule extending left or right from a heading.

Section label

Awaiting input

Eyebrow

eyebrow

The tracked-out line above a heading, with an optional block caret.

uplink nominal

indexing

spool offline

standby

LED

led

A status lamp and the line it sits in. Four tones, and the idle one holds still.

Prompt

prompt

A shell line. Sigil, field and caret share one row with no border between them.

without
with

Scanlines

scanlines

The glass. Two densities, an optional vignette, and a multiply blend.

Standby

NO SIGNAL

Screen

screen

A framed CRT surface with scanlines and curved-screen falloff.

afterglow shell
Type help, status, or clear.

Shell

shell

A command transcript and prompt with command history. Bring the commands and their effects.

notes.txt

The spool went down at 04:12.
No entry in the log, no fault light.
Power cycled twice. Nothing.

04:12:04 retry 1 of 3
04:12:09 retry 2 of 3
04:12:14 retry 3 of 3
04:12:19 giving up

Controller reports firmware 2.1.4, which is
the version the release notes say fixed this.

Ordering a replacement controller.
Ticket NODE-04-118 raised with the vendor.
14 linesread-write

Terminal Window

terminal-window

Window chrome in three conventions: macOS, Windows, or a slim hairline version. Resizable and collapsible.

Blocks

2 items

Installable compositions built from registry components.

Date Picker

date-picker

A calendar, popover and button composed into an installable single-date picker.

NODE-04local operator
K

Session

Four volumes, one of them not answering.

The spool has been down since the last power cycle. Everything else mounted clean.

Self test
Last run, 40 seconds ago.
Rebuild
Indexing capture volume.
Pass 168%
x
Pass 2waiting
x

Volumes

VolumeStateBlocks
/coremounted18 442
/archivemounted4 011
/captureread-only92 780
/spooloffline0

Shell

session ready

uplink nominal

indexing

spool offline

node-04

Operator Dashboard

operator-dashboard

A full-page operations dashboard with boot status, volume health, rebuild progress and a shell.

Presets

1 items

Start a project with the theme and every component installed.

Node-04

nominal

Indexing68%
x
mountedread-onlyoffline

The shared theme and every registry component in one shadcn init preset.

Afterglow is built on Base UI and installed through shadcn registries.