Быстрый старт: подключение UI Kit к проекту
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Битрикс24 UI Kit подключается к фронтенду приложения как npm-пакет @bitrix24/b24ui-nuxt. После подключения в проекте доступны Vue-компоненты, дизайн-токены и утилиты Tailwind CSS в стиле Битрикс24.
Подключение отличается в проекте на Nuxt и в проекте на Vue с Vite: различаются состав пакетов и файлы конфигурации. Параметры отдельных компонентов и интерактивные примеры остаются в документации библиотеки.
Что нужно перед началом
Требования пакета @bitrix24/b24ui-nuxt:
- Node.js версии 20.19 и выше в ветке 20 или 22.12 и выше
- Vue версии 3.5 и выше, а для пакета иконок — 3.5.24 и выше
- Tailwind CSS версии 4 — стили библиотеки подключаются в CSS-файл проекта и используют директивы четвертой версии
- Nuxt версии 4.1 и выше, если проект собирается на Nuxt
- менеджер пакетов npm, pnpm, yarn или bun
Команды на странице приведены для npm. Для другого менеджера пакетов замените их равнозначными: pnpm add, yarn add или bun add вместо npm install.
Ключ авторизации и scope для подключения библиотеки не нужны. UI Kit отвечает только за интерфейс и не обращается к Битрикс24. Данные и права приложение получает отдельно — это описано в статье Интеграция UI Kit с REST API и бизнес-логикой.
Как выбрать вариант подключения
|
Что у вас есть |
С чего начать |
|
Проекта еще нет |
Склонируйте заготовку проекта: зависимости и настройки в ней уже прописаны |
|
Проект на Nuxt 4.1 и выше |
|
|
Проект на Vue 3.5 и выше с Vite |
|
|
Фронтенд не на Vue 3.5 и выше |
Подключить библиотеку не получится: компоненты написаны на Vue, а дизайн-токены собираются вместе с проектом |
Nuxt и Vite поддерживаются одинаково — выбор зависит от задачи:
- Nuxt подходит для приложения с несколькими страницами, навигацией и локализацией. Он сразу дает серверный рендеринг, middleware, layout и composables.
- Vite подходит для одностраничного приложения и виджета, который открывается в слайдере Битрикс24. У него короче конфигурация и быстрее запускается dev-сервер.
Заготовка проекта
Заготовка — это готовый проект с UI Kit: в нем уже прописаны зависимости, настроен сборщик и подключены стили библиотеки. Заготовок две, они отличаются только сборщиком — выбирайте по тем же критериям, что и вариант подключения.
Заготовка для проекта на Nuxt:
git clone https://github.com/bitrix24/starter-b24ui.git my-app
cd my-app
npm install
npm run dev
Заготовка для проекта на Vue и Vite:
git clone https://github.com/bitrix24/starter-b24ui-vue.git my-app
cd my-app
npm install
npm run dev
После запуска откройте адрес dev-сервера. Как убедиться, что стили библиотеки применились, описано в разделе Как проверить подключение.
Кроме минимальных заготовок есть заготовки Dashboard — проекты с боковым меню, панелью и рабочей областью: по одной заготовке для Nuxt и для Vue. Их состав описан в статье Компоненты и шаблоны.
Подключение к проекту на Nuxt
-
Установите пакеты:
npm install @bitrix24/b24ui-nuxt @bitrix24/b24icons-vue tailwindcss@bitrix24/b24ui-nuxt— сама библиотека,@bitrix24/b24icons-vue— отдельный пакет с иконками. Если иконки в проекте не нужны, этот пакет можно не устанавливать. Обработку Tailwind CSS берет на себя модуль библиотеки, отдельный плагин Tailwind CSS подключать не нужно. Те же шаги с примерами есть в инструкции по установке для Nuxt. -
Подключите модуль и CSS-файл проекта в
nuxt.config.ts:export default defineNuxtConfig({ modules: ['@bitrix24/b24ui-nuxt'], css: ['~/assets/css/main.css'] }) -
Создайте файл
app/assets/css/main.cssи импортируйте в него Tailwind CSS и стили библиотеки:@import "tailwindcss"; @import "@bitrix24/b24ui-nuxt";Пути в шагах 2 и 3 указывают на один файл: в Nuxt 4 алиас
~ведет в каталогapp. -
Оберните приложение в компонент
B24Appв файлеapp.vue:<template> <B24App> <NuxtPage /> </B24App> </template>B24App— корневой компонент библиотеки. Он задает общие настройки приложения и контейнеры, в которых выводятся уведомления, подсказки и окна поверх страницы. Без этой обертки не работают уведомленияB24Toast, подсказкиB24Tooltipи модальные окна, которые открываются из кода черезuseOverlay. Локализация при этом работает со значениями по умолчанию, переключить язык нельзя.
Модуль регистрирует компоненты автоматически — импортировать их на страницах не нужно.
Подключение к проекту на Vue и Vite
-
Установите пакеты:
npm install @bitrix24/b24ui-nuxt @bitrix24/b24icons-vue tailwindcss vue-routerПакет
@bitrix24/b24ui-nuxtодин для обоих вариантов запуска. В проекте на Vite из него берутся плагин сборки@bitrix24/b24ui-nuxt/viteи плагин Vue@bitrix24/b24ui-nuxt/vue-plugin, модуль Nuxt при этом не используется. Плагин сборки готовит компоненты и стили библиотеки, плагин Vue регистрирует их в приложении.vue-routerв Vite устанавливается отдельно: в зависимостях библиотеки он необязателен, но по умолчанию плагин рендерит ссылки компонентов черезRouterLink. Отключить это поведение можно опциейrouter: falseвvite.config.ts— тогда ссылки станут обычными тегамиa, а маршрутизатор не понадобится. Для проекта на Laravel или AdonisJS с Inertia укажите значениеrouter: 'inertia'. Порядок настройки описан в инструкции по установке. -
Добавьте плагин сборки в
vite.config.ts:import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import bitrix24UIPluginVite from '@bitrix24/b24ui-nuxt/vite' export default defineConfig({ plugins: [ vue(), bitrix24UIPluginVite() ] })Отдельный плагин Tailwind CSS в конфигурацию добавлять не нужно: обработку Tailwind CSS берет на себя
bitrix24UIPluginVite. -
Создайте файл
src/assets/css/main.cssи импортируйте в него Tailwind CSS и стили библиотеки:@import "tailwindcss"; @import "@bitrix24/b24ui-nuxt"; -
Подключите CSS-файл проекта и плагин Vue в
src/main.ts:import './assets/css/main.css' import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' import b24UiPlugin from '@bitrix24/b24ui-nuxt/vue-plugin' import App from './App.vue' const app = createApp(App) const router = createRouter({ routes: [], history: createWebHistory() }) app.use(router) app.use(b24UiPlugin) app.mount('#app') -
Оберните приложение в компонент
B24Appв файлеsrc/App.vue:<template> <B24App> <RouterView /> </B24App> </template> -
Добавьте класс
isolateкорневому контейнеру вindex.html. Класс создает отдельный контекст наложения, чтобыz-indexмодальных окон и всплывающих меню из библиотеки не конфликтовал с остальной разметкой страницы:<div id="app" class="isolate"></div> -
Добавьте файлы типов
components.d.tsиauto-imports.d.tsвincludeфайлаtsconfig.app.jsonи в.gitignore. Плагин сборки регистрирует компоненты и composables автоматически, как модуль в Nuxt, и создает эти файлы сам:{ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "auto-imports.d.ts", "components.d.ts"] } -
В
pathsфайловtsconfig.app.jsonиtsconfig.node.jsonпропишите алиас каталога, который создает плагин. Без алиаса не работает автодополнение темы:{ "compilerOptions": { "paths": { "#build/b24ui": ["./node_modules/.b24ui-nuxt/b24ui"] } } }
Файлы типов появляются только после запуска Vite. Если проверка типов запускается в скрипте сборки раньше самой сборки, на чистом клоне она завершится ошибкой: сначала запустите dev-сервер или сборку, потом проверку типов.
Как проверить подключение
Добавьте на страницу приложения кнопку:
<template>
<B24Button>Кнопка</B24Button>
</template>
Запустите проект командой npm run dev и откройте страницу. Если библиотека подключена, кнопка отрисуется в оформлении Битрикс24.
Если кнопка выглядит как обычная кнопка браузера, стили не подключились. Проверьте импорт @bitrix24/b24ui-nuxt в CSS-файле проекта и путь к этому файлу: в проекте на Nuxt — в nuxt.config.ts, в проекте на Vite — в src/main.ts.
Дизайн-токены и иконки
Дизайн-токены
Токены входят в библиотеку: их подключает строка @import "@bitrix24/b24ui-nuxt" в CSS-файле проекта. Токены задают палитру Битрикс24 со светлой и темной темой, типографику, отступы, размеры и границы. В разметке они доступны как классы Tailwind CSS, писать CSS вручную не нужно. Переопределить значения можно директивой @theme в том же CSS-файле:
@import "tailwindcss";
@import "@bitrix24/b24ui-nuxt";
@theme {
--breakpoint-3xl: 1920px;
}
Токены не подключаются отдельно от сборки проекта: стили библиотеки собирают модуль Nuxt или плагин Vite. Документация библиотеки не описывает способ подключить только токены без Vue — установка описана для Nuxt и для Vue с Vite.
Иконки
Иконки поставляются отдельным пакетом @bitrix24/b24icons-vue. Это Vue-компоненты. Каждая иконка импортируется из отдельного файла:
<script setup>
import RocketIcon from '@bitrix24/b24icons-vue/main/RocketIcon'
</script>
<template>
<B24Button :icon="RocketIcon">Кнопка</B24Button>
</template>
Все иконки и пути импорта опубликованы в каталоге иконок Битрикс24.