Theming
sE2EEnd supports branding customisation through environment variables and runtime configuration. No rebuild is needed.
Colour scheme
Set your brand colours in .env:
THEME_COLOR_PRIMARY=#2563eb # Main colour — buttons, sidebar, links
THEME_COLOR_PRIMARY_DARK=#1d4ed8 # Hover/active states
THEME_COLOR_PRIMARY_LIGHT=#3b82f6 # Highlights, badges
These colours are applied in two places:
- Keycloak login page — the
generate-theme.shscript at container startup injects the colours into the CSS template - Application UI — the backend serves these values via
GET /api/config/theme, and the frontend applies them via CSS variables at runtime
To apply colour changes, recreate the Keycloak container (CSS is generated at startup):
docker compose up -d --force-recreate keycloak
The frontend picks up colour changes automatically on the next page load (no container restart needed).
Dark mode
The application ships with a dark theme. Users can toggle it using the sun/moon button in the top-right corner. The preference is persisted in localStorage.
Keycloak login page
The custom se2eend Keycloak theme provides:
- Brand colour applied to buttons and accents
- Translated messages in French and English
- A clean, minimal login/register form
The theme is loaded from keycloak/themes/se2eend/ which is volume-mounted into the Keycloak container. To customise further, edit the FreeMarker templates (.ftl files) and rebuild the container.