diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
index 1c93aa31cc071537b9109ae9d30c752cb32b7c4c..34916871b65033786c5a7388092369dd595cb33b 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
@@ -56,6 +56,7 @@ interface KeycloakRealmMapper {
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = ACTION_TOKEN_GENERATED_BY_USER_LIFE_SPAN)
 	@Mapping(target = "smtpServer", source = "smtpServer", qualifiedByName = "smtpServer")
 	@Mapping(target = "roles.realm", source = "realmRoles")
+	@Mapping(target = "loginTheme", source = ".", qualifiedByName = "bundeslandToLoginTheme")
 	public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm);
 
 	@Mapping(target = "enabled", constant = ENABLED)
@@ -67,11 +68,15 @@ interface KeycloakRealmMapper {
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = ACTION_TOKEN_GENERATED_BY_USER_LIFE_SPAN)
 	@Mapping(target = "smtpServer", source = "smtpServer", qualifiedByName = "smtpServer")
 	@Mapping(target = "roles.realm", source = "realmRoles")
+	@Mapping(target = "loginTheme", source = ".", qualifiedByName = "bundeslandToLoginTheme")
 	RealmRepresentation update(@MappingTarget RealmRepresentation existingRealm, OzgCloudKeycloakRealmSpec spec);
 
 	@Mapping(target = "name", source = "name")
 	RoleRepresentation map(OzgCloudKeycloakRealmSpec.RealmRole role);
 
+	@Named("bundeslandToLoginTheme")
+	default String mapBundeslandToLoginTheme(OzgCloudKeycloakRealmSpec spec) { return "ozg-" + spec.getBundesland(); }
+
 	@Named("supportedLocales")
 	default Set<String> mapPassword(OzgCloudKeycloakRealmSpec spec) {
 		return Set.of("de");
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
index d1332813f2dbe03f85a71f075a34eed4ceb230c0..b3d1eef6e0c05bc13991878ba5bc7120995849a0 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
@@ -48,6 +48,8 @@ class OzgCloudKeycloakRealmSpec {
 
 	private String displayName;
 
+	private String bundesland;
+
 	private KeycloakRealmSMTPServer smtpServer;
 
 	@Getter
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
index bd951e01b9d51919cc258b7b5316589c18a0cc99..298ffe4dbcf7760b4d145573a022ef36deb12bde 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
@@ -38,110 +38,121 @@ class KeycloakRealmMapperTest {
 	@Spy
 	private final KeycloakRealmMapper mapper = Mappers.getMapper(KeycloakRealmMapper.class);
 
-	private RealmRepresentation mapRealm() {
-		return mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+	@Nested
+	class TestMap {
 
-	}
+		@Test
+		void shouldMapDisplayName() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldMapDisplayName() {
-		var mapped = mapRealm();
+			assertThat(mapped.getDisplayName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.DISPLAY_NAME);
+		}
 
-		assertThat(mapped.getDisplayName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.DISPLAY_NAME);
-	}
+		@Test
+		void shouldBeEnabled() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldBeEnabled() {
-		var mapped = mapRealm();
+			assertThat(mapped.isEnabled()).isTrue();
+		}
 
-		assertThat(mapped.isEnabled()).isTrue();
-	}
+		@Test
+		void shouldBeResetPasswordAllowed() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldBeResetPasswordAllowed() {
-		var mapped = mapRealm();
+			assertThat(mapped.isResetPasswordAllowed()).isTrue();
+		}
 
-		assertThat(mapped.isResetPasswordAllowed()).isTrue();
-	}
+		@Test
+		void shouldBeSupportedLocaleDe() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldBeSupportedLocaleDe() {
-		var mapped = mapRealm();
+			assertThat(mapped.getSupportedLocales()).containsExactly("de");
+		}
 
-		assertThat(mapped.getSupportedLocales()).containsExactly("de");
-	}
+		@Test
+		void shouldBeDefaultLocaleDe() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldBeDefaultLocaleDe() {
-		var mapped = mapRealm();
+			assertThat(mapped.getDefaultLocale()).isEqualTo("de");
+		}
 
-		assertThat(mapped.getDefaultLocale()).isEqualTo("de");
-	}
+		@Test
+		void shouldHaveLoginTheme() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldBeInternationalizationEnabled() {
-		var mapped = mapRealm();
+			assertThat(mapped.getLoginTheme()).isEqualTo("ozg-sh");
+		}
 
