Вёрстка сайта с использованием 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 — библиотека unstyled компонентов от команды 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-интеграция Нативная Через plugin
Поддержка 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 дня.