# Настройки тем для Android SDK
Параметры тем в Android SDK используются во многих компонентах системы, поэтому, если вы измените один из них, это может повлиять на множество элементов интерфейса.
Начиная с версии SDK 1.30.1, доступен API темы SDK:
// создаем тему с помощью CBRTheme
val customTheme = CBRTheme {
// настраиваем параметры темы
colors.backgroundCommon = CBRThemeColor(resources.getColor(R.color.owl_yellow_200))
fonts.headline1 = CBRThemeFont(Typeface.MONOSPACE, 40)
metrics.activityIndicatorStyle = CBRThemeMetric.Size.LARGE
// ... другие параметры
// или так
colors {
backgroundNeutral = CBRThemeColor(Color.RED)
// ... другие параметры
}
fonts {
headline1 = CBRThemeFont(Typeface.MONOSPACE, 40)
subtitle2 = CBRThemeFont(Typeface.MONOSPACE, 10)
// ... другие параметры
}
metrics {
screenHorizontalMargin = resources.getDimension(R.dimen.cbr_margin_large)
screenHeaderAlignment = CBRThemeMetric.TextAlignment.RIGHT
bottomSheetHandleSize = SizeF(20f, 20f)
// ... другие параметры
}
}
val cbrSdk = CBRMobileSDK.Builder(this, apiUrl).withTheme(customTheme)
// создаем тему с помощью метода CBRThemeKt.newCBRTheme()
CBRThemeHolder theme = CBRThemeKt.newCBRTheme();
// получаем области параметров
ColorsScope colorsScope = theme.getColorsScope();
MetricsScope metricsScope = theme.getMetricsScope();
FontsScope fontsScope = theme.getFontsScope();
// настраиваем параметры темы
colorsScope.setBackgroundCommon(new CBRThemeColor(Color.RED, Color.GREEN));
metricsScope.setSectionHeaderAlignment(CBRThemeMetric.TextAlignment.CENTER);
fontsScope.setHeadline2(new CBRThemeFont(Typeface.SERIF, 15));
// ... другие параметры
CBRMobileSDK.Builder cbrSdk = new CBRMobileSDK.Builder(this).withTheme(theme);
# Шрифты
data class CBRThemeFont(
val typeface: Typeface,
val sizeSp: Int
)
# headline1
theme.fonts.headline1: CBRThemeFont
Заголовок 1-го уровня. Используется для заголовков экранов, в основном в сочетании с colors.contentStrong
.
# headline2
theme.fonts.headline2: CBRThemeFont
Заголовок 2-го уровня. Используется для заголовков разделов, в основном в сочетании с colors.contentStrong
.
# subtitle1
theme.fonts.subtitle1: CBRThemeFont
Подзаголовок 1-го уровня. Используется для подзаголовков, в основном в сочетании с colors.contentStrong
.
# subtitle2
theme.fonts.subtitle2: CBRThemeFont
Подзаголовок 2-го уровня. Используется для подзаголовков, в основном в сочетании с colors.contentNeutral
.
# body
theme.fonts.body: CBRThemeFont
Основной текст. Используется для абзацев, текстовых полей и других элементов, в основном в сочетании с colors.contentNeutral
.
# caption
theme.fonts.caption: CBRThemeFont
Второстепенный текст. Используется для вспомогательных подписей, в основном в сочетании с colors.contentWeak
.
# Цвета
data class CBRThemeColor(
val colorLight: Int,
val colorDark: Int
)
# Общие
# navigationBarItem
theme.colors.navigationBarItem: CBRThemeColor
Цвет элементов навигационной панели. Используется только для кнопки закрытия.
По умолчанию: #94A0B8 и #FFFFFF с прозрачностью 40% в темном режиме.
# alertTint
theme.colors.alertTint: CBRThemeColor
Цвет кнопок в системных уведомлениях и на панели инструментов.
По умолчанию: #1693E9 и #1485D1 в темном режиме.
# Фоны
# backgroundCommon
theme.colors.backgroundCommon: CBRThemeColor
Основной фоновый цвет. Используется для всех экранов, кроме экрана камеры.
По умолчанию: #FFFFFF и #1E232E в темном режиме.
# backgroundNeutral
theme.colors.backgroundNeutral: CBRThemeColor
Второстепенный фоновый цвет. Используется для карточек шагов верификации в нейтральном статусе и выпадающих списков.
Фон карточки будет заполнен при использовании стиля .filled
.
По умолчанию: #F6F7F9 и #FFFFFF с прозрачностью 7% в темном режиме.
# backgroundSuccess
theme.colors.backgroundSuccess: CBRThemeColor
Используется как фон для карточек шагов верификации в статусе успешной проверки и как фон для сообщения об успешной верификации (иконка images.pictureSuccess
).
По умолчанию: #18B494 с прозрачностью 12% и #18B494 с прозрачностью 30% в темном режиме.
# backgroundWarning
theme.colors.backgroundWarning: CBRThemeColor
Используется как фон для карточек шагов верификации в статусе предупреждений, как фон для сообщения о загрузке данных (иконка images.pictureSubmitted
) и как фон для сообщения об ошибки сети (иконка images.pictureWarning
).
По умолчанию: #F2AA0D с прозрачностью 12% и #F2AA0D с прозрачностью 30% в темном режиме.
# backgroundCritical
theme.colors.backgroundCritical: CBRThemeColor
Используется как фон для карточек шагов верификации в статусе критических проблем и как фон для сообщения о неуспешной верификации (иконка images.pictureFailure
).
По умолчанию: #F05C5C с прозрачностью 12% и #F05C5C с прозрачностью 30% в темном режиме.
# Контент
# contentLink
theme.colors.contentLink: CBRThemeColor
Цвет текстовых ссылок.
По умолчанию: #1693E9 в #1485D1 в темном режиме.
# contentStrong
theme.colors.contentStrong: CBRThemeColor
Цвет заголовков и некоторых подзаголовков.
По умолчанию: #333C4D и #FFFFFF с прозрачностью 85% в темном режиме.
# contentNeutral
theme.colors.contentNeutral: CBRThemeColor
Цвет основного текста, некоторых подзаголовков и вспомогательных элементов.
По умолчанию: #5C6B8A и #FFFFFF с прозрачностью 60% в темном режиме.
# contentWeak
theme.colors.contentWeak: CBRThemeColor
Цвет второстепенного текста и вспомогательных элементов.
По умолчанию: #94A0B8 и #FFFFFF с прозрачностью 40% в темном режиме.
# contentInfo
theme.colors.contentInfo: CBRThemeColor
Используется только для границы области просмотра на экране видео.
По умолчанию: #1693E9 и #1485D1 в темном режиме.
# contentSuccess
theme.colors.contentSuccess: CBRThemeColor
Используется в качестве цвета иконок для карточек шагов верификации в статусе успешной проверки, цвет текста для инструкции, цвета иконки images.pictureSuccess
и цвета контура области съемки.
По умолчанию: #18B494.
# contentWarning
theme.colors.contentWarning: CBRThemeColor
Цвет текста для предупреждений при прохождении верификации и автоматически сгенерированных изображений images.pictureWarning
и images.pictureSubmitted
.
По умолчанию: #E6A00B.
# contentCritical
theme.colors.contentCritical: CBRThemeColor
Цвет текста для критических проблем при прохождении верификации и изображений и автоматически сгенерированных изображений images.pictureFailure
.
По умолчанию: #F05C5C.
# Основная кнопка
# primaryButtonBackground
theme.colors.primaryButtonBackground: CBRThemeColor
Цвет фона основной кнопки в обычном состоянии.
По умолчанию: #1693E9 и #1485D1 в темном режиме.
# primaryButtonBackgroundHighlighted
theme.colors.primaryButtonBackgroundHighlighted: CBRThemeColor
Цвет фона основной кнопки в выделенном состоянии.
По умолчанию: #1485D1 и #0B4A75 в темном режиме.
# primaryButtonBackgroundDisabled
theme.colors.primaryButtonBackgroundDisabled: CBRThemeColor
Цвет фона основной кнопки в отключенном состоянии.
По умолчанию: #A1D2F7 и #072F4B в темном режиме.
# primaryButtonContent
theme.colors.primaryButtonContent: CBRThemeColor
Цвет текста основной кнопки в обычном состоянии.
По умолчанию: #FFFFFF и #FFFFFF с прозрачностью 85% в темном режиме.
# primaryButtonContentHighlighted
theme.colors.primaryButtonContentHighlighted: CBRThemeColor
Цвет содержимого основной кнопки в выделенном состоянии.
По умолчанию: #FFFFFF и #FFFFFF с прозрачностью 85% в тёмном режиме.
# primaryButtonContentDisabled
theme.colors.primaryButtonContentDisabled: CBRThemeColor
Цвет содержимого основной кнопки в отключённом состоянии.
По умолчанию: #FFFFFF и #0B4A75 в тёмном режиме.
# Вторичная кнопка
# secondaryButtonBackground
theme.colors.secondaryButtonBackground: CBRThemeColor
Фоновый цвет вторичной кнопки в обычном состоянии.
По умолчанию: прозрачный.
# secondaryButtonBackgroundHighlighted
theme.colors.secondaryButtonBackgroundHighlighted: CBRThemeColor
Фоновый цвет вторичной кнопки в выделенном состоянии.
По умолчанию: #E8F4FD и #072F4B в тёмном режиме.
# secondaryButtonBackgroundDisabled
theme.colors.secondaryButtonBackgroundDisabled: CBRThemeColor
Фоновый цвет вторичной кнопки в отключённом состоянии.
По умолчанию: прозрачный.
# secondaryButtonContent
theme.colors.secondaryButtonContent: CBRThemeColor
Цвет содержимого вторичной кнопки в обычном состоянии.
По умолчанию: #1693E9 и #1485D1 в тёмном режиме.
# secondaryButtonContentHighlighted
theme.colors.secondaryButtonContentHighlighted: CBRThemeColor
Цвет содержимого вторичной кнопки в выделенном состоянии.
По умолчанию: #1693E9 и #1485D1 в тёмном режиме.
# secondaryButtonContentDisabled
theme.colors.secondaryButtonContentDisabled: CBRThemeColor
Цвет содержимого вторичной кнопки в отключённом состоянии.
По умолчанию: #A1D2F7 и #0B4A75 в тёмном режиме.
# Карточки
Область, которая выделяет элементы, связанные с конкретным шагом верификации.
# cardPlainBackground
theme.colors.cardPlainBackground: CBRThemeColor
Используется в качестве фонового цвета для карточек со стилем .plain
.
По умолчанию: nil
.
# cardBorderedBackground
theme.colors.cardBorderedBackground: CBRThemeColor
Используется в качестве фонового цвета для карточек со стилем .bordered
.
По умолчанию: nil
.
# Камера
# cameraBackground
theme.colors.cameraBackground: CBRThemeColor
Фоновый цвет экрана камеры.
По умолчанию: #1E232E.
# cameraContent
theme.colors.cameraContent: CBRThemeColor
Цвет элементов интерфейса на экране камеры: кнопка галереи, кнопка съемки и т. д.
По умолчанию: #FFFFFF.
# Поля ввода
# fieldBackground
theme.colors.fieldBackground: CBRThemeColor
Фоновый цвет полей ввода текста.
По умолчанию: #F6F7F9 и #FFFFFF с прозрачностью 7% в темном режиме.
# fieldBackgroundInvalid
theme.colors.fieldBackgroundInvalid: CBRThemeColor
Фон полей ввода, отмеченных как недействительные.
По умолчанию: colors.backgroundCritical
.
# fieldBorder
theme.colors.fieldBorder: CBRThemeColor
Цвет границы полей ввода.
По умолчанию: прозрачный.
# fieldPlaceholder
theme.colors.fieldPlaceholder: CBRThemeColor
Цвет заполнителя в полях ввода.
По умолчанию: #94A0B8 и #FFFFFF с прозрачностью 40% в тёмном режиме.
# fieldContent
theme.colors.fieldContent: CBRThemeColor
Цвет вводимого текста в полях ввода.
По умолчанию: #333C4D и #FFFFFF с прозрачностью 85% в тёмном режиме.
# fieldTint
theme.colors.fieldTint: CBRThemeColor
Цвет выделения полей ввода. Используется для текстовых полей, флажков и переключателей.
По умолчанию: #1693E9 и #1485D1 в тёмном режиме.
# Список
# listSeparator
theme.colors.listSeparator: CBRThemeColor
Цвет разделителя списка.
По умолчанию: #D1D6E1 и #FFFFFF с прозрачностью 20% для тёмного режима.
# listSelectedItemBackground
theme.colors.listSelectedItemBackground: CBRThemeColor
Цвет фона для выбранного элемента списка.
По умолчанию: #F6F7F9 и #FFFFFF с прозрачностью 7% для тёмного режима.
# Выдвижная панель
# bottomSheetHandle
theme.colors.bottomSheetHandle: CBRThemeColor
Цвет переднего плана для ручки нижнего листа.
Обратите внимание, что ручка может быть как внутри (на фоне bottomSheetBackground
), так и снаружи (на фоне backgroundCommon
).
По умолчанию: #D1D6E1 и #FFFFFF с прозрачностью 20% для тёмного режима.
# bottomSheetBackground
theme.colors.bottomSheetBackground: CBRThemeColor
Цвет фона для нижнего листа.
По умолчанию: #FFFFFF и #333C4D для тёмного режима.
# Метрики
# Общие
# activityIndicatorStyle
theme.metrics.activityIndicatorStyle: CBRThemeMetric.Size
Стиль загрузки индикатора.
По умолчанию: MEDIUM
.
# Контент
# screenHorizontalMargin
theme.metrics.screenHorizontalMargin: Float
Горизонтальные отступы контента экрана.
По умолчанию: 16pt
.
# Кнопки
# buttonHeight
theme.metrics.buttonHeight: Float
Высота основной и вторичной кнопок.
По умолчанию: 48dp
.
# buttonCornerRadius
theme.metrics.buttonCornerRadius: Float
Радиус скругления углов основной и вторичной кнопок.
По умолчанию: 8dp
.
# buttonBorderWidth
theme.metrics.buttonBorderWidth: Float
Толщина границы второстепенной кнопки. Основные кнопки с границей пока не поддерживаются.
По умолчанию: 1dp
.
# Поля ввода
# fieldHeight
theme.metrics.fieldHeight: Float
Высота полей ввода текста.
По умолчанию: 48dp
.
# fieldBorderWidth
theme.metrics.fieldBorderWidth: Float
Толщина границы полей ввода текста.
По умолчанию: 0dp
.
# fieldCornerRadius
theme.metrics.fieldCornerRadius: Float
Радиус скругления углов полей ввода текста.
По умолчанию: 8dp
.
# Область просмотра
# viewportBorderWidth
theme.metrics.viewportBorderWidth: Float
Толщина границы области просмотра селфи.
По умолчанию: 8dp
.
# Выдвижная панель
# bottomSheetCornerRadius
theme.metrics.bottomSheetCornerRadius: Float
Радиус скругления углов нижнего листа.
По умолчанию: 16dp
.
# bottomSheetHandleSize
theme.metrics.bottomSheetHandleSize: SizeF
Размер индикатора захвата нижнего листа.
По умолчанию: 36dp x 4dp
.
# Разделитель списка
# listSeparatorHeight
theme.metrics.listSeparatorHeight: Float
Толщина разделителя списка.
По умолчанию: 1dp
.
# listSeparatorMarginLeft
theme.metrics.listSeparatorMarginLeft: Float
Левый отступ разделителя списка.
По умолчанию: 0dp
.
# listSeparatorMarginRight
theme.metrics.listSeparatorMarginRight: Float
Правый отступ разделителя списка.
По умолчанию: 0dp
.
# Стиль карточек
Стили:
PLAIN
— без границы и фона (см.colors.cardPlainBackground
).DEFAULT
— будет использован стандартный фон.BORDERED
— вокруг карточки будет граница (см.colors.cardBorderedBackground
).
enum class CardStyle(val value: String) : CBRThemeMetric {
BORDERED("bordered"),
PLAIN("plain"),
DEFAULT("default")
}
# verificationStepCardStyle
theme.metrics.verificationStepCardStyle: CBRThemeMetric.CardStyle
Стиль карточки шагов верификации.
По умолчанию: DEFAULT
.
# verificationCommentCardStyle
theme.metrics.verificationCommentCardStyle: CBRThemeMetric.CardStyle
Стиль карточки комментария к верификации, который отображается при временном отказе.
По умолчанию: BORDERED
.
# supportItemCardStyle
theme.metrics.supportItemCardStyle: CBRThemeMetric.CardStyle
Стиль карточки элементов поддержки.
По умолчанию: BORDERED
.
# documentTypeCardStyle
theme.metrics.documentTypeCardStyle: CBRThemeMetric.CardStyle
Стиль карточки типа документа.
По умолчанию: DEFAULT
.
# selectedCountryCardStyle
theme.metrics.selectedCountryCardStyle: CBRThemeMetric.CardStyle
Стиль карточки выбранной страны.
По умолчанию: DEFAULT
.
# cardCornerRadius
theme.metrics.cardCornerRadius: Float
Радиус скругления углов карт.
По умолчанию: 8dp
.
# cardBorderWidth
theme.metrics.cardBorderWidth: Float
Толщина границы карточек (используется только для стиля BORDERED
).
По умолчанию: 1dp
.
# Выравнивание
enum class TextAlignment(val value: String) : CBRThemeMetric {
LEFT("left"),
CENTER("center"),
RIGHT("right")
}
# screenHeaderAlignment
theme.metrics.screenHeaderAlignment: CBRThemeMetric.TextAlignment
Выравнивание заголовков экрана.
По умолчанию: CENTER
.
# sectionHeaderAlignment
theme.metrics.sectionHeaderAlignment: CBRThemeMetric.TextAlignment
Выравнивание заголовков разделов.
По умолчанию: LEFT
.