⚡ Кратко
📚 Подробно
⚡ Кратко
Части оверлеев, состояния data-open/data-closed
и классы анимаций из tw-animate-css.
Установка
npx shadcn@latest add dialog sheet dropdown-menu tabs popover tooltip sonner
Части компонентов
Компонент Части
DialogDialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose
Sheetте же части плюс сторона появления
DropdownMenuDropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuCheckboxItem
TabsTabsList, TabsTrigger, TabsContent
PopoverPopoverTrigger, PopoverContent
TooltipTooltipTrigger, TooltipContent
Состояния
Атрибут Когда Класс
data-openэлемент открыт data-open:animate-in
data-closedэлемент закрывается data-closed:animate-out
data-highlightedпункт меню под курсором или стрелкой data-highlighted:bg-muted
data-checkedотмеченный пункт data-checked:font-medium
data-sideсторона появления поповера data-[side=top]:slide-in-from-bottom-2
data-selectedактивная вкладка data-selected:bg-background
⚠️ Проверить по документации: набор
data-атрибутов зависит от примитива. У Base UI это data-open,
у Radix — data-[state=open]. Смотрите исходник компонента
в своём проекте.
Классы анимаций (tw-animate-css)
Класс Эффект
animate-in / animate-outбазовый вход и выход
fade-in-0 / fade-out-0прозрачность
zoom-in-95 / zoom-out-95масштаб
slide-in-from-top-2выезд сверху
slide-in-from-rightвыезд справа (панели)
duration-100длительность
Полезные пропсы
Проп Что делает
open / onOpenChangeуправляемое состояние оверлея
defaultOpenоткрыт при первой отрисовке
modalблокировать ли страницу под окном
renderотрисовать триггер своим компонентом
showCloseButtonпоказывать ли крестик в диалоге
Клавиатура
Клавиша Диалог Меню Вкладки
Esc закрыть закрыть —
Tab внутри окна по кругу закрыть и перейти дальше к панели
Стрелки — переход между пунктами переключение вкладок
Enter подтвердить выбрать пункт активировать
Буква — переход к пункту на эту букву —