The Openmost design system for Matomo, in light and dark mode.
The Openmost design system for Matomo, in light and dark mode.
#426CDA, lighter #7A96E8 in dark mode), white cards on a soft background in light mode, brand navy cards (#161830) on a deep page (#0A0B1A) in dark mode, Openmost red (#F84B5C) for charts.[light, dark] pair. Each user keeps choosing Light, Dark or Match browser in their personal settings.Theme.configureThemeVariables event, so core and third party plugins pick them up, and every color can be overridden with a --theme-color-* CSS variable.>=6.0.0-b1,<7.0.0-b1)There are no settings. To tweak the palette, override any --theme-color-* variable from a small companion plugin:
:root {
--theme-color-brand: #00b4d8;
}
See docs/index.md for the full palette.
Openmost is an official Matomo Implementation Partner. We also build custom Matomo themes in your own brand colours and fonts, on the official theme API, in light and dark mode.
The Openmost Theme converts the Matomo interface to match the Openmost design system. It plugs into Matomo's native theming engine to define a complete light and dark palette, then layers a few component-level LESS tweaks on top.
Both palettes follow the Openmost website: the same Openmost blue accent, white cards on a soft background in light mode, and brand navy cards on a deep page background in dark mode.
Token Light Dark Brand#426CDA
#7A96E8
Background base
#F5F6FA
#0A0B1A
Surface (widgets, header)
#FFFFFF
#161830
Surface hover
#ECEFF8
#1A1C38
Text primary
#1C1F41
#FFFFFF
Text secondary
#4A5169
rgba(255, 255, 255, 0.87)
Border
#E5E7F0
#282A4B
Chart base
#F84B5C
#F84B5C
Typography: Sora for headings (page, report and widget titles), shipped with the plugin as a variable font under the SIL Open Font License. Text uses the system font.
OpenmostTheme/
├── OpenmostTheme.php # Registers theme variables (light + dark pairs)
├── plugin.json # Matomo metadata, requires Matomo 6
├── fonts/Sora/ # Sora variable font and its license
├── stylesheets/
│ ├── theme.less # Entry point, imports everything
│ ├── _fonts.less # @font-face declaration for Sora
│ ├── layout/
│ │ ├── _main.less # Scrollbar styling
│ │ └── _typography.less # Sora headings
│ ├── pages/
│ │ └── _login.less # Login screen tweaks
│ └── components/ # One file per overridden component
└── docs/ # This documentation
Matomo ships a Plugin\ThemeStyles class with one property per theme color. Every property accepts either a single string or a [light, dark] array: Matomo emits the right CSS variable for each mode and switches through data-theme-mode plus prefers-color-scheme for users who picked Match browser.
OpenmostTheme.php listens to the Theme.configureThemeVariables event and assigns [light, dark] pairs for every relevant property. The CSS files in stylesheets/components/ consume those tokens with var(--theme-color-*), so the same component definition works in both modes.
Component overrides live in stylesheets/components/:
Each file is intentionally small: the goal is a minimal diff against Matomo defaults.
You don't need to fork the plugin to tweak it. Override any --theme-color-* variable in a small companion plugin:
:root {
--theme-color-brand: #00b4d8;
}
[data-theme-mode="dark"] {
--theme-color-background-base: #0b0d24;
}
Contributions are welcome. Keep changes scoped to one component per file and prefer var(--theme-color-*) over hard-coded hex values so your edits keep working in both light and dark modes.
Open your Matomo administration panel, go to Marketplace, filter by Themes, search for Openmost Theme, install and activate it. A theme applies to the whole Matomo instance.
Yes. The plugin defines a full light palette and a full dark palette. Each user picks Light, Dark or Match browser in their personal settings; Match browser follows the operating system, so users can move between modes without changing settings.
Yes. Once activated, every user sees the Openmost Theme, in the light or dark mode they picked.
Yes. Every color is exposed as a Matomo --theme-color-* CSS variable. Override any of them in a small companion plugin. See docs/index.md for examples.
No. The theme is purely visual. It defines theme variables and adds CSS: it does not modify Matomo's HTML structure, JavaScript, or behavior. That keeps it compatible with every other Matomo plugin.
No. Sora is bundled with the theme and served from your own Matomo instance, under the SIL Open Font License.
It's used in production by Openmost and on every Matomo instance the team operates, so it follows Matomo's own release cadence as closely as possible. Security and compatibility fixes are prioritized.
Yes. Openmost is an official Matomo Implementation Partner and builds custom Matomo themes in your own brand colours and fonts, on the official theme API, in light and dark mode.
View and download this plugin for a specific Matomo version: