Open a drawer
What you’re listening to, six ways. Everything on the sheet is the real component, running.
The last thing I listened to was Night Drive
After Hours by Neon Static42m ago
Rooms full
of curios
Named after the cabinets of curiosities of the 1600s, where every small, strange thing had a labelled shelf.



The whole cabinet
All 29 pieces, live. Try them here, then open one for its install command and props.
The last thing I listened to was Night Drive
After Hours by Neon Static42m ago
Things I’ve built: LumenLA reading app that turns long articles into calm, paginated chapters.2026 · Next.js · Postgres, TidepoolTA realtime collaborative whiteboard built on CRDTs and websockets.2026 · React · Yjs, PocketlogPA CLI that logs what you worked on, in ten seconds a day.2025 · Rust · CLI and HarborHA tiny self-hosted status page for side projects.2024 · Go · SQLite.
First, run
one command
Installing a piece takes about a minute. Drag the slider to walk through it.
$ npx shadcn@latest add https://curio-components.vercel.app/r/record-player.json
Checking registry.
Created 3 files:
- app/curio.css
- components/curio/lib/types.ts
- components/curio/music/record.tsx
What comes in the box
Light and dark, both ways
Every piece reads the dark class or data-theme on any parent, so it follows next-themes or your own toggle.
Flip the switch: the record and its label follow.
Real maps, no API key
The maps draw Esri tiles, with the credit already in place.
Give one a latitude and longitude and it centres there, in light or dark.
Right now I’m listening to Paper Planes
Origami by Fold & Fly● Live
Eight tokens, one look
--curio-accent, --curio-bg and six more restyle every piece at once.
Pick a swatch to re-colour the track beneath it.
Motion that knows when to stop
Every animation lives in one CSS file and switches off for visitors who ask for reduced motion.
The bars stop. The song title stays.
# curio
Base: Design tokens, animations and shared types used by every curio component.
Record player: Album art as a spinning record; a tonearm swings onto it while music is playing.
Inline track: The current song written into a sentence, with a cover preview on hover.
Cassette: A little tape whose reels turn while something is playing.Your agent can install it
Curio publishes llms.txt: every piece, what it does and its install URL.
Point Claude or Cursor at it and ask for a map of your city.
Open the
cabinet
Pick a piece and copy its command. It lands in components/curio as plain code you own, ready to change.