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();Свойства и методы
ConfigProvider
| Свойство | Описание |
|---|---|
children | ReactNodeСодержимое. По умолчанию: - |
colorScheme | ColorSchemeTypeТип цветовой схемы – По умолчанию: - |
customPanelHeaderAfterMinWidth | string | numberЗадаёт необходимый минимальную ширину слота Учитывается только при По умолчанию: 90 |
direction | DirectionНаправление контента. При использовании определенного значения, важно установить атрибут По умолчанию: Определяется автоматически в зависимости от значения атрибута `dir` установленного на `body` страницы |
hasCustomPanelHeaderAfter | booleanПри По умолчанию: - |
isWebView | booleanПодсказывает приложению, обёрнутому в В условиях когда:
Для компонента По умолчанию: - |
locale | stringСтрока с языковой меткой BCP 47. По умолчанию: - |
platform | PlatformTypeПлатформа. По умолчанию: - |
tokensClassNames | TokensClassNamesCSS классы, определяющие набор токенов.
По умолчанию: {
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Включена ли анимация переходов между экранами в По умолчанию: - |
useConfigProvider
Не принимает свойств