VKUI – это набор React-компонентов, с помощью которых можно создавать интерфейсы, внешне неотличимые от наших iOS и Android приложений.
MIT License
Bot releases are visible (Hide)
Published by ArthurStam about 6 years ago
PanelHeader
.style
у ListItem
.Published by ArthurStam about 6 years ago
inset
у Panel
.SearchIOS
вынесен на отдельный слой для улучшения производительности.@vkontakte/icons
обновлен до 1.1.1
.Published by ArthurStam about 6 years ago
Root
..FormLayout__row
.Published by ArthurStam about 6 years ago
Textarea
на Androiddisabled
у Checkbox
Published by ArthurStam over 6 years ago
.Panel__in
.Published by ArthurStam over 6 years ago
Footer
....restProps
у Gallery
, Slider
и RangeSlider
.SearchIOS
и SearchAndroid
...inputProps
перенесены в начало.Published by ArthurStam over 6 years ago
Документация. Изменения:
children
будет рисоваться вне зависимости от наличия или отсутствия src.Новый компонент для отрисовки подвала списков. Документация.
Обзавелся документацией.
.Select-underline
для Android.alignment
для Input
, Select
и SelectMimicry
.Published by ArthurStam over 6 years ago
Новый компонент для контекстного меню шапки. Документация.
Поправлены отступы у Android версии
Убрана шапка для Android версии
Published by ArthurStam over 6 years ago
Вернул свойство style элементу img. Сделано для удобства.
Published by ArthurStam over 6 years ago
Published by ArthurStam over 6 years ago
Новый компонент для отрисовки длинных блоков, которые можно скроллить по-горизонтали.
buttons
Морально устарел. Если нужно фиксировать Tabs
, то их достаточно просто обернуть в FixedLayout
. Отдельный компонент тут выглядит избыточным.
List
и ListItem
– это обычные div
'ы. Раньше были ul
и li
. Сделано в первую очередь для того, чтобы ListItem
можно было использовать вне List
и не париться о list-style
.ListItem
рисуются теперь только при условии вложенности в List
.Поправлен режим отображения stretched
.
.stylelintrc
.pre-commit
хук. Раньше он не выдавал ошибку при падении stylelint.Published by ArthurStam over 6 years ago
Пофишены горизонтальные отстутпы в PanelHeader
и HeaderButton
.
Published by ArthurStam over 6 years ago
Добавлена возможность делать из элемента ссылку. Для этого нужно прокинуть свойство href
. Важное замечание: при указании свойства href
, ...restProps
будут навешиваться не на корневой элемент li
, а на Tappable
. Это сделано для того, чтобы остальные свойства, присущие ссылке, типа rel
или target
, навешивались на нее, а не на li
.
В Tappable
передается component="button"
, то есть теперь это "настоящая" кнопка. Например, если передать в HeaderButton
свойство disabled
, то onClick
отрабатывать не будет.
По-умолчанию у этого элемента z-index: 2
.
Убран Object.values
, ломающий код на старых девайсах
Published by ArthurStam over 6 years ago
Добавлена возможность прокидывать children
. Это нужно, например, для того чтобы рисовать иконку placeholder.
Поправлены padding
Конфиг postcss вынесен в отдельный файл postss.config.js
Published by ArthurStam over 6 years ago
src/helpers/font.js
.*.css
все map(...)
конвертированы в var(--...)
.В результате этих изменений, удалось избавиться от postcss-map. Сборка стала проще.
Было решено использовать padding
вместо margin
для вертикального позиционирования .FormLayout__row
.
Поддержка theme="light"
Published by ArthurStam over 6 years ago
ScrollView
=> Panel
Тут все просто, мы решили, что ScrollView – не самое подходящее название, Panel гораздо лучше отражает назначение этого компонента
header
у Panel
больше нетМы давно хотели избавить пользователей от декларации шапки в виде объекта, да еще и не в коде компонента панели. О чем речь?
Вот так было раньше:
<ScrollView header={{ title: 'Some Panel Title', left: '...', right: '...' }}>
<SomePanel />
</ScrollView>
Проблема в том, что логика отображения панели "размазывается" в двух компонентах: там, где декларируется <ScrollView />
и непосредственно в <SomePanel />
.
Как сейчас:
// App.js
<Panel>
<SomePanel />
</Panel>
// SomePanel.js
<div>
<PanelHeader left="..." right="...">
Some Panel Title
</PanelHeader>
Panel content
</div>
PanelHeader
можно располагать где угодно внутри Panel
, он все равно будет отрисовываться сверху (привет, React.createPortal
)
Слегка поменялась логика отрисовки кнопок слева в PanelHeader
Как было раньше:
<ScrollView header={{
left: <HeaderButton>{osname === IOS ? 'Назад' : <Icon24Back />}</HeaderButton>
icon: osname === IOS && <HeaderButton><Icon28Chevron_back /></HeaderButton>
}} />
Как сейчас:
<PanelHeader
left={<HeaderButton>{osname === IOS ? <Icon28Chevron_back /> : <Icon24Back />}</HeaderButton>}
addon={<HeaderButton>Назад</HeaderButton>}
>
Some Panel Title
</PanelHeader>
Больше примеров можно посмотреть вот тут: https://vkcom.github.io/vkui-styleguide/#!/HeaderButton
Компоненты Input, Select, Button, Textarea, Radio, Checkbox, FormLayout
переехали на новый дизайн, который раньше включался свойством v="new"
.
Иконки больше не являются частью VKUI. Теперь это самостоятельный пакет @vkonktakte/icons
.
Вся информация об иконках содержится тут.
FormLayout
Свойство allowSubmit
больше не используется. Submit формы будет только в том случае, если передан onSubmit
. Разработчики должны сами управлять такими сценариями, как e.preventDefault()
.
Tappable
Используется почти во всех "кликабельных" компонентах. Раньше, для того чтобы заставить Tappable
реагировать на прикосновения, ему обязательно нужно было передавать onClick. В некоторых случаях это приводило к навешиванию пустых обработчиков. Сейчас эффект нажатия будет работать всегда по-умолчанию.
Для отключения эффекта нужно передавать свойство disabled
, по аналогии с Input, Button, Radio
.
Pane
– оказалось, что этот компонент лишний и может запутать разработчиков. Чтобы понять, как жить без него,
достаточно полистать доку. Практически во всех случаях можно обойтись комбинацией Div
и Group
.
Flex
– не имеет отношения к VKUI.
Свойство header
теперь по-дефолту true
Published by ArthurStam over 6 years ago
stopPropagation
, чтобы предотвращать всплытие onStart
, onMove
и onEnd
. По-умолчанию равно false
onClick
в selectable
режимеPublished by ArthurStam over 6 years ago
Renamed to Panel.
New paradigm for defining header of Panel.
Component for creating scrollable blocks. Fixes problem with iOS oversroll.
For <FormLayout />
, <Input />
, <Button />
, <Select />
, <Textarea />
, <Radio />
property v
is new
by default.