Open any group, copy the HTML into your form and the CSS into your stylesheet. Every option is a real <input type="radio"> inside its <label>, and the group shares one name, so arrow keys move the selection and the form submits the chosen value.
Give each group on a page its own name. To change the color, set --rad-color; to change the size, set --rad-size. Sliding indicators and dots follow the checked input with :checked and sibling or :has() selectors.
Every snippet keeps a visible :focus-visible ring and ships with a prefers-reduced-motion rule that moves the selection instantly for people who asked their OS for less motion.