Button
azemmur/primitives-buttonFreeComponent
A simple button that animates on hover and tap.
Install it
npx shadcn@latest add https://azemmur.raouf.codes/r/primitives-button.jsonSource
1//Copyright (c) 2025 Elliot Sutton2// Copyright (c) 2026 raouf.codes - Azemmur34'use client';56import {7 Slot,8 type WithAsChild,9} from '@/components/primitives/slot';10import { cn } from '@/lib/utils';11import { motion, type HTMLMotionProps } from 'motion/react';12import * as React from 'react';1314type ButtonProps = WithAsChild<15 HTMLMotionProps<'button'> & {16 hoverScale?: number;17 tapScale?: number;18 }19>;2021function Button({22 hoverScale = 1.05,23 tapScale = 0.95,24 asChild = false,25 ...props26}: ButtonProps) {27 const Component = asChild ? Slot : motion.button;2829 return (30 <Component31 {...props}32 className={cn('cursor-pointer', props.className)}33 whileHover={{ scale: hoverScale }}34 whileTap={{ scale: tapScale }}35 />36 );37}3839export { Button, type ButtonProps };
What it pulls in
npm packages
Other registry items
Files it writes
More from Azemmur
All 27 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Blur Imagecomponents-blur-image | Azemmur | Components | Free | 1 dep | |
| Buttoncomponents-button | Azemmur | Components | Free | 1 dep | |
| Floating Dockcomponents-floating-dock | Azemmur | Components | Free | 2 deps · 6 files | |
| Speed Dialcomponents-speed-dial | Azemmur | Components | Free | 2 deps · 7 files | |
| Tabscomponents-tabs | Azemmur | Components | Free | 2 deps · 9 files | |
| Theme Switchcomponents-theme-switch | Azemmur | Components | Free | 4 deps | |
| Timelinecomponents-timeline | Azemmur | Components | Free | 2 deps · 8 files | |
| Blur Image Demodemo-components-blur-image | Azemmur | Components | Free | no deps |
