Tactile Citrus Decision Modal
Tactile Citrus kit
A real <button> carrying .btn-cube-pop — the preview is the stylesheet, not a picture of it.
.btn-cube-pop {
display: inline-block;
padding: 12px 26px;
border: 2px solid #065f46;
border-radius: 8px;
background: #34d399;
color: #064e3b;
font-family: inherit;
font-size: 15px;
font-weight: 700;
cursor: pointer;
box-shadow: 4px 4px 0 #065f46, 8px 8px 0 rgba(6, 95, 70, 0.4);
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.btn-cube-pop:hover {
transform: translate(-2px, -2px);
box-shadow: 6px 6px 0 #065f46, 12px 12px 0 rgba(6, 95, 70, 0.4);
}
.btn-cube-pop:active {
transform: translate(3px, 3px);
box-shadow: 1px 1px 0 #065f46;
}
.btn-cube-pop:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}
Implementation notes
Cube Pop uses visible depth and press feedback that makes interaction feel physical. Its rounded corners balance product-friendly softness with a clear boundary. It combines a two-layer shadow, a 2px border and a 150ms hover shift. The interaction stays intentionally restrained.
Usage
<button class="btn-cube-pop">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