Customization

The WebUI Runtime supports custom branding, theming, navigation layout, and application configuration.

Application configuration

Global application settings are defined in apps/dashboard-wc/config/appconfig.jsonc, including the header logo path (headerLogo), the application title (appTitle), and the browser tab title (documentTitle). All text fields support multilingual objects with locale keys (for example, en_US.utf8, de_AT.utf8) or Dashboard translation keys.

Logo customization

To replace the logo:

  1. Create an SVG logo (recommended viewBox: approximately 520x120).
  2. Copy the logo to both asset locations: libs/default-components/src/assets/ (source, bundled by Vite) and apps/dashboard-wc/public/assets/ (public copy for runtime access).
  3. Update the headerLogo path in appconfig.jsonc.
  4. Run the build.

CSS variables

The application defines custom CSS properties (--neo-*) available on all pages.

Variable Default (dark mode) Description
--neo-accent #00bde3 Primary accent color (cyan)
--neo-accent-dim rgba(0, 189, 227, 0.15) Subtle accent background
--neo-accent-glow rgba(0, 189, 227, 0.4) Glow effect on active elements
--neo-header-bg var(--theme-color-2) Header background
--neo-nav-bg var(--theme-color-1) Navigation background

To change the accent color, modify the --neo-accent variable in the demo-app-ix.ts shell component.

Dark and light mode

The theme is controlled by two attributes: data-ix-color-schema on the html element (for the Siemens IX framework) and data-theme on the app component (for custom --neo-* variables). A toggle button (sun/moon icon) is integrated in the header. In light mode, only overlay, border, and shadow values change; the accent color remains the same.

Login screen customization

Figure 1. Custom login screen

Customized login screen of the WebUI Runtime

The login background is an SVG file at libs/default-components/src/assets/loginscreen.svg. Edit this SVG file, copy it to both asset locations, and rebuild.

Menu configuration

The navigation is configured in apps/dashboard-wc/config/menuconfig.jsonc. Each menu entry defines the following properties:

Property Description
title Display name (translation key or multilingual object)
icon Icon name from @siemens/ix-icons
path URL path (hash route)
module Path to the lazy-loaded JavaScript file
component Custom element tag of the page
routeId Unique route identifier
permission Visibility control: connected, disconnected, canEdit
redirect Redirect target (redirect entries only)
hidden Hide the entry from the navigation menu
url + target External link

Grouped navigation

The horizontal navigation groups menu entries by path prefix. Groups are defined in the renderGroupedNav() method of the shell component (demo-app-ix.ts). Each group has a label and a list of paths. To add a navigation group, extend the groups array in the shell component.