Sitewright

Frosted button

A pill button of thick frosted glass: heavy backdrop blur, fine grain, a lit edge and a soft sheen that follows the pointer.

What it is for

Primary calls to action over photos, gradients or video where an opaque button would feel heavy.

Pure CSS, no WebGL.

Use it

1 · site.json
"effects": { "components": ["frosted-button"] }
or on the command line
node ~/.claude/skills/sitewright/scripts/scaffold.mjs --config site.json --out ./my-site --components frosted-button
2 · import it
import { FrostedButton } from '@/components/fx/ui';

Files

  • components/fx/ui/FrostedButton.tsx
  • components/fx/ui/_tg-engine.ts
  • components/fx/ui/_tg-use.ts
  • components/fx/ui/_tg-stage.tsx
  • components/fx/ui/LICENSE-tactile-glass.txt
  • components/fx/ui/GlassButton.tsx
  • ui-glass-base.css styles
  • ui-glass-button.css styles

Source

Idea from Tactile Glass UI; the code is written for this kit.

Credits and licences: third-party notices.

Accessibility

  • Keyboard. Components in the kit are written to be reached and used with the keyboard. Try it: press Tab inside the preview.
  • Reduced motion. With prefers-reduced-motion on, animation settles to its finished state at once.
  • Touch. Pointer-follow effects are skipped on touch screens; controls stay finger-sized.