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.*).
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
| Field | Description | Default value |
|---|---|---|
backButton | "Back" button color | R.color.ecc_white |
main | Primary chat color. Used in toolbar elements, loaders, etc., where no own color is set | R.color.ecc_green_83b144 |
bodyIconsTint | Icon color when no own color is set | main |
toolbar | Toolbar color | R.color.ecc_chat_toolbar |
toolbarContextMenu | "Three dots" icon color that opens the toolbar menu | R.color.ecc_chat_toolbar_context_menu |
statusBar | Status bar color | R.color.ecc_chat_status_bar |
menuItem | Menu item text color | R.color.ecc_chat_toolbar_menu_item |
toolbarText | Toolbar text color | R.color.ecc_white |
chatToolbarInverseIconTint | Toolbar icon color when the toolbar is inverted (e.g., on message selection) | R.color.ecc_white |
chatToolbarHintText | Hint text color in the search input field | R.color.ecc_chat_toolbar_hint |
searchingProgressLoader | Loader color while searching for an operator | R.color.ecc_consult_searching_progress_color |
Messages and bubbles
| Field | Description | Default value |
|---|---|---|
incomingText | Incoming message text color | R.color.ecc_black |
outgoingText | Outgoing message text color | R.color.ecc_white |
incomingLink | Incoming link text color | R.color.ecc_incoming_message_link |
outgoingLink | Outgoing link text color | R.color.ecc_outgoing_message_link |
disabledColor | Disabled elements color | R.color.ecc_disabled_text_color |
incomingBubble | Incoming bubble color | R.color.ecc_white |
outgoingBubble | Outgoing bubble color | main |
incomingTimeText | Time text color in incoming messages | incomingText |
outgoingTimeText | Time text color in outgoing messages | outgoingText |
incomingImageTimeBackground | Time underlay color in incoming messages | R.color.ecc_incoming_time_background |
outgoingImageTimeBackground | Time underlay color in outgoing messages | R.color.ecc_outgoing_time_background |
messageHighlighting | Bubble color when highlighted | R.color.ecc_chat_highlighting |
messageEditedStatus | "Edited" indicator color for an edited message | R.color.ecc_message_edited_color |
messageSendingStatus | "Sending" status icon color | R.color.ecc_white |
messageSentStatus | "Sent" status icon color | R.color.ecc_white |
messageDeliveredStatus | "Delivered" status icon color | R.color.ecc_white |
messageReadStatus | "Read" status icon color | R.color.ecc_white |
messageFailedStatus | "Error" status icon color | R.color.ecc_white |
messagePopupMenuBackground | Message popup menu background (long-press menu) | R.color.ecc_white |
messagePopupMenuItem | Message popup menu item text color | R.color.ecc_black |
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
| Field | Description | Default value |
|---|---|---|
inputMessage | Text color for input fields, except search | R.color.ecc_black |
inputMessageHint | Hint text color in input fields, except search | R.color.ecc_grey_aaa |
inputFieldBackground | Input field background color | R.color.ecc_white |
voiceBtnBackground | Voice recording button background color | main |
voiceBtnIconColor | Voice recording button color | R.color.ecc_white |
sendBtnIconColor | Send button icon color | main |
microphone | Microphone icon color | R.color.ecc_record_button_small_mic |
bottomButtonTextColor | Bottom chat button text color (camera, gallery, file) | R.color.ecc_chat_toolbar |
bottomButtonsBackground | Bottom chat button background color (camera, gallery, file) | R.color.ecc_white |
Search
| Field | Description | Default value |
|---|---|---|
searchText | Search input field text color | R.color.ecc_white |
searchHint | Search field hint text color | R.color.ecc_cian_b2dfdb |
searchResultBackground | Search results background color | R.color.ecc_chat_background |
searchIcon | Search icon color | R.color.ecc_white |
searchLoaderTint | Search icon color for the loader while loading search results | R.color.ecc_white |
searchBarText | Text color while entering a query | R.color.ecc_white |
searchResultsDivider | Divider color between search result items | R.color.ecc_search_divider_color |
searchResultsItemRightArrowTint | "Right arrow" icon color in search results | R.color.ecc_search_results_item_secondary |
searchResultsItemDateText | Date text color in search results | R.color.ecc_search_results_item_secondary |
searchResultsItemMessageText | Text color of the message | R.color.ecc_search_results_message_color |
searchResultsItemNameText | Text color of the message author | R.color.ecc_black |
searchResultNoItemsText | "No results" text color | R.color.ecc_black |
searchHighlight | Highlight color of found text in search | main |
Quotes and replies
| Field | Description | Default value |
|---|---|---|
quoteHeaderChatView | Quote header text color | R.color.ecc_black |
quoteText | Quote text color | R.color.ecc_black |
quoteClearIcon | Clear-quote icon color | main |
quotePlayPauseButton | Play/pause button text color in a quoted message | R.color.ecc_preview_play_pause_button |
quoteBgColor | Quote background color | R.color.ecc_quote_bg_color |
quoteDelimiterColor | Quote delimiter color | R.color.ecc_quote_delimiter_color |
quoteAuthorColorText | Quote author text color | R.color.ecc_quote_author_color_text |
quoteColorText | Quote text color | R.color.ecc_quote_color_text |
quoteIconTintColor | Quote icon color | R.color.ecc_white |
Surveys
| Field | Description | Default value |
|---|---|---|
surveyText | Survey text color | R.color.ecc_chat_system_message |
buttonSurveyTextButtonColor | Button text color in a button survey | R.color.ecc_white |
surveyButtonBackgroundTintColor | Survey button background color | main |
buttonSurveyQuestionTextColor | Question text color in a button survey | R.color.ecc_chat_system_message |
surveyChoicesText | Survey answer choice text color | R.color.ecc_survey_choices_text |
rateStarsCount | Selected-stars count text color | R.color.ecc_chat_outgoing_message_bubble |
rateTotalStarsCount | Available-stars count text color | outgoingText |
rateFrom | "of" preposition text color (3 of 5) | outgoingText |
rateStar | Star icon color | outgoingText |
surveySelectedColorFilter | Survey icon color when selected | R.color.ecc_survey_selected_icon_tint |
surveyUnselectedColorFilter | Survey icon color when not selected | R.color.ecc_survey_unselected_icon_tint |
Buttons and actions
| Field | Description | Default value |
|---|---|---|
quickRepliesText | Quick reply text color | R.color.ecc_black |
quickReplyButtonBackgroundTint | Quick reply button background color | R.color.ecc_white |
chatButtonTintColorStateList | Set of colors for different button states | arrayOf(disabledColor, main, main) |
buttonsDefaultText | Default button text color | R.color.ecc_black |
buttonsDefaultStroke | Default button border color | R.color.ecc_black |
progressButtonStartDownloadTint | "Download file" button color in the initial state (download has not started) | bodyIconsTint |
progressButtonInProgressTint | "Download file" button color during download | bodyIconsTint |
progressButtonCompletedTint | "Download file" button color after download | bodyIconsTint |
progressButtonBackgroundTint | "Download file" button background color | R.color.ecc_progress_button_background |
Push and counters
| Field | Description | Default value |
|---|---|---|
pushBackground | Push notification background color | R.color.ecc_push_background |
pushMessage | Push notification text color | inputMessage |
unreadMessagesCountText | Unread message count text color | R.color.ecc_chat_unread_msg_count_text |
unreadMsgSticker | Sticker color (background behind unread digits) | R.color.ecc_chat_unread_msg_sticker_background |
System and errors
| Field | Description | Default value |
|---|---|---|
systemMessage | System message color | R.color.ecc_chat_system_message |
errorText | Error text color | R.color.ecc_error_red_df0000 |
mainTextWhenErrorBubble | Text color inside an error message bubble | R.color.ecc_white |
errorBackground | Bubble color on a message error (e.g., send failure) | R.color.ecc_error_red_df0000 |
errorIcon | Error icon color | R.color.ecc_white |
chatErrorScreenButtonText | Button text color on the chat error screen | R.color.ecc_white |
chatErrorScreenMessageText | Message text color on the chat error screen | R.color.ecc_chat_new_system_message |
chatErrorScreenImageTint | Image tint color on the chat error screen | main |
scheduleText | Schedule text color | R.color.ecc_schedule_text |
infoIcon | Information icon color | R.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.
| Resource | Description | Light | Dark |
|---|---|---|---|
ecc_restoring_state_view_hint_color | "Restoring state…" text color | R.color.ecc_black | R.color.ecc_white |
ecc_restoring_state_background | Restoration screen background color | R.color.ecc_white | R.color.ecc_black |
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
| Field | Description | Default value |
|---|---|---|
gallerySearchTitle | Search title text color on the gallery screen | R.color.ecc_white |
gallerySearchSubtitle | Search subtitle text color on the gallery screen | R.color.ecc_gallery_search_subtitle |
galleryImageBottomName | File name color under an image | R.color.ecc_white |
mediaAndFilesText | Text color in the "Files and media" section for title, file size, and time | R.color.ecc_black |
filesAndMediaIconTint | Icon color in the "Files and media" section | R.color.ecc_green_83b144 |
chatBackground | Chat window background color | R.color.ecc_chat_background |
imageScreenBackground | Background color of the full-screen image viewer | R.color.ecc_attachments_background |
emptyStateBackground | Background color when there are no chat messages | R.color.ecc_empty_state_background |
separators | Chat separator color | R.color.ecc_icon_and_separators_color |
imagesScreenText | Text color on the full-screen image viewer | R.color.ecc_white |
emptyFilesAndMediaText | Text color when "Files and media" is empty | R.color.ecc_black |
audioStatus | Text color of the current audio status (e.g., "processing") | R.color.ecc_black |
alertsText | Text color on popup screens (alerts) | R.color.ecc_black |
loaderTextColor | Loader message text color | R.color.ecc_black |
balloonText | Text color of popup messages (Toast or Snackbar) | R.color.ecc_black |
balloonBackground | Background color of popup messages (Toast or Snackbar) | R.color.ecc_white |
welcomeScreenTitleText | Welcome screen title text color | R.color.ecc_welcome_screen_title |
welcomeScreenSubtitleText | Welcome screen subtitle text color | R.color.ecc_welcome_screen_subtitle |
popupsBackground | Popup background color | R.color.ecc_cian_b2dfdb |
swipeRefreshColors | Set 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
)
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.
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)
ChatTexts fields are marked @DeprecatedDo 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.
Related sections
- Design system: overview — how
ChatTheme,ChatColors,ChatImages,ChatTypographyare organized. - Screen components — where the listed elements appear on screen.
- Images —
ChatImagestable. - Typography —
ChatTypography. - Themes — how
ChatColorsis integrated intoChatTheme. - Flows — screen-specific customization.
- Accessibility — critical
ChatColorspairs for contrast checking. - Known limitations — parameters with server-side priority.