btn-animated-gradient
ui-layouts/btn-animated-gradientFreeComponent
ui-layouts publishes no description for this item.
Install it
npx shadcn@latest add https://www.ui-layouts.com/r/btn-animated-gradient.jsonSource
1'use client';2import { useRef, useState } from 'react';34const ButtonAnimatedGradient = () => {5 const divRef = useRef<HTMLButtonElement>(null);6 const [isFocused, setIsFocused] = useState(false);7 const [position, setPosition] = useState({ x: 0, y: 0 });8 const [opacity, setOpacity] = useState(0);910 const handleMouseMove = (e: React.MouseEvent<HTMLButtonElement>) => {11 if (!divRef.current || isFocused) return;1213 const div = divRef.current;14 const rect = div.getBoundingClientRect();1516 setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top });17 };1819 const handleFocus = () => {20 setIsFocused(true);21 setOpacity(1);22 };2324 const handleBlur = () => {25 setIsFocused(false);26 setOpacity(0);27 };2829 const handleMouseEnter = () => {30 setOpacity(1);31 };3233 const handleMouseLeave = () => {34 setOpacity(0);35 };3637 return (38 <>39 <button40 ref={divRef}41 onMouseMove={handleMouseMove}42 onFocus={handleFocus}43 onBlur={handleBlur}44 onMouseEnter={handleMouseEnter}45 onMouseLeave={handleMouseLeave}46 className='relative inline-flex w-fit mx-auto h-12 items-center justify-center overflow-hidden rounded-md border-2 dark:border-[#656fe2] border-[#c0c6fc] bg-linear-to-r dark:from-[#070e41] dark:to-[#141d57] from-[#9ba3fdfd] to-[#3d5af1] px-6 font-medium text-white shadow-2xl transition-colors focus:outline-hidden focus:ring-2 focus:ring-neutral-400 focus:ring-offset-2 focus:ring-offset-neutral-50'47 >48 <div49 className='pointer-events-none absolute -inset-px opacity-0 transition duration-300'50 style={{51 opacity,52 background: `radial-gradient(100px circle at ${position.x}px ${position.y}px, #656fe288, #00000026)`,53 }}54 />55 <span className='relative z-20'>Click Me</span>56 </button>57 </>58 );59};6061export default ButtonAnimatedGradient;
Files it writes
More from ui-layouts
All 1 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| 3d-marquee3d-marquee | ui-layouts | Components | Free | no deps · 2 files | |
| accordionaccordion | ui-layouts | Components | Free | no deps | |
| align-slideralign-slider | ui-layouts | Components | Free | 6 deps · 2 files | |
| animal-imagemaskinganimal-imagemasking | ui-layouts | Components | Free | 1 dep | |
| animated-beamanimated-beam | ui-layouts | Components | Free | no deps | |
| animated-beam-bidirectionalanimated-beam-bidirectional | ui-layouts | Components | Free | no deps | |
| animated-beam-defaultanimated-beam-default | ui-layouts | Components | Free | no deps | |
| animated-beam-multiple-inputanimated-beam-multiple-input | ui-layouts | Components | Free | no deps |
