Все компоненты

MotionSheet

Нижняя или верхняя шторка либо боковая панель с точками остановки, взмахами и передачей прокрутки.

ВебReact NativeОверлеи

Попробуйте

Подготовка примера…

Кратчайшее использование

Filters.jsx
<MotionSheet open={open} onOpenChange={setOpen} detents={[0.45, 0.92]}>
  <FilterList />
</MotionSheet>;

Что он берёт на себя

  • Следует за перетаскиванием, сопротивляется за самой большой точкой остановки и останавливается с учётом скорости отпускания; взмах сдвигает на одну точку или закрывает.
  • Касания передаются прокручиваемому содержимому: при потягивании вниз содержимое сначала прокручивается в начало, а потом двигается шторка.
  • Точки остановки — доли экрана, пиксели или 'content' для естественного размера содержимого.
  • Модальная шторка удерживает фокус внутри, делает страницу неактивной и закрывается по Escape или нажатию на фон.

Для чего подходит

  • Панель фильтров.
  • Меню «Поделиться».
  • Навигационная панель с side="start".

Props

ПропТипПо умолчаниюОписание
openbooleanfalseПоказана ли шторка.
onOpenChange(open) => voidВыполняется с false, когда шторку закрывают перетаскиванием, нажатием или Escape.
detents(number | 'content')[]['content']Размеры остановки: доля экрана, пиксели или 'content'.
detentnumberУправляемый индекс точки остановки.
defaultDetentnumber0Индекс точки остановки при открытии без detent.
onDetentChange(index) => voidВыполняется с индексом точки остановки, на которой остановилась шторка.
side'bottom' | 'top' | 'start' | 'end''bottom'Край, с которого появляется шторка.
modalbooleantrueДобавляет фон, удерживает фокус внутри и делает страницу неактивной.
dismissiblebooleantrueПеретаскивание за самую маленькую точку остановки, фон и Escape закрывают её.
backdropClassNamestringКласс для фона; backdropStyle задаёт его встроенный стиль.
transitionTransitionspringКривая timing { duration, easing } или пружина { tempo: 'spring', spring }. При прерывании пружины сохраняют инерцию.

Остальные props передаются отрендеренному элементу, поэтому className, style и обработчики событий работают как обычно.

Веб и React Native

В вебе модальная шторка — нативный dialog; панель — flex-колонка, которую вы стилизуете через className.

В React Native она рендерится в прозрачном Modal и закрывается кнопкой «Назад». Внутренние ScrollView сохраняют свои жесты, поэтому шторку тянут за ручку, заголовок и другие статичные области.

Используется в примерах

Поиск

Начните вводить, чтобы искать в документации.