-		assertThat(mapped.isInternationalizationEnabled()).isTrue();
-	}
+		@Test
+		void shouldBeInternationalizationEnabled() {
+			var mapped = mapRealm();
 
-	@Test
-	void checkPasswordPolicy() {
-		var mapped = mapRealm();
+			assertThat(mapped.isInternationalizationEnabled()).isTrue();
+		}
 
-		assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername");
-	}
+		@Test
+		void checkPasswordPolicy() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldSetActionTokenGeneratedByUserLifespan() {
-		var mapped = mapRealm();
+			assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername");
+		}
 
-		assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
-	}
+		@Test
+		void shouldSetActionTokenGeneratedByUserLifespan() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldMapSmtpServer() {
-		var mapped = mapRealm();
+			assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
+		}
 
-		assertThat(mapped.getSmtpServer()).hasSize(8);
-	}
+		@Test
+		void shouldMapSmtpServer() {
+			var mapped = mapRealm();
 
-	@Test
-	void shouldContainSmtpServerKeysValues() {
-		var mapped = mapRealm();
-
-		assertThat(mapped.getSmtpServer())
-				.containsEntry(KeycloakRealmSMTPServer.USER_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
-				.containsEntry(KeycloakRealmSMTPServer.PASSWORD_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
-				.containsEntry(KeycloakRealmSMTPServer.HOST_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
-				.containsEntry(KeycloakRealmSMTPServer.PORT_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
-				.containsEntry(KeycloakRealmSMTPServer.STARTTLS_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
-				.containsEntry(KeycloakRealmSMTPServer.AUTH_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
-				.containsEntry(KeycloakRealmSMTPServer.FROM_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
-				.containsEntry(KeycloakRealmSMTPServer.FROM_DISPLAY_NAME_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
-	}
+			assertThat(mapped.getSmtpServer()).hasSize(8);
+		}
 
-	@Test
-	void shouldMapWhenSmtpServerIsNull() {
-		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.createBuilder().smtpServer(null).build());
+		@Test
+		void shouldContainSmtpServerKeysValues() {
+			var mapped = mapRealm();
 
-		assertThat(mapped.getSmtpServer()).isEmpty();
-	}
+			assertThat(mapped.getSmtpServer())
+					.containsEntry(KeycloakRealmSMTPServer.USER_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
+					.containsEntry(KeycloakRealmSMTPServer.PASSWORD_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
+					.containsEntry(KeycloakRealmSMTPServer.HOST_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
+					.containsEntry(KeycloakRealmSMTPServer.PORT_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
+					.containsEntry(KeycloakRealmSMTPServer.STARTTLS_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
+					.containsEntry(KeycloakRealmSMTPServer.AUTH_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
+					.containsEntry(KeycloakRealmSMTPServer.FROM_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
+					.containsEntry(KeycloakRealmSMTPServer.FROM_DISPLAY_NAME_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
+		}
 
-	@Test
-	void shouldMapRealmRoles() {
-		var mapped = mapRealm();
+		@Test
+		void shouldMapWhenSmtpServerIsNull() {
+			var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.createBuilder().smtpServer(null).build());
 
-		assertThat(mapped.getRoles().getRealm()).hasSize(2);
-	}
+			assertThat(mapped.getSmtpServer()).isEmpty();
+		}
+
+		@Test
+		void shouldMapRealmRoles() {
+			var mapped = mapRealm();
+
+			assertThat(mapped.getRoles().getRealm()).hasSize(2);
+		}
+
+		@Test
+		void shouldContainRealmRolesValues() {
+			var mapped = mapRealm();
+			var mappedRealmRoles = mapped.getRoles();
 
-	@Test
-	void shouldContainRealmRolesValues() {
-		var mapped = mapRealm();
-		var mappedRealmRoles = mapped.getRoles();
+			assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
+			assertThat(mappedRealmRoles.getRealm().get(1).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_2);
+		}
+
+		private RealmRepresentation mapRealm() {
+			return mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		}
 
-		assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
-		assertThat(mappedRealmRoles.getRealm().get(1).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_2);
 	}
 
 	@Nested
@@ -149,70 +160,77 @@ class KeycloakRealmMapperTest {
 
 		@Test
 		void shouldMapDisplayName() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getDisplayName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.DISPLAY_NAME);
 		}
 
 		@Test
 		void shouldBeEnabled() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.isEnabled()).isTrue();
 		}
 
 		@Test
 		void shouldBeResetPasswordAllowed() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.isResetPasswordAllowed()).isTrue();
 		}
 
 		@Test
 		void shouldBeSupportedLocaleDe() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getSupportedLocales()).containsExactly("de");
 		}
 
+		@Test
+		void shouldHaveLoginTheme() {
+			var mapped = callUpdate();
+
+			assertThat(mapped.getLoginTheme()).isEqualTo("ozg-sh");
+		}
+
 		@Test
 		void shouldBeDefaultLocaleDe() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getDefaultLocale()).isEqualTo("de");
 		}
 
 		@Test
 		void shouldBeInternationalizationEnabled() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.isInternationalizationEnabled()).isTrue();
 		}
 
 		@Test
 		void checkPasswordPolicy() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername");
 		}
 
 		@Test
 		void shouldSetActionTokenGeneratedByUserLifespan() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
 		}
 
 		@Test
 		void shouldMapSmtpServer() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getSmtpServer()).hasSize(8);
 		}
 
 		@Test
 		void shouldContainSmtpServerKeysValues() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getSmtpServer())
 					.containsEntry(KeycloakRealmSMTPServer.USER_FIELD, KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
@@ -235,19 +253,23 @@ class KeycloakRealmMapperTest {
 
 		@Test
 		void shouldMapRealmRoles() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 
 			assertThat(mapped.getRoles().getRealm()).hasSize(2);
 		}
 
 		@Test
 		void shouldContainRealmRolesValues() {
-			var mapped = mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+			var mapped = callUpdate();
 			var mappedRealmRoles = mapped.getRoles();
 
 			assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
 			assertThat(mappedRealmRoles.getRealm().get(1).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_2);
 		}
 
+		private RealmRepresentation callUpdate() {
+			return mapper.update(RealmRepresentationTestFactory.create(), OzgCloudKeycloakRealmSpecTestFactory.create());
+		}
+
 	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
index f968f4ac8bbd5e322a8c7cd319de2476e7945b80..d0393aab81f83e67475bb59d0a76b9910e962b63 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
@@ -116,25 +116,28 @@ class KeycloakRealmServiceTest {
 
 		@Test
 		void shouldUpdateRealmIfExists() {
-			service.updateRealm(realmRepresentation, REALM);
+			updateRealm();
 
 			verify(remoteService).updateRealm(realmRepresentation);
 		}
 
 		@Test
 		void shouldCallMapper() {
-
-			service.updateRealm(realmRepresentation, REALM);
+			updateRealm();
 
 			verify(mapper).update(realmRepresentation, REALM);
 		}
 
 		@Test
 		void createRealmShouldCallAddAttributes() {
-			service.updateRealm(realmRepresentation, REALM);
+			updateRealm();
 
 			verify(service).addUserProfileAttributes(realmRepresentation);
 		}
+
+		private void updateRealm() {
+			service.updateRealm(realmRepresentation, REALM);
+		}
 	}
 
 	@DisplayName("Add or Update Realm Roles")
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
index 5c27b298f4f21487701334bbd9f0be3c1ccfd7d1..9d7ec9af90b9b51f08cf44b8987c1f5bb34a146d 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
@@ -30,6 +30,7 @@ import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.RealmRole;
 public class OzgCloudKeycloakRealmSpecTestFactory {
 
 	public final static String DISPLAY_NAME = "TestDisplayName";
+	public final static String BUNDESLAND = "sh";
 	public final static boolean KEEP_AFTER_DELETE = false;
 
 	public static final String ROLE_NAME_1 = "RoleName1";
@@ -46,6 +47,7 @@ public class OzgCloudKeycloakRealmSpecTestFactory {
 		return OzgCloudKeycloakRealmSpec.builder()
 				.keepAfterDelete(KEEP_AFTER_DELETE)
 				.displayName(DISPLAY_NAME)
+				.bundesland(BUNDESLAND)
 				.smtpServer(KeycloakRealmSmtpServerTestFactory.create())
 				.realmRoles(ROLES);
 	}