Themes¶
Beta Warning
Custom themes are not yet stable. There may be breaking changes in the future (see Migrations).
Chatterino supports custom-made themes since 2.5.1.
Custom themes are JSON files that are stored in the Themes
folder inside your Chatterino folder.
Creating A Theme¶
To create a theme, it's best to use one of the built-in themes as the starting point.
You can find them in the resources/themes
folder inside the source-code.
Copy one into the Themes
folder and restart Chatterino.
When you open the settings and select a theme, you should see one prefixed with Custom:
.
Make sure, you're familiar with the common words used in Chatterino.
Schema¶
Chatterino themes have a JSON schema that must match in order for the theme to be displayed correctly. Many editors support JSON schemas out of the box and warn you about invalid values and provide completions.
If you used one of the base themes, then the $schema
key inside the JSON is invalid, since its value is configured to work inside the Chatterino source-code. You should change the value of $schema
to https://github.com/Chatterino/chatterino2/raw/master/docs/ChatterinoTheme.schema.json
as shown below. If you want to pin the schema to a specific version, replace master
with your desired version (for example v2.4.4
).
{
"$schema": "https://github.com/Chatterino/chatterino2/raw/master/docs/ChatterinoTheme.schema.json",
// ...
}
Auto Reloading¶
When developing themes, you often want to reload your changes and see how they look.
To aid you in doing that, Chatterino can automatically reload your theme.
Use the /c2-theme-autoreload
command in any chat to toggle auto-reload.
Warning
Make sure to disable auto-reloading after you're done with your changes to reduce resource usage.
Colors¶
Colors in themes can be specified in various ways.
All values that expect a qt-color
accept one of the following values.
Make sure you're using the schema to get editor feedback.
Technically, the values are passed to QColor
which does the parsing.
Hex Colors¶
A
, R
, G
, and B
are single hex digits (0-9, a-f, A-F).
#RGB
#RRGGBB
-
#AARRGGBB
This format is different from the CSS Color Moudle Level 4<hex-color>
, where the alpha value is at the end. -
#RRRGGGBBB
#RRRRGGGGBBBB
Named Colors¶
- SVG color keyword names - For example
red
,mediumspringgreen
. Note that these color names are technically case-insensitive and accept spaces, but this isn't supported by the schema, which only accepts lower-case names. transparent
Alternate editors¶
These are some alternate ways of creating your own custom themes:
- Chatterino Theme Creator by
doge41732
Migrations¶
This section contains added, updated, and removed properties in a release, and commit for nightly versions.