A new Luna, a new theme
We’re happy to announce the availability of Luna 2.0.12 and 2.1 Preview 5. 2.0.12 is a security release, but has a few other minor improvements too. In Preview 5, we continue to move forward with modernizing Luna. And this preview does that in some major ways. Not only are we introducing a fresh looking new default theme, we’re also working hard on modernizing the logic below. Preview 5 is a major update compared to the previous previews, so let’s get started!
Luna 2.1 Preview 5
Typography
First of all, meet our new default theme Typography! Typography, as the name implies, heavily leans on typography as its main design element. For the first time since 2015, we’re introducing a new default theme (and the fourth time since our first release with ModernBB 1.6 (from Air to Random to Fifteen to Typography).

Fifteen has served its purpose well and even got a major redesign in Preview 4 to support Bootstrap 4, but with Luna 2.1 we are deprecating it, as well as Sunrise. This means that both themes won’t be included in the next major version of Luna.
Note that this is still an early version of Typography and there are still plenty changes coming.
Fifteen & Sunrise
With the major redesign for Fifteen and Sunrise in Preview 4, we also spend some time on refining the updated themes with Preview 5. This includes some more design refinements to better match with the new Bootstrap 4 framework and updates to support the new theming APIs that are part of Preview 5.
Earlier we announced that Fifteen and Sunrise would ship with Preview 5 in an entirely broken state, this is no longer the case. Fifteen and Sunrise should work as expected (at least, for as far as it is to be expected in an alpha).
Developers: easier theming
Preview 5 introduces a bunch of new tools for theme developers. Most notable is the fact that Luna now provides themes with raw data rather than info put in HTML and CSS. This allows for better customization and less reliability on Bootstrap.
- Pagination is now returned as an array of Page-objects instead of a variable with pre-written HTML and CSS with Bootstrap classes.
- Notifications are now returned as an array of Notification-objects instead of a variable with pre-written HTML and CSS with Bootstrap classes.
- The usermenu is no longer generated by Luna, themes now have to take care of it by themselves, complex URLs are now provided through the Menu object.
- The menu is now passed to the theme as an object with an array of objects, the menu items can be acced by calling $menu->getItems(), which will return an array of items.
- Anything that isn’t a Luna config item that is relevant to the footer can now be found in the $footer variable for the footer template. The $footer variable returns a Footer-object with relevant statistics about your board.
This is just a small revamp of the theming engine, and more is to come in Preview 6.
Theme settings
When changing the theme, there is a chance that your new theme has a different number of accent colors available. This is not a problem if there are more accent colors, but if there are less, it becomes an issue: your board’s default setting and your user’s custom setting may be set to use a higher accent color than the theme provides. Starting with Preview 5, Luna will now reset any setting that might violate the number of available accent colors for the new theme. Right now, Luna will reset this number to 1, in a future preview it will be possible for themes to set a default value.
Emoji
Todays preview also continues the emoji improvements. This time around, we’re updating our emoji support to use the more modern notations like “:smile:” as can be found on other platforms like GitHub. If your forum is running Luna 2.1 Preview 4 and earlier and upgrades to Preview 5 or later, your board will continue to support the old “:)” notation, etc. The new notation is the only notation for new installations, however.
Additionally, Preview 4 required emoji like “:p” to be declared as both “:p” and “:P” to work as expected, in Preview 5, emoji are case insensitive which means you can get away with a single declaration.
Censoring & emoji
Up until now, you had to change each censored word or emoji individually then do the next. With Preview 5 you can now update all lines at once and save them all together.
Profile & settings
Today’s new preview also includes a major rewrite of the profile section in the front-end. We’ve rewritten entire thing to use the User object, including all validations and storage functions. The Profile is only one of the first pages to start using a more OOP-minded structure and more is to come. This will also help in our move to PDO.
MySQL & PHP support
Luna 2.1 is dropping both the MySQL and MySQL InnoDB drivers. MySQL has been considered deprecated for a while now and PHP 7 removed it entirely. Given that MySQL Improved and MySQL Improved InnoDB should be available on any system, these old drivers have now been dropped.
Additionally, Luna 2.1 will require PHP 5.4 or higher, this is up from PHP 5.3 for Luna 2.0.
Other changes
- A bunch of icons in the Backstage have been changed to better represent their page
- Bootstrap has been updated to version 4.1.2
- Font Awesome has been updated to version 5.1.1
- A number of emoji have been remapped to better represent their meaning
- Luna now correctly redirects you after setting a new theme
- Proper HTTP errors during maintenance and errors
- When updating, fields are now correctly dropped from the database
- Cleans up a number of old PHP checks
- Removes a number of checks and function fallbacks designed for PHP 5.3 and or lower
- Fifteen’s “online users” list now works properly again
Known issues
- Fifteen, Sunrise and Typography have a number of visual issues
- Luna will reset the theme to Typography
- First Run will be enabled for everyone who disabled it and disabled for everyone who enabled it
More to come
We still have plenty more changes to come in the new previews. Here is a short list:
- Further revamp of the theming APIs
- Allow themes to set a default accent color
- Support for local videos in comments
- More Typography improvements
- Icon packs
- (Investigate) moving to PDO
- Font Awesome 5.2
- Bootstrap 4.1.3
Luna 2.0.12
We’re also releasing Luna 2.0.12 today. This update contains a number of fixes and enhancements, including one security fix. We highly recommend you update to this version.
- Introduces support for modern emoji shortcodes as found in Luna 2.1-alpha.5
- Some emoji have been remapped to better match their textual counterpart
- Proper HTTP errors during maintenance and errors
- Luna no longer returns the password when a registration error occures
- When updating, fields are now correctly dropped from the database
Final remarks
As always, make sure you have a back-up before updating to Luna 2.1 Preview 5 or Luna 2.0.12. We test these versions but of course we can’t test for every single possible outcome.
Website updates
And yet again, we’ve made more adjustments to the documentation for Luna. You’ll find that we’ve begun expanding the “Extend Luna” section for both themes and translations. Many more minor changes have been made throughout the documentation and for Preview 6 we will further expand on theming, and we will begin expanding the Mainstage documentation as well as preparations for future versions of Luna.