Colormatic's Keycloak theme combines two intentionally different front ends in one Keycloakify build:
- a Svelte login theme under
src/login; - a React fork of Keycloak's Single-Page account console under
src/accountandsrc/shared.
Svelte owns the generated Keycloak entry point. On account pages,
src/account/KcPage.svelte mounts the React console. Vite code-splits that
bridge, so login pages do not eagerly load the account console and no manifest
merge step is required.
The maintained account-console baseline is Keycloak 26.7 or newer. Older Keycloak artifacts are deliberately not generated. Review upstream account UI changes before each Keycloak major upgrade, especially API endpoints, injected feature flags, translations, and PatternFly versions.
- Bun
- Java and Maven for the Keycloak JAR build
Install dependencies with:
bun installThe lockfile is committed and should be updated together with package.json.
bun run dev:login
bun run dev:account
bun run storybookThe two Vite commands use local Keycloak-context mocks. Storybook contains the login page catalog and is the preferred way to inspect individual login flows.
Build the shared Vite output only:
bun run build:themeBuild the deployable Keycloak theme JAR:
bun run buildThe JAR is written to dist_keycloak/ as
colormatic-keycloak-theme-kc-26.7-and-newer.jar.
bun run check
bun run build-storybook
bun auditcheck runs Svelte diagnostics, TypeScript, exhaustive login-page coverage,
Tailwind compilation, and ESLint.
The account console is a maintained fork. Port upstream behavior, security, accessibility, API, and translation changes intentionally rather than replacing the local integration and Colormatic styling wholesale.