How do I install a Theme or Theme Component?

Importing new themes and theme components

To import new themes and components, visit

or via the UI head to Admin > Customize > Themes

Then click on Install here

you’ll see this

You can install popular Discourse theme components from the Popular tab, or import via your device or a repository link by clicking on the respective tabs.

The repository link for each theme is provided by the author on the theme topic. There are also options to import from a specific branch and to specify whether the repository is private.

If you import a theme component, you need to also add it to your actives themes. This is covered in detail in the next section

Add theme components to a theme

Let’s say you like the Discourse category banners theme component and want to use it. You would proceed as follows

  1. import the theme from the repository like we discussed above
  2. add it as a theme component to your active / user-selectable themes

You can do that like so:

After importing the component, go to the theme you want to add it to and look for the Theme components section

This list will show all installed theme components. From there you can add theme components to the theme. If we add the Discourse category banners theme component it would look like so

If you have more than one user-selectable themes, you would need to add the component to all of them like we did above.

Checking for updates

Sometimes the themes or components you install will have updates.

If a theme or component has updates, an icon will display next to its name like so

If you select that theme or component you can update it with one click by clicking on the update button here:

This should cover everything you need to install a theme or theme component. If you'd like to learn more about the Discourse theme system, we have a more detailed guide that should provide you with a general overview with more details.
Material Design Stock Theme
Discourse Category Banners
Moonclaw Theme port
Hamburger Theme Selector
Sam's personal "minimal" topic list design
Add /users to top nav
An alternate dark theme
Discourse Vincent theme
FlexFooter component
Emoji mention theme component
Custom hamburger menu links
Header submenus
Custom top navigation links
Easy responsive footer
Big Header - Little Header
Custom Header Links
Add /groups to top nav
FlexFooter component
Night Mode Buttons
Tag icons component
Versatile Banner
Fakebook, a theme for social media lovers
Discourse Cookie Consent Banner
Minima, a minimal theme for Discourse
Custom source code formatting component
Discourse Category Sidebars
Intercom widget
Daemonite Material Theme: Ample layout adjustments
Category badge adjustment component
Christmas hats component
Discourse Vincent theme
"Last Seen" User Card
Media Overlay component
Slick Image Gallery
Topic Stopwatch
Category icons component
Optional mobile title switch component
Add Category Column
Minimal, “classic” topic list design
Change the Like icon
Trust-Level Avatar Flair
Add <abbr> tags to words in posts
Altering default buttons in topic
Alternative Voting Category Style
Script to enable Matomo analytics on Discourse
Banner themes (and instructions for customizing them)
Topic list sidebar navigation
A graceful theme for Discourse
Discourse Youtube player
Iframe Lightboxes
Discourse Button Styles
Custom hamburger menu links
Tiles Image Gallery
Iconified Header Links
Iconified Header Links
Tiles Image Gallery
(+ New topic) button on all pages
Thin header component
StackBlur backgrounds
Linkify words in post
Warn admins when replying to closed topics
Font size theme
Unanswered Filter
Discourse Vincent theme
Brand header theme component
Discourse Tab Bar for Mobile
Dark Admin Editor Component
Self Service Badges?
Require Edit Reason
Discourse Tag Banners
Mobile Category List Adjustments
Add Likes column
Search banner theme component
How to get Solidity syntax highlighting
Omit Emoji component
🌺 Hibiscus - Springtime Discourse theme
Failing to rebuild app on Discourse since May 7
Alternative logos for dark / light themes
Scroll to Top Component
Post Badges component
Theme Switcher Component
Alien Night Theme - A free Dark Theme for Discourse
Font size for code inserts in posts
Unformatted Code Detector theme component
Restrict uploads
Scrollable post content
Avatar size and shape
Dark Mode Theme Switch (for Safari on macOS and iOS 13)
Ghost, a cyberpunk theme for Discourse
Discourse Topic Status Filter
DiscoTOC - automatic table of contents
Discourse Popular Tag Sidebar
Discourse Tag Sidebars
Discourse Topic Author
Defer Topic Button - Mark topic unread
Blog Post Styling
Discourse optional Apple iOS hardware Keyboard support
TavoWEB theme for Discourse

Thanks for these instructions.

After adding a theme component today, I initially forgot to add it to my default theme and wondered why it wasn’t active. Does anyone else make this mistake?

If it’s a common problem, perhaps Discourse could prompt when you install a theme component: “would you like to add this component to your theme?”, and clicking “yes” will perform this step for you.


This gets particularly painful here on meta where we have 10 user selectable themes.

I add a component, and then need to remember to click on 10 different themes to add it.

Completely agree it would be ultra nice to

  1. Have a button on components that allows you to add a component to all active themes

  2. After importing a new component prompt user to add it to all active themes (if they wish to)

@Johani any ideas for UX here, can you do a new topic on this if you think it is a good idea?


This would also apply to newly added themes, right? So maybe some sort of toggle between enable on all themes and disable on all themes?


A short note - if you are adding a GitHub based theme make sure you remove the trailing / on the URL, or else it’ll complain that it cannot clone the repo.


Hmm can we check for the above @david and correct it silently?


:+1: we were automatically adding .git to github URLs, so the URL was ending up like Should now be fixed

Thanks for the report @Mark_Walkom


Can themes and theme components be installed on the command line like plugins?
In my use case it would be very handy if i could add a couple lines to my container app.yml that automatically installed or updated themes and components as part of the rebuild.

1 Like

Yes, we have this rake task:

So you would use it to install. Its a bit fiddly you first would place a trivial yaml file on the file system and then run the rake task.