DEV Community

Alex Spinov
Alex Spinov

Posted on

Radix UI Has a Free API That Most Developers Dont Know About

Radix UI provides unstyled, accessible React primitives for building high-quality design systems. It powers shadcn/ui and many production apps.

Dialog

import * as Dialog from "@radix-ui/react-dialog";

<Dialog.Root>
  <Dialog.Trigger>Open</Dialog.Trigger>
  <Dialog.Portal>
    <Dialog.Overlay className="fixed inset-0 bg-black/50" />
    <Dialog.Content className="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-6 rounded-lg">
      <Dialog.Title>Edit Profile</Dialog.Title>
      <Dialog.Description>Make changes to your profile.</Dialog.Description>
      <input placeholder="Name" />
      <Dialog.Close>Save</Dialog.Close>
    </Dialog.Content>
  </Dialog.Portal>
</Dialog.Root>
Enter fullscreen mode Exit fullscreen mode

Dropdown Menu

import * as DropdownMenu from "@radix-ui/react-dropdown-menu";

<DropdownMenu.Root>
  <DropdownMenu.Trigger>Options</DropdownMenu.Trigger>
  <DropdownMenu.Portal>
    <DropdownMenu.Content className="bg-white rounded-md shadow-lg p-1">
      <DropdownMenu.Item className="px-2 py-1 cursor-pointer hover:bg-gray-100">
        Edit
      </DropdownMenu.Item>
      <DropdownMenu.Separator className="h-px bg-gray-200 my-1" />
      <DropdownMenu.Item className="px-2 py-1 text-red-500">
        Delete
      </DropdownMenu.Item>
    </DropdownMenu.Content>
  </DropdownMenu.Portal>
</DropdownMenu.Root>
Enter fullscreen mode Exit fullscreen mode

Tabs

import * as Tabs from "@radix-ui/react-tabs";

<Tabs.Root defaultValue="tab1">
  <Tabs.List>
    <Tabs.Trigger value="tab1">Account</Tabs.Trigger>
    <Tabs.Trigger value="tab2">Settings</Tabs.Trigger>
  </Tabs.List>
  <Tabs.Content value="tab1">Account content</Tabs.Content>
  <Tabs.Content value="tab2">Settings content</Tabs.Content>
</Tabs.Root>
Enter fullscreen mode Exit fullscreen mode

Key Features

  • Fully accessible (WAI-ARIA)
  • Unstyled — bring your own CSS
  • Composable compound components
  • Keyboard navigation built-in
  • Powers shadcn/ui

Need to scrape or monitor web data at scale? Check out my web scraping actors on Apify or email spinov001@gmail.com for custom solutions.

Top comments (0)