Theme components overview

Each theme has a number of components. Some are top-level components, meaning that they are rendered directly by the TalkJS application at a certain location in the user interface. Others are subcomponents, which are rendered by a component in the theme.

Each of the top-level components also has access to a number of system components. These are components for which the markup and behavior is provided by the TalkJS application. The documentation page for each component lists the available system components.

Customizable components

NameTypeDescription
AvatarSubcomponentRenders a user's profile image.
ChatHeaderTop-level componentA header rendered at the top of the chatbox (also in the inbox and popup widgets).
ConversationImageSubcomponentRenders a visual representation of a conversation.
ConversationListHeaderTop-level componentA header rendered at the top of the conversation list in the inbox
ConversationListItemTop-level componentThis component is rendered for each conversation in the conversation list of the inbox.
GroupChatImageSubcomponentRenders a visual representation of a group chat, showing the number of participants, and some participants' avatars.
MessageBodySubcomponentA subcomponent used by UserMessage and SystemMessage to render the message's contents.
MessageFieldTop-level componentThis component is rendered at the bottom of the chatbox (also in the inbox and popup widgets). It includes the text field where you can type messages, but also buttons for sending attachments, voice recordings, etc.
NoChatsScreenTop-level componentThis component is rendered in certain situations when the user is not part of any conversations.
RecordingPreviewSubcomponentA component that includes a player to preview audio recordings
ReplyBarSubcomponentA bar rendered at the top of the message field when the user is replying to a message.
SystemMessageTop-level componentThis component is rendered for each system message in a conversation.
TypingIndicatorSubcomponentUsed inside MessageBody to render inside a "fake" message that is shown when a user is typing.
UserMessageTop-level componentThis component is rendered for each user message in a conversation.
VoiceRecorderSubcomponentA component used by MessageField to render the interface for recording voice messages.