Розробка React-сайтів на Chakra UI: доступні компоненти та темна тема

Інтеграція сторонньої дизайн-системи в React-застосунок часто призводить до різнорідних стилів, проблем із темною темою та недоступних елементів. Ми розробляємо сайти на Chakra UI — системі, де кожен компонент відповідає стандартам доступності, а темна тема налаштовується через семантичні токени. Наша команда реалізує проєкт під ключ, забезпечуючи швидку адаптивну верстку та подальшу підтримку.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка React-сайтів на Chakra UI: доступні компоненти та темна тема
Простий
~2-3 дні
Часті запитання

Розробка React-сайтів на Chakra UI: доступні компоненти та темна тема

Ви інтегруєте сторонню дизайн-систему в React-застосунок, а на виході отримуєте різнорідні HTML/CSS-класи, проблему з темною темою та недоступні інтерактивні елементи. Ми стикалися з цим на десятках проєктів, тому для клієнтів з фокусом на доступність та швидку верстку пропонуємо Chakra UI. За 5+ років у веб-розробці та 50+ проєктах на React ми виробили підхід, при якому верстка посадкової сторінки займає 1-2 дні, а не тиждень. Економія бюджету на верстці досягає 30% за рахунок готових компонентів — це підтверджується відгуками клієнтів.

Chakra UI — не чергова UI-бібліотека, а система, де кожен компонент з коробки відповідає WCAG 2.1. Style props API дозволяє керувати CSS прямо в JSX, відмовляючись від зайвих файлів. Вбудована темна тема будується на семантичних токенах, які автоматично перемикають кольори без перезбирання. Наприклад, в одному проєкті ми замінили 500 рядків CSS-змінних на 20 рядків токенів — темна тема запрацювала без жодного багу.

Як Chakra UI вирішує проблему темної теми?

До появи Chakra UI розробники зберігали колірні змінні в CSS і вручну змінювали їх через [data-theme="dark"]. У Chakra v3 темна тема — це вбудована фіча: в описі токена через _dark задається колір для темного режиму. Провайдер автоматично підхоплює атрибут data-theme на <html> і застосовує правильну палітру. Приклад налаштування:

import { createSystem, defaultConfig, defineConfig } from '@chakra-ui/react';

const customConfig = defineConfig({
  theme: {
    tokens: {
      colors: {
        brand: {
          500: { value: '#3b82f6' },
        },
      },
    },
    semanticTokens: {
      colors: {
        'bg.canvas': {
          value: { base: '#f9fafb', _dark: '#0f172a' },
        },
      },
    },
  },
});

const system = createSystem(defaultConfig, customConfig);

export default system;

Тепер компонент Box bg="bg.canvas" сам адаптується до теми. Жодних медіа-фіч, жодних перемикань класів. Вартість підтримки такої теми знижується в 2-3 рази порівняно з кастомними рішеннями.

Чому Chakra UI швидше за Material-UI для MVP?

Параметр Chakra UI (v3) Material-UI (MUI)
Style props Так, вбудовані Через sx-prop, але більше boilerplate
Темна тема Токени + _dark, 5 хвилин Теми через ThemeProvider, ~15 хвилин
Accessibility WCAG AA з коробки Частково, потребує доопрацювань
Розмір бандла ~25 kB gzip ~40 kB gzip
Адаптивність Об'єкти в props: w={{ base: 'full', md: '50%' }} Через useMediaQuery або breakpoints у sx

Chakra UI виграє за швидкістю прототипування: в 2-3 рази менше коду для адаптивної grid-сітки та форм. Додаткова економія — вбудована система токенів, яка виключає дублювання стилів.

Порівняння Chakra UI v2 та v3

Особливість Chakra UI v2 Chakra UI v3
Провайдер ChakraProvider + ColorModeScript Єдиний ChakraProvider з конфігом
Токени CSS-змінні + useColorMode Семантичні токени з _dark
Style props Через chakra factory Вбудовані в усі компоненти
Розмір ~30 kB gzip ~25 kB gzip

Міграція з v2 на v3 потребує правки провайдера та заміни useColorMode на _dark токени, але окупається за рахунок спрощеної архітектури.

Як налаштувати тему Chakra UI за 3 кроки?

  1. Встановіть пакет: npm install @chakra-ui/react @emotion/react.
  2. Створіть конфігурацію в окремому файлі (як у прикладі вище), визначте базові токени та семантичні токени для темної теми.
  3. Підключіть провайдер в корені застосунку:
import { ChakraProvider } from '@chakra-ui/react';
import system from './theme/system';

function Root() {
  return (
    <ChakraProvider value={system}>
      <App />
    </ChakraProvider>
  );
}

Після цього в усіх компонентах доступні style props та автоматична підтримка темної теми.

Верстка hero-секції з style props

Style props — основа прискорення: адаптивний padding задається об'єктом py={{ base: '12', md: '20', lg: '28' }}. Вся секція пишеться в одному JSX-блоці:

import { Box, Flex, Heading, Text, Button, Stack } from '@chakra-ui/react';

const Hero = () => (
  <Box as="section" bg="bg.canvas" py={{ base: '12', md: '20' }}>
    <Flex maxW="7xl" mx="auto" direction={{ base: 'column', lg: 'row' }}>
      <Box flex="1">
        <Heading as="h1" size={{ base: '2xl', lg: '4xl' }} color="text.primary">
          Заголовок продукту
        </Heading>
        <Text fontSize={{ base: 'md', lg: 'lg' }} color="text.muted" mb="8">
          Опис цінності
        </Text>
        <Button colorPalette="brand" size="lg">Почати безкоштовно</Button>
      </Box>
    </Flex>
  </Box>
);

Сітка карток та форма з валідацією

Для карток використовуємо SimpleGrid, який автоматично змінює колонки залежно від breakpoint. Форма — стандартний Field + Input, валідація через React Hook Form та Zod:

import { Field, Input, Button, Stack } from '@chakra-ui/react';
import { useForm } from 'react-hook-form';
import { z } from 'zod';

const schema = z.object({
  name: z.string().min(2)
});

const Form = () => {
  const { register, handleSubmit, formState: { errors } } = useForm({
    resolver: zodResolver(schema)
  });

  return (
    <Stack gap="5">
      <Field.Root invalid={!!errors.name}>
        <Field.Label>Ім'я</Field.Label>
        <Input {...register('name')} />
        {errors.name && <Field.ErrorText>{errors.name.message}</Field.ErrorText>}
      </Field.Root>
      <Button type="submit">Відправити</Button>
    </Stack>
  );
};

Колірний режим через семантичні токени

У Chakra v3 не потрібно змінювати CSS — достатньо хука useColorMode. Приклад кнопки для перемикання описано вище. Для економії місця та зниження надмірності коду ми часто виносимо логіку перемикання в окремий хук. Гарантуємо, що кожен компонент пройде тестування на Core Web Vitals: оптимізація бандла, lazy-loading іконок, виключення N+1 запитів.

Поширені помилки при верстці на Chakra UI
  • Використання !important — перевизначення токенів через css prop ламає систему.
  • Відсутність _dark в семантичних токенах — темна тема не відображається.
  • Некоректний breakpoint base — без нього адаптивність ламається на мобільних.
  • Ігнорування as prop — семантична верстка порушується.
  • Пряме маніпулювання DOM замість використання state — компоненти Chakra UI реактивні.

Що входить в роботу з верстки на Chakra UI?

Ми надаємо не лише готовий код, але й документацію по токенах, компонентах та кольоровій схемі. До складу deliverables входять:

  • Налаштована тема Chakra UI з семантичними кольорами та шрифтами
  • Всі сторінки проєкту, адаптовані під мобільні та десктопні Breakpoints
  • Форми з валідацією (React Hook Form + Zod)
  • Документація по стилях (Storybook або Markdown)
  • Доступ до репозиторію з історією комітів
  • Навчання команди (1-2 години) по style props та налаштуванню теми

Зв'яжіться з нами — ми запропонуємо рішення під ключ з Chakra UI. Економія бюджету на верстці досягає 30% за рахунок готових компонентів та відсутності кастомних CSS-класів.

Терміни та вартість

Орієнтовні терміни:

  • Налаштування системи та теми — 3-4 години
  • Посадкова сторінка — 1-2 дні
  • Продуктовий сайт (5+ розділів, форма, дашборд) — 4-7 днів

Підсумкова вартість розраховується індивідуально. Замовте консультацію, щоб отримати точну оцінку. У кожного клієнта — єдиний менеджер та повний технічний контроль (сертифіковані спеціалісти, 5+ років досвіду з React).

У вас проєкт на React і потрібна верстка з темною темою та доступністю? Замовте рішення під ключ з Chakra UI на нашому сайті.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060