Skip to main content

Appearance Reference

Every colour, font and size in a chat room is set on one page: open the Dead Simple Chat dashboard, go to Chat Rooms, click a room, and open the Customize tab.

The Customize tab for a chat room

This page is the full field list, grouped exactly as the Customize tab groups it. For each field you get what it changes, the value it takes, and the loadCustomization key that sets the same thing from the JavaScript SDK.

How the tab behaves

Changes save themselves. There is no Save button for appearance fields. About a second after you stop editing a field, the change is written to the room and the live preview reloads. The one exception is the Custom CSS box, which has its own Save Custom CSS button.

Quick Settings is a shortcut, not a separate setting. Three of the Quick Settings fields fan out into the detailed fields below them the moment you change them:

Quick Settings fieldAlso writes
Background ColorHeader Background Color, Modal Background Color
Text ColorSidebar Text Color, Chat Text Message Color, Modal Font Color, Header Text Color
FontChat Message Font, Username Font, Timestamp Font, Modal Font

Set Quick Settings first to get a whole room into roughly the right palette, then adjust individual fields. Going the other way round loses your detailed work.

info

This fan-out is a convenience in the dashboard only. loadCustomization applies exactly the keys you pass it and nothing else, so from the SDK set the specific keys you want — chatMessageColor, headerTextColor and so on — rather than relying on textColor or backgroundColor to reach them.

Two more shortcuts sit at the top of the tab. Pre-built Themes previews a complete colour set and applies it to every matching field when you click Apply Theme, and the AI Configuration Assistant can set these fields from a plain description of what you want. At the bottom, Copy Customization to another chat room pushes the whole set to other rooms you own, and Reset to default settings returns the room to stock.

Value formats

These apply throughout the tab.

Kind of fieldIn the dashboardIn loadCustomization
ColourA colour picker, so a hex value such as #1a1a2eA string holding any CSS colour — "#1a1a2e", "rgba(99,102,241,1)", "tomato"
SizeA number box, whole numbers 1 to 100, read as pixelsA string holding a CSS font-size, including the unit"14px"
FontA dropdown of bundled web fonts, or a free-text box when Use Own Font is onA string holding the font-family name — "Nunito"
ToggleA checkboxA boolean

Sizes are the one place the two surfaces differ in shape. The dashboard box takes a bare number because it is labelled in pixels; the SDK key is passed through to CSS as you wrote it, so include px when you call it from code:

JavaScript
frame1.loadCustomization({
backgroundColor: "#1a1a2e",
chatMessageColor: "#e0e0e0",
fontSize: "14px",
chatMessageFont: "Nunito"
});

Every field at a glance

FieldPanelloadCustomization key
Sidebar Color / Sidebar Background ColorQuick Settings, SidebarsidebarColor
Background ColorQuick Settings, Chat Message AreabackgroundColor
Text ColorQuick SettingstextColor
Use Own FontQuick SettingsuseCustomFont
FontQuick SettingsfontFamily
Font Size in px / Chat Message Font SizeQuick Settings, Chat Message AreafontSize
Chat Text Message ColorChat Message AreachatMessageColor
Chat Message Hover ColorChat Message AreachatMessageHoverColor
Chat Un-Approved Message Background ColorChat Message AreachatUnapprovedMessageBackgroundColor
Chat Message FontChat Message AreachatMessageFont
Username FontChat Message AreausernameFont
Timestamp FontChat Message AreatimestampFont
Username Font SizeChat Message AreausernameFontSize
Timestamp Font SizeChat Message AreatimestampFontSize
Time FormatChat Message AreatimeFormat
Date FormatChat Message AreadateFormat
Sidebar Text ColorSidebarsidebarTextColor
Sidebar Heading Text ColorSidebarsidebarHeadingTextColor
Sidebar Text Font SizeSidebarsidebarTextFontSize
Sidebar Heading Font SizeSidebarsidebarHeadingFontSize
Header Background ColorHeaderheaderBackgroundColor
Header Text ColorHeaderheaderTextColor
Header Font SizeHeaderheaderFontSize
Text Area Border ColorText AreatextareaBorderColor
Text Area Background ColorText AreatextareaBackgroundColor
Text Area Font SizeText AreatextareaFontSize
Send Button Background ColorText AreasendButtonBackgroundColor
Send Button Icon ColorText AreasendButtonIconColor
Button ColorButtonsbuttonColor
Button Hover ColorButtonsbuttonHoverColor
Button Text ColorButtonsbuttonTextColor
Modal FontModalmodalFont
Modal Background ColorModalmodalBackgroundColor
Modal Font ColorModalmodalFontColor
Modal Heading Font SizeModalmodalHeadingFontSize
Modal Label Font SizeModalmodalLabelFontSize
Chat Bubble ColorChat Bubble CustomizationchatBubbleColor
Chat Bubble Icon ColorChat Bubble CustomizationchatBubbleIconColor
Chat Bubble Header Background ColorChat Bubble CustomizationchatBubbleHeaderBackgroundColor
Chat Bubble Header Text ColorChat Bubble CustomizationchatBubbleHeaderTextColor
Emoji sizeCustom CSS
Message spacingCustom CSS

