Power-User Systems

Keycast

A streamer-style keyboard HUD: every chord you press appears as a row of keycaps and ages away, with a hammered key folding into one cap wearing a ×n badge. The listener is display-only by contract. It never prevents or stops an event, bails inside editable targets and mid-IME composition, and ignores lone modifiers, so the page underneath keeps every shortcut it had and the HUD merely reports what the hands did. Entry timestamps ride the loop clock rather than the wall clock, so pausing the bench freezes the stack mid-fade instead of evicting it all on resume, and a scripted demo reel keeps the pane alive whenever the real keyboard goes quiet.

Install

# Keycast needs no npm packages

Then copy 2 files into your project:

  • components/registry/keycast/keycast.tsx
  • hooks/use-animation-loop.ts

Props

PropTypeDefaultDescription
lifetimenumber2.4How long a chord stays on the HUD before it fades out.
maxVisiblenumber5History depth; older entries are evicted early.
corner"bottom-left" | "bottom-center" | "bottom-right""bottom-center"Where the stack anchors in its pane.
combineRepeatsbooleantrueFold a hammered key into one cap with a ×n badge.
platform"mac" | "pc""mac"⌘⌥⇧⌃ glyphs or Ctrl / Alt / Shift words.
demobooleantrueReplay a scripted set of chords whenever the keyboard goes quiet.
capSizenumber34Keycap height; legends scale with it.
accentstring (hex)"#c4b5fd"Modifier caps and the ring on the newest chord.

What It Demonstrates

Pop in
Element appears with a slight overshoot, like it bounces into place.
Enter / Exit
The animation an element plays when it's added to or removed from the screen.
Fade in / Fade out
Element appears or disappears by changing opacity.

Related Components

Appears In