Библиотека Chakra UI используется в приложениях на базе React. Перед установкой необходимо наличие установленной среды Node.js и менеджера пакетов npm или yarn. Chakra UI распространяется как набор npm-пакетов, которые подключаются к проекту через систему управления зависимостями.
Минимальные требования к проекту:
create-react-app, Vite, Next.js
или аналогичный инструмент)После создания проекта структура каталога обычно содержит:
project/
├─ node_modules/
├─ public/
├─ src/
├─ package.json
└─ package-lock.json или yarn.lock
Файл package.json хранит список зависимостей, включая
Chakra UI.
Менеджер пакетов npm входит в стандартную поставку Node.js. Установка выполняется из корневой директории проекта.
Основная команда установки:
npm install @chakra-ui/react @emotion/react @emotion/styled framer-motion
После выполнения команды в проект добавляются несколько зависимостей.
@chakra-ui/react — главный пакет библиотеки. Он
содержит:
Для корректной работы Chakra UI требуются дополнительные библиотеки:
@emotion/react Библиотека CSS-in-JS, обеспечивающая динамическое создание стилей.
@emotion/styled Инструмент для создания стилизованных компонентов.
framer-motion Библиотека анимаций, используемая Chakra UI для реализации анимированных переходов компонентов.
После установки список зависимостей в package.json будет
выглядеть примерно так:
{
"dependencies": {
"@chakra-ui/react": "^2.x.x",
"@emotion/react": "^11.x.x",
"@emotion/styled": "^11.x.x",
"framer-motion": "^10.x.x"
}
}
npm автоматически создаёт каталог node_modules, в
который устанавливаются все необходимые пакеты.
Yarn — альтернативный менеджер пакетов для Node.js, отличающийся более быстрым разрешением зависимостей и детерминированными установками.
Если Yarn ещё не установлен, его можно добавить глобально:
npm install -g yarn
Установка Chakra UI через Yarn выполняется командой:
yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion
После установки:
package.jsonyarn.lock, фиксирующий точные версии
пакетовnode_modulesПример фрагмента package.json после установки через
Yarn:
{
"dependencies": {
"@chakra-ui/react": "^2.x.x",
"@emotion/react": "^11.x.x",
"@emotion/styled": "^11.x.x",
"framer-motion": "^10.x.x"
}
}
Проверка установки выполняется несколькими способами.
В файле package.json должны присутствовать
зависимости:
@chakra-ui/react
@emotion/react
@emotion/styled
framer-motion
В каталоге node_modules должны появиться директории:
node_modules/@chakra-ui
node_modules/@emotion
node_modules/framer-motion
npm:
npm list @chakra-ui/react
yarn:
yarn list @chakra-ui/react
Команды выводят установленную версию пакета.
После установки библиотеку необходимо подключить к React-приложению. Chakra UI использует специальный провайдер — ChakraProvider, который обеспечивает работу темы и контекста компонентов.
Импорт выполняется из основного пакета:
import { ChakraProvider } from "@chakra-ui/react"
Провайдер добавляется на верхний уровень приложения.
Пример для index.js или main.jsx:
import React from "react"
import ReactDOM from "react-dom/client"
import App from "./App"
import { ChakraProvider } from "@chakra-ui/react"
const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(
<ChakraProvider>
<App />
</ChakraProvider>
)
ChakraProvider выполняет несколько функций:
Chakra UI включает встроенный механизм нормализации стилей браузера.
Он активируется автоматически при использовании
ChakraProvider.
Встроенный CSS Reset:
Дополнительной настройки обычно не требуется.
После установки компоненты Chakra UI импортируются напрямую из основного пакета.
Пример:
import { Button } from "@chakra-ui/react"
Использование компонента:
function App() {
return <Button colorScheme="blue">Click</Button>
}
Chakra UI предоставляет десятки компонентов интерфейса:
Все они становятся доступными сразу после установки библиотеки.
В экосистеме Chakra UI существуют дополнительные пакеты. Их можно устанавливать отдельно при необходимости.
Пакет иконок:
npm install @chakra-ui/icons
или
yarn add @chakra-ui/icons
Использование:
import { SearchIcon } from "@chakra-ui/icons"
Для генерации шаблонов компонентов может использоваться CLI Chakra UI.
Установка:
npm install @chakra-ui/cli
или
yarn add @chakra-ui/cli
CLI упрощает работу с:
Chakra UI совместима с большинством современных инструментов сборки.
Установка полностью аналогична стандартной:
npm install @chakra-ui/react @emotion/react @emotion/styled framer-motion
Vite поддерживает Chakra UI без дополнительной конфигурации.
Установка:
npm install @chakra-ui/react @emotion/react @emotion/styled framer-motion
В проектах Next.js установка выполняется той же командой. Chakra UI корректно работает как с клиентским, так и серверным рендерингом.
Для обновления до последней версии используются стандартные команды менеджеров пакетов.
npm:
npm update @chakra-ui/react
или
npm install @chakra-ui/react@latest
yarn:
yarn upgrade @chakra-ui/react
Обновление может затронуть и связанные зависимости:
Поэтому иногда выполняют обновление всех пакетов одновременно.
Удаление выполняется через менеджер пакетов.
npm:
npm uninstall @chakra-ui/react @emotion/react @emotion/styled framer-motion
yarn:
yarn remove @chakra-ui/react @emotion/react @emotion/styled framer-motion
После удаления зависимости исчезают из package.json, а
пакеты удаляются из node_modules.
Chakra UI требует современную версию React (обычно 18+). При использовании устаревших версий возможны ошибки зависимостей.
Проверка версии React:
npm list react
Иногда npm сообщает о несоответствии peer-зависимостей. В таких случаях рекомендуется:
node_modulesrm -rf node_modules
npm install
Иногда установка нарушается из-за повреждённого кэша.
Очистка:
npm cache clean --force
После очистки выполняется повторная установка зависимостей.
После установки и подключения ChakraProvider можно
создать простой интерфейсный элемент для проверки работы библиотеки.
import { Button } from "@chakra-ui/react"
function App() {
return (
<Button colorScheme="teal">
Chakra UI работает
</Button>
)
}
export default App
При запуске приложения компонент отобразится со встроенными стилями Chakra UI, что подтверждает успешную установку библиотеки и корректную работу зависимостей.