VKUI – это набор React-компонентов, с помощью которых можно создавать интерфейсы, внешне неотличимые от наших iOS и Android приложений.
Panel
градиент (#6736)minDateTime
и maxDateTime
(#6767)onRefresh()
на iOS (#6723)hover
/active
у элемента PaginationPageButton
(#6712)break-word
вместо break-all
(#6771)Select
в NativeSelect
(#6663) (#6667)layout
теперь приоритетней значения, вычисленного на основе окружения (#6731)aria-hidden
(#6687)status
или alert
в зависимости от mode
(#6701)sizeY
, если не переопределено через свойство sizeY
, определяется автоматически, если хотя бы одно из свойств AdaptivityProvider
viewWidth
или viewHeight
определено. В автоматическом определения sizeY
теперь также участвует свойство hasPointer
. Раньше его значение определялось методом из библиотеки @vkontakte/vkjs, далее передавалось напрямую в контекст и в логике AdaptivityProvider
не участвовало, что было неправильно (#6489)draggable
не работал автоскролл, если у родителя нет height: 100%
(#6456)readOnly
можно было удалять значения (#6395)disabled
свойство на опции влияет на поведение (#6640)monthNames
могло стать html-аттрибутом (#6386)
-DateInput: программный фокус теперь сбрасывается при клике на кнопку "Готово" в режиме enableTime
(#6446)description
(#6577)dynamicContentHeight
при height
более чем 100%
(#6637)body
, которая сбрасывалась при вызове ActionSheet
из ModalPage
(#6614)disableArrow
, взамен arrow
, которое было в v5, когда компонент назывался Tooltip (#6482)onPlacementChange
(#6482)PullToRefresh
. PullToRefresh
теперь растягивается на всю высоту контейнера, и контент (например <Placeholder stretched />
) можно отцентровать по вертикали (#6613)ref
в children
, если children
это пользовательский компонент, обёрнутый в React.forwardRef
(#6525)onPlacementChange
(#6482)autoUpdateOnTargetResize
(#6572)onPlacementChange
(#6482)<AppRoot mode="full" />
(#6389)indicator
больше не обрезается (#6477)children
, когда при использовании Conditional Rendering в DOM попадали пустые <li>
(#6442)onPlacementChange
(#6482)ImageBaseProps
(#6483)data-testid
крестику через свойство dismissButtonTestId
(#6394)sizeY
, если не переопределено через свойство sizeY
, опеределяется автоматически если хотя бы одно из свойств AdaptivityProvider
viewWidth
или viewHeight
определено. В автоматическом определения sizeY
теперь также учавствует свойство hasPointer
. Раньше оно передавалось напрямую в контекст, и в логике AdaptivityProvider
не учавствовало, что было неправильно. Раньше в логике использовалось значение hasPointer
из библиотеки, определяемое библиотекой, что могло идти вразрез со значением явно переданным в AdoptivityProvider
. (#6585)draggable
режиме исправили двойной рендеринг плэйсхолдера (#6398)draggable
не работал автоскролл если у родителя нет height: 100%
(#6461)enableTime
(#6401) (#6639)onChange
при передаче в value={[null, null]}
. Исправили пример в Storybook, он теперь реагирует на изменение даты. (#6404)input
. Теперь при фокусе на таком элементе фокус визуально виден (#6405)monthNames
в DOM, если на тач устройствах используется NativeDatePicker. Чтобы не было предупреждения в консоли. (#6410)required
нативному селекту вместо инпута. Начиная с версии 5.10.0 мы передавали свойство required
в инпут, используемый только для поиска опций селекта. Это блокировало отправку формы, даже если селект имел выбранное значение. Всё потому, что инпут для поиска по умолчанию имеет пустое value
. (#6411)getRootRef
. Больше мы это свойство не перебиваем своим значением. (#6216)ModalPage
при изменении ориентации мобильного устройства. (#6583)dynamicContentHeight
(#6641)disabled
свойство на опции влияет на поведение (#6640)body
, которая сбрасывалась при вызове ActionSheet
из ModalPage
. (#6642)hover
-эффекты (#6602)PullToRefresh
. PullToRefresh
теперь растягивается на всю высоту контейнера и контент (например <Placeholder stretched />
) можно отцентровать по вертикали. (#6644)[!NOTE] Полный список изменений смотрите в документации по миграции с v5 на v6.
Там же можно найти информацию про VKUI v6 Codemods, который должен упростить переход на новую мажорную версию.
Удалили зависимость @vkontakte/vk-bridge в рамках задачи по уменьшению сцепления с VK Mini Apps.
Для авторов VK Mini Apps, совместно с командой VK Dev, создали страницу Интеграция с VK Mini Apps.
Команда VK Dev, для будущих авторов, отредактировала раздел VK Dev / Библиотеки / VKUI и продублировала ссылку на нашу страницу интеграции.
Обновили конфигурацию .browserlistrc
:
- android >= 5
+ ChromeAndroid >= 57
- iOS >= 10
+ iOS >= 10.3
- Chrome >= 51
+ Chrome >= 57
Firefox >= 54
Edge >= 18
- Opera >= 38
+ Opera >= 44
- Safari >= 10
+ Safari >= 10.1
+ Samsung >= 7.2
В отдельной сборке теперь используется CSS Logical.
Это изменение влияет только на пользователей, использующих специальную сборку. Такие пользователи, при необходимости, должны использовать плагин postcss-logical, чтобы продолжать поддерживать старые версии браузеров.
Tappable
.falsy
visor
заменён на float
, separator
заменён на delimiter
(#6277)separator
заменён на noSeparator
(#6277)withBorder
заменён на noBorder
(#6286)withSpaces
заменён на noSpaces
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)withBorder
заменён на noBorder
(#6286)withBorder
заменён на noBorder
(#6286)isDraggable
заменён на dragDisabled
(#6286)withBorder
заменён на noBorder
(#6286)withPadding
заменён на noPadding
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)shadow
заменён на plain
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)ChipsSelect
HorizontalCellShowMore
Popover
Popper
TextTooltip
Tooltip
Предыдущий
Tooltip (v5)
переименован вOnboardingTooltip
FormLayout
, используйте нативный form
(#6302)hasMask
заменён на noBackground
(#6286)mode="embedded
класс с названием темы навешивается на ближайший контейнер AppRoot
, а не на <body>
. Также при mode="full"
классы vkui
и vkui--*
навешиваются на <html>
вместо <body>
(#6263, #6279)platform
в отдельный параметр tokensClassNames
(#5121)size="m"
фиксированная ширина заменена на максимальную ширину как при size="s"
(#6318)Для очевидных багов создавайте issues. Для всех остальных обсуждений есть дискуссии :)
README.md
(#6324)[!NOTE] Полный список изменений смотрите в документации по миграции с v5 на v6 (страница миграции обновлена).
Там же можно найти информацию про VKUI v6 Codemods, который должен упростить переход на новую мажорную версию.
platform
в отдельный параметр tokensClassNames
(#5121)size="m"
фиксированная ширина заменена на максимальную ширину как при size="s"
(#6318)falsy
visor
заменён на float
, separator
заменён на delimiter
(#6277)separator
заменён на noSeparator
(#6277)withBorder
заменён на noBorder
(#6286)withSpaces
заменён на noSpaces
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)withBorder
заменён на noBorder
(#6286)withBorder
заменён на noBorder
(#6286)isDraggable
заменён на dragDisabled
(#6286)withBorder
заменён на noBorder
(#6286)withPadding
заменён на noPadding
(#6286)hasMask
заменён на noBackground
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)shadow
заменён на plain
(#6286)fixDropdownWidth
заменён на dropdownAutoWidth
(#6286)Команда VKUI поздравляет всех с наступающим Новым Годом 🎉
Увидимся в следующем году 😎
appearance
(#6243)README.md
(#6257)[!NOTE] Полный список изменений смотрите в документации по миграции с v5 на v6 (страница миграции обновлена).
Там же можно найти информацию про VKUI v6 Codemods, который должен упростить переход на новую мажорную версию.
FormLayout
, используйте нативный form
(#6302)mode="embedded
класс с названием темы навешивается на ближайший контейнер AppRoot
, а не на <body>
. Также при mode="full"
классы vkui
и vkui--*
навешиваются на <html>
вместо <body>
(#6263, #6279)[!NOTE] Полный список изменений смотрите в документации по миграции с v5 на v6.
Там же можно найти информацию про VKUI v6 Codemods, который должен упростить переход на новую мажорную версию.
[!WARNING] Это мажорные изменения в рамках текущей беты. В ближайшее время будет ещё несколько таких изменений.
Удалили зависимость @vkontakte/vk-bridge в рамках задачи по уменьшению сцепления с VK Mini Apps.
Для авторов VK Mini Apps, совместно с командой VK Dev, создали страницу Интеграция с VK Mini Apps.
Команда VK Dev, для будущих авторов, отредактировала раздел VK Dev / Библиотеки / VKUI и продублировала ссылку на нашу страницу интеграции.
Обновили конфигурацию .browserlistrc
:
- android >= 5
+ ChromeAndroid >= 57
- iOS >= 10
+ iOS >= 10.3
- Chrome >= 51
+ Chrome >= 57
Firefox >= 54
Edge >= 18
- Opera >= 38
+ Opera >= 44
- Safari >= 10
+ Safari >= 10.1
+ Samsung >= 7.2
В отдельной сборке теперь используется CSS Logical.
Это изменение влияет только на пользователей, использующих специальную сборку. Такие пользователи, при необходимости, должны использовать плагин postcss-logical, чтобы продолжать поддерживать старые версии браузеров.
Tappable
ChipsSelect
HorizontalCellShowMore
Popover
Popper
TextTooltip
Tooltip
Предыдущий
Tooltip (v5)
переименован вOnboardingTooltip
Для очевидных багов создавайте issues. Для всех остальных обсуждений есть дискуссии :)
Snackbar.Basic
– это тот же Snackbar
, но только вёрстка, без логики (#5932)Tappable
(#5918)Avatar.getInitialsFontSize
для определения размера шрифта в аватарах (#5923)withTransparentBackground
. Полезно для отображения картинок с прозрачностью. (#5924)widthSize
и heightSize
(#5682)before
(#5959)mode=default
, который позволяет подстраиваться под текущую тему (#5827)labelProps
для того чтобы можно было передавать data-*
аттрибуты лэйблу, в который обёрнут инпут. Основная цель - позволить в e2e-тестах находить именно лейбл. (#6037)modalOverlayTestId
для передачи data-testid на оверлей (#6052)modalDismissButtonTestId
для передачи data-testid на оверлей (#6051)draggable
режима (#5833)dismissButtonMode
для возможности показать крестик закрытия внутри модальной карточки (#6068)noMaxHeight
для отображения выпадающего меню без скролла (#6045)getRootRef
, c HTMLLabelElement
на HTMLDivElement
.minDateTime
/maxDateTime
позволяют запретить выбор определенных дат с учетом времени (#5866)layoutFillMode
для возможности управления растягиванием/сжатием вкладок (#6114)useInsets()
, если не передан safeAreaInsets
(#6071)status={0}
отображается корректно (#6125):focus-visible
-состояния, чтобы больше не появлялся скролл в родительском элементе (#5876)withInsets
помечен как @deprecated
и будет удалён в v6 – используйте useInsets()
из @vkontakte/vk-bridge-react (#6071)[!IMPORTANT]
Как сообщалось в Release notes v5.9.4, мы приступили к разработке v6, поэтому это финальная минорная версия VKUI v5. В дальнейшем мы будем править критические проблемы.
ModalPage
/ModalCard
, если внутри модалки нет элемента, на котором уже есть фокус (#6054)renderOption
, чтобы можно было передавать опции с раширенным набором свойств (#6076)platform={undefined}
перебивала значение по умолчанию из контекста (#6044)