Toggles that remove parts of the interface live in the Hide Elements panel and are documented separately, in the Hide Elements Reference.

Quick Settings

The first panel on the tab. Six fields that get a room close to your brand in one pass.

Text Color

What it changes: The body text colour for the room. In the dashboard this is a fan-out control — changing it writes Sidebar Text Color, Chat Text Message Color, Modal Font Color and Header Text Color to the same value, and you then adjust any of those individually.

Value: Colour. Stock value #333333.

SDK key: textColor. From the SDK this key does not fan out, so set chatMessageColor, sidebarTextColor, headerTextColor and modalFontColor directly for the result you want.

Use Own Font

What it changes: Switches all five font fields on the tab — Font, Chat Message Font, Username Font, Timestamp Font and Modal Font — from a dropdown of bundled web fonts to a free-text box, so you can name a font that is not on the list. Turning it back off clears Font.

A font you type in is not loaded for you. Add an @import for it in the Custom CSS box, or load it from the page that hosts your embed, otherwise the browser falls back to a default.

Value: Toggle. Off by default.

SDK key: useCustomFont. The font keys accept any family name whether or not this is set, so from code you normally just pass the name you want to fontFamily and the other font keys.

Font

What it changes: The base font for the room. Fans out to Chat Message Font, Username Font, Timestamp Font and Modal Font.

Value: Font. The dropdown offers Lato, Open Sans, Lora, Roboto, Source Sans Pro, Work Sans, PT Serif, PT Sans, Nunito, Montserrat, Alegreya, B612, Varela, Vollkorn, Crimson Text, Titillium Web, Cairo, BioRhyme, Karla, Frank Ruhl Libre, Playfair Display, Archivo, Spectral, Fjalla One, Rubik, Cardo, Cormorant, Arvo, Ubuntu, Oswald, Poppins, Fira Sans, Oxygen, Merriweather and Noto Sans, plus Default. Turn on Use Own Font to type any other family name.

SDK key: fontFamily.

Font Size in px

What it changes: The size of the message text in the chat. This is the same field as Chat Message Font Size in the Chat Message Area panel — the Customize tab shows the one setting in both places, so editing either one moves the other.

Value: Size, 1 to 100.

SDK key: fontSize.

Chat Message Area

The scrolling list of messages, and the fonts and sizes used inside a message.

Background Color

What it changes: The background behind the message list. It is also the field Quick Settings Background Color edits, and changing it there additionally writes Header Background Color and Modal Background Color.

Value: Colour. Stock value #ffffff.

SDK key: backgroundColor.

Chat Text Message Color

What it changes: The colour of message text, and of the username shown above a message.

Value: Colour. Stock value #333333.

SDK key: chatMessageColor.

This — not Text Color — is the field that repaints the message list. If you set Text Color in the dashboard you get this one set for you as well; if you are calling the SDK, set this one.

Chat Message Hover Color

What it changes: The background of a single message row while the pointer is over it. Useful for signalling that a message is interactive, since hovering is how a reader reaches the reply and reaction controls.

Value: Colour. Stock value #F8F8F8.

SDK key: chatMessageHoverColor.

Chat Un-Approved Message Background Color

What it changes: The background of a message that is waiting for a moderator in a pre-moderated room. Only the person who wrote it sees it, marked "Admin approval pending", so this colour is the cue that their message is held rather than posted. The default is a strong yellow for exactly that reason.

