---
name: "@ephemera"
slug: "ephemera"
description: "A paper UI design system: shadcn/ui-compatible components styled as stationery, with six paper themes, fonts and theme CSS that install in one step."
category: "Forms"
tags: ["buttons", "cards", "design-system", "forms", "loaders", "media", "navigation", "overlays", "tables", "theming"]
framework: "react"
license: "MIT"
author: "kerrshift"
website: "https://ephemera.kerrshift.com"
github: "https://github.com/kerrshift/ephemera"
registry: "https://ephemera.kerrshift.com/r/registry.json"
pro: false
pro_url: null
github_stars: 0
component_count: 43
generated_at: "2026-10-17T06:30:14.294Z"
---

# @ephemera

A paper UI design system: shadcn/ui-compatible components styled as stationery, with six paper themes, fonts and theme CSS that install in one step.

## Links

- Website: https://ephemera.kerrshift.com
- GitHub: https://github.com/kerrshift/ephemera
- Registry JSON: https://ephemera.kerrshift.com/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/ephemera
- This file: https://sh4dcn.vercel.app/md/ephemera.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://ephemera.kerrshift.com/r/registry.json
pnpm dlx shadcn@latest add https://ephemera.kerrshift.com/r/registry.json
bunx shadcn@latest add https://ephemera.kerrshift.com/r/registry.json
# clone the source repo
git clone https://github.com/kerrshift/ephemera.git
# fetch the raw registry index
curl -s https://ephemera.kerrshift.com/r/registry.json
```

## Components (43)

| name | type | description | install |
| --- | --- | --- | --- |
| paper-theme | registry:theme | Six paper types as CSS variables (Cream, Kraft, Ledger, Blueprint, Newsprint, Carbon), merged into your global CSS, plus the five Ephemera fonts. Also re-skins… | `npx shadcn@latest add https://ephemera.kerrshift.com/r/paper-theme.json` |
| font-fraunces | registry:font | Display serif for titles, letters and cards. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/font-fraunces.json` |
| font-ibm-plex-mono | registry:font | Thermal-receipt monospace for receipts, toasts and code. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/font-ibm-plex-mono.json` |
| font-courier-prime | registry:font | Typewriter face for labels, buttons and inputs. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/font-courier-prime.json` |
| font-caveat | registry:font | Handwriting for sticky notes, tooltips and captions. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/font-caveat.json` |
| font-anton | registry:font | Condensed capitals for rubber stamps. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/font-anton.json` |
| button | registry:ui | Typewriter keys that press down. Ink, paper, ghost and danger. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/button.json` |
| input | registry:ui | Type on a ruled line. Includes a notebook Textarea and Label. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/input.json` |
| checkbox | registry:ui | A box ticked in pen, with an animated stroke. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/checkbox.json` |
| radio-group | registry:ui | Pencil circles that fill with a blot of ink. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/radio-group.json` |
| switch | registry:ui | A typewriter lever that slides between OFF and ON. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/switch.json` |
| select | registry:ui | A card-catalogue drawer of options. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/select.json` |
| slider | registry:ui | A ruler with a pen-nib marker. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/slider.json` |
| date-picker | registry:ui | A ruled field that opens a desk calendar. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/date-picker.json` |
| card | registry:ui | An index card, optionally ruled with a red header line. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/card.json` |
| tabs | registry:ui | File-folder tabs on top of a sheet. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/tabs.json` |
| accordion | registry:ui | Index-card dividers that open to reveal their notes. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/accordion.json` |
| separator | registry:ui | Rules, double rules and tear-here perforations. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/separator.json` |
| table | registry:ui | Ledger paper with a red margin and double-ruled totals. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/table.json` |
| dialog | registry:ui | A letter that slides up out of its envelope. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/dialog.json` |
| sheet | registry:ui | A folder that slides in from the edge, with a tab. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/sheet.json` |
| popover | registry:ui | A slip of paper with a folded corner. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/popover.json` |
| tooltip | registry:ui | A sticky note that appears on hover. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/tooltip.json` |
| dropdown-menu | registry:ui | A typed menu on an index card. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/dropdown-menu.json` |
| toast | registry:ui | Notifications that print as receipt slips and tear away. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/toast.json` |
| badge | registry:ui | Embossed label-maker tape. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/badge.json` |
| avatar | registry:ui | A postage-stamp or postmark avatar. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/avatar.json` |
| alert | registry:ui | A memo with a note in the margin. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/alert.json` |
| progress | registry:ui | A punch card that fills hole by hole. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/progress.json` |
| skeleton | registry:ui | A light pencil sketch while content loads. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/skeleton.json` |
| kbd | registry:ui | Round typewriter keys for shortcuts. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/kbd.json` |
| calendar | registry:ui | A desk calendar page. The chosen day gets circled in pen. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/calendar.json` |
| breadcrumb | registry:ui | A typed file path. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/breadcrumb.json` |
| pagination | registry:ui | Notebook page numbers, the current one circled. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/pagination.json` |
| receipt | registry:ui | A thermal-paper receipt with torn edges that prints line by line. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/receipt.json` |
| ticket | registry:ui | An admission ticket with a perforated stub you can tear off. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/ticket.json` |
| boarding-pass | registry:ui | A boarding pass for trips, itineraries and invitations. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/boarding-pass.json` |
| polaroid | registry:ui | An instant photo that develops as it scrolls into view. Click to shake it. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/polaroid.json` |
| postage-stamp | registry:ui | A perforated stamp with an optional inked postmark. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/postage-stamp.json` |
| rubber-stamp | registry:ui | A speckled ink stamp that thuds onto the page. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/rubber-stamp.json` |
| envelope | registry:ui | An envelope that opens to reveal a letter. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/envelope.json` |
| wax-seal | registry:ui | A hand-poured wax seal with your initials. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/wax-seal.json` |
| sticky-note | registry:ui | A sticky note with a curled corner, tape or a push pin. | `npx shadcn@latest add https://ephemera.kerrshift.com/r/sticky-note.json` |

## For AI agents

```text
You are adding components from @ephemera to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/ephemera.md) for the component list.
2. Fetch the machine-readable index: https://ephemera.kerrshift.com/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: ephemera).
```
