# Icon type SiteSetting

**URL:** https://meta.discourse.org/t/icon-type-sitesetting/370452
**Category:** Development
**Created:** [June 16, 2025, 10:30pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452 "2025-06-16T22:30:54Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [June 16, 2025, 10:30pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/1 "2025-06-16T22:30:54Z")

</div>

I am trying to add a SiteSetting to my plugin that can control the icons displayed for some components. The component itself was already going to be user customizable, so I wanted to add the SiteSetting as a way for staff to define the default icon. I know there is `emoji_list` type for SiteSettings, but there doesn’t seem to be one for SVG icons?

From what I can see, most plugins/TC use either image upload or plain string for icon settings. Am I missing a type/validator I can use? It feels weird to tell people to look up the styleguide and type the name of the icon.

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [June 24, 2025, 8:13pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/2 "2025-06-24T20:13:41Z")

</div>

I think it’s a case where we don’t have any icon based site settings, so we haven’t added a type for it. We have an [icon picker component](https://github.com/discourse/discourse/blob/5bca4c30d994255db08e1c0792a680f978dad4cc/app/assets/javascripts/discourse/app/components/group-flair-inputs.gjs#L133-L138) that’s made its way into other parts of the app, but nothing currently in site settings.

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [June 24, 2025, 8:29pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/3 "2025-06-24T20:29:52Z")

</div>

That makes sense. I can’t really imagine any specific scenario where core would require it, as probably only Themes/TCs and plugins would have a use for an extremely UI focused setting.

I am using the icon picker component in other places more easily accessible for ordinary users, but the specific use case I have in mind would be for stuff like setting a default icon. Combined with the object SiteSetting type, it would make templating certain features easier for admins.

Would the team be open to adding an `icon_type` type to SiteSettings in core, even without any core site settings using it? I don’t mind reopening this topic as a #Contribute > Feature request if need be.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 10, 2025, 9:39am UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/4 "2025-07-10T09:39:49Z")

</div>

Any update on this? I noticed that reactions will be added to core, and that plugin currently has the `Discourse reactions like icon` setting where you need to enter the icon name manually.

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [July 10, 2025, 12:44pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/5 "2025-07-10T12:44:32Z")

</div>

No plans at the moment, but maybe that’s a good opportunity for it. I’ll pass the idea along.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [January 28, 2026, 2:40pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/6 "2026-01-28T14:40:52Z")

</div>

yea it would be great to be able to use this in component settings, especially object type settings - can this be added please?

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/5/9/959a5ccfc9fc38912ad4ba93e16493077c55539e.png)

similar request also mentioned here:

> [@Using a placeholder for FontAwesome links in descriptions of settings](https://meta.discourse.org/t/using-a-placeholder-for-fontawesome-links-in-descriptions-of-settings/370555/8):
>
> FA6 had a lot of renames, which is why it was so painful. I don’t think FA7 had any - just new/improved icons. I think in an ideal world, theme/site settings would be able to make use of our icon dropdown. But yeah, we don’t have that available at the moment… so you’re right that the version number may still be useful.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [March 26, 2026, 9:40am UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/7 "2026-03-26T09:40:50Z")

</div>

There is now an icon type site setting.

[https://github.com/discourse/discourse/pull/38779](https://github.com/discourse/discourse/pull/38779)

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [March 26, 2026, 10:59am UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/8 "2026-03-26T10:59:12Z")

</div>

This is great! I’m assuming it can be used for TCs as well? Time to start updating some with this!

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [March 26, 2026, 11:16am UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/9 "2026-03-26T11:16:45Z")

</div>

I am not sure that’s the case. There is no icon type here

> **[discourse/lib/theme\_settings\_manager at main · discourse/discourse](https://github.com/discourse/discourse/tree/main/lib/theme_settings_manager)**
>
> main/lib/theme\_settings\_manager

I think you cannot use the emoji setting type from site settings like `Emoji deny list` in themes either

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [March 26, 2026, 10:39pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/10 "2026-03-26T22:39:53Z")

</div>

> [@NateDhaliwal](#):
>
> This is great! I’m assuming it can be used for TCs as well? Time to start updating some with this!

i don’t think it is yet (at least i couldn’t get it to work).

are there any plans for supporting `type: icon` inside [object schemas](https://meta.discourse.org/t/objects-type-for-theme-setting/305009) for theme components, like this?

```yml
    links:
        type: objects
        schema:
          name: menu_link
          identifier: text
          properties:
            icon:
              type: icon
              required: true
            text:
              type: string
              required: true
              validations:
                min_length: 1
                max_length: 100
            url:
              type: string
              required: true
              validations:
                min_length: 1
                max_length: 500
...

```

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [April 25, 2026, 10:40pm UTC](https://meta.discourse.org/t/icon-type-sitesetting/370452/11 "2026-04-25T22:40:27Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
