All styles
Playful

Party Popper CSS Button

Free53 lines · no JS · WCAG AA large 4.2
Open in Studio
Theme

A real <button> carrying .btn-party-popper — the preview is the stylesheet, not a picture of it.

States
default
hover
focus-visible
active
disabled
not declared
.btn-party-popper {
  position: relative;
  display: inline-block;
  padding: 12px 28px;
  border: none;
  border-radius: 12px;
  background: #8b5cf6;
  color: #ffffff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease;
}
.btn-party-popper::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  margin: -3px 0 0 -3px;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}
.btn-party-popper:hover {
  background: #7c3aed;
  transform: scale(1.04);
}
.btn-party-popper:hover::after {
  animation: btn-party-popper-burst 0.7s ease-out forwards;
}
.btn-party-popper:active {
  transform: scale(0.96);
}
@keyframes btn-party-popper-burst {
  0% {
    opacity: 1;
    box-shadow: 0 0 0 #fbbf24, 0 0 0 #34d399, 0 0 0 #f87171, 0 0 0 #60a5fa, 0 0 0 #f472b6, 0 0 0 #facc15, 0 0 0 #a78bfa, 0 0 0 #4ade80;
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    box-shadow: -46px -34px 0 #fbbf24, 42px -40px 0 #34d399, -58px 8px 0 #f87171, 56px 14px 0 #60a5fa, -30px 38px 0 #f472b6, 34px 40px 0 #facc15, 0 -50px 0 #a78bfa, 62px -12px 0 #4ade80;
  }
}
.btn-party-popper:focus-visible {
  outline: 2px solid #8b5cf6;
  outline-offset: 3px;
}
Self-contained · MIT · no build step.btn-party-popper
PlayfulRoundedParticlesHover Reveal

Implementation notes

About the Party Popper CSS button

Party Popper uses expressive color, shape and feedback for characterful products. Its rounded corners balance product-friendly softness with a clear boundary. It pairs a 700ms keyframe animation with a 200ms hover scale. The particles, hover reveal details are included in the copy-paste CSS.

Usage

<button class="btn-party-popper">Party!</button>

Pair it with the CSS tab above — the class is self-contained.

Before shipping: keep the semantic button element, verify contrast on your actual background and add a visible:focus-visible state. If you retain motion, include a prefers-reduced-motion override.
Built with
HTML + plain CSS
Shape
Rounded
Exports
CSS, Tailwind, React
License
MIT · commercial use
Complete the look

Build the interface around this button

We matched its palette, surface, geometry and motion to a complete UI system — like composing an outfit, not browsing unrelated parts.

Style DNA · v1
How matching works →
Pro preview
Modal83% match

Tactile Citrus Decision Modal

Tactile Citrus kit

solid surface3D & Tactile character
Unlock with Pro →
Free sample
Input83% match

Tactile Citrus Smart Input

Tactile Citrus kit

solid surface3D & Tactile character
Pro preview
Toggle83% match

Tactile Citrus Preference Toggle

Tactile Citrus kit

solid surface3D & Tactile character
Unlock with Pro →
Pro preview
Card83% match

Tactile Citrus Feature Card

Tactile Citrus kit

solid surface3D & Tactile character
Unlock with Pro →
Pro preview
Dropdown83% match

Tactile Citrus Action Menu

Tactile Citrus kit

solid surface3D & Tactile character
Unlock with Pro →
Pro preview
Form83% match

Tactile Citrus Signup Form

Tactile Citrus kit

solid surface3D & Tactile character
Unlock with Pro →
Get the complete Tactile Citrus kit
Six coordinated component types, commercial license and future kit updates.
Explore Pro · $39

More styles that match

Confetti Rain

Rainbow Pop

Blob Organic

Backflip

Bounce Joy

Comic Book

Two optional extras load only if you allow them. Every button, preview and line of code works exactly the same either way. What each one does