We need a "large fonts" and "small fonts" theme to ship with Discourse

We are deferring this until 1.9 as @sam thinks it will work best as a mixin type of deal. I tend to agree, since having

  • dark, large font
  • dark, small font
  • blue, large font
  • blue, small font

… gets excessive pretty quick.


The idea here is to allow for “user selectable, theme components”

That way you can add a bunch of user selectable theme components, that are selectable in conjunction with any theme.

That way the user prefs page will show

select your theme
[ dark theme v] 

[ ] large font

Any news on this? I could use bigger text for some of my users that have accessibility issues regarding sight…

Maybe I’m missing something. Why can’t users just take advantage of the zoom feature of their browser? Things seem to scale up fine in my simple test just now.

1 Like

No news, user selectable theme components is probably going to land for next release.

1 Like

Ok! Let me know if you need some real world scenario betatesting of the large font theme.
I have the perfect people to try it out. Experienced forum users with eyesight accessibility challenges.


Oh cool thanks for this info

@awesomerobot we are going to want to revisit this at some point. I wonder, does it make sense to move to REM/EM based font sizing so making this theme becomes trivial?

Our px based styling makes getting a polished version of a large font theme a bit of a nightmare to say the least.


Agree 1000% — I think we’d do a REM based system, then you’d be able to change one variable and scale everything proportionately. I think this is something we can get accomplished in the nearish future.


I am not 100% sure every single place text appears, should scale exactly the same?

There is also the legacy browser font size setting:

Mostly browsers use zoom these days which scales everything up, but there is the legacy font size selector, for what it’s worth…

I think it could probably be a mix. If someone wants to scale everything up proportionately and not think about it we can make it easy — but also having various controllable sub-sections is probably a good idea if I wanted to, for example, scale-up post text but leave admin text alone.


I think there are two font sizes we’re talking about here.

  1. General font size of entire site. Not necessary on desktop browsers since you can always zoom. Critical on mobile where you can’t scale by site. An rem based css will be perfect here.

  2. Font size of post texts vs ui elements. This should be relatively easier. Just a bunch of css overrides. I do this on my own sites.

In my experience it is #2 that is the prob, rarely #1 unless you have a strange mobile device. A lot of content site have a font size button the scale up content text size vs ui.


I think this is a great intro into rems/ems and pxs via @chriscoyier

The idea is that we get a much saner framework to work with as opposed to px everywhere that means you have to override px everywhere.


I do :heart: me some @chriscoyier

1 Like

But sizing the text relative to the module has the huge problem of having many different text sizes. Most of the time you don’t want different text sizes. You want to tweak the dimensions of the modules but keep text sizes consistent.

If we use EMs they are relative to the module (eg: post, header ) if we use REMs they are relative to root

Either way you fiddle with far less stuff to turn on big fonts.


Now that @awesomerobot finished the giant font size refactor this is super trivial.

html {
    font-size: 16px !important;

And fonts are large, you could probably even push it up to 17px.


That’s really ‘awesome’ guys, thanks!

Requested by my users recently and implemented in seconds: who can argue with that?!


Per-user font size selection is now part of Discourse. You’ll find the setting under your interface preferences.