Skip to main content
Version: 5.21.0

Colors reference (ChatColors)

Below are all available ChatColors fields. Most values are references to color resources (R.color.*); some fields default to other ChatColors fields (e.g., bodyIconsTint = main), and swipeRefreshColors is an @ArrayRes Int (a reference to R.array.*).

Only what is listed here

If a color you need is not in these tables, it is not part of the SDK's public API; contact edna support with a request to extend the design system. Fonts and icons are in separate references: Typography and Images.

ChatColors fields

Toolbar and navigation

FieldDescriptionDefault value
backButton"Back" button colorR.color.ecc_white
mainPrimary chat color. Used in toolbar elements, loaders, etc., where no own color is setR.color.ecc_green_83b144
bodyIconsTintIcon color when no own color is setmain
toolbarToolbar colorR.color.ecc_chat_toolbar
toolbarContextMenu"Three dots" icon color that opens the toolbar menuR.color.ecc_chat_toolbar_context_menu
statusBarStatus bar colorR.color.ecc_chat_status_bar
menuItemMenu item text colorR.color.ecc_chat_toolbar_menu_item
toolbarTextToolbar text colorR.color.ecc_white
chatToolbarInverseIconTintToolbar icon color when the toolbar is inverted (e.g., on message selection)R.color.ecc_white
chatToolbarHintTextHint text color in the search input fieldR.color.ecc_chat_toolbar_hint
searchingProgressLoaderLoader color while searching for an operatorR.color.ecc_consult_searching_progress_color

Messages and bubbles

FieldDescriptionDefault value
incomingTextIncoming message text colorR.color.ecc_black
outgoingTextOutgoing message text colorR.color.ecc_white
incomingLinkIncoming link text colorR.color.ecc_incoming_message_link
outgoingLinkOutgoing link text colorR.color.ecc_outgoing_message_link
disabledColorDisabled elements colorR.color.ecc_disabled_text_color
incomingBubbleIncoming bubble colorR.color.ecc_white
outgoingBubbleOutgoing bubble colormain
incomingTimeTextTime text color in incoming messagesincomingText
outgoingTimeTextTime text color in outgoing messagesoutgoingText
incomingImageTimeBackgroundTime underlay color in incoming messagesR.color.ecc_incoming_time_background
outgoingImageTimeBackgroundTime underlay color in outgoing messagesR.color.ecc_outgoing_time_background
messageHighlightingBubble color when highlightedR.color.ecc_chat_highlighting
messageEditedStatus"Edited" indicator color for an edited messageR.color.ecc_message_edited_color
messageSendingStatus"Sending" status icon colorR.color.ecc_white
messageSentStatus"Sent" status icon colorR.color.ecc_white
messageDeliveredStatus"Delivered" status icon colorR.color.ecc_white
messageReadStatus"Read" status icon colorR.color.ecc_white
messageFailedStatus"Error" status icon colorR.color.ecc_white
messagePopupMenuBackgroundMessage popup menu background (long-press menu)R.color.ecc_white
messagePopupMenuItemMessage popup menu item text colorR.color.ecc_black
Common default for five statuses

messageSendingStatus, messageSentStatus, messageDeliveredStatus, messageReadStatus, and messageFailedStatus are colored R.color.ecc_white by default. The different icons for these statuses are set in ChatImages (see the "Message statuses" table in images.md). If the outgoing bubble background is light, override the corresponding status color.

Input field

FieldDescriptionDefault value
inputMessageText color for input fields, except searchR.color.ecc_black
inputMessageHintHint text color in input fields, except searchR.color.ecc_grey_aaa
inputFieldBackgroundInput field background colorR.color.ecc_white
voiceBtnBackgroundVoice recording button background colormain
voiceBtnIconColorVoice recording button colorR.color.ecc_white
sendBtnIconColorSend button icon colormain
microphoneMicrophone icon colorR.color.ecc_record_button_small_mic
bottomButtonTextColorBottom chat button text color (camera, gallery, file)R.color.ecc_chat_toolbar
bottomButtonsBackgroundBottom chat button background color (camera, gallery, file)R.color.ecc_white
FieldDescriptionDefault value
searchTextSearch input field text colorR.color.ecc_white
searchHintSearch field hint text colorR.color.ecc_cian_b2dfdb
searchResultBackgroundSearch results background colorR.color.ecc_chat_background
searchIconSearch icon colorR.color.ecc_white
searchLoaderTintSearch icon color for the loader while loading search resultsR.color.ecc_white
searchBarTextText color while entering a queryR.color.ecc_white
searchResultsDividerDivider color between search result itemsR.color.ecc_search_divider_color
searchResultsItemRightArrowTint"Right arrow" icon color in search resultsR.color.ecc_search_results_item_secondary
searchResultsItemDateTextDate text color in search resultsR.color.ecc_search_results_item_secondary
searchResultsItemMessageTextText color of the messageR.color.ecc_search_results_message_color
searchResultsItemNameTextText color of the message authorR.color.ecc_black
searchResultNoItemsText"No results" text colorR.color.ecc_black
searchHighlightHighlight color of found text in searchmain

