Radix UI представляет собой библиотеку компонентов интерфейса для React, поэтому первым шагом является создание проекта на базе React. Наиболее распространённый способ — использование Create React App или Vite, обеспечивающих современную структуру проекта и поддержку модулей ES.
# Создание проекта с Vite
npm create vite@latest my-radix-app --template react
cd my-radix-app
npm install
После инициализации проекта рекомендуется настроить менеджер пакетов для удобного управления зависимостями и скриптами сборки.
Radix UI делится на несколько категорий компонентов, каждая из которых поставляется как отдельный пакет. Для базового использования можно установить следующие пакеты:
npm install @radix-ui/react-accordion @radix-ui/react-dialog @radix-ui/react-dropdown-menu
Важно учитывать, что Radix UI предоставляет низкоуровневые компоненты, отвечающие только за логику и доступность. Для визуальной части необходимо использовать CSS или CSS-in-JS решения.
Radix UI не навязывает конкретного подхода к стилизации, поэтому можно использовать стандартные CSS-модули, Tailwind CSS или styled-components. Пример интеграции с Tailwind CSS:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
В файле tailwind.config.js необходимо указать пути к
файлам с компонентами:
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
theme: {
extend: {},
},
plugins: [],
};
Далее подключить Tailwind в index.css:
@tailwind base;
@tailwind components;
@tailwind utilities;
Если проект использует TypeScript, установка типов и настройка конфигурации обеспечит автодополнение и строгую типизацию:
npm install --save-dev typescript @types/react @types/react-dom
Создаётся файл tsconfig.json:
{
"compilerOptions": {
"target": "ES6",
"module": "ESNext",
"jsx": "react-jsx",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true
},
"include": ["src"]
}
Рекомендуется разделять компоненты по папкам, чтобы логика Radix UI и визуальная часть были изолированы:
src/
components/
Accordion/
Accordion.tsx
Accordion.module.css
Dialog/
Dialog.tsx
Dialog.module.css
App.tsx
index.tsx
Каждый компонент Radix UI оборачивается собственным компонентом React для удобства переиспользования и интеграции с системой стилей.
Radix UI предоставляет контролируемые и неконтролируемые
компоненты. Для работы с состоянием необходимо использовать
хуки React (useState, useReducer) или внешние
менеджеры состояния (Redux, Zustand). Пример контролируемого
Accordion:
import * as Accordion from "@radix-ui/react-accordion";
import { useState } from "react";
function ControlledAccordion() {
const [value, setValue] = useState("item-1");
return (
<Accordion.Root type="single" value={value} onValueCha nge={setValue}>
<Accordion.Item value="item-1">
<Accordion.Header>Раздел 1</Accordion.Header>
<Accordion.Content>Содержимое раздела 1</Accordion.Content>
</Accordion.Item>
<Accordion.Item value="item-2">
<Accordion.Header>Раздел 2</Accordion.Header>
<Accordion.Content>Содержимое раздела 2</Accordion.Content>
</Accordion.Item>
</Accordion.Root>
);
}
Для полноценной работы с Radix UI необходимо настроить следующие инструменты:
@radix-ui/react-* версии, совместимые с
версией React проекта.aria-* атрибуты).Этот набор шагов обеспечивает стабильное окружение для разработки с Radix UI, поддержку TypeScript и удобную интеграцию со стилями, создавая фундамент для масштабируемого и доступного интерфейса.