Skip to content

Feat/update UI - #7520

Merged
FreddleSpl0it merged 6 commits into
stagingfrom
feat/update-ui
Oct 15, 2026
Merged

FreddleSpl0it merged 6 commits into
stagingfrom
feat/update-ui

Conversation

@FreddleSpl0it

Copy link
Copy Markdown
Collaborator

Contribution Guidelines

What does this PR include?

Short Description

Modernizes the UI stack and adds a theme system, without changing the default look.

Bootstrap 5.1.3 → 5.3.8

  • Bootstrap bundle 5.3.8 and Bootswatch Lumen 5.3.8
  • bootstrap-select CSS 1.14.0-beta
  • 5.3 tab fixes

Theme support

  • Colors in 014-mailcow.css, 013-datatables.css and mailcow-darkmode.css are exposed as --mc-* custom properties, default values unchanged
  • Theme folders in data/web/css/themes/<name>/: theme.css (required, loaded after all mailcow styles), optional dark.css, bootstrap.css and theme.json (name, description)
  • Themes can be selected in System > Configuration > Customize
  • The legacy way ($UI_THEME + css/themes/<name>-bootstrap.css) keeps working unchanged
  • Dark mode is now bundled into /cache/<hash>-<darkhash>.css like the light CSS.

servercow theme (css/themes/servercow/)

  • Based on the servercow theme

Login pages

  • Colored marker per role on the login card (user: green, domain admin: yellow, admin: red), colors overridable via --mc-login-*
  • Role specific header icons (person / globe / shield), so the roles stay distinguishable for color blind users

Affected Containers

  • nginx-mailcow
  • php-fpm-mailcow

Did you run tests?

What did you tested?

  • Upgrade path for existing users: Bootswatch Flatly 5.1.3 via $UI_THEME in vars.local.inc.php plus custom rules in 0081-custom-mailcow.css
  • Theme selection: select theme, switch back to default, invalid theme name via API
  • Login pages for all three roles, light and dark, incl. color blindness simulation

@FreddleSpl0it
FreddleSpl0it merged commit 6c877fc into staging Oct 15, 2026
2 checks passed
@FreddleSpl0it
FreddleSpl0it deleted the feat/update-ui branch October 15, 2026 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant