# Customisability in discourse?

**URL:** https://meta.discourse.org/t/customisability-in-discourse/355634
**Category:** Support
**Created:** [March 4, 2025, 11:51am UTC](https://meta.discourse.org/t/customisability-in-discourse/355634 "2025-03-04T11:51:12Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![lilstranded](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilstranded/32/490372_2.png) [@lilstranded](https://meta.discourse.org/u/lilstranded)
#### Post date: [March 4, 2025, 11:51am UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/1 "2025-03-04T11:51:12Z")

</div>

I’ve been following Discourse for years but hesitated to switch since I’m not familiar with coding or command-line setups. However, the exciting features and open-source nature finally convinced me to migrate from XenForo, with the help of a tech-savvy friend.

Now, I’m eager to customize my forum! As a UI/UX designer, I have plenty of ideas, but I’m unsure where to start. With XenForo, I used themes that closely matched my vision and made minor tweaks with CSS. The built-in theme options also let me adjust specific UI elements, like post backgrounds or sidebar borders with GUI.

In Discourse, I see a color palette option, but are there any built-in controls for more detailed styling, or do I need to rely on code for everything? Any guidance would be greatly appreciated! That said, I’m truly impressed with Discourse’s functionality and excited to explore its potential.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [March 4, 2025, 12:57pm UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/2 "2025-03-04T12:57:06Z")

</div>

Welcome 🙂

> [@lilstranded](#):
>
> ut are there any built-in controls for more detailed styling, or do I need to rely on code for everything?

Besides the color palette, it will be CSS/SCSS, and more if needed (JS, HTML).

You might be interested in this:

> [@Developing Discourse Themes & Theme Components](https://meta.discourse.org/t/beginners-guide-to-developing-discourse-themes/93648):
>
> Discourse Themes and Theme Components can be used to customize the look, feel and functionality of Discourse’s frontend. This section of the developer guides aims to provide all the reference materials you need to develop simple themes for a single site, right up to complex open-source theme components. This introduction aims to provide a map of all the tools and APIs for theme development. If you prefer a step-by-step tutorial for theme development, jump straight to: Themes vs. Theme Compon…

You can create themes and components. Components are like “subthemes” (they can contain styles and features), and any component can be enabled for one or multiple themes.

 ![The image displays a download page for a mobile app, highlighting installable themes that include various customization options and frontend features, with toggle options like "Category list mobile," "Discotoc," and "Emoji." (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/6/7/f/67f8b0dec66197f2419360e9d5f48928c805bb0b.png)

 ![This image shows a screenshot of the "Components" section of a forum theme called "DiscoTOC," detailing various default components that can be added or modified to customize the style of a forum, such as emoji fluffs, groups CSS classes, and progress bar settings. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/a/9/3/a9322422ac8b44fd3dacbe6426dabc809450c19d.png)

There’s a command line tool that helps for creating themes and components and I suggest you have a look at it:

> [@Install the Discourse Theme CLI console app to help you build themes](https://meta.discourse.org/t/install-the-discourse-theme-cli-console-app-to-help-you-build-themes/82950):
>
> The [[discourse] Discourse Theme CLI](https://github.com/discourse/discourse_theme) is a ruby gem that allows you to use your editor of choice when developing Discourse themes and theme components. As you save files the CLI will update the remote theme or component and changes to it will appear live! Installing To play with it, make sure you have Ruby 2.5 or up installed. If you are on Windows, you have 2 options: Option 1: [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux). Windows 10 has access to a full Linux environment, you can use it to install …

There’s also a special page that lists most Discourse HTML elements so you can have an overview of what they look like, and create your styles accordingly.  
The page must be enabled with the **Styleguide enabled** site setting.

Example:

> **[Unicyclist.com](https://unicyclist.com/styleguide/molecules/topic-list-item)**
>
> Explore, learn, share, and meet riders from all around the world!

---

<div class="post-metadata">

### Author: ![lilstranded](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilstranded/32/490372_2.png) [@lilstranded](https://meta.discourse.org/u/lilstranded)
#### Post date: [March 4, 2025, 1:43pm UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/3 "2025-03-04T13:43:19Z")

</div>

Although it seems a bit daunting to me, I still feel positive about this, thanks for this amazing reply, I think the style guide thing will come in handy for sure. Thanks a million!

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [March 4, 2025, 2:29pm UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/4 "2025-03-04T14:29:24Z")

</div>

For your first steps, you can edit the CSS directly from Discourse’s interface:

From `/admin/customize/themes/`:

 ![This image shows a theme selection and customization interface, specifically for a "Uni light" theme, with options for CSS/HTML editing. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/f/8/1/f812aee9b10999fc863743d23e0c01734dad6ffc.png)  
 ![The image shows a screenshot of a create-backdrop page on a Unicelist.com developer site, with a panel displaying a portion of code and a sidebar menu on the left. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/7/b/7/7b7ebbad6747a8eda0871f19d71c5a9ad69187df.png)

Discourse supports SCSS syntax natively, it’s compiled on the fly.

---

<div class="post-metadata">

### Author: ![denvergeeks](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/denvergeeks/32/327671_2.png) [@denvergeeks](https://meta.discourse.org/u/denvergeeks)
#### Post date: [March 4, 2025, 4:39pm UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/5 "2025-03-04T16:39:14Z")

</div>

@manuel is extending the non (or less) coding options for theme building and customizing. I would start there (selfishly, I’d love to follow your progress with that until I can find the time to dig into it myself 😉, so if you do that, please provide/post feedback and reports along your way!!!). It seems like he’s innovating some simplifications for us UI / UX nerds.

> [@Canvas Theme Template](https://meta.discourse.org/t/canvas-theme-template/352730):
>
> information_sourceSummary Quick start your theme design with a prepared theme template.busts_in_silhouetteAudience New developers that want to get started building themes for Discourse. Experienced developers that want to use a ready-made template.hammer_and_wrenchRepository [Manuel Kostka / Discourse / Canvas / Canvas Theme Template · GitLab](https://gitlab.com/manuelkostka/discourse/canvas/theme)eyesPreview [Canvas Themes](https://canvas.kostka.studio) Canvas…

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [March 5, 2025, 10:01am UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/6 "2025-03-05T10:01:21Z")

</div>

> [@lilstranded](#):
>
> do I need to rely on code for everything?

Not for everything, but for implementing any more custom design I do think you’d need to write code. My recommended steps would be:

- Learn how to use the [Theme CLI gem](https://meta.discourse.org/t/install-the-discourse-theme-cli-console-app-to-help-you-build-themes/82950) that @Canapin already mentioned. This can be a daunting first step, but if anything will make you fall in love with customising Discourse, it’s that little gem! It’s like a magic wand for designers ✨ Without it, you will likely feel friction every step of the way.

- Practice implementing styles using CSS custom properties.

- As @denvergeeks suggested, you could have a look at the Canvas theme template. What it does is adding a set of custom properties for layout styling that are not available in core.

---

<div class="post-metadata">

### Author: ![lilstranded](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilstranded/32/490372_2.png) [@lilstranded](https://meta.discourse.org/u/lilstranded)
#### Post date: [March 11, 2025, 5:16pm UTC](https://meta.discourse.org/t/customisability-in-discourse/355634/7 "2025-03-11T17:16:20Z")

</div>

So far im following this approach only, using the inspect option from browser and tweaking things.
