diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
index 6eb9892724db1493d2b88b222e673647bbbd83e9..97dabfff958a1d8bc2d3aa2281cc53e6220bd192 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
@@ -42,6 +42,16 @@ import lombok.extern.log4j.Log4j2;
 class KeycloakRealmService {
 
 	public static final String USER_PROFILE_CONFIG_OZGCLOUD_ATTRIBUTE_NAME = "ozgCloudUserId";
+	public static final String ENVIRONMENT_PROD ="prod";
+	public static final String ENVIRONMENT_TEST ="test";
+	public static final String ENVIRONMENT_DEV ="dev";
+	public static final String BUNDESLAND_BY ="by";
+	public static final String BUNDESLAND_SH ="sh";
+	public static final String LOGIN_THEME_OZG_SH = "ozg-sh";
+	public static final String LOGIN_THEME_OZG_BY = "ozg-by";
+	public static final String LOGIN_THEME_OZG_DEFAULT = "ozg";
+
+
 
 	private final KeycloakRealmRemoteService remoteService;
 
@@ -73,6 +83,7 @@ class KeycloakRealmService {
 		Optional.of(realm)
 				.map(mapper::map)
 				.map(realmRepresentation -> addRealmName(realmRepresentation, realmName))
+				.map(realmRepresentation -> addRealmTheme(realmRepresentation, realmName))
 				.ifPresent(realmRepresentation -> {
 					remoteService.createRealm(realmRepresentation);
 					addUserProfileAttributes(realmRepresentation);
@@ -92,6 +103,11 @@ class KeycloakRealmService {
 		return realm;
 	}
 
+	RealmRepresentation addRealmTheme(RealmRepresentation realm, String realmName) {
+		realm.setLoginTheme(determinLoginTheme(realmName));
+		return realm;
+	}
+
 	public void deleteRealm(String realmName) {
 		remoteService.deleteRealm(realmName);
 	}
@@ -113,4 +129,27 @@ class KeycloakRealmService {
 				new UPAttribute(USER_PROFILE_CONFIG_OZGCLOUD_ATTRIBUTE_NAME,
 						new UPAttributePermissions(Set.of("admin", "user"), Set.of("admin", "user"))));
 	}
+
+	String determinLoginTheme(String realmName) {
+		String[] parts = realmName.split("-");
+		String bundesland = parts[0].toLowerCase(); 
+		String environment = parts[parts.length - 1].toLowerCase();
+
+		switch (environment) {
+			case ENVIRONMENT_PROD:
+				return LOGIN_THEME_OZG_BY;
+			case ENVIRONMENT_DEV,ENVIRONMENT_TEST:
+				switch (bundesland) {
+					case BUNDESLAND_SH:
+						return LOGIN_THEME_OZG_SH;
+					case BUNDESLAND_BY:
+						return LOGIN_THEME_OZG_BY;
+					default:
+						return LOGIN_THEME_OZG_DEFAULT;
+				}
+			default:
+				return LOGIN_THEME_OZG_DEFAULT;
+		}
+			
+		}
 }