๐ŸŽฏ Nexus teaches Next.js from foundations to professional systemsโ€ขโšก App Router, React 19, and Tailwind v4 in one learning pathโ€ข๐Ÿงฉ Inspect real components, layouts, and reusable patternsโ€ข๐Ÿ› ๏ธ Build production discipline, not just polished demosโ€ข๐Ÿ“š Tracks, references, and design studies in one placeโ€ข๐ŸŽฏ Nexus teaches Next.js from foundations to professional systemsโ€ขโšก App Router, React 19, and Tailwind v4 in one learning pathโ€ข๐Ÿงฉ Inspect real components, layouts, and reusable patternsโ€ข๐Ÿ› ๏ธ Build production discipline, not just polished demosโ€ข๐Ÿ“š Tracks, references, and design studies in one placeโ€ข๐ŸŽฏ Nexus teaches Next.js from foundations to professional systemsโ€ขโšก App Router, React 19, and Tailwind v4 in one learning pathโ€ข๐Ÿงฉ Inspect real components, layouts, and reusable patternsโ€ข๐Ÿ› ๏ธ Build production discipline, not just polished demosโ€ข๐Ÿ“š Tracks, references, and design studies in one placeโ€ข๐ŸŽฏ Nexus teaches Next.js from foundations to professional systemsโ€ขโšก App Router, React 19, and Tailwind v4 in one learning pathโ€ข๐Ÿงฉ Inspect real components, layouts, and reusable patternsโ€ข๐Ÿ› ๏ธ Build production discipline, not just polished demosโ€ข๐Ÿ“š Tracks, references, and design studies in one placeโ€ข
Forms

Radio Group

Accessible radio button group using fieldset and legend, with vertical and horizontal orientations

Quick Preview

Select a learning track

Installation

// Copy the RadioGroup component from
src/components/forms/RadioGroup.tsx

Usage

'use client'
import { useState } from 'react'
import { RadioGroup } from '@/components/forms/RadioGroup'
const tracks = [
{ value: 'foundation', label: 'Foundation' },
{ value: 'production', label: 'Production' },
{ value: 'systems', label: 'Professional Systems' },
]
export default function Example() {
const [track, setTrack] = useState('production')
return (
<RadioGroup
name="track"
options={tracks}
value={track}
onValueChange={setTrack}
legend="Select a learning track"
/>
)
}

Examples

With Description

Study mode

Horizontal Orientation

Appearance

Sizes

sm

md

lg

Disabled

Group disabled

Option disabled

Prompt Preview

Copy a prompt that recreates this UI

Paste this into your AI coding assistant to generate code that closely matches the reference, including color, size, shape, typography, spacing, and polish.

Copy-ready AI prompt

Starts from the current visual reference and project constraints.

Tweak only product-specific copy or data after the first generation pass.

Props

PropTypeDefaultDescription
options*RadioOption[]-Array of { value, label, description?, disabled? }
valuestring-Currently selected value
onValueChange(value: string) => void-Selection change handler
name*string-HTML name for the radio group
legendstring-Accessible group label (fieldset legend)
orientation"vertical" | "horizontal""vertical"Layout orientation
size"sm" | "md" | "lg""md"Radio and label size
disabledbooleanfalseDisable the entire group

Features

  • โœ“fieldset + legend for screen readers
  • โœ“Vertical and horizontal orientations
  • โœ“Per-option disabled state
  • โœ“Three sizes
  • โœ“Keyboard navigable
  • โœ“Client Component