πTheme Variants
Theme variant enables you to create multiples Keycloak theme with a single codebase.
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { keycloakify } from "keycloakify/vite-plugin";
export default defineConfig({
plugins: [
react(),
keycloakify({
themeName: ["keycloakify-starter", "keycloakify-starter-variant-1"],
}),
],
});{
"keycloakify": {
"themeName": ["keycloakify-starter", "keycloakify-starter-variant-1"]
}
}This will make the theme variant appear in the Keycloak admin select input:

In your code you'll be able to load different styles based on the value of kcContext.themeName:

run npm run dev, npm run storybook or npm run build-keycloak-theme for the types to be updated.Different text for each of your theme variants
Keycloakify lets you provide custom tranlations on a per-theme variant basis.
Example:


Email theme
Your emails can be adapted based on the active theme variant.
In the .ftl files located in the src/email directory, you can use the FreeMarker variable: xKeycloakify.themeName.
This variable holds the name of the currently enabled theme as a string, for example: "my-theme-1", "my-theme-2", etc.
Last updated
Was this helpful?