Дизайн-система SDK
ChatCenterUI поддерживает три уровня кастомизации интерфейса чата — от глобальных токенов до точечной настройки отдельных экранов.
SDK не позволяет менять произвольные элементы интерфейса. Все доступные параметры перечислены ниже, на страницах Цвета, Типографика, Изображения, Компоненты и Потоки (Flows). Если нужного параметра в этих перечнях нет — он не входит в публичный контракт SDK и менять его нельзя. Часть полей ChatConfig имеет приоритет серверной настройки (клиентское значение — fallback) — см. Известные ограничения.
Применение тем
В классе ChatCenterUI до вызова метода init(...) задайте стили, изменив поля theme или darkTheme. Параметры опциональны. В SDK уже заданы параметры по умолчанию для светлой темы; если тёмная тема не определена, SDK всегда будет использовать светлую.
chatCenterUI = ChatCenterUI(applicationContext).apply {
theme = chatLightTheme
darkTheme = chatDarkTheme
init("YOUR_PROVIDER_UID", "YOUR_APP_MARKER", chatConfig)
}
Уровни кастомизации
| Уровень | Класс | Назначение |
|---|---|---|
| Токены | ChatColors, ChatTypography, ChatImages | Атомарные значения дизайн-системы (цвет, шрифт, иконка). Задаются один раз и применяются глобально. См. Цвета |
| Тексты (legacy) | ChatTexts | Программное переопределение строк. Все поля помечены @Deprecated — используйте strings.xml через ключи ecc_*, см. Локализация |
| Компоненты | ChatComponents | Стили типовых UI-элементов (кнопки, навигация, поля ввода). Использует токены как значения по умолчанию. См. Компоненты |
| Потоки (Flows) | ChatFlows, ChatFlow, SearchFlow и др. | Стили, привязанные к конкретному экрану. Позволяют переопределить компонент только на одном экране |
| Тема | ChatTheme | Контейнер верхнего уровня, объединяющий токены, компоненты и потоки |
ChatFlows (точечно) > ChatComponents (глобально) > ChatColors/ChatImages/ChatTypography (токены по умолчанию)
- Меняете цвета и шрифты бренда → достаточно
ChatColorsиChatTypography. - Нужно перерисовать конкретный UI-элемент (например, bubble сообщения) →
ChatComponents. - Нужно изменить только один экран (например, Search или Gallery) → используйте
ChatFlows-подкласс. См. Темы.
Архитектура
Тема состоит из двух уровней: компоненты (ChatComponents) и потоки (ChatFlows). Компоненты — общие стили; потоки — переопределения для конкретных экранов.
На диаграмме ChatComponents показан с двумя примерами компонентов (IconButtonComponent, BubbleComponent) для краткости. Полный список всех 18 *Component / *Style-полей — в Компоненты.
Связанные разделы
- Темы — полный гайд по
ChatComponents, готовые примеры тем. - Цвета — справочник полей
ChatColors. - Типографика —
ChatTypography: 6 семантических токенов + 20 кастомных шрифтов. - Изображения —
ChatImages: 66 drawable-полей по категориям. - Компоненты — справочник полей
ChatComponents. - Потоки (Flows) — экран-специфичная кастомизация (search, gallery, files, image, popups, и др.).
- Доступность — TalkBack, контраст, Dynamic Type.
- Известные ограничения — параметры с приоритетом серверной настройки и поведенческие особенности.