Tactile Citrus Decision Modal
Tactile Citrus kit
A real <button> carrying .btn-balloon-float — the preview is the stylesheet, not a picture of it.
.btn-balloon-float {
display: inline-block;
padding: 13px 30px;
border: none;
border-radius: 999px;
background: radial-gradient(circle at 30% 25%, #c4b5fd, #7c3aed 65%);
color: #ffffff;
font-family: inherit;
font-size: 15px;
font-weight: 600;
cursor: pointer;
box-shadow: 0 14px 24px -10px rgba(124, 58, 237, 0.6);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.btn-balloon-float:hover {
transform: translateY(-5px) rotate(-2deg);
box-shadow: 0 22px 30px -12px rgba(124, 58, 237, 0.7);
}
.btn-balloon-float:active {
transform: translateY(0) scale(0.97);
}
.btn-balloon-float:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}
Implementation notes
Balloon Float uses visible depth and press feedback that makes interaction feel physical. Its pill silhouette makes the label easy to scan in compact layouts. It is built around a two-stop radial gradient anchored on #c4b5fd with a 300ms hover lift. The interaction stays intentionally restrained.
Usage
<button class="btn-balloon-float">Button</button>Pair it with the CSS tab above — the class is self-contained.
:focus-visible state. If you retain motion, include a prefers-reduced-motion override.We matched its palette, surface, geometry and motion to a complete UI system — like composing an outfit, not browsing unrelated parts.
Tactile Citrus kit
Tactile Citrus kit
Tactile Citrus kit
Tactile Citrus kit
Tactile Citrus kit
Tactile Citrus kit
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