Vibary.ai
← Vibe Coding

Radio Select Dot

The chosen dot springs out of its ring while the previous one lets go a little faster.

formsminimalsubtleinteraction · finite · starter · ~0.2s
Interactive · click to play
Variant

The animated component in this preview is rendered from the canonical file shown here. The surrounding demo shell only provides context and is not part of the copied code.

242 lines · react + motion only
import { useId, useState } from "react";
import { motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Radio Select Dot
 *
 * The chosen option's dot springs out of the center of its ring while
 * the previous one lets go a little faster, so the handover has a

About this pattern

A single-choice group where the handover has a direction. The arriving dot is a spring and the leaving one is a shorter eased tween, so the eye is pulled toward the new choice instead of watching two markers trade places at the same rate. The chosen row also tints, because a 4mm dot is not enough to carry the state across a whole form. Arrow keys move and select the way a radio group does everywhere else, and the group is one stop in the page's tab order rather than three.

Shipping optionsPlan chooserPayment methodSurvey question

Where it shows up

Screens we drew to show where this motion usually sits. Illustrations, not captures of any product.

  • 10:15
    Payment
    Card number4242 4242 4242 4242Name on cardN. Bergström
    Expiry04 / 28CVC•••
    Subtotal$156.00Shipping$0.00Tax$13.65Total$169.65
    Pay $169.65
    Checkout

    Whole-row selection with the marker as confirmation, not as the target.

Related patterns