Split Button
A playful button with animated split/jump effect for each character and a highlight bar, powered by Framer Motion.
Demo
Interactive Demo
Hover to see each letter jump and the animated highlight.
Loading...
Installation
Install the required dependencies to get started:
bash
Loading...
Type Integration
Create a lib folder at the root of your project and add a types.ts file with the following interface. This interface is used by all button components for consistent props and TypeScript support.
typescript
Loading...
Usage
Import and use the SplitButton component in your Next.js application:
tsx
Loading...
Props
| Prop | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | - | Button content (usually text or icon). |
onClick | () => void | undefined | Click handler for the button. |
className | string | "" | Additional CSS classes for the button. |
disabled | boolean | false | Disables the button if true. |
type | "button" | "submit" | "reset" | "button" | Button type attribute. |
Features
- Animated split/jump effect for each character on hover
- Animated bottom highlight bar
- Background pulse effect on hover
- Framer Motion-powered tap effect
- Customizable via className
- TypeScript support
Dependencies
Next.js 15+
Framer Motion
Tailwind CSS (recommended)
TypeScript (recommended)