Radio
adn-ui/radioFreeComponent
An easily stylable radio button component and group.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/radio.jsonSource
1"use client";23import "./radio.css";4import { Radio as BaseRadio } from "@base-ui/react/radio";5import { RadioGroup as BaseRadioGroup } from "@base-ui/react/radio-group";6import type React from "react";7import { cn } from "tailwind-variants";89import { RadioContext, useRadioContext } from "./radio.context";10import { radioVariants, type RadioVariants } from "./radio.variants";1112export type RadioGroupProps = RadioVariants & React.ComponentProps<typeof BaseRadioGroup>;1314export const RadioGroup = ({ children, className, size, ...props }: RadioGroupProps) => {15 const slots = radioVariants({ size });1617 return (18 <RadioContext.Provider value={{ slots }}>19 <BaseRadioGroup className={cn(slots.group(), className)} {...props}>20 {children}21 </BaseRadioGroup>22 </RadioContext.Provider>23 );24};2526export const RadioGroupRoot = RadioGroup;2728export type RadioProps = React.ComponentProps<typeof BaseRadio.Root>;2930export const RadioRoot = ({ className, ...props }: RadioProps) => {31 const { slots } = useRadioContext();32 return <BaseRadio.Root className={cn(slots.root(), className)} {...props} />;33};3435export const RadioItem = RadioRoot;3637export type RadioIndicatorProps = React.ComponentProps<typeof BaseRadio.Indicator>;3839export const RadioIndicator = ({ className, ...props }: RadioIndicatorProps) => {40 const { slots } = useRadioContext();41 return <BaseRadio.Indicator className={cn(slots.indicator(), className)} {...props} />;42};
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