Value: Colour. Stock value #ffff00.

SDK key: chatUnapprovedMessageBackgroundColor.

Chat Message Font

What it changes: The font of message text. It is also used for the text you type in the message box, so the two match while composing.

Value: Font.

SDK key: chatMessageFont.

Username Font

What it changes: The font of the username above each message.

Value: Font.

SDK key: usernameFont.

Timestamp Font

What it changes: The font of the time shown beside each username.

Value: Font.

SDK key: timestampFont.

Chat Message Font Size

What it changes: The size of message text. The same setting as Font Size in px in Quick Settings — one value, shown in two panels.

Value: Size, 1 to 100.

SDK key: fontSize.

Username Font Size

What it changes: The size of the username above each message.

Value: Size, 1 to 100.

SDK key: usernameFontSize.

Timestamp Font Size

What it changes: The size of the timestamp beside each username. Usually set a step or two below the message size so it recedes.

Value: Size, 1 to 100.

SDK key: timestampFontSize.

Time Format

What it changes: Whether message times read as a 12-hour or 24-hour clock.

Value: 12h or 24h. Stock value 12h.

SDK key: timeFormat.

Date Format

What it changes: How the date part of a message timestamp is written, for example DD/MM/YYYY.

Value: A format string. The supported tokens are listed in the loadCustomization reference.

SDK key: dateFormat.

The panel down the side of the room holding channels, private chats and the online users list.

What it changes: The sidebar background. This is the same field as Sidebar Color in Quick Settings.

Value: Colour. Stock value #281576.

SDK key: sidebarColor.

What it changes: The text inside the sidebar — channel names, private chat names, the names in the online users list, and the signed-in username at the top.

Value: Colour. Stock value #ffffff.

SDK key: sidebarTextColor.

What it changes: The section headings in the sidebar — Channels, Private Chats, Online Users — and the online users count beside that heading. Set separately from the item text so headings can carry a lighter or accent colour.

Value: Colour. Stock value #ffffff.

SDK key: sidebarHeadingTextColor.

What it changes: The size of the item text in the sidebar lists.

Value: Size, 1 to 100.

SDK key: sidebarTextFontSize.

What it changes: The size of the sidebar section headings and the online users count.

Value: Size, 1 to 100.

SDK key: sidebarHeadingFontSize.

The bar across the top of the room. It carries the room name, any branding you have set, and the button that opens a collapsed sidebar.

Header Background Color

What it changes: The header background. Quick Settings Background Color writes this field too, so set this one afterwards if you want the header to differ from the message area.

Value: Colour. Stock value #ffffff.

SDK key: headerBackgroundColor.

Header Text Color

What it changes: The header text. The rule beneath the header is drawn from this colour as well, so it stays in keeping when you change it.

Value: Colour.

SDK key: headerTextColor.

Header Font Size

What it changes: The size of the header text.

Value: Size, 1 to 100.

SDK key: headerFontSize.

Text Area

The message box at the foot of the room and its send button.

Text Area Border Color

What it changes: The border around the message box.

Value: Colour.

SDK key: textareaBorderColor.

Text Area Background Color

What it changes: The inside of the message box. It is also used behind the emoji button that sits in the box, so the two read as one control.

Value: Colour. Stock value #ffffff.

SDK key: textareaBackgroundColor.

Text Area Font Size

What it changes: The size of the text you type into the message box. Worth matching to Chat Message Font Size so a message does not change size when it posts.

Value: Size, 1 to 100.

SDK key: textareaFontSize.

Send Button Background Color

What it changes: The fill of the send button beside the message box.

Value: Colour. Stock value #23d160.

SDK key: sendButtonBackgroundColor.

Send Button Icon Color

What it changes: The paper-plane icon on the send button. Set it against the fill above, or the button loses its shape.

Value: Colour. Stock value #ffffff.

SDK key: sendButtonIconColor.

Buttons

The room's action buttons other than send: Edit Profile and Claim Profile at the top of the sidebar, Logout at the foot of it, and the button a person presses to enter the room from the join modal — Join or Login.

Because one set of fields covers both the sidebar and the join modal, these three are the fields to get right first: they are the only styling a visitor sees before they are in the room.

