Components

Everything on this site, installable

The site is built from these, so what you install is what you are looking at. Every preview below is the real component running, not a picture of one.

Add the registry once

export CTA_REGISTRY=https://adamjurek.com/r/registry.json

Reference

Rendering

No dependencies

An inline mention that carries a hover card: title, summary and meta for the thing it names, raised by CSS alone.

Preview: A mention with a hover card

Secret Reveal

Rendering

No dependencies

A credential shown once: it wraps rather than scrolls, one click selects all of it, and the copy button sits under it rather than over it.

Preview: A token, for the one moment it is visible

Skeleton

Loading

No dependencies

The wait, drawn as the thing being waited for: a line, a block or a circle, shimmering unless motion is reduced.

Preview: Three placeholder shapes, sweeping

Slider

Forms

No dependencies

A native range input with its label - keyboard steps and form value ship in the element.

Preview: A range track in the accent

Spinner

Loading

No dependencies

One ring, one border, one turn - with a visually hidden label, because a spinner with nothing to announce is just an animation.

Preview: A ring turning beside its label

Switch

Forms

No dependencies

A checkbox that admits it: a real input with role=switch, and a track :checked drives.

Preview: A thumb sliding along its track

Table

Data

No dependencies

A table that is a table: declared columns, right-aligned numbers, sideways scroll in its own frame.

Preview: Headers, rows and tabular numbers

Textarea

Forms

No dependencies

A textarea in the same clothes as Input, growing with its content where the browser allows.

Preview: A paragraph-sized field

Toast

Feedback

No dependencies

Strings, four seconds, bottom corner, announced politely - one provider and one hook, nothing else.

Preview: A message rising in the corner

Toggle

Actions

No dependencies

A button that stays down, and the single-select group of them - aria-pressed is the whole contract.

Preview: A pressed toggle in a group of three

Tooltip

Feedback

No dependencies

One line on hover and focus, in the markup rather than in title= - and never carrying controls.

Preview: A word with its one-line answer above it

Typography

Text

No dependencies

The type scale as components: Heading with outline and size separated, the Label eyebrow, the Lead. One decision, made once.

Preview: A label, a heading and a lead, in the site's own scale

Video Player

Media

No dependencies

A video held behind a picture of itself. The player is a child, so it mounts on play and unmounts on stop - no vendor, no bytes and no cookies until somebody asks.

Preview: A poster with a play button, and the frame it reserves

Breadcrumb

Navigation

No dependencies

The trail, told twice from one list: a visible nav with correct ARIA, and the schema.org BreadcrumbList rendered from the same array.

Preview: A trail of crumbs with a chevron between each

Command Palette

Navigation

No dependencies

Search over everything the host can name, in a native dialog: substring filter, arrow keys, and the host keeps the router.

Preview: A search field over a filtered list, floating mid-page

Doc Aside

Navigation

@tanstack/markdown

An on-page table of contents: a sticky rail on desktop, a collapsed row on mobile. Collapse is CSS, not state.

Preview: A contents list tracking the heading you are under

Doc Nav

Navigation

No dependencies

The left rail of a documentation page: the sections of a library, the elements in each, and the one that is open. A sticky column on a wide screen, a collapsed row below it.

Preview: A grouped list of elements with the open one marked

Hero

Page furniture

No dependencies

The head of a documentation page: trail, element name, version, measured facts, actions and a responsive shot. Folds to one column by the room it has, not by the size of the window.

Preview: A page head with its name, its facts and a picture of itself