Theme Variants

Theme variant enables you to create multiples Keycloak theme with a single codebase.

vite.config.ts
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"],
    }),
  ],
});

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:

NOTE: You need to run npm run dev, npm run storybook or npm run build-keycloak-theme for the types to be updated.
Tutorial video

Different text for each of your theme variants

Keycloakify lets you provide custom tranlations on a per-theme variant basis.

Read this first for context.

Example:

"my-theme-1" view
"my-theme-2" view

In Native Themes

For native Email Theme this video timestamp. For native Theme in general this video timestamp.

Last updated

Was this helpful?