Quotes and replies

FieldDescriptionDefault value
quoteHeaderChatViewQuote header text colorR.color.ecc_black
quoteTextQuote text colorR.color.ecc_black
quoteClearIconClear-quote icon colormain
quotePlayPauseButtonPlay/pause button text color in a quoted messageR.color.ecc_preview_play_pause_button
quoteBgColorQuote background colorR.color.ecc_quote_bg_color
quoteDelimiterColorQuote delimiter colorR.color.ecc_quote_delimiter_color
quoteAuthorColorTextQuote author text colorR.color.ecc_quote_author_color_text
quoteColorTextQuote text colorR.color.ecc_quote_color_text
quoteIconTintColorQuote icon colorR.color.ecc_white

Surveys

FieldDescriptionDefault value
surveyTextSurvey text colorR.color.ecc_chat_system_message
buttonSurveyTextButtonColorButton text color in a button surveyR.color.ecc_white
surveyButtonBackgroundTintColorSurvey button background colormain
buttonSurveyQuestionTextColorQuestion text color in a button surveyR.color.ecc_chat_system_message
surveyChoicesTextSurvey answer choice text colorR.color.ecc_survey_choices_text
rateStarsCountSelected-stars count text colorR.color.ecc_chat_outgoing_message_bubble
rateTotalStarsCountAvailable-stars count text coloroutgoingText
rateFrom"of" preposition text color (3 of 5)outgoingText
rateStarStar icon coloroutgoingText
surveySelectedColorFilterSurvey icon color when selectedR.color.ecc_survey_selected_icon_tint
surveyUnselectedColorFilterSurvey icon color when not selectedR.color.ecc_survey_unselected_icon_tint

Buttons and actions

FieldDescriptionDefault value
quickRepliesTextQuick reply text colorR.color.ecc_black
quickReplyButtonBackgroundTintQuick reply button background colorR.color.ecc_white
chatButtonTintColorStateListSet of colors for different button statesarrayOf(disabledColor, main, main)
buttonsDefaultTextDefault button text colorR.color.ecc_black
buttonsDefaultStrokeDefault button border colorR.color.ecc_black
progressButtonStartDownloadTint"Download file" button color in the initial state (download has not started)bodyIconsTint
progressButtonInProgressTint"Download file" button color during downloadbodyIconsTint
progressButtonCompletedTint"Download file" button color after downloadbodyIconsTint
progressButtonBackgroundTint"Download file" button background colorR.color.ecc_progress_button_background

Push and counters

FieldDescriptionDefault value
pushBackgroundPush notification background colorR.color.ecc_push_background
pushMessagePush notification text colorinputMessage
unreadMessagesCountTextUnread message count text colorR.color.ecc_chat_unread_msg_count_text
unreadMsgStickerSticker color (background behind unread digits)R.color.ecc_chat_unread_msg_sticker_background

System and errors

FieldDescriptionDefault value
systemMessageSystem message colorR.color.ecc_chat_system_message
errorTextError text colorR.color.ecc_error_red_df0000
mainTextWhenErrorBubbleText color inside an error message bubbleR.color.ecc_white
errorBackgroundBubble color on a message error (e.g., send failure)R.color.ecc_error_red_df0000
errorIconError icon colorR.color.ecc_white
chatErrorScreenButtonTextButton text color on the chat error screenR.color.ecc_white
chatErrorScreenMessageTextMessage text color on the chat error screenR.color.ecc_chat_new_system_message
chatErrorScreenImageTintImage tint color on the chat error screenmain
scheduleTextSchedule text colorR.color.ecc_schedule_text
infoIconInformation icon colorR.color.ecc_error_red_df0000

State restoration screen

A full-screen placeholder with the text "Restoring state…" is displayed if the chat or related screens (attachment gallery, SDK dialogs) are opened by the system before the SDK initialization completes. A detailed scenario description is in Known limitations → State restoration screen. The colors are not in ChatColors; override them via resources in res/values/colors.xml and res/values-night/colors.xml of your app.

