This component no longer exists. It was in Pure UI’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-10 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Radio Group
pure-ui/radio-groupRemovedComponent
A customizable radio group component
Install it
npx shadcn@latest add https://raw.githubusercontent.com/MusKRI/pure-ui/main/public/r/radio-group.jsonSource
1"use client";23import { Radio as RadioPrimitive } from "@base-ui/react/radio";4import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";56import { cn } from "@/lib/classes";78interface RadioGroupProps extends RadioGroupPrimitive.Props {9 orientation?: "horizontal" | "vertical";10}1112function RadioGroup({13 className,14 orientation = "vertical",15 ...props16}: RadioGroupProps) {17 return (18 <RadioGroupPrimitive19 className={cn(20 "flex",21 className,22 orientation === "horizontal" && "flex-row flex-wrap gap-4",23 orientation === "vertical" && "flex-col gap-4"24 )}25 data-slot="radio-group"26 {...props}27 />28 );29}3031interface RadioProps extends RadioPrimitive.Root.Props {}3233function Radio({ className, ...props }: RadioProps) {34 return (35 <RadioPrimitive.Root36 data-slot="radio"37 className={cn(38 "relative isolate size-5 rounded-full inline-flex items-center justify-center shrink-0 overflow-hidden outline-hidden focus:outline-hidden cursor-pointer focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",39 "data-disabled:cursor-not-allowed data-disabled:grayscale data-disabled:scale-100 data-disabled:opacity-50",40 "before:content-[''] before:absolute before:rounded-full before:border-2 before:inset-0 before:border-border not-data-disabled:hover:before:bg-secondary/60",41 "after:content-[''] after:absolute after:rounded-full after:inset-0 after:bg-primary data-unchecked:after:scale-50 data-unchecked:after:opacity-0 after:origin-center data-checked:after:scale-100 data-checked:after:opacity-100",42 "before:transition-colors before:will-change-[scale,opacity] transition-transform after:[transition:0.2s_linear] after:[transition-property:opacity,scale,transform]",43 className44 )}45 {...props}46 >47 <RadioPrimitive.Indicator48 className="relative z-10 flex items-center justify-center data-unchecked:opacity-0 data-checked:opacity-100 data-unchecked:scale-60 data-checked:scale-100 bg-primary-foreground size-2 rounded-full text-primary-foreground [transition-property:opacity,scale] duration-200 ease-out pointer-events-none will-change-[opacity,scale]"49 data-slot="radio-indicator"50 />51 </RadioPrimitive.Root>52 );53}5455export { RadioGroup, Radio };
What it pulls in
npm packages
Other registry items
