Skip to content

Multi-chat Widget Styling

With Synchra’s Multi-chat Widget you can very easily display your combined chat in OBS or anything else that supports a browser source. It supports Twitch, YouTube, TikTok and Kick. You can customize it to your liking with simple settings in the Dashboard.

The Chat Widget can be styled using custom CSS. You can target specific elements using the classes below and customize appearance.

CSS Classes
ClassDescription
.chat-containerOuter wrapper for chat messages
.chat-messages-containerMain container for all chat messages
.chat-widget-messageWidget item wrapper for messages and notices
.chat-widget-message--messageWidget item wrapper for chat messages
.chat-widget-message--noticeWidget item wrapper for notices
.chat-widget-message--subtype-*Widget item wrapper for a specific subtype
.chat-message-containerIndividual message container
.chat-widget-notice-lineIndividual notice line
.chat-widget-notice-typeNotice subtype/type label
.chat-widget-notice-userUser who triggered the notice
.chat-widget-notice-textNotice text content
.chat-widget-notice-messageUser message attached to a notice
.chat-message-meta-containerPlatform, Badges, Timestamp, username container
.chat-message-icons-containerContainer for platform and badge icons
.chat-message-provider-logoPlatform logo (Twitch, YouTube, etc.)
.chat-message-badges-containerUser badges (subscriber, moderator, etc.)
.chat-message-badgeUser badge
.chat-message-usernameUsername display
.chat-message-username-separatorSeparator between username and message
.chat-message-textThe actual message text content
.chat-message-mention@mentions within messages
.chat-message-linkLinks within messages
.chat-message-emoteEmotes within messages
.chat-message-gift-countGift count display (e.g., “1.000” for bits)
CSS Variables
VariableDescriptionExample
--text-colorText color#efeff0
--border-radiusCorner roundness8px
--border-colorBorder color#333
--border-widthBorder thickness2px
--background-opacityBackground transparency0.8
--background-colorBackground color#1a1a1a
--text-shadow-colorText shadow colorrgba(0,0,0,0.5)
--chat-size-scaleSize scaling factor1
.chat-message-container {
  padding: 1rem 1.25rem;
  border-radius: 12px;
  background: linear-gradient(145deg, #1a0736, #31176a);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.5),
    inset 0 0 12px rgba(190, 150, 255, 0.25),
    inset 0 0 4px rgba(255, 255, 255, 0.1);
}

If any of the predefined sizes do not fit your needs, you can customize the size of the chat widget using the --chat-size-scale CSS variable.

View CSS
.chat-container {
  --chat-size-scale: 0.67;
}

You can set a fixed width for chat bubbles to create a more uniform look.

View CSS
.chat-message-container {
  width: 400px;
}

When notices are enabled, every widget item has data-chat-message-type, data-chat-sub-type, and data-chat-provider attributes. You can hide a specific subtype with CSS.

View CSS
.chat-widget-message[data-chat-sub-type="sub"] {
  display: none;
}

Displays of how to manipulate text depending on what badges the user has.

View CSS
.chat-message-icons-container {
  display: none;
}

.chat-message-container span {
  color: var(--text-color) !important;
  font-weight: 500;
}

.chat-message-username::before {
  content: "[";
}

.chat-message-username::after {
  content: "] says";
}

.chat-message-container[data-badges~="subscriber"] span {
  color: #70c973 !important;
}

.chat-message-container[data-badges~="subscriber"]
  .chat-message-username::before {
  content: "[Guild] [";
}

.chat-message-container[data-badges~="subscriber"]
  .chat-message-username::after {
  content: "]";
}

.chat-message-container[data-badges~="vip"] span {
  color: #b0abe4 !important;
}

.chat-message-container[data-badges~="vip"] .chat-message-username::before {
  content: "[Party] [";
}

.chat-message-container[data-badges~="vip"] .chat-message-username::after {
  content: "]";
}

.chat-message-container[data-badges~="moderator"] span {
  color: #e39162 !important;
}

.chat-message-container[data-badges~="moderator"]
  .chat-message-username::before {
  content: "[Raid Leader] [";
}

.chat-message-container[data-badges~="moderator"]
  .chat-message-username::after {
  content: "]";
}