Loading
Loading
Loading
mobile footer

Build the Interaction Layer Your Website is Missing.

Browse All EffectsBrowse All EffectsBrowse All EffectsUpgrade to ProUpgrade to ProUpgrade to Pro

80+ effects free, forever. No credit card.

© 2026 Hyperiux. All Rights Reserved.

AI Component CatalogueHey AI, Learn About Us
Platform

Vault

  • Documentation
  • Pricing
  • Blog
  • Community
  • NPM
  • MCP

Categories

  • All Effects
  • WebGL
  • Text
  • Backgrounds
  • Buttons
  • Carousels
  • Scroll
  • Components
  • Navigation
  • Cursor
  • Transitions
  • Loaders

Documents

  • Introduction
  • Installation
  • CLI
  • Dependencies
  • License

Legal

  • License Agreement
  • Terms of Service
  • Privacy Policy
  • Refund Policy
Socials
  • Twitter / X
  • LinkedIn
  • GitHub
  • Instagram
Contact Us
  • hello@hyperiux.com
New effects, in your inbox

Every new drop, plus the occasional behind-the-scenes build. No spam. Unsubscribe anytime.

Loading
Home/Button Component

Button Component

An animated button with pointer-based fills, rolling and scrambling text, magnetic movement, and responsive press feedback for interactive websites and applications.

lucide-reactmotiontailwind-merge
DemoDemoDemo

Tune the Real Props

Overview

Button can fill from the pointer’s entry point, roll or scramble its letters, draw an underline or border, drift toward the cursor magnetically, and compress briefly when pressed. It can also show a loading spinner and success check inside the button, which in production should follow real application events.

Use it for primary calls to action, dashboard controls, form submissions, and portfolio sites where stronger feedback helps. Animation should never obscure the label, delay the action, or make the control harder to use.


Theme and Interaction Customisation

Choose filled, outlined, or plain surfaces, colours, roundness, and icon position, with dot fill, character roll, scramble, underline, or border-draw hover effects. Interaction settings include rolling text, shimmer, magnetic movement, press feedback, duration, and letter stagger for character roll.


Example Production Use Case

A SaaS workspace can use a filled Invite teammate button with a dot-fill hover. On click it shows a spinner while the request runs, then a check only once the invite is actually sent, or an error if it fails.

A creative portfolio can use character roll and magnetic movement on its Contact me button, making the call to action part of the site’s personality.

A developer tool can keep frequently used command buttons restrained, using only press feedback and an outlined surface so repeated clicks stay fast and calm.


Best Used For

  • Primary website calls to action.
  • SaaS dashboard controls.
  • Form submissions and onboarding steps.
  • Creative and portfolio websites.
  • Ecommerce product and cart actions.
  • Product landing pages.
  • Developer tools with restrained feedback.
  • Interactive apps with real loading and success states.

Not For

Utility-heavy interfaces with many controls usually need consistent, restrained feedback rather than scrambling or magnetic effects everywhere.

Avoid moving or scrambled text on labels users must recognise instantly, and skip magnetic movement in tightly packed toolbars.

For destructive or financial actions, animation never replaces clear wording and explicit confirmation.


Performance Budget

Scope hover work to the active button, avoid layout recalculation for fills and borders, and process pointer movement only while hovering. Limit simultaneous shimmer and character effects, keep stagger short, and never delay the actual action for an animation.


Accessibility and Mobile

Use native button semantics for actions and links for navigation, with a stable accessible name even while letters roll or scramble. Communicate loading, success, and errors in text, and handle disabled states deliberately. On touch devices, don’t rely on hover, keep targets comfortable and press feedback immediate, and with reduced motion remove magnetic movement, scrambling, shimmer, and spring compression.


Common Mistakes

  • Relying on animation instead of a clear label.
  • Treating the demo loading sequence as real processing.
  • Showing success after a failed action.
  • Letting duplicate rolling text cause repeated screen-reader announcements.
  • Combining rolling or shimmer text with scramble or character-stagger effects.
  • Expecting the plain-surface underline to affect other variants.
  • Making magnetic movement too strong.
  • Overusing shimmer.
  • Ignoring keyboard focus.
  • Changing state before validation completes.
  • Ignoring reduced-motion preferences.

Changelog

v1.0.0

Oct 23, 2026
Initial release

API Reference

PropTypeDefaultDescription
themestringspotifyColour palette. The Primary colour option takes the theme's primary colour.
modestringdarkLight or dark version of the chosen palette.
variantstringdot-fillWhat happens on hover: a dot that fills, letters that stagger or scramble, a drawn underline, or a drawn border.
surfacestringfilledFilled or outlined background. Not used by Link; with Border draw both look the same.
tonestringprimaryColour of the button: the theme's primary, a status colour, or a gradient.
rollingTextbooleantrueThe label rolls up to a copy of itself on hover. Not used by Char stagger or Scramble.
shimmerTextbooleanfalseA light sweeps across the label. Not used by Char stagger or Scramble.
pressFeedbackbooleantrueThe button presses in slightly when clicked.
magneticbooleanfalseThe button leans towards the mouse as it gets close. Off on touch screens.
showLoadingStatebooleantrueClicking shows a loading spinner, then a check, then resets.
iconstringarrowIcon shown beside the label, or none.
iconPositionstringendPuts the icon before or after the label. Needs an icon.
roundedstringfullCorner radius of the button. Not used by Link.
durationnumber0.4How long the hover effect takes, in seconds.
staggernumber0.02Gap between each letter's move, in seconds. Needs the Char stagger effect.

Questions, Answered.

What is Button?

Button is an animated React component with configurable hover effects, text animations, magnetic movement, press feedback, icons, and visual loading states for actions and calls to action.

What hover animations does Button support?

Dot fill, character roll, text scramble, link underline, and border drawing.

How does Dot fill work?

A coloured fill expands from wherever the pointer enters, so it starts from a different side depending on the user’s movement.

What does Magnetic do?

It shifts the button gently toward the pointer while hovering, as a visual effect that shouldn’t interfere with its target or neighbours.

Can Button show a loading state?

Yes. Show loading state runs a spinner-to-success demo. Real applications should drive these states from actual results.

Can Button be used as a navigation link?

It can look like a link, but navigation should use link semantics. Use a button element only for actions.

View MoreView More

Request a Custom Animation

Need a custom effect? Tell us what to create.

Related Effects

Explore All EffectsExplore All EffectsExplore All Effects
Sidebar Component
@base-ui/reactclass-variance-authoritylucide-react

Sidebar Component

Components

Table Component
@base-ui/reactclass-variance-authoritygsap

Table Component

Components

Command Component
@base-ui/reactclass-variance-authoritycmdk

Command Component

Components

All Effects
Featured ComponentsText AnimationsAnimated BackgroundsAnimated ButtonsCarousel EffectsScroll EffectsCreative ComponentsNavigationsCursor EffectsTransitionsLoadersWebGL & 3D Effects
Templates
IntroductionInstallationCLIDependenciesLicense
PricingBlogGithubNPMMCP Doc