ConfigProvider
Обязательный компонент, в который нужно обернуть всё приложение. В нём инкапсулирована логика управления:
- платформой,
- темой,
- локализацией,
- и другими глобальными настройками приложения.
Платформа
Влияет на внешний вид компонентов, анимации и поведение интерфейса. Задаётся свойством platform
.
"android"
– используется на настольных и мобильных устройствах под управлением системы Android."ios"
– используется на мобильных устройствах или планшетах с системой iOS/iPadOS."vkcom"
– используется командой ВКонтакте. На данный момент она не предназначена для адаптивного интерфейса, используйте её только в том случае, если ваше приложение встроено в vk.com ↗.
Если не указывать, то значение определяется автоматически на основе браузерной информации.
Локальное переопределение
Оберните в нужном месте в PlatformProvider
.
Цветовая схема
Задаётся свойством colorScheme
. Если не указывать, то значение определяется автоматически исходя из настроек операционной системы.
"light"
— светлая схема;"dark"
— тёмная схема.
Локальное переопределение
Оберните в нужном месте в ColorSchemeProvider
.
Локализация
Задаётся свойством locale
. Если не указывать, то значение будет равно "ru"
. В качестве значений принимает строку с
языковой меткой BCP 47 ↗.
Локальное переопределение
Оберните в нужном месте в LocaleProvider
.
Направление контента
Задаётся свойством direction
. По умолчанию значение определяется автоматически на основе атрибута dir
на body
страницы.
"ltr"
— направление “слева-направо” (для большинства языков);"rtl"
— направление “справа-налево” (для арабского, иврита и т.д.).
Локальное переопределение
Оберните в нужном месте в DirectionProvider
.
Токены тем
Задаётся свойством tokensClassNames
. Позволяет настроить CSS
-классы для различных тем и платформ.
<ConfigProvider tokensClassNames={{ light: 'custom-light-theme', dark: 'custom-dark-theme' }}>
<App />
</ConfigProvider>
Анимации переходов
Задаётся свойством transitionMotionEnabled
.
WebView
Задаётся свойством isWebView
. Значение true
позволяет приложению определить, что оно запущено в рамках мобильного приложения.
Хук useConfigProvider
Для получения текущих настроек приложения используйте хук useConfigProvider
:
import { useConfigProvider } from '@vkontakte/vkui';
const { colorScheme, platform, locale, direction, ...restProps } = useConfigProvider();
Свойства и методы
Свойство | Описание |
---|---|
children | ReactNode Содержимое. По умолчанию: - |
colorScheme | ColorSchemeType Тип цветовой схемы – По умолчанию: - |
customPanelHeaderAfterMinWidth | string | number Задаёт необходимый минимальную ширину слота Учитывается только при По умолчанию: 90 |
direction | Direction Направление контента. При использовании определенного значения, важно установить атрибут По умолчанию: Определяется автоматически в зависимости от значения атрибута `dir` установленного на `body` страницы |
hasCustomPanelHeaderAfter | boolean При По умолчанию: - |
isWebView | boolean Подсказывает приложению, обёрнутому в В условиях когда:
Для компонента По умолчанию: - |
locale | string Строка с языковой меткой BCP 47. По умолчанию: - |
platform | PlatformType Платформа. По умолчанию: - |
tokensClassNames | TokensClassNames CSS классы, определяющие набор токенов.
По умолчанию: {
android: {
light: 'vkui--vkBase--light',
dark: 'vkui--vkBase--dark',
},
ios: {
light: 'vkui--vkIOS--light',
dark: 'vkui--vkIOS--dark',
},
vkcom: {
light: 'vkui--vkCom--light',
dark: 'vkui--vkCom--dark',
}
} |
transitionMotionEnabled | boolean Включена ли анимация переходов между экранами в По умолчанию: - |