Go to file
2024-02-12 10:34:49 -06:00
Catppuccin fix: Catppuccin Mocha roomlist-text-secondary-color contrast (#65) 2024-02-12 10:34:49 -06:00
Covalence Add Covalence theme (#60) 2023-02-10 22:27:41 -06:00
Discord Add files via upload 2023-07-28 09:12:31 -03:00
Dracula Implement the fix for broken colors from #38 to all themes 2021-10-21 14:02:23 +03:00
Everforest Dark Hard Use relative path to image and raw link to JSON 2022-05-08 00:36:42 +00:00
Geeko Dark Fix also for Geeko Dark 2021-10-21 15:32:48 +03:00
Gruvbox Add Gruvbox Light theme 2022-12-16 08:57:20 -05:00
images Added workaround for selected reaction pills 2020-03-05 11:07:28 -06:00
Luxury/Luxury Dark Implement the fix for broken colors from #38 to all themes 2021-10-21 14:02:23 +03:00
Monokai Pro Files and README updated for Monokai Pro theme 2023-03-04 15:48:10 -08:00
Night Owl/Night Owl Dark Update README 2022-01-02 01:53:20 +01:00
Nord Implement the fix for broken colors from #38 to all themes 2021-10-21 14:02:23 +03:00
Selenized Implement the fix for broken colors from #38 to all themes 2021-10-21 14:02:23 +03:00
Solarized Update Screenshot 2022-05-08 12:32:20 +02:00
ThomCat Implement the fix for broken colors from #38 to all themes 2021-10-21 14:02:23 +03:00
build.py Fixed indentation 2024-01-11 01:25:20 +11:00
LICENSE Initial commit 2020-02-17 10:27:27 -06:00
README.md Fix typo 2023-07-28 21:41:40 -06:00

Element Themes

A place to share themes for Element Web/Desktop. Themes are currently a beta or "Labs" feature, so you won't be able to use them with every instance of Element. Read on to learn how to use them.

To get help or discuss themes, join us in #element-themes:raim.ist

How to use themes

There are several different ways to install these themes.

Use an existing instance of Element which has Labs enabled

If you are using an instances of Element which has Labs features available then you can use these themes. Go to the Labs tab in Settings and turn on "Support adding custom themes". To add a theme, find one below that you would like to try. Then copy the URL to the JSON file that makes up the theme. Go to the Apperance tab in Settings and paste the URL into the "Custom theme URL" field and click "Add theme".

One example of an instance that has Labs enabled is https://develop.element.io however be aware this is a bleeding edge version of Element and you may run into bugs. Most stable instances of Element like https://app.element.io do not have Labs features enabled.

Self host Element or use Element Desktop:

If you are self hosting your own instance of Element or you are using the Desktop app, you can use these themes by editing your config.json file. Put the themes you want inside of the settingDefaults section like this:

{
    "settingDefaults": {
        "custom_themes": [
            {
                "name": "Example theme",
                "colors": {
                    "primary-color": "#9F8652"
                }
            },
            {
                "name": "Another theme",
                "colors": {
                    "primary-color": "#526A9E"
                }
            }
        ]
    },
    "show_labs_settings": true
}

Once you do that, you will need to enable "Support adding custom themes" (feature_custom_themes) in the Labs section of Settings so that these themes appear in the Appearance section of Settings.

To use a custom config.json file with Element Desktop, see https://github.com/vector-im/element-desktop#user-specified-configjson

If you use the matrix-docker-ansible-deploy project

You can enable all of these themes just by setting matrix_client_element_themes_enabled: true in your vars.yml file. See https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-client-element.md#themes for more details.

Use my Element Web instance

Alternatively you can use my Element Web instance which has all of these themes preinstalled so there is no configuration required.

Themes

ThomCat Black

Made by @me:thomcat.rocks

ThomCat Black Screenshot

Discord Dark Theme

Made by @dylhack:minds.com and @Oha-you

Discord Dark Theme Screenshot

Discord Black Theme

Made by @dylhack:minds.com, @Oha-you and @zhunynho

Discord Dark Theme Screenshot

Luxury Dark Theme

Made by @dylhack:minds.com

Luxury Dark Theme Screenshot

Night Owl Dark Theme

Made by @foxy:teapot.ovh

Night Owl Dark Theme Screenshot

Nord Dark Theme

Made by @dylhack:minds.com

Nord Dark Theme Screenshot

Nord Light Theme

Made by @dylhack:minds.com

Nord Light Theme Screenshot

Selenized Light Theme

Made by @dylhack:minds.com

Selenized Light Theme Screenshot

Selenized Dark Theme

Made by @dylhack:minds.com

Selenized Dark Theme Screenshot

Selenized Black Theme

Made by @dylhack:minds.com and @david:vovo.id.au

Selenized Black Theme Screenshot

Solarized Dark Theme

Made by @jasonic5:matrix.org

Solarized Dark Theme Screenshot

Solarized Light Theme

Made by Marius

Solarized Light Theme Screenshot

Geeko Dark Theme

Made by @swedneck:feneas.org

Geeko Dark Theme Screenshot

Dracula Dark Theme

Made by @jakobr_107:utwente.io

Dracula Dark Theme Screenshot

Dracula Flat Dark Theme

Made by @jo:catgirl.party

Dracula Flat Dark Theme Screenshot

Everforest Dark Hard Theme

Made by @maksim:wherelinux.xyz

Everforest Dark Hard Theme Screenshot

Wal Theme

A theme that autogenerates colors based on your wallpaper. Made by @acxz:matrix.org

Wal Theme Screenshot

Gruvbox Dark Theme

Made by Jeroen van Meerendonk

Gruvbox Theme Screenshot

Gruvbox Light Theme

Made by @joel:thebeckmeyers.xyz

Gruvbox Light Theme Screenshot

Covalence Dark Theme

Made by @mnesia:matrix.org

Covalence Dark Theme Screenshot

Monokai Pro

Made by @ordo:mushrooms.dev

Monokai Pro Theme Screenshot

Catppuccin Latte

Made by @ghostx31 / Ported by @jordandrako

Catppuccin-Latte-Theme

Catppuccin Frappe

Made by @ghostx31 / Ported by @jordandrako

Catppuccin-Frappe-Theme

Catppuccin Macchiato

Made by @ghostx31 / Ported by @jordandrako

Catppuccin-Macchiato-Theme

Catppuccin Mocha

Made by @ghostx31 / Ported by @jordandrako

Catppuccin-Mocha-Theme

Advanced

The themes in this repository use Element's relatively basic theming system which can only change a limited number of colors. Element's theming documentation has more information on how these work. For more advanced themes where you want to customize things like fonts, button shapes, or all of the colors you'll need to use CSS which isn't supported by Element's theming system. To use CSS based themes you could use a browser extension like Stylus. https://github.com/dannycolin/riot-compact is an example of a more advanced theme.

Workarounds

Element's theme implementation is fairly limited so custom themes might introduce some odd elements. For example, when using ThomCat Black, the selected reaction 'pill' is outlined in green since Element doesn't give us a variable to control the color that is used there.

pill_before

To fix this, we have to edit the custom theme CSS file directly, in this case theme-dark-custom.css. cssbeautify-cli is not necessary if your sed-fu is better than the author's is.

cssbeautify-cli -f theme-dark-custom.css > /tmp/theme-dark-custom-sed.css
sed '/.mx_ReactionsRowButton.mx_ReactionsRowButton_selected/!b;n;c\ \ \ \ background-color:var(--accent-color);' /tmp/theme-dark-custom-sed.css > /tmp/theme-dark-custom.css
sudo -u <nginx/apache_user> cp /tmp/theme-dark-custom.css /<element_directory>/bundles/<bundle_version>/

The results:

pill_after

build.py

There is a build.py python file which takes all the themes and outputs it to a file as an array of JSON. Simply execute it in this directory. ](https://github.com/jordandrako/element-themes/edit/catppuccin/README.md)