# Radix UI
Unstyled, accessible, open source React primitives for high-quality web apps and design systems.
{
Radix Primitives is a low-level UI component library with a focus on accessibility, customization and developer experience. You can use
these components either as the base layer of your design system, or adopt them incrementally.
}
View Radix UI Docs
At minimum, we recommend you read the following documentation before you start this integration guide.
- [Introduction](https://www.radix-ui.com/primitives/docs/overview/introduction)
- [Getting Started](https://www.radix-ui.com/primitives/docs/overview/getting-started)
- [Styling](https://www.radix-ui.com/primitives/docs/guides/styling)
## Requirements
| Tooling | Minimum Supported |
| ------------------------------------- | ----------------- |
| [React](https://react.dev/) | 18 |
| [Skeleton](https://skeleton.dev) | 3 |
| [Radix UI](https://www.radix-ui.com/) | 1 |
| [Tailwind](https://tailwindcss.com/) | 4 |
## Introduction
In this guide we'll implement the following Radix UI `` component. This will showcase the bare minimum requirements for integrating Skeleton with Radix UI.
Toggle Group Documentation
## Get Started
### Create a Project
To begin, we'll setup a new Vite project with React v19, Skeleton v3, and Tailwind v4.
Setup Vite/React App
### Install Radix Component
Install the Radix UI component package via your package manager of choice.
```console
npm install @radix-ui/react-toggle-group
```
### Component Boilerplate
Create a new component in `/src/components/ToggleGroup/ToggleGroup.tsx` and insert the following markup. This will generate an unstyled version of the component. Note that we have renamed the Radix component to `RadixToggleGroup` to remain semantic and avoid conflict with our own component name.
```tsx
import { type FC } from "react";
import * as RadixToggleGroup from "@radix-ui/react-toggle-group";
interface ToggleGroupProps { /* ... */ }
export const ToggleGroup: FC = () => {
return (
Left
Center
Right
);
};
```
### Add the Component
Finally, let's add our new component to the app in `/src/App.tsx`.
```tsx
import "./App.css";
import { ToggleGroup } from "./components/ToggleGroup/ToggleGroup";
function App() {
return (
);
}
export default App;
```
## Styling
Each Radix UI component accepts a `className` prop. Use this to provide Tailwind and Skeleton utility classes.
### Basic Styles
Styling the `` component.
```tsx
```
Styling each item component. Apply these styles to each button.
```tsx
```
### Complete Example
Below is a complete example showing the entire component with all styles and basic configuration.
```tsx
interface ToggleGroupProps {
/* ... */
}
const [value, setValue] = useState('left');
return (
{
if (value) setValue(value);
}}
aria-label="Text alignment"
>
Left
Center
Right
);
};
```
## Going Further
If you wish to match Skeleton component conventions, view our [contributor component guidelines](/docs/resources/contribute/components).
## Attribution
Radix UI is created and maintained by [WorkOS](https://workos.com/).