Aurora Studio Decision Modal
Aurora Studio kit
A real <button> carrying .btn-chrono-ring — the preview is the stylesheet, not a picture of it.
.btn-chrono-ring {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
padding: 0;
border: none;
border-radius: 50%;
background: #101623;
color: #7dd3fc;
font-family: inherit;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.1em;
cursor: pointer;
transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.btn-chrono-ring::before {
content: "";
position: absolute;
top: 3px;
right: 3px;
bottom: 3px;
left: 3px;
border: 2px dashed #38bdf8;
border-radius: 50%;
pointer-events: none;
animation: btn-chrono-ring-spin 8s linear infinite;
transition: border-color 0.2s ease;
}
@keyframes btn-chrono-ring-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.btn-chrono-ring:hover {
color: #bae6fd;
background: #152036;
box-shadow: 0 0 22px rgba(56, 189, 248, 0.35);
}
.btn-chrono-ring:hover::before {
border-color: #7dd3fc;
}
.btn-chrono-ring:active {
background: #0c111c;
box-shadow: 0 0 10px rgba(56, 189, 248, 0.25);
}
.btn-chrono-ring:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}
Implementation notes
Chrono Ring uses technical geometry and motion for an engineered visual language. Its circular geometry works best for a short label or icon-led action. Motion comes from an 8s keyframe animation. The animated, border fx details are included in the copy-paste CSS.
Usage
<button class="btn-chrono-ring">GO</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.
Aurora Studio kit
Aurora Studio kit
Aurora Studio kit
Aurora Studio kit
Aurora Studio kit
Aurora Studio 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