
A vertically stacked set of interactive headings that each reveal a section of content.

shadcn/ui brought to React Native: copy-and-paste components and auth blocks for iOS, Android, and web, styled with Nativewind or Uniwind.
39 published items
39 published items

A vertically stacked set of interactive headings that each reveal a section of content.


A modal dialog that interrupts the user with important content and expects a response.

An image element with a fallback for representing the user.

Displays a badge or a component that looks like a badge.

Displays a button or a component that looks like a button.


A control that allows the user to toggle between checked and not checked.

An interactive component that expands or collapses a panel of content.

Displays a menu of actions or functions, opened by a right click on web or a long press on native.

A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.

Displays a menu to the user — such as a set of actions or functions — triggered by a button.

A form that sends a password reset OTP to the user's email address.

For sighted users to preview content available behind a link.
A wrapper that renders any Lucide icon with utility classes and inherits the surrounding text color.

Displays a form input field or a component that looks like an input field.

Renders an accessible label associated with controls.

A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands.
A view that animates with Reanimated on iOS and Android and renders its children unchanged on web.

Displays rich content in a portal, triggered by a button.

Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.

A form for resetting a password with an OTP sent via email.

Displays a list of options for the user to pick from—triggered by a button.

Visually or semantically separates content.

A form for signing in using email and password or social providers.

A form for creating an account with email and password or social providers.

Use to show a placeholder while content is loading.

A set of buttons for authenticating through social providers.

A control that allows the user to toggle between on and off.

A set of layered sections of content—known as tab panels—that are displayed one at a time.


Displays a form textarea or a component that looks like a textarea.

A two-state button that can be either on or off.

A set of two-state buttons that can be toggled on or off.

A popup that displays information related to an element when the element receives keyboard focus, the mouse hovers over it, or when it is pressed.

A popover menu presenting options and actions for the current user.

A form for verifying an email address with an OTP sent via email.
Built with familiar tools and libraries, it follows consistent styling, structure, and naming conventions, letting you use your favorite design system to create beautiful universal apps. Every item is a file you own: add it, then change it.
PortalHost mounted at the root of the app.Text can't inherit styles from a parent class. Each element must be styled directly. A small TextClassContext workaround lets Text inherit from components like Button.data-* attributes, so variants rely on props or state on native platforms.react-native-reanimated for smooth, native performance.<Icon as={LeftArrowIcon} />.DropdownMenu, can't be controlled with open or onOpenChange props. Instead, a ref manages open and close behavior after layout calculation.React Native Reusables aims to stay true to the spirit of shadcn/ui while adapting it to the unique constraints of mobile and universal development.
New project: npx @react-native-reusables/cli@latest init creates an Expo app with everything configured. Existing project: add any item and follow the guide that comes with it.