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.
Installation
bunx shadcn@latest add https://jackui.com/r/smoke-flare-button.jsonnpx shadcn@latest add https://jackui.com/r/smoke-flare-button.jsonpnpm dlx shadcn@latest add https://jackui.com/r/smoke-flare-button.jsonThe CLI will automatically install the motion dependency and copy the component file into your project at:
components/jackui/smoke-flare-button.tsxUsage
"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
| Prop | Type | Default | Description |
|---|---|---|---|
label | string | "Get Started" | Text label on the button. Used when children is not passed. |
children | React.ReactNode | undefined | Custom 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. |
icon | React.ReactNode | undefined | Optional icon component. |
iconPosition | "left" | "right" | "left" | Placement of the icon relative to the label. |
magnetic | boolean | true | Enables interactive 2D spring physics attracting button to the cursor. |
showSmoke | boolean | true | Renders both exterior atmospheric smoke plumes and internal vapor wisps. |
showFlare | boolean | true | Renders the anamorphic optical flare sweep and specular caustic rim. |
disabled | boolean | false | Disables user interactions and applies disabled styling. |
loading | boolean | false | Displays an optical spinner replacing the button content. |
className | string | undefined | Additional Tailwind CSS classes merged onto the button element. |
style | React.CSSProperties | undefined | Inline style overrides. |
...rest | HTMLMotionProps<"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.
Ink Fill Button
A smooth ink-fill animation button with character-by-character text lighting effect.
Spark Button
Premium dark-mode CTA button with animated violet gradient border, magnetic cursor attraction, laser scanline sweep, and interactive canvas spark explosion. Recommended for high-conversion CTAs, hero sections, checkout triggers, and feature pricing buttons.