ResourceDescriptionLightDark
ecc_restoring_state_view_hint_color"Restoring state…" text colorR.color.ecc_blackR.color.ecc_white
ecc_restoring_state_backgroundRestoration screen background colorR.color.ecc_whiteR.color.ecc_black
Dark theme

Starting with version 5.21.0, the SDK ships a values-night/colors.xml file. If you override SDK colors in your own values/colors.xml, add the corresponding overrides to values-night/colors.xml for correct dark-theme rendering.

Miscellaneous

FieldDescriptionDefault value
gallerySearchTitleSearch title text color on the gallery screenR.color.ecc_white
gallerySearchSubtitleSearch subtitle text color on the gallery screenR.color.ecc_gallery_search_subtitle
galleryImageBottomNameFile name color under an imageR.color.ecc_white
mediaAndFilesTextText color in the "Files and media" section for title, file size, and timeR.color.ecc_black
filesAndMediaIconTintIcon color in the "Files and media" sectionR.color.ecc_green_83b144
chatBackgroundChat window background colorR.color.ecc_chat_background
imageScreenBackgroundBackground color of the full-screen image viewerR.color.ecc_attachments_background
emptyStateBackgroundBackground color when there are no chat messagesR.color.ecc_empty_state_background
separatorsChat separator colorR.color.ecc_icon_and_separators_color
imagesScreenTextText color on the full-screen image viewerR.color.ecc_white
emptyFilesAndMediaTextText color when "Files and media" is emptyR.color.ecc_black
audioStatusText color of the current audio status (e.g., "processing")R.color.ecc_black
alertsTextText color on popup screens (alerts)R.color.ecc_black
loaderTextColorLoader message text colorR.color.ecc_black
balloonTextText color of popup messages (Toast or Snackbar)R.color.ecc_black
balloonBackgroundBackground color of popup messages (Toast or Snackbar)R.color.ecc_white
welcomeScreenTitleTextWelcome screen title text colorR.color.ecc_welcome_screen_title
welcomeScreenSubtitleTextWelcome screen subtitle text colorR.color.ecc_welcome_screen_subtitle
popupsBackgroundPopup background colorR.color.ecc_cian_b2dfdb
swipeRefreshColorsSet of three colors for the "swipe to refresh" loader (@ArrayRes Int)R.array.ecc_swipe_refresh_colors

Basic customization

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
)
Override only the fields you need

The ChatColors() constructor with no parameters creates an object with all defaults. Use apply { ... } to override only the fields needed by your brand — the rest remain standard.

Field-to-field defaults are computed in the constructor only

17 fields default to other ChatColors fields (e.g., outgoingBubble = main, pushMessage = inputMessage, progressButtonStartDownloadTint = bodyIconsTint). This link is an ordinary Kotlin default parameter, which is computed once when the constructor is called. Changing the "base" field via apply { ... } will not update dependent fields.

val colors = ChatColors().apply {
main = R.color.your_brand_primary
// outgoingBubble, sendBtnIconColor, chatErrorScreenImageTint, searchHighlight,
// surveyButtonBackgroundTintColor, voiceBtnBackground, quoteClearIcon,
// bodyIconsTint (and dependent progressButton*Tint) remain at SDK defaults.
}

To propagate the value to dependent fields, pass the "base" field as a named constructor argument:

val colors = ChatColors(
main = R.color.your_brand_primary // default expressions will pick it up automatically
)

Additionally, chatButtonTintColorStateList has a default arrayOf(disabledColor, main, main) — it is also assembled from values at the moment of the constructor call.

Full brand kit

ChatColors is passed into ChatTheme alongside ChatImages and 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
)

A detailed scenario of building light and dark themes is in Themes.

ChatImages reference

The section has been moved to Design system → Images: all 66 ChatImages fields are grouped by category (Toolbar and navigation, Input field and send, Messages and bubbles, Message statuses, Quotes and replies, Voice messages, Files and downloads, Attachments menu (BottomMenuChatFlow), Search, Surveys, Scrolling, Avatars and placeholders, Push notifications and alerts, Errors and schedule).

Fonts reference (ChatTypography)

The section has been moved to Design system → Typography: 6 semantic tokens (big, medium, mediumUpper, regular, small, error) and 20 custom TTF substitution points.

ChatTexts (deprecated)

All ChatTexts fields are marked @Deprecated

Do not pass values through ChatTexts — instead, override the corresponding keys in your app's res/values/strings.xml. The full list of keys is in the Localization section.