录屏演示卡

New

把任意内容呈现成一段录屏:窗口 mock 背后是壁纸与压暗层,摄像头气泡兼作播放按钮,计时器带闪烁录制红点,「点击听声音」药丸在播放后滑回气泡背后藏起来。全部尺寸用容器查询单位写成,同一张卡从网格缩略图到整宽 hero 都是等比的,不需要任何断点;另可开启锁定 16:9 的剧场视图。

CEO weekly report
Summarise what the team shipped this week and what is still blocked.
Write a message…
Demo in UI Lab
Same card, narrower
Summarise what the team shipped this week and what is still blocked.
Write a message…

Click the bubble to start: the timer runs and the “tap for sound” pill slides back behind it. The right-hand card is the same component at a smaller width — no breakpoints involved.

安装

用 shadcn CLI 添加,或手动复制源码。

$ bunx --bun shadcn add @uilab/recording-card

API 参考

children
ReactNode

What is on the recorded screen — any node; it sits inside the window mock.

title?
string

Window title in the mock's toolbar.

bubble?
ReactNode

The webcam circle: an `<img>`, a `<video>`, initials — anything. Omit for a plain screen recording. It deliberately overlaps the window's lower-left corner, the way a real recording bubble sits over the screen — so keep that corner of `children` free of anything that must stay readable.

skin?
{ label: string; icon?: ReactNode; }

Badge in the corner, e.g. which app the recording is in.

hint?
string

Label on the pill that retracts behind the bubble once playing.

Tap for sound
wallpaper?
string

Any CSS `background` value behind the window. Defaults to a soft spectrum wash.

linear-gradient(135deg, #1b1033 0%, #3f1d5c 22%, #8c3b6d 44%, #d1665a 66%, #e8a44f 84%, #f2d69b 100%)
defaultPlaying?
boolean

Start already playing (timer running, hint retracted).

false
onPlayingChange?
((playing: boolean) => void)
expandable?
boolean

Offer the aspect-locked theatre view.

false
className?
string

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.