Jack UI logoJackUI
ComponentsButtons

Smoke Flare Button

A design-engineered interactive button with volumetric atmospheric smoke plumes, anamorphic optical lens flare, cursor-reactive caustic rim reflections, and cohesive light & dark modes.

Open in

Installation

bunx shadcn@latest add https://jackui.com/r/smoke-flare-button.json
npx shadcn@latest add https://jackui.com/r/smoke-flare-button.json
pnpm dlx shadcn@latest add https://jackui.com/r/smoke-flare-button.json

The CLI will automatically install the motion dependency and copy the component file into your project at:

components/jackui/smoke-flare-button.tsx

Usage

"use client";

import React from "react";
import { SmokeFlareButton } from "@/components/jackui/smoke-flare-button";
import { Sparkles } from "lucide-react";

export function SmokeFlareButtonDemo() {
  const handleClick = () => {
    console.log("Action triggered!");
  };

  return (
    <div className="flex min-h-[30rem] w-full flex-wrap items-center justify-center gap-6 p-8">
      {/* Cosmic Nebula theme with leading icon */}
      <SmokeFlareButton
        variant="cosmic"
        icon={<Sparkles className="w-4 h-4" />}
        onClick={handleClick}
      >
        Launch Experience
      </SmokeFlareButton>

      {/* Solar Ember variant */}
      <SmokeFlareButton
        variant="ember"
        label="Power Up"
      />

      {/* Arctic Aurora variant */}
      <SmokeFlareButton
        variant="aurora"
        label="Explore World"
      />

      {/* Stealth Titanium variant */}
      <SmokeFlareButton
        variant="monochrome"
        label="Documentation"
      />
    </div>
  );
}

Props

PropTypeDefaultDescription
labelstring"Get Started"Text label on the button. Used when children is not passed.
childrenReact.ReactNodeundefinedCustom React children (supports text, icons, badges).
variant"cosmic" | "ember" | "aurora" | "monochrome""cosmic"Aesthetic optical color theme for atmospheric smoke and optical flare.
size"sm" | "md" | "lg""md"Button dimensions, padding, and font sizing variant.
iconReact.ReactNodeundefinedOptional icon component.
iconPosition"left" | "right""left"Placement of the icon relative to the label.
magneticbooleantrueEnables interactive 2D spring physics attracting button to the cursor.
showSmokebooleantrueRenders both exterior atmospheric smoke plumes and internal vapor wisps.
showFlarebooleantrueRenders the anamorphic optical flare sweep and specular caustic rim.
disabledbooleanfalseDisables user interactions and applies disabled styling.
loadingbooleanfalseDisplays an optical spinner replacing the button content.
classNamestringundefinedAdditional Tailwind CSS classes merged onto the button element.
styleReact.CSSPropertiesundefinedInline style overrides.
...restHTMLMotionProps<"button">—Any standard motion or HTML button properties spread onto the button.

Design Engineering Highlights

  • Cohesive Light & Dark Modes: No disparate hacks or missing effects. Smoke plumes and optical flares are calibrated with atmospheric occlusion in both light and dark themes.
  • Volumetric Atmospheric Smoke: Powered by multi-layered organic turbulence filters and counter-rotating vapor drifts that respond organically to hover and cursor movements.
  • Anamorphic Optical Lens Flare: Features a caustic specular rim highlight calculated via cursor coordinates in real-time, plus a horizontal anamorphic flare streak on hover.
  • 2D Magnetic Spring Physics: Balanced spring physics (stiffness: 220, damping: 18) pull the button smoothly towards the pointer across both axes.
  • Tactile Shockwave Dissipation: Clicking triggers an optical pressure wave and expanding dissipation smoke ring relative to the click point.

On this page