every scrap on the table.
the full surface of scraps-ui, rendered live by the real library.
02 · chips
Cut
Torn
03 · cards
04 · fields
Text inputs, colour sweep
Textarea, select, range
textarea · kraft
select · marigold
range · kraft track
range · coral track
05 · checkboxes, radios & toggles
Checkbox
Radio
Toggle
06 · progress
Values on a white track
Every fill at 60%
07 · dividers
08 · tear lab
specimen
tear amplitude · 3px
crookedness · ±3°
drag either control, then hover the specimen: every value on this page is live library behaviour, not artwork.
10 · dialog & sheet
12 · tabs
left-handed pairs available on request. the active tab straightens up and turns white, like a folder tab pulled forward.
glue sticks only. rubber cement stays in the drawer.
every card on this page is one strip of tape away from falling off the mat.
13 · accordion
why native details elements?
keyboard and screen-reader behaviour for free, and the paper re-tears when the size changes. open and close this a few times.
does the paper notice?
the ResizeObserver repaints the tear on every toggle, so yes: opening an accordion is also tearing paper.
14 · table
| stock | weight | tears | verdict |
|---|---|---|---|
| construction | 86 gsm | beautifully | the default |
| kraft | 120 gsm | stubbornly | for parcels |
| newsprint | 45 gsm | too easily | stolen anyway |
| cardstock | 250 gsm | barely | fancy |
15 · avatar & skeleton
Torn photos
Loading paper
16 · toast & alert
mind the edges. alerts are kraft paper with tape and a role, nothing more.
17 · patterns
Breadcrumb: chips and a pencil slash
/
/
construction
Pagination: the current page is the white scrap
2
no components needed: chips compose into breadcrumbs and pagination on their own.
18 · custom colours
Scraps.registerColors({
rose: '#C4587A',
moss: '#5E7348',
night: { fill: '#1C2733', text: '#F6F1E4' },
})
registered names become data-color values (and color props in react). the stock palette stays themeable through the --sc-* custom properties.
Tailwind v4
@import "tailwindcss";
@import "scraps-ui/tailwind.css";
@theme {
/* your tokens become the paper: this recolors
bg-scrap-coral AND every coral scrap */
--color-scrap-coral: #FF5088;
}
shadcn
npx shadcn@latest add https://scraps.ogme01.com/r/scraps.json
copies the typed react components into your project (components/ui, lib/scraps-core.ts) with scraps-ui as the engine dependency. single components: /r/scrap-button.json and friends.
19 · the whole api