Skip to main content
Version: Next

Configuration

The Theme Manager can be configured through Symfony configuration under the pimcore_backend_power_tools root node. Configuration is optional – the bundle ships the two built-in themes (Pimcore Light, Pimcore Dark) and uses Pimcore Dark as the system default out of the box.

Configuration is useful to:

  • change the initial system default theme,
  • predefine themes as code (for version-controlled, pipeline-based deployments),
  • control where themes are stored and whether they can be edited from the UI.

Storage Location

Themes are stored through Pimcore's location-aware configuration (scope backend_power_tools_theme_manager). The read and write targets are configured under config_location.theme_manager:

# config/config.yaml
pimcore_backend_power_tools:
config_location:
theme_manager:
write_target:
# symfony-config (default) | settings-store | disabled
type: 'settings-store'
read_target:
type: 'settings-store'
  • symfony-config – themes are written to and read from YAML files in the configured directory (the default).
  • settings-store – themes are stored in the Pimcore settings store (database).
  • disabled (write target only) – makes the theme configuration read-only.

When the write target is disabled, the Theme Manager UI is read-only and the GET /theme-manager/themes response reports "writeable": false.

Predefining Themes

You can define themes directly in configuration. The key is the theme id; the shape mirrors the theme configuration:

# config/config.yaml
pimcore_backend_power_tools:
theme_manager:
# Id of the theme used as the system default. Defaults to 'pimcore-dark'.
default_theme: 'pimcore-dark'

themes:
corporate:
label: 'Corporate'
description: 'Company-wide branded light theme'
# A registered theme dynamic type id (see Custom Token Sets).
token_set: 'studio-default-light'
branding:
background_shade: '#0B5FFF'
brand_color: '#0B5FFF'
custom_logo:
id: 83
type: asset
login_screen_custom_background_image:
id: 84
type: asset
extensions: []

Supported keys per theme are label, description, token_set, branding (background_shade, brand_color, custom_logo, login_screen_custom_background_image) and extensions.

info

The loading-screen boot palette is not part of the theme configuration tree. For a theme defined in configuration, the loading screen follows the boot palette registered for its token set – see Boot Palette Providers. The per-theme boot palette editor in the UI stores its values through the configured storage target, not through the Symfony configuration tree.

caution

custom_logo and login_screen_custom_background_image reference assets by numeric id. Hard-coding asset ids in configuration only works if the referenced assets exist in every environment – prefer managing branding imagery through the Theme Manager UI when asset ids differ per environment.