Разработка UI-компонентов на Bitrix24 UI Kit (React)

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка UI-компонентов на Bitrix24 UI Kit (React)
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка UI-компонентов на Bitrix24 UI Kit (React)

Приложения для Битрикс24 портала, которые выглядят «чужеродно» — отдельная проблема. Свои шрифты, нестандартные кнопки, самодельные модалки — пользователи воспринимают такие приложения как внешний сервис, а не часть рабочего инструмента. Bitrix24 UI Kit решает эту задачу: набор React-компонентов, которые точно воспроизводят визуальный язык Битрикс24, включая поддержку тёмной темы и RTL-локалей.

Структура Bitrix24 UI Kit

Официальный пакет @bitrix24/b24jssdk содержит TypeScript SDK для REST API. UI-компоненты в экосистеме Битрикс24 поставляются двумя способами: через BX.UI.* в битрикс-шаблонах (vanilla JS) и через React-компоненты в @bitrix24/b24ui для приложений.

Набор базовых компонентов:

import {
  Button, ButtonSize, ButtonColor,
  Input, InputSize,
  Select, SelectSize,
  Table, TableColumn,
  Badge, BadgeColor,
  Modal, ModalSize,
  Notification, NotificationType,
  Avatar, AvatarSize,
  Chip, ChipColor,
} from '@bitrix24/b24ui';

Компоненты используют CSS-переменные из темы портала. При смене темы (светлая/тёмная) все компоненты обновляются автоматически без дополнительной логики.

Настройка и инициализация темы

import { B24ThemeProvider, useB24Theme } from '@bitrix24/b24ui';

function App() {
  return (
    <B24ThemeProvider>
      <AppContent />
    </B24ThemeProvider>
  );
}

// Хук для работы с темой
function ThemeAwareComponent() {
  const { theme, isDark } = useB24Theme();
  // theme: 'light' | 'dark' | 'auto'
  return <div className={isDark ? 'dark-specific' : ''}> ... </div>;
}

Тема синхронизируется с порталом через BX24.getTheme() и событие изменения темы — пользователь переключает тему в Битрикс24 и приложение отражает изменение мгновенно.

Кейс: дашборд KPI для отдела продаж

Приложение отображает KPI менеджеров в реальном времени: количество звонков, встреч, сделок в работе, конверсия по воронке. Данные — из CRM Битрикс24 через REST API + собственный агрегационный бэкенд.

Задача: интерфейс должен выглядеть как часть Битрикс24, поддерживать обе темы, быть понятен без обучения.

Использованные компоненты UI Kit: Table для таблицы менеджеров, Badge для статусов (выполнено/нет), Avatar для фото сотрудников, Select для выбора периода, Button для экспорта.

Кастомные компоненты поверх UI Kit: прогресс-бар KPI (CSS-переменные UI Kit для цветов), спарклайн-графики (Recharts со стилизацией под палитру Битрикс24), таблица рейтинга с drag-and-drop сортировкой колонок.

Результат: пользователи не воспринимают дашборд как «стороннее приложение» — интерфейс органично вписан в рабочее пространство портала.

Кастомизация и расширение компонентов

UI Kit не охватывает все сценарии. Для кастомных компонентов — использование дизайн-токенов из системы через CSS-переменные:

.custom-card {
  background:    var(--b24-color-base-3);
  border:        1px solid var(--b24-color-base-50);
  border-radius: var(--b24-radius-md);
  color:         var(--b24-color-base-90);
  font-family:   var(--b24-font-family);
}

Список токенов доступен в документации UI Kit. Использование токенов вместо хардкоденных значений — обязательное условие для корректной работы со всеми темами.

Компонент таблицы с сортировкой

const columns: TableColumn<Manager>[] = [
  {
    key:    'name',
    title:  'Менеджер',
    render: (row) => (
      <div className="flex items-center gap-2">
        <Avatar src={row.photo} name={row.name} size={AvatarSize.XS} />
        <span>{row.name}</span>
      </div>
    ),
    sortable: true,
  },
  {
    key:    'deals',
    title:  'Сделок',
    render: (row) => (
      <Badge
        color={row.deals >= row.target ? BadgeColor.Success : BadgeColor.Warning}
        label={`${row.deals} / ${row.target}`}
      />
    ),
    sortable: true,
  },
];

<Table
  columns={columns}
  rows={managersData}
  onSort={(key, direction) => setSortConfig({ key, direction })}
  loading={isLoading}
/>

Состав работ

  • Аудит требований к интерфейсу, составление компонентного плана
  • Настройка проекта: @bitrix24/b24jssdk, @bitrix24/b24ui, TypeScript
  • Разработка компонентов: базовые (из UI Kit) + кастомные (поверх дизайн-токенов)
  • Поддержка тёмной темы, тестирование в обоих вариантах
  • Документирование кастомных компонентов для команды поддержки

Сроки: набор базовых экранов на UI Kit — 1–2 недели. Кастомная дизайн-система поверх UI Kit токенов — от 3 недель.