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/Dialog Component

Dialog Component

An animated dialog with trigger-origin expansion, elastic movement, coordinated content transitions, and responsive feedback for modal interactions.

@base-ui/reactclass-variance-authoritylucide-reactmotiontailwind-merge
DemoDemoDemo

Tune the Real Props

Overview

Dialog can grow from the button that opened it and shrink back on close, with optional elastic overshoot. Content fades and scales in after the panel arrives, and a blocked outside click can trigger a brief shake while a dimmed or blurred backdrop keeps focus on the dialog.

Use it when users must review information, confirm an action, or finish a short task before returning, such as subscription changes, destructive confirmations, and account settings. It should always be clear why it opened and how to continue or leave.


Theme and Interaction Customisation

Choose clear, dimmed, or blurred backdrops, panel roundness, and a trigger with rolling text or pointer-origin fill. Opening options include origin from trigger, elastic, duration, bounce, and content fade and scale, while closing options cover exit animation, content fade-out, click-outside dismissal, and shake when blocked.


Example Production Use Case

A subscription dashboard can open a Pause subscription dialog from its button, explaining billing effects. Outside clicks are blocked with a shake, Confirm stays pending until the service responds, and Cancel shrinks it back to the trigger.

A project tool can use a dimmed dialog to confirm archiving a project, keeping the board visible behind it so users remember what they’re acting on.

An account settings page can open a small form dialog to update an email address, with elastic entry kept subtle so the form stays easy to read.


Best Used For

  • Confirmation workflows.
  • Subscription management.
  • Account settings and profile edits.
  • SaaS dashboard action panels.
  • Project management confirmations.
  • Ecommerce order-related decisions.
  • Administrative actions needing validation.
  • Short, self-contained product workflows.

Not For

Routine actions that can complete safely inline are better confirmed with inline feedback or a Toast.

Long content or multi-step workflows belong on a dedicated page, and supporting details may suit a drawer or Tooltip instead.

Don’t use excessive shake or overshoot to force attention, since high-stakes actions need clear wording, not more motion.


Performance Budget

Measure trigger and panel geometry once rather than per frame, use transforms and opacity, and keep backdrop and panel in sync. Let elastic motion settle quickly, keep content fades short, and clean up listeners and focus state on close.


Accessibility and Mobile

Use a dialog role with an accessible title, move focus inside and trap it while open, make the background inert, and return focus to the trigger on close. Support Escape where appropriate, and never leave users without a way to cancel when outside clicks are blocked. On mobile, fit the viewport and keyboard, scroll long content internally, and keep actions reachable. With reduced motion, remove expansion, bounce, scaling, and shaking.


Common Mistakes

  • Treating a closed dialog as a completed action.
  • Letting backdrop clicks close critical workflows by accident.
  • Ignoring that disablePointerDismissal overrides Click outside closes.
  • Using Bounce without Elastic or Scale content without Fade content.
  • Expecting the exit animation to override trigger-origin closing.
  • Shaking for unrelated errors like failed requests.
  • Losing keyboard focus on open or close.
  • Overanimating simple confirmations.
  • Forgetting the mobile viewport and keyboard.
  • Ignoring reduced-motion preferences.

Changelog

v1.0.0

Oct 23, 2026
Initial release

API Reference

PropTypeDefaultDescription
themestringvalorantColour palette, dialog included. Its primary colour fills the main button and the hover fill.
modestringdarkLight or dark version of the palette. Starts dark.
rollingTextbooleantrueThe trigger and button labels roll to a second copy on hover.
fillOnHoverbooleantrueButtons fill with colour from the edge on hover.
originFromTriggerbooleantrueThe dialog grows out of the button that opened it instead of the centre.
elasticbooleantrueThe dialog springs in with a slight overshoot.
durationnumber0.4How long the open animation takes, in seconds.
bouncenumber0.2How much the dialog overshoots and settles. 0 is no bounce.
fadeContentbooleantrueFades the dialog contents in as it opens.
scaleContentbooleanfalseScales the dialog contents up with the dialog.
exitAnimationstringfadeHow the dialog leaves: fades, drops down, or shrinks.
fadeContentOutbooleantrueFades the contents out when the dialog closes.
dismissiblebooleantrueClicking outside the dialog closes it. When off, the dialog shakes instead if Shake when blocked is on.
shakeOnBlockbooleantrueThe dialog shakes when you click outside and it can't close.
backdropstringblurWhat sits behind the dialog: nothing, a dim layer, or a blur.
roundedstringmdCorner radius of the dialog.

Questions, Answered.

What is Dialog?

Dialog is an animated React component that shows a focused panel over the page, with trigger-origin transitions, elastic expansion, staged content, backdrops, and configurable dismissal.

Can Dialog animate from the button that opens it?

Yes. Origin from trigger grows the panel from the recorded trigger position and can return it there on close.

Does Bounce work without Elastic?

No. Bounce only applies when Elastic is enabled.

Can Dialog close when users click outside it?

Yes. Click outside closes controls this and can be disabled when users must make an explicit choice.

What does Shake when blocked do?

It briefly shakes the dialog when an outside click isn’t allowed to close it. It’s ignored when dismissible is true.

Does Dialog perform the confirmed action automatically?

No. The application connects confirmation to its logic, including validation, permissions, requests, and errors.

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
Input OTP Component
@base-ui/reactclass-variance-authorityinput-otp

Input OTP Component

Components

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

Table Component

Components

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