buttons you want to press,fields you want to fill in.

every part is cut from the same few materials and lit by the same light, so whatever you build with them feels made, not assembled.

screen
blurrow · ui-62hello.vol 60 · light finish
padspress them
finish
volume60
soundthe click under every press
every control here is a blurrow component

how it's made

bezels, faces, and one lamp. that's the kit.

fig. 1 · face and bezel
section1pxfacebezellabelfacebezellampshadowfield, cut inkey, stands up
01 / 04

a face, set in a bezel.

the bezel never moves. the face lifts a pixel when you hover and sinks flush when you press, so a click feels like it went somewhere.

  • 1facelifts on hover, sinks on press
  • 2bezelholds still, always
02 / 04

three layers. nothing else.

a bezel, a face and a label. no images and no canvas, just gradients and shadows from one set of tokens, which is why every key in the kit matches every other.

  • 1labeltext, embossed
  • 2face--face-dark
  • 3bezel--bezel-dark
03 / 04

one lamp, right overhead.

highlights sit on top edges and shadows fall below, as if one light hangs over your screen. here it swings so you can watch them follow. in the kit it never moves.

  • 1highlighton the edge facing the light
  • 2shadowfalls away from it
04 / 04

raised to press. sunken to fill.

fields are cut into the surface and keys stand up from it, so you can tell which is which before you've read a word. every part in the kit is one or the other.

  • 1field--field
  • 2key--face

the parts

62 parts. one case.

because they're all cut from the same materials, any two look like they came out of the same box. here are ten, working. the rest are in the docs, each with its source.

open the whole case →
radio cards

we sent it to ada@example.com. (123456 works)

otp input
price$40 – $160
slider
email notificationsreceive the weekly digest
push notificationscomments and mentions
toggle
button

showing the week view

tabs
publish on
date picker
attachments
drop files hereup to 5 files, 10 mb each
file upload

monthly readers

12.4%

24,891

vs. last 30 days

stat card

getting it

one command. or the source.

take it as a package, or copy the parts you want into your own repo and bend them. the cli does both, and never writes over a file you've changed. react 19, tailwind v4, no runtime dependencies.

terminalbash
npx @blurrow/ui init
# installs it, adds the styles, the font and toasts
# then, anywhere:
# import { Button } from "@blurrow/ui";

tell me what to build next.

if a part you need is missing, or one of them feels off, write it below. it opens as an issue on github with your words as its title.

request a partopens on github
or start from
stars on github
star it

a star is how other people find blurrow, and it tells me to keep going.

ready when you are.

one command installs the package, adds the styles and the font, and sets up toasts. it shows you every change before it writes it, and running it twice won't hurt.

npx @blurrow/ui init
or read the installation guide →
thanks for reading all the way down here. if you make something with it, i'd really like to see it.
— manyports