React + MotionButtons

Frosted blur button

A see-through button that blurs whatever is behind it and gives slightly under your finger.

Settings

Code

import { motion } from "framer-motion";

interface GlassButtonProps {
  text?: string;
}

export default function GlassButton({
  text = "View details",
}: GlassButtonProps) {
  return (
    <motion.button
      type="button"
      whileTap={{ scale: 0.96 }}
      transition={{ type: "spring", stiffness: 300, damping: 30 }}
      className="rounded-full border border-black/10 bg-white/70 px-6 py-3 text-sm font-medium text-[#1d1d1f] dark:text-[#f5f5f7] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] backdrop-blur-[20px] backdrop-saturate-[180%] dark:border-white/10 dark:bg-black/70"
    >
      {text}
    </motion.button>
  );
}

Prompt for AI

Paste it into ChatGPT, Claude or Cursor and it will adapt the block to your project with these settings, even if you don’t use React.

More in Buttons

Where to use it

Glass buttons shine when they sit on top of something: a hero photo on a hotel site, a video background on a music landing page or a map in a delivery app. The frosted blur keeps the text readable without hiding the image. If you were after a glassmorphism button in React, this one keeps it subtle.

On a flat, plain background the blur has nothing to work with and the button just looks grey, so test it over your real image. Keep the label short and check the contrast on both light and dark parts of the photo.