As per the Keycloak development teams recommendation you should create a custom them.
For example: Serendipity’s Keycloak Theme
Sample Keycloak Dockerfile:
FROM jboss/keycloak:9.0.3
ENV THEME_VERSION 1.0
USER root
RUN microdnf install -y unzip
COPY json /tmp
COPY ./serendipity-keycloak-theme-$THEME_VERSION.zip /opt/jboss/keycloak/themes
RUN cd /opt/jboss/keycloak/themes && \
unzip serendipity-keycloak-theme-$THEME_VERSION.zip && \
rm serendipity-keycloak-theme-$THEME_VERSION.zip
KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=secret
KEYCLOAK_DEFAULT_THEME=serendipity
KEYCLOAK_IMPORT=/tmp/development-realm.json
KEYCLOAK_MIGRATION_STRATEGY=OVERWRITE_EXISTING