Усі компоненти

MotionHighlight

Вкладки, сегментовані перемикачі чи навігація з даних — з одним підсвічуванням, що переміщується до вибраного.

ВебReact NativeВибір і сторінки

Спробуйте

Підготовка прикладу…

Найкоротше використання

Tabs.jsx
<MotionHighlight
  items={['Overview', 'Activity', 'Settings']}
  value={tab}
  onValueChange={setTab}
  hover
/>;

Що він бере на себе

  • Одне підсвічування рухається й змінює розмір між елементами; стилізуйте його через highlightClassName.
  • Елементи беруться з items, ключі — з getKey, підписи — з renderItem.
  • hover змушує його йти за вказівником і повертатися до вибраного.
  • Елементи можуть переноситися на кілька рядків, і підсвічування йде за ними.
  • Завантаження шрифтів і зміни розкладки перемірюються автоматично.

Для чого підходить

  • Вкладки сторінки.
  • Панель фільтрів.
  • Сегментований перемикач у формі налаштувань.

Props

ПропТипТиповоОпис
itemsreadonly T[]—обов’язковоВаш масив даних.
valuekey | null—обов’язковоКлюч підсвіченого елемента; null ховає підсвічування.
onValueChange(key, item) => voidВиконується з ключем і елементом під час натискання на елемент.
getKey(item) => string | numberitem.idПовертає унікальний стабільний ключ елемента. Типово — item.id, а для рядків і чисел — сам елемент.
renderItem(item, { selected, index }) => ReactNodeitem.labelМалює елемент; отримує, чи він вибраний.
hoverbooleanfalseІти за вказівником над елементами й повертатися до value, коли він іде (веб).
itemAselement'button'Елемент для кожного пункту.
itemClassNamestringКлас для елемента кожного пункту; itemStyle задає його вбудований стиль.
highlightClassNamestringКлас для підсвічування; highlightStyle задає його вбудований стиль.
transitionTransitionspringКрива timing { duration, easing } чи пружина { tempo: 'spring', spring }. Після переривання пружини зберігають інерцію.

Решта props передається відрендереному елементу, тож className, style і обробники подій працюють як завжди.

Веб і React Native

Кожен елемент типово рендериться як button (itemAs це змінює); натискання викликає onValueChange(key, item).

У React Native елементи — це Pressable; позиція працює на нативному драйвері, а розмір — на вкладеному view, яким керує JavaScript.

Використовується в прикладах

Пошук

Почніть вводити, щоб шукати в документації.