S SIGIL • HTML CSS JS
localhost / sigil
SELECT OTP VARIANT: Sigil (Component 78 · Seal & Orbit) Quarto (Component 85 · 2x2 Circuit Fold) →
COMPONENT · 78

OTP Verification

Verify your number

Enter the 4-digit code we sent to +1 415 ••• 0142.

Didn't get the code? Resend in 28s
MESSAGE · SIGIL 4190 is your verification code.
Type it, paste it, or let the message fill it — is the good one.
index.html
<!-- one ring, four boxes -->
<span class="code__cursor"></span>

<label class="slot">
  <input inputmode="numeric"
         autocomplete="one-time-code">
  <span class="slot__win">
    <span class="slot__digit"></span>
  </span>
  <svg class="slot__spark">
    <rect pathLength="1"/>
  </svg>
</label>
style.css
/* the dash IS the electron:
one lit segment on a dark track,
chased around the border by dashoffset */
.slot__arc {
  stroke-dasharray: .13 .87;
  stroke-dashoffset: 1;
}

/* the ring glides, not blinks */
.code__cursor {
  transition: transform .46s;
}
app.js
// FLIP: measure every box,
// fly it to the row centre,
// outermost pair leaving first
const dx = cx - (r.left + r.width / 2);

slot.animate([
  { transform: 'none' },
  { transform: `translate(${dx}px) scale(.34)` }
], { 
  delay, 
  duration: 640 
});