Верстка сайту з використанням Headless UI

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Верстка сайту з використанням Headless UI
Середня
~2-3 робочих дні
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Верстка сайту з Headless UI

Headless UI — бібліотека компонентів без стилів від команди Tailwind CSS. Підтримує React та Vue. Простіша за Radix UI за кількістю компонентів, але чудово підходить для проектів на Tailwind CSS — API розроблений для render props та className.

Як Headless UI відрізняється від Radix

Аспект Headless UI Radix UI
Набір компонентів ~15 компонентів 30+ примітивів
Стиль API render props + className data-атрибути
Інтеграція Tailwind Нативна Через плагін
Підтримка Vue Так Ні
Екосистема Tailwind UI (платні шаблони) Shadcn/ui (безплатно)

Установлення

npm install @headlessui/react

Компоненти та приклади

Menu (Dropdown):

import { Menu } from '@headlessui/react';

<Menu as="div" className="relative">
  <Menu.Button className="flex items-center gap-2 px-4 py-2 rounded-md bg-white border">
    Опції <ChevronDownIcon className="w-4 h-4" />
  </Menu.Button>

  <Menu.Items className="absolute right-0 mt-1 w-48 bg-white rounded-md shadow-lg ring-1 ring-black/5 focus:outline-none z-10">
    <Menu.Item>
      {({ active }) => (
        <a href="#" className={`block px-4 py-2 text-sm ${active ? 'bg-blue-50 text-blue-700' : 'text-gray-700'}`}>
          Редагувати
        </a>
      )}
    </Menu.Item>
    <Menu.Item disabled>
      {({ disabled }) => (
        <span className={`block px-4 py-2 text-sm ${disabled ? 'text-gray-400 cursor-not-allowed' : 'text-gray-700'}`}>
          Видалити
        </span>
      )}
    </Menu.Item>
  </Menu.Items>
</Menu>

Disclosure (Accordion):

import { Disclosure } from '@headlessui/react';

<Disclosure>
  {({ open }) => (
    <>
      <Disclosure.Button className="flex justify-between w-full px-4 py-3 font-medium text-left bg-gray-50 hover:bg-gray-100 rounded-lg">
        <span>Питання</span>
        <ChevronUpIcon className={`w-5 h-5 transition-transform ${open ? 'rotate-180' : ''}`} />
      </Disclosure.Button>
      <Disclosure.Panel className="px-4 pt-2 pb-4 text-gray-600">
        Відповідь на питання...
      </Disclosure.Panel>
    </>
  )}
</Disclosure>

Доступність

Як і Radix, Headless UI реалізує WAI-ARIA:

  • Listboxrole="listbox" з aria-selected
  • Comboboxrole="combobox" з aria-autocomplete
  • Dialogrole="dialog" з aria-modal та focus trap
  • Tabsrole="tablist" / role="tab" / role="tabpanel"

Tailwind UI

Офіційні платні шаблони Tailwind UI побудовані на Headless UI. Покупка Tailwind UI ($299) надає ~500+ компонентів, реалізованих із Headless UI + Tailwind CSS — гарна вихідна точка для комерційних проектів.

Transition анімації

Headless UI включає компонент Transition для плавних анімацій:

<Transition
  show={isOpen}
  enter="transition ease-out duration-100"
  enterFrom="transform opacity-0 scale-95"
  enterTo="transform opacity-100 scale-100"
  leave="transition ease-in duration-75"
  leaveFrom="transform opacity-100 scale-100"
  leaveTo="transform opacity-0 scale-95"
>
  <Menu.Items>...</Menu.Items>
</Transition>

Часові рамки

Реалізація набору компонентів (меню, modal, tabs, accordion, select) з Headless UI + Tailwind CSS: 2–4 дні.