Перейти к основному содержимому
Версия: 5.21.0

Дизайн-система 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.
  • Известные ограничения — параметры с приоритетом серверной настройки и поведенческие особенности.