Button Color

What it changes: The fill of those buttons at rest.

Value: Colour. Stock value #167df0.

SDK key: buttonColor.

Button Hover Color

What it changes: The fill while the pointer is over the button.

Value: Colour. Stock value #0f77ea.

SDK key: buttonHoverColor.

Button Text Color

What it changes: The label on those buttons.

Value: Colour. Stock value #ffffff.

SDK key: buttonTextColor.

The dialogs the room puts over the chat — chiefly the join modal a person meets before entering, and the profile dialogs. If you are styling the join experience, read this panel alongside Creating and Managing Users.

What it changes: The font used throughout a dialog.

Value: Font.

SDK key: modalFont.

What it changes: The background of a dialog, heading and body alike. Quick Settings Background Color writes this field too.

Value: Colour. Stock value #ffffff.

SDK key: modalBackgroundColor.

What it changes: All text in a dialog — the title, the field labels and the body copy.

Value: Colour.

SDK key: modalFontColor.

What it changes: The size of the title in a dialog's top bar.

Value: Size, 1 to 100.

SDK key: modalHeadingFontSize.

What it changes: The size of the text in a dialog's body, including the labels above its fields.

Value: Size, 1 to 100.

SDK key: modalLabelFontSize.

Chat Bubble Customization

These four apply only when you embed the room as a floating chat bubble rather than in a panel on the page. They have no effect on a room opened by its own link.

Chat Bubble Color

What it changes: The fill of the closed bubble in the corner of your page.

Value: Colour. Stock value rgba(99,102,241,1).

SDK key: chatBubbleColor.

Chat Bubble Icon Color

What it changes: The icon drawn on the closed bubble.

Value: Colour.

SDK key: chatBubbleIconColor.

Chat Bubble Header Background Color

What it changes: The bar across the top of the panel that opens when the bubble is clicked.

Value: Colour. Stock value rgba(99,102,241,1).

SDK key: chatBubbleHeaderBackgroundColor.

Chat Bubble Header Text Color

What it changes: The text in that bar.

Value: Colour. Stock value white.

SDK key: chatBubbleHeaderTextColor.

Custom CSS

Anything the fields above do not reach, you can style yourself. The Custom CSS box near the bottom of the Customize tab takes a stylesheet that is applied to the room, and the CSS Class Guide button at the top of the tab lists the class names the chat interface uses, grouped by area, with a copyable example for each. Add !important where a field above has already set the same property inline.

Two things people commonly want are shaped by CSS rather than by a field.

Emoji size

There is no field for emoji size. The reaction emojis on a message are sized in CSS:

Custom CSS
.waveReaction,
.thumbsUpReaction,
.clapReaction,
.heartReaction,
.emojiReaction {
font-size: 10px !important;
}

Raise or lower the value to taste. .emojiReaction covers the reactions on a message generally; the four named classes are the individual reaction buttons, and the CSS Class Guide in the dashboard lists the full set under Reactions & Likes if you want to size one differently from the others.

To remove the emoji picker from the message box altogether, use the Emoji Picker toggle instead — see the Hide Elements Reference.

Message spacing

There is no field for the gap between messages either. Messages carry a margin above and below, and their contents carry padding, so close both up for a denser list:

Custom CSS
.chat-message {
margin-top: 0px !important;
margin-bottom: 0px !important;
}

.chat-message div {
padding-bottom: 0px !important;
}

For a looser list, raise the margins rather than zeroing them. .chat-message is also the hook for the hover state — see Chat Message Hover Color if you would rather set that with the field than in CSS.

info

If custom CSS ever leaves you unable to reach a control in your own room, open the room with ?disableCustomCSS=true on the end of its URL. That version of the page loads without your custom CSS and without the saved Customize fields, so every control is back in its stock place and you can get to the dashboard to fix the rule.

Reusing a look

Once a room looks right, you do not have to repeat the work. Copy Customization to another chat room at the bottom of the Customize tab takes a multiple selection of your other rooms and pushes the whole field set to them in one go.

To vary the look per visitor instead of per room — a dark palette on one page, a read-only styling for some users — leave the room's own fields as your baseline and call loadCustomization from the SDK when you embed it. The keys you pass override the saved fields for that one embed without changing the room.