Skip to content

Theming ​

The dashboard's look — light/dark mode, accent color, gray palette, corner radius, and body font — is theme-driven. Visitors can flip light/dark from the navbar, and admins set the defaults from the settings screen. This page is about how you switch and customize the theme; the script and stylesheet that apply it are loaded for you by the layout.

Switching light / dark ​

Any clickable element with a data-theme attribute toggles the color mode and remembers the choice (per area) in the browser:

blade
<a href="#" data-theme="dark">{{ __('Dark mode') }}</a>
<a href="#" data-theme="light">{{ __('Light mode') }}</a>

The dashboard and website navbars already ship these toggles, so you rarely add them yourself. When the mode changes, a theme:changed event fires on document — listen for it if a widget needs to restyle itself (the date picker and rich editor already do).

Customizing the defaults ​

The starting theme comes from the theme setting and is editable from the dashboard settings screen. Each axis has a fixed set of values:

  • primary — accent color. One of blue, azure, indigo, purple, pink, red, orange, yellow, lime, green, teal, cyan, black, or inverted.
  • base — gray palette. default, slate, gray, zinc, neutral, stone, or pink.
  • font — body font. sans-serif, serif, monospace, or comic.
  • radius — corner radius scale. 0, 0.5, 1, 1.5, or 2.

Change them server-side through the theme setting (e.g. setting('theme.primary')) to move the defaults applied before any per-user light/dark override.

blade
<x-radios-colored name="theme[primary]" :title="__('Color scheme')" :value="setting('theme.primary')" :options="[
    'blue' => 'blue', 'azure' => 'azure', 'green' => 'green', /* … */
]" />

Light/dark is the only axis a visitor controls (via the navbar toggle); the other four come from the theme setting and are changed through the settings form.

Independent sidebar theme ​

The dashboard sidebar can stay dark while the rest of the page is light. The dashboard_sidebar_theme setting controls it: inherit follows the page, dark forces dark. It is exposed alongside the other theme controls on the settings screen.

Gotchas ​

  • The dashboard and the public website remember light/dark separately — each area keeps its own stored choice.
  • An unrecognized value for any axis simply applies no override and falls back to the underlying Tabler default.

Proprietary — for use within the Redot Dashboard. Product site: redot.dev