Справочник цветов (ChatColors)
Ниже перечислены все доступные поля ChatColors. Большинство значений — ссылки на цветовые ресурсы (R.color.*); часть полей по умолчанию ссылается на другие поля ChatColors (например, bodyIconsTint = main), а swipeRefreshColors — это @ArrayRes Int (ссылка на R.array.*).
Если нужного цвета в этих таблицах нет — он не входит в публичный API SDK; обратитесь в поддержку edna для запроса на расширение дизайн-системы. Шрифты и иконки находятся в отдельных справочниках: Типографика и Изображения.
Поля ChatColors
Тулбар и навигация
| Поле | Описание | Значение по умолчанию |
|---|---|---|
backButton | цвет кнопки «назад» | R.color.ecc_white |
main | основной цвет чата. Используется в элементах тулбара, лоадерах и т. д., где не задан собственный цвет | R.color.ecc_green_83b144 |
bodyIconsTint | цвет иконок, если не задан собственный цвет | main |
toolbar | цвет тулбара | R.color.ecc_chat_toolbar |
toolbarContextMenu | цвет иконки «три точки», вызывающей меню в тулбаре | R.color.ecc_chat_toolbar_context_menu |
statusBar | цвет статус бара | R.color.ecc_chat_status_bar |
menuItem | цвет текста в элементе меню | R.color.ecc_chat_toolbar_menu_item |
toolbarText | цвет текста в тулбаре | R.color.ecc_white |
chatToolbarInverseIconTint | цвет иконок в тулбаре, если цвет тулбара был инвертирован (при выборе сообщения, например) | R.color.ecc_white |
chatToolbarHintText | цвет текста для подсказки при поиске в поле ввода | R.color.ecc_chat_toolbar_hint |
searchingProgressLoader | цвет для лоадера при поиске оператора | R.color.ecc_consult_searching_progress_color |
Сообщения и баблы
| Поле | Описание | Значение по умолчанию |
|---|---|---|
incomingText | цвет текста во входящих сообщениях | R.color.ecc_black |
outgoingText | цвет текста в исходящих сообщениях | R.color.ecc_white |
incomingLink | цвет текста во входящих ссылках | R.color.ecc_incoming_message_link |
outgoingLink | цвет текста в исходящих ссылках | R.color.ecc_outgoing_message_link |
disabledColor | цвет для отключенных элементов | R.color.ecc_disabled_text_color |
incomingBubble | цвет входящего баббла | R.color.ecc_white |
outgoingBubble | цвет исходящего баббла | main |
incomingTimeText | цвет текста для времени во входящих сообщениях | incomingText |
outgoingTimeText | цвет текста для времени в исходящих сообщениях | outgoingText |
incomingImageTimeBackground | цвет подложки под временем во входящих сообщениях | R.color.ecc_incoming_time_background |
outgoingImageTimeBackground | цвет подложки под временем в исходящих сообщениях | R.color.ecc_outgoing_time_background |
messageHighlighting | цвет баббла при его подсветке | R.color.ecc_chat_highlighting |
messageEditedStatus | Цвет индикатора «Изменено» у отредактированного сообщения | R.color.ecc_message_edited_color |
messageSendingStatus | цвет иконки статуса «отправляется» | R.color.ecc_white |
messageSentStatus | цвет иконки статуса «отправлено» | R.color.ecc_white |
messageDeliveredStatus | цвет иконки статуса «доставлено» | R.color.ecc_white |
messageReadStatus | цвет иконки статуса «прочитано» | R.color.ecc_white |
messageFailedStatus | цвет иконки статуса «ошибка» | R.color.ecc_white |
messagePopupMenuBackground | фоновый цвет всплывающего меню сообщения (long-press menu) | R.color.ecc_white |
messagePopupMenuItem | цвет текста для пункта всплывающего меню сообщения | R.color.ecc_black |
messageSendingStatus, messageSentStatus, messageDeliveredStatus, messageReadStatus и messageFailedStatus по умолчанию окрашены в R.color.ecc_white. Разные иконки этих статусов задаются в ChatImages (см. таблицу «Статусы сообщений» в images.md). Если фон исходящего баббла светлый — переопределите цвет соответствующего статуса.
Поле ввода
| Поле | Описание | Значение по умолчанию |
|---|---|---|
inputMessage | цвет текста для полей ввода, кроме поиска | R.color.ecc_black |
inputMessageHint | цвет текста для подсказки в полях ввода, кроме поиска | R.color.ecc_grey_aaa |
inputFieldBackground | цвет фона для поля ввода | R.color.ecc_white |
voiceBtnBackground | цвет фона для кнопки записи звукового сообщения | main |
voiceBtnIconColor | цвет кнопки записи звукового сообщения | R.color.ecc_white |
sendBtnIconColor | Цвет иконки кнопки отправки сообщения | main |
microphone | цвет иконки микрофона | R.color.ecc_record_button_small_mic |
bottomButtonTextColor | цвет текста для кнопок внизу чата (камера, галерея, файл) | R.color.ecc_chat_toolbar |
bottomButtonsBackground | цвет фона для кнопок внизу чата (камера, галерея, файл) | R.color.ecc_white |
Поиск
| Поле | Описание | Значение по умолчанию |
|---|---|---|
searchText | цвет текста для поля поиска | R.color.ecc_white |
searchHint | цвет текста для подсказки в поле поиска | R.color.ecc_cian_b2dfdb |
searchResultBackground | Цвет фона результатов поиска | R.color.ecc_chat_background |
searchIcon | цвет для иконок поиска | R.color.ecc_white |
searchLoaderTint | цвет иконки поиска для лоадера при загрузке результатов поиска в поле ввода | R.color.ecc_white |
searchBarText | цвет текста при вводе запроса | R.color.ecc_white |
searchResultsDivider | цвет разделителя между элементами в результатах поиска | R.color.ecc_search_divider_color |
searchResultsItemRightArrowTint | цвет для иконки «стрелка вправо» в результатах поиска | R.color.ecc_search_results_item_secondary |
searchResultsItemDateText | цвет текста для даты в результатах поиска | R.color.ecc_search_results_item_secondary |
searchResultsItemMessageText | цвет текста с сообщением | R.color.ecc_search_results_message_color |
searchResultsItemNameText | цвет текста с автором сообщения | R.color.ecc_black |
searchResultNoItemsText | цвет текста для сообщения при отсутствии результатов поиска | R.color.ecc_black |
searchHighlight | Цвет выделения найденного текста при поиске | main |
Цитаты и реплаи
| Поле | Описание | Значение по умолчанию |
|---|---|---|
quoteHeaderChatView | цвет текста для заголовка при цитировании | R.color.ecc_black |
quoteText | цвет текста при цитировании | R.color.ecc_black |
quoteClearIcon | Цвет иконки очистки цитаты | main |
quotePlayPauseButton | цвет текста для кнопки запуска воспроизведения при цитировании сообщения | R.color.ecc_preview_play_pause_button |
quoteBgColor | цвет фона цитаты | R.color.ecc_quote_bg_color |
quoteDelimiterColor | цвет разделителя цитаты | R.color.ecc_quote_delimiter_color |
quoteAuthorColorText | цвет текста автора | R.color.ecc_quote_author_color_text |
quoteColorText | цвет текста цитаты | R.color.ecc_quote_color_text |
quoteIconTintColor | Цвет иконки цитирования | R.color.ecc_white |
Опросы
| Поле | Описание | Значение по умолчанию |
|---|---|---|
surveyText | цвет текста для опросов | R.color.ecc_chat_system_message |
buttonSurveyTextButtonColor | Цвет текста кнопки в опросе с кнопками | R.color.ecc_white |
surveyButtonBackgroundTintColor | Цвет фона кнопки опроса | main |
buttonSurveyQuestionTextColor | Цвет текста вопроса в кнопочном опросе | R.color.ecc_chat_system_message |
surveyChoicesText | цвет текста для выбора варианта ответа при опросе | R.color.ecc_survey_choices_text |
rateStarsCount | цвет текста для количества выставленных звезд | R.color.ecc_chat_outgoing_message_bubble |
rateTotalStarsCount | цвет текста для доступных звезд к выбору | outgoingText |
rateFrom | цвет текста для предлога «из» (3 из 5) | outgoingText |
rateStar | цвет иконки звезды | outgoingText |
surveySelectedColorFilter | цвет для иконок при опросе, если опрос был выбран | R.color.ecc_survey_selected_icon_tint |
surveyUnselectedColorFilter | цвет для иконок при опросе, если опрос не был выбран | R.color.ecc_survey_unselected_icon_tint |
Кнопки и действия
| Поле | Описание | Значение по умолчанию |
|---|---|---|
quickRepliesText | цвет текста в быстрых ответах | R.color.ecc_black |
quickReplyButtonBackgroundTint | Цвет фона кнопки быстрого ответа | R.color.ecc_white |
chatButtonTintColorStateList | набор цветов для разных состояний кнопки | arrayOf(disabledColor, main, main) |
buttonsDefaultText | цвет текста по умолчанию для кнопок | R.color.ecc_black |
buttonsDefaultStroke | цвет границы по умолчанию для кнопок | R.color.ecc_black |
progressButtonStartDownloadTint | цвет кнопки «загрузить файл» в начальном состоянии (загрузка ещё не началась) | bodyIconsTint |
progressButtonInProgressTint | цвет кнопки «загрузить файл» в процессе загрузки | bodyIconsTint |
progressButtonCompletedTint | цвет кнопки «загрузить файл» после загрузки | bodyIconsTint |
progressButtonBackgroundTint | фоновый цвет кнопки «загрузить файл» | R.color.ecc_progress_button_background |
Push и счётчики
| Поле | Описание | Значение по умолчанию |
|---|---|---|
pushBackground | фоновый цвет для push-уведомления | R.color.ecc_push_background |
pushMessage | цвет текста в push-уведомлениях | inputMessage |
unreadMessagesCountText | цвет текста для количества непрочитанных сообщений | R.color.ecc_chat_unread_msg_count_text |
unreadMsgSticker | цвет стикера (фона под цифрами) непрочитанных сообщений | R.color.ecc_chat_unread_msg_sticker_background |
Системные и ошибки
| Поле | Описание | Значение по умолчанию |
|---|---|---|
systemMessage | цвет системных сообщений | R.color.ecc_chat_system_message |
errorText | цвет текста с ошибками | R.color.ecc_error_red_df0000 |
mainTextWhenErrorBubble | Цвет текста в пузыре сообщения при ошибке | R.color.ecc_white |
errorBackground | цвет баббла, если произошла ошибка в сообщении (например, не сработала отправка) | R.color.ecc_error_red_df0000 |
errorIcon | Цвет иконки ошибки | R.color.ecc_white |
chatErrorScreenButtonText | цвет текста кнопки на экране с ошибкой при входе в чат | R.color.ecc_white |
chatErrorScreenMessageText | цвет текста сообщения на экране с ошибкой при входе в чат | R.color.ecc_chat_new_system_message |
chatErrorScreenImageTint | цвет тонирования изображения на экране с ошибкой при входе в чат | main |
scheduleText | цвет текста для расписания | R.color.ecc_schedule_text |
infoIcon | Цвет информационной иконки | R.color.ecc_error_red_df0000 |
Экран восстановления состояния
Полноэкранный плейсхолдер с текстом «Восстановление состояния…» отображается, если чат или связанные с ним экраны (галерея вложений, диалоги SDK) открываются системой до завершения инициализации SDK. Подробное описание сценария — в Известных ограничениях → Экран восстановления состояния. Цвета не входят в ChatColors, переопределяются через ресурсы res/values/colors.xml и res/values-night/colors.xml в приложении.
| Ресурс | Описание | Light | Dark |
|---|---|---|---|
ecc_restoring_state_view_hint_color | Цвет текста «Восстановление состояния…» | R.color.ecc_black | R.color.ecc_white |
ecc_restoring_state_background | Цвет фона экрана восстановления | R.color.ecc_white | R.color.ecc_black |
Начиная с версии 5.21.0 в SDK поставляется файл values-night/colors.xml. Если вы переопределяете цвета SDK в собственном values/colors.xml, добавьте соответствующие переопределения в values-night/colors.xml для корректного отображения в тёмной теме.
Прочее
| Поле | Описание | Значение по умолчанию |
|---|---|---|
gallerySearchTitle | цвет текста для заголовка при поиске на экране галереи | R.color.ecc_white |
gallerySearchSubtitle | цвет текста для подзаголовка при поиске на экране галереи | R.color.ecc_gallery_search_subtitle |
galleryImageBottomName | цвет для названия файла под изображением | R.color.ecc_white |
mediaAndFilesText | цвет текста в разделе «Файлы и медиа» для заголовка, размера файла и его времени | R.color.ecc_black |
filesAndMediaIconTint | цвет иконок в разделе «Файлы и медиа» | R.color.ecc_green_83b144 |
chatBackground | фоновый цвет для окна чата | R.color.ecc_chat_background |
imageScreenBackground | фоновый цвет на полноэкранном просмотре изображения | R.color.ecc_attachments_background |
emptyStateBackground | фоновый цвет, если нет сообщений в чате | R.color.ecc_empty_state_background |
separators | цвет разделителей в чате | R.color.ecc_icon_and_separators_color |
imagesScreenText | цвет текста на полноэкранном просмотре изображения | R.color.ecc_white |
emptyFilesAndMediaText | цвет текста в случае отсутствия элементов на экране «Файлы и медиа» | R.color.ecc_black |
audioStatus | цвет текста для текущего статуса аудио ("processing", например) | R.color.ecc_black |
alertsText | цвет текста на всплывающих экранах (alerts) | R.color.ecc_black |
loaderTextColor | цвет текста для сообщения при лоадере | R.color.ecc_black |
balloonText | цвет текста во всплывающих сообщениях (Toast или Snackbar) | R.color.ecc_black |
balloonBackground | фоновый цвет во всплывающих сообщениях (Toast или Snackbar) | R.color.ecc_white |
welcomeScreenTitleText | цвет текста для заголовка на приветственном экране | R.color.ecc_welcome_screen_title |
welcomeScreenSubtitleText | цвет текста для подзаголовка на приветственном экране | R.color.ecc_welcome_screen_subtitle |
popupsBackground | Цвет фона всплывающих окон (popup) | R.color.ecc_cian_b2dfdb |
swipeRefreshColors | набор из трёх цветов для лоадера, вызываемого жестом «swipe to refresh» (@ArrayRes Int) | R.array.ecc_swipe_refresh_colors |
Базовая кастомизация
val colors = ChatColors().apply {
main = R.color.your_brand_primary
toolbar = R.color.your_brand_toolbar
outgoingBubble = R.color.your_brand_primary
incomingBubble = R.color.your_incoming_bubble
}
val theme = ChatTheme(
applicationContext,
colors = colors
)
Конструктор ChatColors() без параметров создаёт объект со всеми дефолтами. Через apply { ... } подменяйте только те поля, которые нужны вашему бренду — остальные останутся стандартными.
17 полей по умолчанию ссылаются на другие поля ChatColors (например, outgoingBubble = main, pushMessage = inputMessage, progressButtonStartDownloadTint = bodyIconsTint). Эта связь — обычный Kotlin default-параметр, который вычисляется один раз при вызове конструктора. Изменение «базового» поля через apply { ... } не обновит зависимые поля.
val colors = ChatColors().apply {
main = R.color.your_brand_primary
// outgoingBubble, sendBtnIconColor, chatErrorScreenImageTint, searchHighlight,
// surveyButtonBackgroundTintColor, voiceBtnBackground, quoteClearIcon,
// bodyIconsTint (и зависящие от него progressButton*Tint) остаются
// со стандартными значениями SDK.
}
Чтобы распространить значение на зависимые поля, передавайте «базовое» поле именованным аргументом конструктора:
val colors = ChatColors(
main = R.color.your_brand_primary // выражения-дефолты подхватят его автоматически
)
Дополнительно chatButtonTintColorStateList имеет дефолт arrayOf(disabledColor, main, main) — он также собирается из значений, актуальных на момент вызова конструктора.
Полный бренд-комплект
ChatColors передаётся в ChatTheme рядом с ChatImages и ChatTypography.
val brandColors = ChatColors().apply {
main = R.color.brand_primary
toolbar = R.color.brand_toolbar
statusBar = R.color.brand_status_bar
outgoingBubble = R.color.brand_primary
chatBackground = R.color.brand_background
}
val theme = ChatTheme(
applicationContext,
colors = brandColors,
images = brandImages,
typography = brandTypography
)
Подробный сценарий сборки светлой и тёмной тем — в разделе Темы.
Справочник параметров ChatImages
Раздел перенесён в Дизайн-система → Изображения: все 66 полей ChatImages сгруппированы по категориям (Тулбар и навигация, Поле ввода и отправка, Сообщения и баблы, Статусы сообщений, Цитаты и реплаи, Голосовые сообщения, Файлы и загрузки, Меню вложений (BottomMenuChatFlow), Поиск, Опросы (Survey), Прокрутка, Аватары и плейсхолдеры, Push-уведомления и алерты, Ошибки и расписание).
Справочник шрифтов (ChatTypography)
Раздел перенесён в Дизайн-система → Типографика: 6 семантических токенов (big, medium, mediumUpper, regular, small, error) и 20 точек подмены кастомных TTF-шрифтов.
ChatTexts (deprecated)
ChatTexts помечены @DeprecatedНе передавайте значения через ChatTexts — вместо этого переопределяйте соответствующие ключи в файле res/values/strings.xml вашего приложения. Полный список ключей см. в разделе Локализация.
Связанные разделы
- Дизайн-система: обзор — как устроены
ChatTheme,ChatColors,ChatImages,ChatTypography. - Компоненты экранов — где на экране отображаются перечисленные элементы.
- Изображения — таблица
ChatImages. - Типографика —
ChatTypography. - Темы — как
ChatColorsвстраивается вChatTheme. - Потоки (Flows) — экран-специфичная кастомизация.
- Доступность — критичные пары
ChatColorsдля проверки контраста. - Известные ограничения — параметры с приоритетом серверной настройки.