Next Starter Logo
Components

UI Components

The 30 shadcn/ui components pre-installed in Next Starter: new-york style on Radix primitives, styled with Tailwind CSS v4 and themed with CSS variables.

The UI layer

Next Starter uses shadcn/ui in the new-york style. shadcn/ui is not an npm dependency. The components are copied straight into components/ui/, so you own the source and edit it like any other file in the project.

Here is what each part does:

  • Radix UI primitives handle behavior and accessibility: focus, keyboard navigation, and ARIA roles. Each component imports from the unified radix-ui package, for example import { Dialog as DialogPrimitive } from "radix-ui".
  • Tailwind CSS v4 handles styling. The cn() helper in lib/utils.ts merges class names (it combines clsx and tailwind-merge) so conflicting classes resolve correctly.
  • CSS variables like --primary and --background live in app/globals.css and drive every color. This is why light/dark mode and rebrands work without touching component files. To change the brand color, radius, or fonts, see Customizing the Theme.

Configuration lives in components.json at the project root: style: new-york, baseColor: neutral, cssVariables: true, rsc: true, and icons from lucide.

Included components

These 30 components ship in components/ui/:

ComponentFilePurpose
Accordionaccordion.tsxCollapsible content sections
Alertalert.tsxInline status messages
Alert Dialogalert-dialog.tsxConfirmation dialogs
Avataravatar.tsxUser profile images with fallback
Avatar Uploadavatar-upload.tsxProfile-picture upload with live preview
Badgebadge.tsxSmall status labels
Breadcrumbbreadcrumb.tsxNavigation trail
Buttonbutton.tsxPrimary interactive element
Cardcard.tsxContent container with header/footer
Data Tabledata-table.tsxSortable, searchable table with server-side pagination
Dialogdialog.tsxModal overlay
Dropdown Menudropdown-menu.tsxContextual action menus
Fieldfield.tsxComposable form primitive (used with React Hook Form Controller)
Inputinput.tsxText input field
Input OTPinput-otp.tsxOne-time-password code input (used for email OTP / verification)
Labellabel.tsxAccessible form labels
Navigation Menunavigation-menu.tsxTop-level navigation
Selectselect.tsxDropdown selection
Separatorseparator.tsxVisual divider
Sheetsheet.tsxSlide-in panel
Sidebarsidebar.tsxFull sidebar primitive
Skeletonskeleton.tsxLoading placeholder
Sonnersonner.tsxToast notification wrapper
Spinnerspinner.tsxLoading indicator
Switchswitch.tsxToggle control
Tabletable.tsxStructured data display
Textareatextarea.tsxMulti-line text input
Toggletoggle.tsxOn/off button
Toggle Grouptoggle-group.tsxGroup of related toggle buttons
Tooltiptooltip.tsxHover hint overlay

Customizing and adding components

Edit any component directly in components/ui/. You own the source, so change it freely. To restyle one component, adjust its Tailwind classes. To recolor the whole app at once, edit the CSS variables in app/globals.css (see Customizing the Theme).

Add a component that is not here yet with the shadcn CLI:

pnpm dlx shadcn@latest add calendar

This copies the source into components/ui/calendar.tsx and installs any packages it needs. Browse the full catalog at ui.shadcn.com/docs/components.

On this page