This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit fa1f9a9a0a0fc8c9e52892ccf063d0b441c8f23b
Author: Matteo Tatoni <[email protected]>
AuthorDate: Thu Aug 13 17:02:08 2026 +0200

    [SYNCOPE-1989] fix dark-theme for Console (#1492)
---
 client/idm/console/pom.xml                         |   1 +
 .../META-INF/resources/css/_topology-theme.scss    |  99 +++++
 .../META-INF/resources/css/idmTopology.scss        | 143 -------
 .../resources/META-INF/resources/css/topology.scss | 349 +++++++++++++++++
 .../syncope/client/console/topology/Topology.html  |   3 +-
 .../client/console/topology/TopologyNodePanel.html |   2 +-
 .../META-INF/resources/ui-commons/css/_theme.scss  | 434 +++++++++++++++++++++
 .../ui-commons/css/{utils.scss => _utils.scss}     |   0
 .../resources/ui-commons/css/accessibility.scss    |   9 +-
 .../META-INF/resources/ui-commons/css/batch.scss   |  10 +-
 .../META-INF/resources/ui-commons/css/login.scss   |  22 +-
 .../META-INF/resources/ui-commons/css/search.scss  |  23 +-
 .../resources/ui-commons/css/syncopeUI.scss        | 381 +++++++++---------
 .../resources/ui-commons/css/topology.scss         | 239 ------------
 .../commons/markup/html/form/MultiFieldPanel.html  |   2 +-
 .../ui/commons/panels/NotificationPanel.html       |  10 +-
 .../syncope/client/console/panels/TogglePanel.html |   2 +-
 .../wicket/markup/html/form/MultiPanel.html        |   2 +-
 18 files changed, 1121 insertions(+), 610 deletions(-)

diff --git a/client/idm/console/pom.xml b/client/idm/console/pom.xml
index add44d1de7..72348fe845 100644
--- a/client/idm/console/pom.xml
+++ b/client/idm/console/pom.xml
@@ -69,6 +69,7 @@ under the License.
         <inherited>true</inherited>
         <configuration>
           <args>
+            
<arg>--load-path=${rootpom.basedir}/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css</arg>
             
<arg>${basedir}/src/main/resources/META-INF/resources/css:${project.build.outputDirectory}/META-INF/resources/css</arg>
           </args>
         </configuration>
diff --git 
a/client/idm/console/src/main/resources/META-INF/resources/css/_topology-theme.scss
 
b/client/idm/console/src/main/resources/META-INF/resources/css/_topology-theme.scss
new file mode 100644
index 0000000000..3424abcabd
--- /dev/null
+++ 
b/client/idm/console/src/main/resources/META-INF/resources/css/_topology-theme.scss
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+:root {
+  /*
+   * Topology
+   */
+  --topology-node-border: rgba(15, 23, 42, 0.14);
+  --topology-node-shadow: 0 10px 28px rgba(2, 6, 23, 0.10);
+  --topology-node-shadow-hover: 0 14px 34px rgba(2, 6, 23, 0.14);
+
+  --topology-root-bg: rgba(22, 163, 74, 0.18);
+  --topology-cs-bg: rgba(14, 165, 233, 0.12);
+  --topology-conn-bg: rgba(139, 92, 246, 0.10);
+  --topology-conn-errored-bg: rgba(244, 63, 94, 0.18);
+  --topology-res-bg: rgba(245, 158, 11, 0.14);
+
+  /*
+   * Topology toolbar
+   */
+  --topology-toolbar-bg: rgba(255, 255, 255, 0.92);
+  --topology-toolbar-bg-hover: rgba(255, 255, 255, 0.98);
+  --topology-toolbar-border: rgba(15, 23, 42, 0.10);
+  --topology-toolbar-fg: rgba(15, 23, 42, 0.78);
+  --topology-toolbar-fg-hover: rgba(15, 23, 42, 0.92);
+  --topology-toolbar-shadow: 0 8px 18px rgba(2, 6, 23, 0.10);
+  --topology-toolbar-shadow-hover: 0 10px 22px rgba(2, 6, 23, 0.14);
+  --topology-focus-ring: rgba(14, 165, 233, 0.25);
+
+  /*
+   * Topology labels
+   */
+  --topology-label-bg: #fff;
+  --topology-label-color: #444;
+  --topology-label-border: #808080;
+  --topology-label-hover-bg: #5c96bc;
+  --topology-label-hover-color: #fff;
+  --topology-label-hover-border: #fff;
+
+  /*
+   * Topology tooltip
+   */
+  --topology-tooltip-bg: #eee;
+  --topology-tooltip-color: #000;
+  --topology-tooltip-border: #bbb;
+}
+
+[data-bs-theme="dark"] {
+  /*
+   * Application background: #2B3035
+   *
+   * Surfaces are deliberately lighter to maintain contrast.
+   */
+  --topology-node-border: rgba(255, 255, 255, 0.22);
+  --topology-node-shadow: 0 10px 28px rgba(0, 0, 0, 0.38);
+  --topology-node-shadow-hover: 0 14px 34px rgba(0, 0, 0, 0.52);
+
+  --topology-root-bg: rgba(55, 210, 115, 0.30);
+  --topology-cs-bg: rgba(70, 185, 235, 0.27);
+  --topology-conn-bg: rgba(160, 120, 245, 0.25);
+  --topology-conn-errored-bg: rgba(245, 90, 105, 0.36);
+  --topology-res-bg: rgba(255, 195, 65, 0.30);
+
+  --topology-toolbar-bg: rgba(65, 71, 77, 0.96);
+  --topology-toolbar-bg-hover: rgba(78, 85, 92, 0.98);
+  --topology-toolbar-border: rgba(255, 255, 255, 0.18);
+  --topology-toolbar-fg: rgba(245, 247, 249, 0.90);
+  --topology-toolbar-fg-hover: #fff;
+  --topology-toolbar-shadow: 0 8px 18px rgba(0, 0, 0, 0.40);
+  --topology-toolbar-shadow-hover: 0 10px 22px rgba(0, 0, 0, 0.52);
+  --topology-focus-ring: rgba(80, 190, 240, 0.45);
+
+  --topology-label-bg: #414950;
+  --topology-label-color: #f5f5f5;
+  --topology-label-border: #9aa3ab;
+  --topology-label-hover-bg: #5c9bc3;
+  --topology-label-hover-color: #fff;
+  --topology-label-hover-border: #d9e2e8;
+
+  --topology-tooltip-bg: #4a525a;
+  --topology-tooltip-color: #fff;
+  --topology-tooltip-border: #aeb7bf;
+}
diff --git 
a/client/idm/console/src/main/resources/META-INF/resources/css/idmTopology.scss 
b/client/idm/console/src/main/resources/META-INF/resources/css/idmTopology.scss
deleted file mode 100644
index 092f501d45..0000000000
--- 
a/client/idm/console/src/main/resources/META-INF/resources/css/idmTopology.scss
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-:root {
-  --topology-node-border: rgba(15, 23, 42, 0.14);
-  --topology-node-shadow: 0 10px 28px rgba(2, 6, 23, 0.10);
-  --topology-node-shadow-hover: 0 14px 34px rgba(2, 6, 23, 0.14);
-
-  --topology-toolbar-bg: rgba(255, 255, 255, 0.92);
-  --topology-toolbar-border: rgba(15, 23, 42, 0.10);
-  --topology-toolbar-fg: rgba(15, 23, 42, 0.78);
-  --topology-toolbar-fg-hover: rgba(15, 23, 42, 0.92);
-}
-
-#zoom {
-  display: flex;
-  justify-content: flex-end;
-  align-items: center;
-  gap: 6px;
-
-  ul.menu {
-    display: flex;
-    gap: 6px;
-    margin: 0;
-    padding: 0;
-    list-style: none;
-  }
-
-  ul.menu > li {
-    margin: 0;
-    padding: 0;
-  }
-
-  ul.menu > li > a.btn,
-  .topology-toolbar-btn {
-    appearance: none;
-    border: 1px solid var(--topology-toolbar-border);
-    background: var(--topology-toolbar-bg);
-    color: var(--topology-toolbar-fg);
-    border-radius: 999px;
-    padding: 6px 10px;
-    line-height: 1;
-    box-shadow: 0 8px 18px rgba(2, 6, 23, 0.10);
-    transition: transform 120ms ease, box-shadow 120ms ease, background 120ms 
ease, color 120ms ease;
-  }
-
-  ul.menu > li > a.btn:hover,
-  .topology-toolbar-btn:hover {
-    color: var(--topology-toolbar-fg-hover);
-    background: rgba(255, 255, 255, 0.98);
-    box-shadow: 0 10px 22px rgba(2, 6, 23, 0.14);
-    transform: translateY(-1px);
-    text-decoration: none;
-  }
-
-  ul.menu > li > a.btn:focus,
-  .topology-toolbar-btn:focus {
-    outline: none;
-    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.25), 0 10px 22px rgba(2, 6, 23, 
0.14);
-  }
-
-  ul.menu > li > a.btn i,
-  .topology-toolbar-btn i {
-    font-size: 1.05rem;
-    padding-right: 0;
-  }
-}
-
-#topology {
-  cursor: grab;
-}
-
-#topology.topology-panning {
-  cursor: grabbing;
-}
-
-#drawing .window {
-  opacity: 1;
-  border: 1px solid var(--topology-node-border);
-  box-shadow: var(--topology-node-shadow);
-  border-radius: 14px;
-  width: 200px;
-  min-height: 72px;
-  height: auto;
-  line-height: normal;
-  padding: 10px 12px;
-
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-#drawing .window:hover {
-  box-shadow: var(--topology-node-shadow);
-}
-
-#drawing .window[data-original-title]:hover::after {
-  content: none !important;
-  display: none !important;
-}
-
-#drawing .window.topology_root {
-  background-color: rgba(22, 163, 74, 0.18);
-}
-
-#drawing .window.topology_cs {
-  background-color: rgba(14, 165, 233, 0.12);
-}
-
-#drawing .window.topology_conn {
-  background-color: rgba(139, 92, 246, 0.10);
-}
-
-#drawing .window.topology_conn_errored {
-  background-color: rgba(244, 63, 94, 0.18);
-}
-
-#drawing .window.topology_res {
-  background-color: rgba(245, 158, 11, 0.14);
-}
-
-#drawing .window p {
-  font-weight: 700;
-  letter-spacing: 0.2px;
-  font-size: 1.25em;
-  line-height: 1.25;
-}
diff --git 
a/client/idm/console/src/main/resources/META-INF/resources/css/topology.scss 
b/client/idm/console/src/main/resources/META-INF/resources/css/topology.scss
new file mode 100644
index 0000000000..52674d114b
--- /dev/null
+++ b/client/idm/console/src/main/resources/META-INF/resources/css/topology.scss
@@ -0,0 +1,349 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+@import 'theme';
+@import 'topology-theme';
+@import 'utils';
+
+.content-wrapper.accent-success {
+  overflow: hidden;
+}
+
+/*
+ * Topology
+ */
+
+#topology {
+  position: relative;
+  border: 0;
+  height: 780px;
+  overflow: hidden;
+  cursor: grab;
+}
+
+#topology.topology-panning {
+  cursor: grabbing;
+}
+
+#drawing {
+  height: 5000px;
+  width: 5000px;
+  display: block;
+  position: relative;
+  top: -2490px;
+  left: -2270px;
+}
+
+/*
+ * Topology nodes
+ *
+ * IMPORTANT:
+ * position: absolute is required by jsPlumb.
+ */
+#drawing .window {
+  position: absolute;
+
+  opacity: 1;
+  z-index: 20;
+
+  width: 200px;
+  min-height: 72px;
+  height: auto;
+
+  padding: 10px 12px;
+
+  border: 1px solid var(--topology-node-border);
+  border-radius: 14px;
+  box-shadow: var(--topology-node-shadow);
+
+  background-color: var(--topology-window-bg);
+  color: var(--topology-window-color);
+
+  line-height: normal;
+  text-align: center;
+
+  display: flex;
+  align-items: center;
+  justify-content: center;
+
+  box-sizing: border-box;
+
+  cursor: pointer;
+}
+
+#drawing .window:hover {
+  box-shadow: var(--topology-node-shadow-hover);
+}
+
+#drawing .window.topology_root {
+  background-color: var(--topology-root-bg);
+}
+
+#drawing .window.topology_cs {
+  background-color: var(--topology-cs-bg);
+}
+
+#drawing .window.topology_conn {
+  background-color: var(--topology-conn-bg);
+}
+
+#drawing .window.topology_conn_errored {
+  background-color: var(--topology-conn-errored-bg);
+}
+
+#drawing .window.topology_res {
+  background-color: var(--topology-res-bg);
+}
+
+#drawing .window p {
+  margin: 0 !important;
+
+  font-weight: 700;
+  letter-spacing: 0.2px;
+  font-size: 1.25em;
+  line-height: 1.25;
+}
+
+/*
+ * Disable the old CSS tooltip because the topology
+ * already provides its own interaction.
+ */
+#drawing .window[data-original-title]:hover::after {
+  content: none !important;
+  display: none !important;
+}
+
+/*
+ * jsPlumb
+ */
+
+._jsPlumb_dragging {
+  z-index: 4000;
+}
+
+#drawing ._jsPlumb_overlay.component.label,
+.aLabel {
+  background-color: var(--topology-label-bg);
+  color: var(--topology-label-color);
+  border: 1px solid var(--topology-label-border);
+}
+
+#drawing ._jsPlumb_overlay.component.label {
+  border-radius: 0.5em;
+  font-size: 0.8em;
+  opacity: 0.8;
+  padding: 0.5em;
+}
+
+.aLabel {
+  padding: 0.4em;
+
+  font: 12px sans-serif;
+
+  z-index: 21;
+  opacity: 0.8;
+  filter: alpha(opacity = 80);
+
+  cursor: pointer;
+
+  &._jsPlumb_hover {
+    background-color: var(--topology-label-hover-bg);
+    color: var(--topology-label-hover-color);
+    border: 1px solid var(--topology-label-hover-border);
+  }
+}
+
+/*
+ * Zoom toolbar
+ */
+
+#zoom {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  gap: 6px;
+
+  ul.menu {
+    display: flex;
+    gap: 6px;
+
+    margin: 0;
+    padding: 0;
+
+    list-style: none;
+  }
+
+  ul.menu > li {
+    margin: 0;
+    padding: 0;
+  }
+
+  ul.menu > li > a.btn,
+  .topology-toolbar-btn {
+    appearance: none;
+
+    border: 1px solid var(--topology-toolbar-border);
+    border-radius: 999px;
+
+    background: var(--topology-toolbar-bg);
+    color: var(--topology-toolbar-fg);
+
+    padding: 6px 10px;
+
+    line-height: 1;
+
+    box-shadow: var(--topology-toolbar-shadow);
+
+    transition: transform 120ms ease,
+    box-shadow 120ms ease,
+    background 120ms ease,
+    color 120ms ease;
+  }
+
+  ul.menu > li > a.btn:hover,
+  .topology-toolbar-btn:hover {
+    color: var(--topology-toolbar-fg-hover);
+    background: var(--topology-toolbar-bg-hover);
+
+    box-shadow: var(--topology-toolbar-shadow-hover);
+
+    transform: translateY(-1px);
+
+    text-decoration: none;
+  }
+
+  ul.menu > li > a.btn:focus,
+  .topology-toolbar-btn:focus {
+    outline: none;
+
+    box-shadow: 0 0 0 3px var(--topology-focus-ring),
+    var(--topology-toolbar-shadow-hover);
+  }
+
+  ul.menu > li > a.btn i,
+  .topology-toolbar-btn i {
+    font-size: 1.05rem;
+    padding-right: 0;
+  }
+
+  ul.menu > li > a {
+    display: inline-block;
+    margin-left: 5px;
+  }
+}
+
+/*
+ * Node actions
+ */
+
+.node-action-link {
+  clear: both;
+
+  display: block;
+
+  height: 0;
+
+  padding: 3px 8px 0 0;
+
+  position: absolute;
+  right: 0;
+  top: 0;
+
+  .fa {
+    font-size: 14px;
+    display: block !important;
+  }
+
+  .dropdown-menu {
+    border-radius: 12px;
+    min-width: 50px;
+    width: 50px;
+  }
+}
+
+/*
+ * Legacy topology tooltip
+ */
+
+.window[data-original-title] {
+  &:hover::after {
+    border: 1px solid var(--topology-tooltip-border);
+    border-radius: 0.5em;
+
+    padding: 5px 10px;
+
+    background: var(--topology-tooltip-bg);
+    color: var(--topology-tooltip-color);
+
+    content: attr(data-original-title);
+
+    position: relative;
+    right: -5px;
+    top: -70px;
+
+    white-space: nowrap;
+    text-align: center;
+
+    height: 20px;
+    margin: 0;
+  }
+}
+
+/*
+ * Miscellaneous
+ */
+
+.checkbox {
+  margin-top: 15px;
+  margin-bottom: 15px;
+}
+
+div.alert-widget > a > .badge {
+  font-size: 9px;
+  line-height: 0.9;
+
+  padding: 2px 3px;
+
+  position: absolute;
+
+  text-align: center;
+
+  margin-right: -13px;
+  top: 0;
+}
+
+.card.card-outline {
+  margin-top: 20px;
+  margin-bottom: 0;
+}
+
+.panel-group.box-group {
+  margin-bottom: 20px;
+}
+
+.scrollable-tab-content {
+  padding-top: 20px;
+}
+
+.conn-check-wrapper {
+  position: absolute;
+  top: 0;
+  right: 25px;
+  z-index: 1;
+}
diff --git 
a/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/Topology.html
 
b/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/Topology.html
index 4210527ae1..17ccca0022 100644
--- 
a/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/Topology.html
+++ 
b/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/Topology.html
@@ -21,8 +21,7 @@ under the License.
     <script type="text/javascript" 
src="webjars/jsplumb/${jsplumb.version}/js/jsPlumb-${jsplumb.version}-min.js"></script>
     <script type="text/javascript" 
src="webjars/jquery-cookie/${jquery-cookie.version}/jquery.cookie.js"></script>
     <script type="text/javascript" src="js/idmTopology.js"></script>
-    <link href="ui-commons/css/topology.css" rel="stylesheet"/>
-    <link href="css/idmTopology.css" rel="stylesheet"/>
+    <link href="css/topology.css" rel="stylesheet"/>
 
     <style type="text/css">
       legend {
diff --git 
a/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyNodePanel.html
 
b/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyNodePanel.html
index 70d08298fb..46d01f7d1b 100644
--- 
a/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyNodePanel.html
+++ 
b/client/idm/console/src/main/resources/org/apache/syncope/client/console/topology/TopologyNodePanel.html
@@ -18,6 +18,6 @@ under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:wicket="http://wicket.apache.org";>
   <wicket:panel>
-    <p class="text-center text-primary" wicket:id="label"/>
+    <p class="text-center" wicket:id="label"/>
   </wicket:panel>
 </html>
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/_theme.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/_theme.scss
new file mode 100644
index 0000000000..91bdebe4c5
--- /dev/null
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/_theme.scss
@@ -0,0 +1,434 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+:root {
+  /*
+   * --------------------------------------------------------------------------
+   * Universal colors
+   * --------------------------------------------------------------------------
+   *
+   * These values do not change with the application theme.
+   * Use them when the color itself has a fixed meaning.
+   */
+
+  --color-white: #ffffff;
+  --color-black: #000000;
+
+  --color-text-on-light: #333333;
+  --color-text-on-dark: #ffffff;
+
+  --color-muted-on-light: #888888;
+  --color-muted-on-dark: #cccccc;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Primitive palette
+   * --------------------------------------------------------------------------
+   *
+   * Raw colors shared by semantic variables.
+   */
+
+  /* Neutral */
+  --app-gray-050: #f7f7f7;
+  --app-gray-100: #f5f5f5;
+  --app-gray-150: #eeeeee;
+  --app-gray-200: #dee2e6;
+  --app-gray-250: #d2d6de;
+  --app-gray-300: #cccccc;
+  --app-gray-400: #949494;
+  --app-gray-500: #888888;
+  --app-gray-600: #555555;
+  --app-gray-700: #444444;
+
+  /* Brand */
+  --app-green-500: #28a745;
+  --app-green-700: #146c43;
+
+  /* Semantic */
+  --app-cyan-500: #17a2b8;
+  --app-blue-500: #0ea5e9;
+  --app-yellow-500: #ffc107;
+  --app-red-500: #dc3545;
+  --app-red-700: #e00000;
+
+  /* Universal Color */
+  --app-text-on-light: #333333;
+  --app-text-on-dark: #ffffff;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Light theme
+   * --------------------------------------------------------------------------
+   */
+
+  /*
+   * Backgrounds
+   */
+  --app-bg: #ecf0f5;
+  --app-surface: var(--color-white);
+  --app-surface-secondary: var(--app-gray-050);
+  --app-surface-tertiary: var(--app-gray-100);
+
+  /*
+   * Text
+   */
+  --app-text: var(--color-text-on-light);
+  --app-text-secondary: var(--app-gray-500);
+  --app-text-muted: var(--app-gray-600);
+  --app-text-inverse: var(--color-text-on-dark);
+
+  --app-text-link: var(--app-green-500);
+  --app-text-link-hover: var(--app-green-700);
+
+  /*
+   * Borders
+   */
+  --app-border: var(--app-gray-200);
+  --app-border-subtle: var(--app-gray-150);
+  --app-border-strong: var(--app-gray-250);
+  --app-border-input: var(--app-gray-300);
+  --app-border-focus: var(--app-green-500);
+
+  /*
+   * Primary actions
+   */
+  --app-primary: var(--app-green-500);
+  --app-primary-hover: var(--app-green-700);
+  --app-primary-contrast: var(--color-white);
+
+  /*
+   * Semantic states
+   */
+  --app-success: var(--app-cyan-500);
+  --app-success-contrast: var(--color-white);
+
+  --app-danger: var(--app-red-500);
+  --app-danger-text: var(--app-red-700);
+  --app-danger-contrast: var(--color-white);
+
+  --app-warning: var(--app-yellow-500);
+  --app-warning-contrast: var(--color-white);
+
+  --app-info: var(--app-blue-500);
+  --app-info-contrast: var(--color-white);
+
+  /*
+   * Inputs
+   */
+  --app-input-bg: var(--color-white);
+  --app-input-addon-bg: var(--app-gray-150);
+  --app-input-border: var(--app-border-input);
+  --app-input-text: var(--app-text);
+  --app-input-placeholder: var(--app-text-secondary);
+
+  /*
+   * Dropdowns / popovers / autocomplete
+   */
+  --app-dropdown-bg: var(--app-surface);
+  --app-dropdown-text: var(--app-text);
+  --app-dropdown-border: var(--app-border);
+
+  --app-popover-bg: var(--app-surface);
+  --app-popover-text: var(--app-text);
+  --app-popover-border: var(--app-border);
+
+  /*
+   * Overlays
+   */
+  --app-overlay: rgba(0, 0, 0, 0.30);
+  --app-overlay-strong: rgba(0, 0, 0, 0.55);
+
+  /*
+   * Shadows
+   */
+  --app-shadow: rgba(0, 0, 0, 0.25);
+  --app-shadow-strong: rgba(0, 0, 0, 0.75);
+
+  /*
+   * Code / preformatted content
+   */
+  --app-code-bg: var(--app-gray-100);
+  --app-code-text: var(--app-text);
+  --app-code-border: var(--app-gray-300);
+
+  --app-code-deletion-bg: #ffdddd;
+  --app-code-deletion-border: #f1c0c0;
+
+  --app-code-addition-bg: #dbffdb;
+  --app-code-addition-border: #c1e9c1;
+
+  /*
+   * Notifications
+   */
+  --app-notification-error-bg: rgba(255, 0, 0, 0.70);
+  --app-notification-error-text: var(--app-danger-text);
+
+  --app-notification-success-bg: rgba(0, 153, 0, 0.70);
+  --app-notification-success-text: var(--color-white);
+
+  /*
+   * Accessibility
+   */
+  --app-accessibility-outline: var(--app-gray-400);
+
+  /*
+   * Special / legacy components
+   */
+  --app-disabled-bg: var(--app-gray-150);
+  --app-disabled-text: var(--app-text-secondary);
+
+  --app-highlight: var(--app-danger-text);
+
+  --app-selection-bg: var(--app-success);
+  --app-selection-text: var(--color-white);
+
+  --app-tooltip-bg: var(--color-white);
+  --app-tooltip-text: var(--color-black);
+  --app-tooltip-border: var(--color-black);
+
+  /*
+   * Sidebar / navigation
+   */
+  --app-sidebar-bg: var(--app-surface);
+  --app-sidebar-text: var(--app-text);
+  --app-sidebar-link: var(--app-text-link);
+  --app-sidebar-link-hover: var(--app-text-link-hover);
+
+  --app-navbar-text: var(--color-white);
+  --app-navbar-hover-bg: rgba(0, 0, 0, 0.15);
+
+  /*
+   * Tables
+   */
+  --app-table-active-bg: var(--app-success);
+  --app-table-active-text: var(--color-white);
+
+  /*
+   * Cards / panels
+   */
+  --app-card-bg: var(--app-surface);
+  --app-card-border: var(--app-border);
+  --app-panel-border: var(--app-border-strong);
+}
+
+
+/*
+ * ============================================================================
+ * Dark theme
+ * ============================================================================
+ */
+
+[data-bs-theme="dark"] {
+  /*
+   * --------------------------------------------------------------------------
+   * Backgrounds
+   * --------------------------------------------------------------------------
+   */
+
+  --app-bg: #2b3035;
+  --app-surface: #41474d;
+  --app-surface-secondary: #484f56;
+  --app-surface-tertiary: #343a40;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Text
+   * --------------------------------------------------------------------------
+   */
+
+  --app-text: #f1f3f5;
+  --app-text-secondary: #b8c0c7;
+  --app-text-muted: #d0d5da;
+  --app-text-inverse: var(--color-black);
+
+  --app-text-link: #45c76b;
+  --app-text-link-hover: #70d98b;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Borders
+   * --------------------------------------------------------------------------
+   */
+
+  --app-border: #68727b;
+  --app-border-subtle: #59636c;
+  --app-border-strong: #68727b;
+  --app-border-input: #68727b;
+  --app-border-focus: #45c76b;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Primary actions
+   * --------------------------------------------------------------------------
+   */
+
+  --app-primary: #45c76b;
+  --app-primary-hover: #70d98b;
+  --app-primary-contrast: var(--color-white);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Semantic states
+   * --------------------------------------------------------------------------
+   */
+
+  --app-success: #29b8d3;
+  --app-success-contrast: var(--color-white);
+
+  --app-danger: #ed5864;
+  --app-danger-text: #ff858d;
+  --app-danger-contrast: var(--color-white);
+
+  --app-warning: #ffc94d;
+  --app-warning-contrast: var(--color-black);
+
+  --app-info: #50beef;
+  --app-info-contrast: var(--color-white);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Inputs
+   * --------------------------------------------------------------------------
+   */
+
+  --app-input-bg: #343a40;
+  --app-input-addon-bg: #4a5158;
+  --app-input-border: var(--app-border);
+  --app-input-text: var(--app-text);
+  --app-input-placeholder: var(--app-text-secondary);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Dropdowns / popovers / autocomplete
+   * --------------------------------------------------------------------------
+   */
+
+  --app-dropdown-bg: var(--app-surface);
+  --app-dropdown-text: var(--app-text);
+  --app-dropdown-border: var(--app-border);
+
+  --app-popover-bg: var(--app-surface);
+  --app-popover-text: var(--app-text);
+  --app-popover-border: var(--app-border);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Overlays
+   * --------------------------------------------------------------------------
+   */
+
+  --app-overlay: rgba(0, 0, 0, 0.55);
+  --app-overlay-strong: rgba(0, 0, 0, 0.70);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Shadows
+   * --------------------------------------------------------------------------
+   */
+
+  --app-shadow: rgba(0, 0, 0, 0.45);
+  --app-shadow-strong: rgba(0, 0, 0, 0.80);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Code / preformatted content
+   * --------------------------------------------------------------------------
+   */
+
+  --app-code-bg: #343a40;
+  --app-code-text: var(--app-text);
+  --app-code-border: var(--app-border);
+
+  --app-code-deletion-bg: rgba(220, 53, 69, 0.25);
+  --app-code-deletion-border: rgba(220, 53, 69, 0.55);
+
+  --app-code-addition-bg: rgba(40, 167, 69, 0.25);
+  --app-code-addition-border: rgba(40, 167, 69, 0.55);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Notifications
+   * --------------------------------------------------------------------------
+   */
+
+  --app-notification-error-bg: rgba(255, 0, 0, 0.70);
+  --app-notification-error-text: var(--app-danger-text);
+
+  --app-notification-success-bg: rgba(0, 153, 0, 0.70);
+  --app-notification-success-text: var(--color-white);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Accessibility
+   * --------------------------------------------------------------------------
+   */
+
+  --app-accessibility-outline: #949494;
+
+  /*
+   * --------------------------------------------------------------------------
+   * Special / legacy components
+   * --------------------------------------------------------------------------
+   */
+
+  --app-disabled-bg: #41474d;
+  --app-disabled-text: var(--app-text-secondary);
+
+  --app-highlight: var(--app-danger-text);
+
+  --app-selection-bg: var(--app-success);
+  --app-selection-text: var(--color-white);
+
+  --app-tooltip-bg: var(--app-surface);
+  --app-tooltip-text: var(--color-white);
+  --app-tooltip-border: var(--app-border);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Sidebar / navigation
+   * --------------------------------------------------------------------------
+   */
+
+  --app-sidebar-bg: var(--app-surface);
+  --app-sidebar-text: var(--app-text);
+  --app-sidebar-link: var(--app-text-link);
+  --app-sidebar-link-hover: var(--app-text-link-hover);
+
+  --app-navbar-text: var(--color-white);
+  --app-navbar-hover-bg: rgba(0, 0, 0, 0.25);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Tables
+   * --------------------------------------------------------------------------
+   */
+
+  --app-table-active-bg: var(--app-success);
+  --app-table-active-text: var(--color-white);
+
+  /*
+   * --------------------------------------------------------------------------
+   * Cards / panels
+   * --------------------------------------------------------------------------
+   */
+
+  --app-card-bg: var(--app-surface);
+  --app-card-border: var(--app-border);
+  --app-panel-border: var(--app-border);
+}
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/utils.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/_utils.scss
similarity index 100%
rename from 
client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/utils.scss
rename to 
client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/_utils.scss
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/accessibility.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/accessibility.scss
index b9fc0c5678..8ce6a9a26d 100644
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/accessibility.scss
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/accessibility.scss
@@ -17,25 +17,26 @@
  * under the License.
  */
 
+@import 'theme';
 @import 'utils';
 
-$menu_outline_color: #949494;
-
 .btn-accessibility {
   position: absolute;
   right: 0;
   font-size: 12px;
   padding: 15px 15px 0 0;
+
   i {
     font-size: 30px;
   }
+
   &:hover {
     cursor: pointer;
   }
 }
 
 .control-sidebar-menu a:focus {
-  outline: 1px $menu_outline_color solid;
+  outline: 1px var(--app-accessibility-outline) solid;
 }
 
 #change_contrast {
@@ -56,4 +57,4 @@ $menu_outline_color: #949494;
     bottom: 12px;
     top: auto;
   }
-}
\ No newline at end of file
+}
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/batch.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/batch.scss
index 17823cbe99..9d7a0a7362 100644
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/batch.scss
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/batch.scss
@@ -16,9 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
+@import 'theme';
+
 .batch {
   display: inline-table;
 }
+
 .batchCell {
   display: table-cell;
   vertical-align: middle;
@@ -36,13 +40,13 @@ div#selectedObjects {
   table {
     border-collapse: collapse;
     td, th {
-      border: 1px solid #eee;
-      padding: .5em 10px;
+      border: 1px solid var(--app-border-subtle);
+      padding: 0.5em 10px;
     }
   }
   .circular-actions {
     padding: 3px;
-    margin: 10px 0px 5px 0px;
+    margin: 10px 0 5px 0;
   }
 }
 
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/login.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/login.scss
index c794bceda1..1a96594074 100644
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/login.scss
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/login.scss
@@ -17,32 +17,35 @@
  * under the License.
  */
 
+@import 'theme';
 @import 'utils';
 
 
 body, html {
   height: 100% !important;
+  background-color: var(--app-bg);
   background-repeat: no-repeat;
   font-family: "Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe 
UI',Roboto,'Helvetica Neue',Arial,sans-serif,'Apple Color Emoji','Segoe UI 
Emoji','Segoe UI Symbol'!important;
 }
 
 .card-container.card {
   width: 350px;
-  padding: 40px 40px;
+  padding: 40px;
 }
 
 /*
  * Card component
  */
 .card {
-  background-color: #F7F7F7;
+  background-color: var(--app-card-bg);
   /* just in case there no content*/
+  color: var(--app-text);
   padding: 20px 25px 30px;
   margin: 0 auto 25px;
   margin-top: 50px;
   /* shadows and rounded borders */
   @include border_radius(2px);
-  @include shadow(0px 2px 2px rgba(0, 0, 0, 0.3));
+  @include shadow(0 2px 2px var(--app-shadow));
 }
 
 .login-logo {
@@ -84,17 +87,8 @@ body, html {
   cursor: default;
   @include user_select(none);
 
-  &.btn-signin {
-    padding: 0px;
-    font-weight: 700;
-    font-size: 14px;
-    height: 36px;
-    @include border_radius(3px);
-    border: none;
-    @include transition(all, 0.218s, ease);
-  }
-  &.btn-sso {
-    padding: 0px;
+  &.btn-signin, &.btn-sso {
+    padding: 0;
     font-weight: 700;
     font-size: 14px;
     height: 36px;
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/search.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/search.scss
index 961eb3415b..64f1068701 100644
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/search.scss
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/search.scss
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
+@import 'theme';
+
 .searchBox .col-xs-12 {
-  padding-left: 0px !important;
-  padding-right: 0px !important;
+  padding-left: 0 !important;
+  padding-right: 0 !important;
 }
 
 .clause {
@@ -28,17 +31,17 @@
   .operator {
     width: 65px !important;
     .checkbox {
-      margin: 0px !important;
+      margin: 0 !important;
     }
   }
   .field {
     line-height: 30px;
     float: left;
-    padding: 0 3px 0px 0px;
+    padding: 0 3px 0 0;
     display: inline-block !important;
     .toggle{
       &.btn {
-        min-width: 59px
+        min-width: 59px;
       }
     }
   }
@@ -75,13 +78,13 @@
   }
   .action {
     float: left;
-    padding: 0px 7px 0px;
+    padding: 0 7px;
   }
 }
 
 .searchBox {
   .input-group-addon:last-child {
-    border: 1px solid #ccc !important;
+    border: 1px solid var(--app-input-border) !important;
   }
   .input-group {
     margin-top: 1px;
@@ -89,19 +92,19 @@
 }
 
 .custom-autocomplete-box li.selected {
-  background-color: #eee;
+  background-color: var(--app-surface-secondary);
 }
 
 .search-spinner {
   line-height: 23px !important;
 }
 
-.search-spinner span{
+.search-spinner span {
   width: 70% !important;
 }
 
 .placeholder {
   min-width: 60px;
-  background: white !important;
+  background-color: var(--app-input-bg) !important;
   cursor: auto !important;
 }
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/syncopeUI.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/syncopeUI.scss
index ee108e97a1..6ccb80110f 100644
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/syncopeUI.scss
+++ 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/syncopeUI.scss
@@ -17,8 +17,13 @@
  * under the License.
  */
 
+@import 'theme';
 @import 'utils';
 
+[data-bs-theme=dark] .sidebar-wrapper {
+  background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) 
!important;
+}
+
 pre {
   @include white_space_pre_wrap;
 }
@@ -29,7 +34,7 @@ body {
 
 #veil {
   display: none;
-  color: #28a745 !important;
+  color: var(--app-primary) !important;
   position: fixed;
   z-index: 99999;
   height: 2em;
@@ -47,7 +52,7 @@ body {
     left: 0;
     width: 100%;
     height: 100%;
-    background-color: rgba(0, 0, 0, 0.3);
+    background-color: var(--app-overlay);
   }
 
   /* :not(:required) hides these rules from IE9 and below */
@@ -61,14 +66,16 @@ body {
       border-radius: 0.5em;
 
       @include animation(spinner 2000ms infinite linear);
-      @include shadow(rgba(0, 0, 0, 0.75) 1.5em 0 0 0,
-      rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0,
-      rgba(0, 0, 0, 0.75) 0 1.5em 0 0,
-      rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0,
-      rgba(0, 0, 0, 0.5) -1.5em 0 0 0,
-      rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0,
-      rgba(0, 0, 0, 0.75) 0 -1.5em 0 0,
-      rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0);
+      @include shadow(
+        var(--app-shadow-strong) 1.5em 0 0 0,
+        var(--app-shadow-strong) 1.1em 1.1em 0 0,
+        var(--app-shadow-strong) 0 1.5em 0 0,
+        var(--app-shadow-strong) -1.1em 1.1em 0 0,
+        var(--app-shadow) -1.5em 0 0 0,
+        var(--app-shadow) -1.1em -1.1em 0 0,
+        var(--app-shadow-strong) 0 -1.5em 0 0,
+        var(--app-shadow-strong) 1.1em -1.1em 0 0
+      );
     }
   }
 }
@@ -76,12 +83,12 @@ body {
 /* General
 ============================================================================= 
*/
 
-.sidebar-brand{
+.sidebar-brand {
   border: none !important;
-  padding: 5px!important;
+  padding: 5px !important;
 }
 
-.brand-image{
+.brand-image {
   max-height: 50px !important;
 }
 
@@ -100,13 +107,13 @@ body {
 }
 
 .content-margin-layout {
-  margin: 0px 230px 0px 0px !important;
+  margin: 0 230px 0 0 !important;
   padding: 20px !important;
 }
 
 .admin-content-page {
   padding: 20px;
-  background: #ecf0f5;
+  background: var(--app-bg);
 }
 
 .realms {
@@ -149,7 +156,7 @@ body {
 .block-footer {
   position: fixed !important;
   width: 100% !important;
-  bottom: 0px !important;
+  bottom: 0 !important;
 }
 
 .logo-pos {
@@ -180,7 +187,7 @@ body {
 }
 
 .wicket-modal div.w_content_3 {
-  border: 1px solid #eee;
+  border: 1px solid var(--app-border-subtle);
   border-radius: 20px;
   padding: 5px;
 }
@@ -191,7 +198,7 @@ body {
   position: relative;
   overflow-x: hidden;
   overflow-y: auto;
-  padding: 20px 20px 5px 20px;
+  padding: 20px 20px 5px;
 }
 
 .modal-body .tab-content .information {
@@ -217,10 +224,9 @@ a.help {
   span {
     position: absolute;
     width: 19em;
-    color: #000000;
-    background: whitesmoke;
-    visibility: hidden;
-    border-radius: 0px;
+    color: var(--app-tooltip-text);
+    background: var(--app-tooltip-bg);
+    border-radius: 0;
     padding: 3px;
     &:after {
       position: absolute;
@@ -236,36 +242,38 @@ a.help {
     top: 50%;
     margin-right: 4px;
     margin-top: -11px;
-    border: 1px solid black;
+    border: 1px solid var(--app-tooltip-border);
     z-index: 1000000;
     a {
-      color: #463;
+      color: var(--app-text-link);
       text-decoration: none;
     }
   }
 }
 
 a {
-  color: #28a745;
+  color: var(--app-text-link);
   text-decoration: none;
 }
 
 .nav-link {
-  color: #28a745;
+  color: var(--app-text-link);
+
   &:hover, &:active, &:focus {
-    color: #146c43;
+    color: var(--app-text-link-hover);
   }
 }
 
-.breadcrumb-item>a {
-  color: #28a745;
+.breadcrumb-item > a {
+  color: var(--app-text-link);
+
   &:hover, &:active, &:focus {
-    color: #146c43!important;
+    color: var(--app-text-link-hover) !important;
   }
 }
 
 a:hover, .nav-link:hover {
-  color: #146c43;
+  color: var(--app-text-link-hover);
 }
 
 .modal-open {
@@ -281,7 +289,7 @@ a:hover, .nav-link:hover {
 }
 
 .modal {
-  background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
+  background: transparent;
   z-index: 7000 !important;
 }
 
@@ -296,7 +304,7 @@ a:hover, .nav-link:hover {
   height: 380px;
   overflow-y: auto;
   overflow-x: hidden;
-  padding: 50px 20px 50px 20px;
+  padding: 50px 20px;
 }
 
 .wizard-view .wizard-form {
@@ -321,7 +329,7 @@ a:hover, .nav-link:hover {
     height: 95%;
     position: relative;
   }
-  padding: 0px 5px;
+  padding: 0 5px;
 }
 
 .wizard-form {
@@ -332,7 +340,7 @@ a:hover, .nav-link:hover {
     height: 440px;
     overflow-y: auto;
     overflow-x: hidden;
-    padding: 0px;
+    padding: 0;
   }
 }
 
@@ -344,7 +352,7 @@ a:hover, .nav-link:hover {
 }
 
 .wizard-buttons {
-  padding: 10px 0px 5px 0px;
+  padding: 10px 0 5px;
   position: absolute;
   bottom: 4px;
   width: 100%;
@@ -379,18 +387,18 @@ a:hover, .nav-link:hover {
 }
 
 .navbar-light .navbar-nav .nav-link {
-  color: #ffffff;
+  color: var(--app-navbar-text);
 }
 
 .navbar-light .navbar-nav .nav-link:hover {
-  color: #ffffff;
-  background-color: #00000026;
+  color: var(--app-navbar-text);
+  background-color: var(--app-navbar-hover-bg);
 }
 
 span.overridable div.checkbox {
   float: right;
-  margin: 0px;
-  padding: 0px;
+  margin: 0;
+  padding: 0;
   label div div.toggle-group label {
     padding-left: 7px;
   }
@@ -415,9 +423,9 @@ section#notifications .modal-lg {
 }
 
 .details-footer {
-  margin: 30px 0px 0px 0px;
-  border: 1px solid #EEE;
-  color: #888;
+  margin: 30px 0 0;
+  border: 1px solid var(--app-border-subtle);
+  color: var(--app-text-secondary);
 }
 
 th.checkGroupColumn {
@@ -431,11 +439,12 @@ td.checkGroupColumn {
 }
 
 .badge-success {
-  background-color: #17a2b8;
+  background-color: var(--app-success);
 }
 
-.text-bg-warning, .text-bg-warning>a {
-  color: #fff!important;
+.text-bg-warning,
+.text-bg-warning > a {
+  color: var(--app-warning-contrast) !important;
 }
 
 .pwstrengthProgress {
@@ -448,17 +457,17 @@ td.checkGroupColumn {
 ============================================================================= 
*/
 
 .information {
-  margin: 30px 0px 0px 0px;
-  border: 1px solid #EEE;
+  margin: 30px 0 0;
+  border: 1px solid var(--app-border-subtle);
   font-size: 10px;
-  color: #888;
+  color: var(--app-text-secondary);
   display: inline-table;
   width: 100%;
   clear: both;
   float: none;
   position: absolute;
   bottom: -90px;
-  left: 0px;
+  left: 0;
   padding: 2px;
 }
 .infolabel {
@@ -466,7 +475,7 @@ td.checkGroupColumn {
   float: left;
   width: 150px;
   font-weight: bold;
-  color: #888;
+  color: var(--app-text-secondary);
 }
 .infoleft {
   float: left;
@@ -508,7 +517,7 @@ td.checkGroupColumn {
     display: none !important;
   }
   .box {
-    border-top: 0px !important;
+    border-top: 0 !important;
   }
 }
 
@@ -519,13 +528,12 @@ td.checkGroupColumn {
 }
 
 .wicket-aa-container {
-  border-color: #eee;
-  box-shadow: none;
+  border-color: var(--app-border-subtle);
   background-clip: padding-box;
-  background-color: #fff;
-  border: 1px solid rgba(0, 0, 0, 0.15);
+  background-color: var(--app-dropdown-bg);
+  border: 1px solid var(--app-dropdown-border);
   border-radius: 4px;
-  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.176);
+  box-shadow: 0 6px 12px var(--app-shadow);
   float: left;
   font-size: 14px;
   min-width: 160px;
@@ -542,8 +550,8 @@ td.checkGroupColumn {
 ============================================================================= 
*/
 
 #startAt {
-  background-color: rgba(98, 98, 98, 0.98) !important;
-  color: #CCC;
+  background-color: var(--app-surface-secondary) !important;
+  color: var(--app-text) !important;
   right: 5px !important;
   top: 100px !important;
   min-width: 450px;
@@ -556,9 +564,9 @@ td.checkGroupColumn {
 #startAtContainer {
   padding: 15px;
   input {
-    background-color: rgba(200, 200, 200, 0.6) !important;
+    background-color: var(--app-input-bg) !important;
   }
-  .input-group{
+  .input-group {
     justify-content: space-between;
   }
 }
@@ -572,8 +580,18 @@ td.checkGroupColumn {
 }
 
 .k-notification-error.k-group {
-  background: rgba(100%, 0%, 0%, 0.7);
-  color: red;
+  background: var(--app-notification-error-bg);
+  color: var(--app-notification-error-text);
+}
+
+.k-notification {
+  padding: 0 !important;
+  border: none !important;
+  margin-top: 5px;
+}
+
+.alert {
+  width: 100%;
 }
 
 .errorNotification {
@@ -589,14 +607,14 @@ td.checkGroupColumn {
   }
   #message {
     float: right;
-    padding-left: 0px;
+    padding-left: 0;
     width: 85%;
   }
 }
 
 .k-notification-success.k-group {
-  background: rgba(0%, 60%, 0%, 0.7);
-  color: #fff;
+  background: var(--app-notification-success-bg);
+  color: var(--app-notification-success-text);
 }
 
 .successNotification {
@@ -612,7 +630,7 @@ td.checkGroupColumn {
   }
   #message {
     float: right;
-    padding-left: 0px;
+    padding-left: 0;
     width: 85%;
   }
 }
@@ -621,16 +639,16 @@ td.checkGroupColumn {
 ============================================================================= 
*/
 
 .actions > li > a {
-  padding: 5px 0px 5px 0px !important;
+  padding: 5px 0 !important;
 }
 
 div.listview-actions a {
   float: left;
-  padding: 5px 0px 5px 0px !important;
+  padding: 5px 0 !important;
 }
 
 .action a.btn {
-  padding: 0px;
+  padding: 0;
 }
 
 .btn-circle {
@@ -641,7 +659,7 @@ div.listview-actions a {
   padding: 6px 0;
   text-align: center;
   width: 30px;
-  color: white !important;
+  color: var(--app-primary-contrast) !important;
 }
 
 .circular-actions a {
@@ -653,30 +671,30 @@ div.listview-actions a {
   text-align: center;
   width: 30px;
   &.btn {
-    background-color: #28a745;
-    border-color: #28a745;
-    color: white !important;
+    background-color: var(--app-primary);
+    border-color: var(--app-primary);
+    color: var(--app-primary-contrast) !important;
   }
 }
 
 .btn-circle i, .circular-actions a i {
-  margin: 0px;
+  margin: 0;
 }
 
 .multipanel-btn-minus {
-  padding: 0px 0px 0px 6px;
+  padding: 0 0 0 6px;
   border: 0 none !important;
 }
 
 .multipanel-btn-plus {
-  padding: 15px 0px 8px 6px;
+  padding: 15px 0 8px 6px;
   border: 0 none !important;
 }
 
 .multipanel-box {
   padding: 5px;
   display: inline-table;
-  margin: 0px;
+  margin: 0;
 }
 
 /* Datatable
@@ -686,16 +704,17 @@ div.listview-actions a {
   clear: both;
 }
 
-.table.dataTable tbody tr.active td, .table.dataTable tbody tr.active th {
-  background-color: #17a2b8;
-  color: white;
+.table.dataTable tbody tr.active td,
+.table.dataTable tbody tr.active th {
+  background-color: var(--app-table-active-bg);
+  color: var(--app-table-active-text);
 }
 
 /* Result page
 ============================================================================= 
*/
 
 .attribute {
-  padding: 0px 4px 0px 4px;
+  padding: 0 4px;
 }
 
 
@@ -712,7 +731,7 @@ div.listview-actions a {
 .left.page-header,
 .right.page-heade {
   padding-bottom: 9px;
-  border-bottom: 1px solid #dee2e6;
+  border-bottom: 1px solid var(--app-border);
   width: 50%;
 }
 
@@ -720,35 +739,35 @@ div.listview-actions a {
   float: left;
 }
 
-.right.page-header{
+.right.page-header {
   float: right;
 }
 
 .page-header {
   padding-bottom: 9px;
-  border-bottom: 1px solid #dee2e6;
+  border-bottom: 1px solid var(--app-border);
 }
 
 .page-link {
-  color: #28a745;
+  color: var(--app-text-link);
   &:hover, &:active, &:focus {
-    color: #28a745!important;
+    color: var(--app-text-link-hover) !important;
   }
 }
 
-.active>.page-link,.page-link.active {
-  background-color: #28a745;
-  border-color: #28a745;
-  color: #fff;
+.active > .page-link, .page-link.active {
+  background-color: var(--app-primary);
+  border-color: var(--app-primary);
+  color: var(--app-primary-contrast);
   &:hover, &:active, &:focus {
-    background-color: #28a745;
-    border-color: #28a745;
-    color: #fff;
+    background-color: var(--app-primary);
+    border-color: var(--app-primary);
+    color: var(--app-primary-contrast);
   }
 }
 
 span.highlight .attribute label {
-  color: red;
+  color: var(--app-highlight);
 }
 
 .navbar-nav > .user-menu > .dropdown-menu > li.user-header {
@@ -758,38 +777,38 @@ span.highlight .attribute label {
 }
 
 .nav-tabs-custom > .nav-tabs > li.active {
-  border-top-color: #d2d6de !important;
+  border-top-color: var(--app-border-strong) !important;
 }
 
 .code-deletion {
-  background-color: #ffdddd;
-  border-color: #f1c0c0;
+  background-color: var(--app-code-deletion-bg);
+  border-color: var(--app-code-deletion-border);
 }
 
 .code-addition {
-  background-color: #dbffdb;
-  border-color: #c1e9c1;
+  background-color: var(--app-code-addition-bg);
+  border-color: var(--app-code-addition-border);
 }
 
 span.ui-spinner.ui-corner-all.ui-widget.ui-widget-content {
-  width:20%;
+  width: 20%;
   display: block;
 }
 
-form.bs-example.bs-example-form  
span.ui-spinner.ui-corner-all.ui-widget.ui-widget-content{
-  width:40%;
+form.bs-example.bs-example-form 
span.ui-spinner.ui-corner-all.ui-widget.ui-widget-content {
+  width: 40%;
 }
 
-div.panel-collapse.collapse.show 
span.ui-spinner.ui-corner-all.ui-widget.ui-widget-content{
+div.panel-collapse.collapse.show 
span.ui-spinner.ui-corner-all.ui-widget.ui-widget-content {
   width: 20%;
 }
 
 .ui-spinner-input:focus {
-  outline:0;
+  outline: 0;
 }
 
-.ui-spinner-input{
-  width:20%;
+.ui-spinner-input {
+  width: 20%;
 }
 
 /* AjaxDateTimePicker
@@ -804,10 +823,10 @@ div.panel-collapse.collapse.show 
span.ui-spinner.ui-corner-all.ui-widget.ui-widg
 }
 
 .k-datepicker input {
-  width: 0px !important;
+  width: 0 !important;
 }
 .k-timepicker input {
-  width: 0px !important;
+  width: 0 !important;
 }
 
 /* Parameters Details
@@ -831,7 +850,7 @@ li.todoitem a {
 }
 
 .popover-content {
-  color: black;
+  color: var(--app-popover-text);
 }
 
 .form-palette {
@@ -840,11 +859,7 @@ li.todoitem a {
   margin-left: 10px;
 }
 
-i.fas.fa-backward {
-  font-size: 80%;
-}
-
-i.fas.fa-forward{
+i.fas.fa-backward, i.fas.fa-forward {
   font-size: 80%;
 }
 
@@ -860,7 +875,7 @@ div#userFilter {
   }
   #warning {
     margin: 1px 0 5px 8px;
-    color: #e00000;
+    color: var(--app-danger-text);
     font-size: 9px;
   }
   #check {
@@ -885,7 +900,7 @@ div#userFilter {
         position: absolute;
         margin-left: 10px;
         text-align: center;
-        top: 0px;
+        top: 0;
       }
       i {
         position: absolute;
@@ -900,17 +915,17 @@ div#userFilter {
   padding-right: 20px;
   .dropdown-menu > li {
     &.header {
-      background-color: #ffffff;
-      border-bottom: 1px solid #f4f4f4;
+      background-color: var(--app-dropdown-bg);
+      border-bottom: 1px solid var(--app-border-subtle);
       border-radius: 4px 4px 0 0;
-      color: #444444;
+      color: var(--app-dropdown-text);
       font-size: 14px;
       padding: 7px 10px;
     }
     &.footer > a {
-      background-color: #fff;
+      background-color: var(--app-dropdown-bg);
       border-radius: 0 0 4px 4px;
-      color: #444 !important;
+      color: var(--app-dropdown-text) !important;
       font-size: 12px;
       padding: 7px 10px;
       text-align: center;
@@ -926,13 +941,13 @@ div#userFilter {
 ============================================================================= 
*/
 
 .transformersTogglePanel {
-  background-color: rgba(140, 140, 140, 0.99) !important;
+  background-color: var(--app-surface-secondary) !important;
   width: 1000px !important;
 }
 .transformersContainer {
   padding: 15px;
   input {
-    background-color: rgba(200, 200, 200, 0.6) !important;
+    background-color: var(--app-input-bg) !important;
   }
   #footer {
     clear: both;
@@ -947,11 +962,11 @@ div#userFilter {
 }
 .itemTransformersContainer #body {
   select {
-    border: 1px solid #ccc !important;
-    background: rgba(240, 240, 240, 0.95) !important;
+    border: 1px solid var(--app-input-border) !important;
+    background: var(--app-input-bg) !important;
   }
   a {
-    color: #ccc !important;
+    color: var(--app-text-secondary) !important;
     cursor: pointer !important;
   }
 }
@@ -960,12 +975,12 @@ div#userFilter {
 }
 
 /* FIREFOX FIX OF UGLY SELECT BOXES */
-@supports (-moz-appearance:none) {
+@supports (-moz-appearance: none) {
   select {
     -webkit-appearance: none;
     -moz-appearance: none;
     appearance: none;
-    background: url(../img/dropdown.svg) right / 10px no-repeat #fff;
+    background: url(../img/dropdown.svg) right / 10px no-repeat 
var(--app-input-bg);
     background-position: calc(100% - 5px) center;
     padding-right: 10px;
   }
@@ -995,7 +1010,7 @@ div#userFilter {
 
 .selectedEvents {
   display: inline-block;
-  margin: 10px 10px 0 10px;
+  margin: 10px;
   overflow-y: auto;
 }
 
@@ -1043,7 +1058,7 @@ fieldset.input-group {
 
 .modal-content > div {
   &.modal-header, &.modal-footer {
-    background-color: #f0f0f0;
+    background: var(--app-bg);
     height: 64px;
   }
 }
@@ -1058,24 +1073,23 @@ fieldset.input-group {
 }
 
 .background-footer {
-  background-color: #f0f0f0;
   display: block;
   height: 64px;
   margin-bottom: -15px;
   margin-left: -30px;
   margin-top: -25px;
-  width: 1300px;
+  width: 1215px;
+  border-radius: 0 0 8px 8px;
+  background: var(--app-bg);
 }
 
 .logviewer-btn {
-  padding: 0px 16px 20px 0px;
+  padding: 0 16px 20px 0;
   float: right;
 }
 
-#editUserChangePassword {
-  > label {
-    color: #e00000;
-  }
+#editUserChangePassword > label {
+  color: var(--app-danger-text);
 }
 div > li {
   list-style-type: none;
@@ -1098,21 +1112,14 @@ th ul.menu {
   float: right;
 }
 
-th ul.menu li {
-  display: inline-block;
-}
-
+th ul.menu li,
 #inline-actions ul.menu li,
 #tablehandling ul.menu li,
 .listview-actions ul.menu li {
   display: inline-block;
 }
 
-th ul.menu li a {
-  margin-left: 5px;
-  display: inline-block !important;
-}
-
+th ul.menu li a,
 #inline-actions ul.menu li a,
 .listview-actions ul.menu li a,
 #tablehandling ul.menu li a {
@@ -1136,13 +1143,13 @@ ul.menu {
 }
 
 .toggle-menu ul.menu li a {
-  padding: 0px;
+  padding: 0;
   text-align: left;
-  color: white !important;
+  color: var(--app-dark-text) !important;
 }
 
 div#tablehandling ul.menu li a {
-  padding: 0px !important;
+  padding: 0 !important;
 }
 
 .realm-choice #realm-choice-field {
@@ -1151,7 +1158,7 @@ div#tablehandling ul.menu li a {
 }
 
 .realm-choice #realm-choice-folder {
-  color: #28a745;
+  color: var(--app-text-link);
 }
 
 .palette-scrollbar {
@@ -1159,7 +1166,7 @@ div#tablehandling ul.menu li a {
   overflow: scroll;
 }
 
-@-moz-document url-prefix(''){
+@-moz-document url-prefix('') {
   .palette-scrollbar {
     width: auto !important;
   }
@@ -1171,16 +1178,16 @@ h3.card-title {
 }
 
 .card-title {
-  font-weight: bold!important;
+  font-weight: bold !important;
 }
 
 /* Form wrappers
 ============================================================================= 
*/
 
 .custom_content_wrapper {
-  background-color: #ffffff;
+  background-color: var(--app-surface);
   border-radius: 10px;
-  @include shadow(0px 0px 20px 1px rgba(0,0,0,0.75));
+  @include shadow(0 0 20px 1px var(--app-shadow-strong));
 }
 
 /* Utility classes
@@ -1197,7 +1204,7 @@ h3.card-title {
 }
 
 label.btn.btn-warning.btn-xs.active.toggle-off {
-  color: white;
+  color: var(--app-warning-contrast);
 }
 
 div#ownership {
@@ -1209,10 +1216,10 @@ pre {
   padding: 9.5px;
   margin: 0 0 10px;
   line-height: 1.42857143;
-  color: #333;
+  color: var(--app-code-text);
   word-break: break-all;
-  background-color: #f5f5f5;
-  border: 1px solid #ccc;
+  background-color: var(--app-code-bg);
+  border: 1px solid var(--app-code-border);
   border-radius: 4px;
 }
 
@@ -1220,28 +1227,28 @@ pre {
   padding: 6px 12px;
   font-size: 16px;
   font-weight: 400;
-  color: #555;
+  color: var(--app-input-text);
   text-align: center;
-  background-color: #eee;
-  border: 1px solid #ccc;
-  border-radius: 4px!important;
+  background-color: var(--app-input-addon-bg);
+  border: 1px solid var(--app-input-border);
+  border-radius: 4px !important;
 }
 .input-group .input-group-addon {
   height: 38px;
-  border-color: #d2d6de;
-  background-color: #fff;
+  border-color: var(--app-input-border);
+  background-color: var(--app-input-bg);
 }
 
 .multipanel-box {
   padding: 5px;
   display: inline-table;
-  margin: 0px;
+  margin: 0;
   position: relative;
   border-radius: 3px;
-  background: #ffffff;
-  border-top: 3px solid #d2d6de;
+  background: var(--app-card-bg);
+  border-top: 3px solid var(--app-panel-border);
   width: 94%;
-  box-shadow: 0 1px 1px #d2d6de;
+  box-shadow: 0 1px 1px var(--app-shadow);
 }
 
 .multipanel-btn-minus.input-group-addon {
@@ -1249,10 +1256,10 @@ pre {
 }
 
 .multipanel-btn-plus.input-group-addon {
-  background: white;
+  background: var(--app-surface);
   border: none;
   float: right;
-  margin-right:12px;
+  margin-right: 12px;
 }
 
 select.form-select {
@@ -1265,7 +1272,10 @@ select.form-select {
   height: 2.35rem;
 }
 
-.form-select-lg
+.k-input-inner {
+  background: var(--app-bg);
+  color: var(--app-text)
+}
 
 .text-right {
   text-align: right;
@@ -1275,40 +1285,39 @@ select[name=rowsChooser] {
   padding: 0.375rem 0.25rem 0.375rem 0.45rem;
 }
 
-.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
-  color: #28a745;
+.nav-tabs .nav-item.show .nav-link,
+.nav-tabs .nav-link.active {
+  color: var(--app-text-link);
 }
 
 .nav-link > a {
-  color: #343a40;
+  color: var(--app-text);
 }
 
 .bg-green {
-  background-color: #28a745;
+  background-color: var(--app-primary);
 }
 
 .bg-red {
-  background-color: #dc3545!important;
+  background-color: var(--app-danger) !important;
 }
 
 .text-white {
-  color: white;
+  color: var(--app-text-inverse);
 }
 
 .elevation-4 {
-  box-shadow: 0 14px 28px rgba(0,0,0,.25),0 10px 10px 
rgba(0,0,0,.22)!important;
+  box-shadow:
+    0 14px 28px var(--app-shadow),
+    0 10px 10px var(--app-shadow) !important;
 }
 
 .bg-body-secondary {
-  background-color: #ffffff!important;
-}
-
-.btn-close{
-  background: transparent;
+  background-color: var(--app-surface) !important;
 }
 
 @media screen and (max-width: 500px) {
-  .realm-choice #realm-choice-field{
+  .realm-choice #realm-choice-field {
     width: 100%;
   }
   .realm-choice {
diff --git 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/topology.scss
 
b/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/topology.scss
deleted file mode 100644
index f435ed17bc..0000000000
--- 
a/client/idrepo/common-ui/src/main/resources/META-INF/resources/ui-commons/css/topology.scss
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-@import 'utils';
-
-.content-wrapper.accent-success{
-  overflow: hidden;
-}
-
-.window {
-  border: 1px solid #346789;
-  @include shadow(2px 2px 19px #aaa);
-
-  -moz-border-radius: 0.5em;
-  border-radius: 0.5em;
-  opacity: 0.8;
-  filter: alpha(opacity = 80);
-  width: 140px;
-  height: 55px;
-  line-height: 5em;
-  text-align: center;
-  z-index: 20;
-  position: absolute;
-  background-color: #eeeeef;
-  color: black;
-  font-family: helvetica;
-  padding: 0.0em;
-  font-size: 0.9em;
-  vertical-align: middle;
-  cursor: pointer;
-}
-
-.active-window {
-  @include shadow(2px 2px 8px rgb(0, 166, 90));
-}
-
-.inactive-window {
-  @include shadow(2px 2px 19px #aaa);
-}
-
-.window p {
-  margin: 0px !important;
-  line-height: 1.5em;
-  font-size: 1.5em;
-  display: inline-table;
-}
-
-.topology_root {
-  background-color: rgba(0, 170, 0, 0.4);
-}
-
-.topology_cs {
-  background-color: rgba(0, 100, 0, 0.1);
-}
-
-.topology_conn {
-  background-color: rgba(100, 200, 200, 0.08);
-}
-
-.topology_conn_errored {
-  background-color:rgba(217,83,79,0.56);
-}
-
-.topology_res {
-  background-color: rgba(250, 230, 0, 0.09);
-}
-
-.window:hover {
-  @include shadow(2px 2px 19px #444);
-
-  opacity: 0.6;
-  filter: alpha(opacity = 60);
-}
-
-._jsPlumb_dragging {
-  z-index: 4000;
-}
-
-#drawing ._jsPlumb_overlay.component.label {
-  background-color: white;
-  border: 1px solid #346789;
-  border-radius: 0.5em 0.5em 0.5em 0.5em;
-  color: black;
-  font-size: 0.8em;
-  opacity: 0.8;
-  padding: 0.5em;
-}
-
-.aLabel {
-  background-color: white;
-  padding: 0.4em;
-  font: 12px sans-serif;
-  color: #444;
-  z-index: 21;
-  border: 1px dotted gray;
-  opacity: 0.8;
-  filter: alpha(opacity = 80);
-  cursor: pointer;
-  &._jsPlumb_hover {
-    background-color: #5C96BC;
-    color: white;
-    border: 1px solid white;
-  }
-}
-
-.checkbox {
-  margin-top: 15px;
-  margin-bottom: 15px;
-}
-
-#topology {
-  position: relative;
-  border: 0px;
-  height: 780px;
-  overflow: hidden;
-}
-
-#drawing {
-  height: 5000px;
-  width: 5000px;
-  display: block;
-  position: relative;
-  top: -2490px;
-  left: -2270px;
-}
-
-#zoom {
-  text-align: right;
-  width: 100%;
-  border: none;
-  background: none;
-  padding-top: 5px;
-  .btn {
-    padding: 0px;
-  }
-  .fa {
-    font-size: 2em;
-    padding-right: 5px;
-  }
-}
-
-.node-action-link {
-  clear: both;
-  display: block;
-  height: 0px;
-  padding: 3px 8px 0px 0px;
-  position: absolute;
-  right: 0;
-  top: 0;
-  .fa {
-    font-size: 14px;
-    display: block !important;
-  }
-  .dropdown-menu {
-    border-radius: 12px;
-    min-width: 50px;
-    width: 50px;
-  }
-}
-
-.window[data-original-title] {
-  &:hover::after {
-    border: 1px solid #BBB;
-    padding: 5px 10px;
-    background: #EEE;
-    content: attr(data-original-title);
-    position: relative;
-    right: -5px;
-    top: -70px;
-    white-space: nowrap;
-    text-align: center;
-    height: 20px;
-    margin: 0px;
-    border-radius: 0.5em;
-  }
-}
-
-#zoom {
-  ul {
-    &.menu {
-      list-style-type: none;
-      margin: 0;
-      padding: 0;
-      li {
-        display: inline-block;
-        a {
-          display: inline-block;
-          margin-left: 5px;
-        }
-      }
-    }
-  }
-}
-
-div.alert-widget > a > .badge {
-  font-size: 9px;
-  line-height: 0.9;
-  padding: 2px 3px;
-  position: absolute;
-  text-align: center;
-  margin-right:-13px;
-  top: 0px;
-}
-
-.card.card-outline {
-  margin-top: 20px;
-  margin-bottom: 0px;
-}
-
-.panel-group.box-group {
-  margin-bottom: 20px;
-}
-
-.scrollable-tab-content{
-  padding-top:20px;
-}
-
-.conn-check-wrapper {
-  position: absolute;
-  top: 0;
-  right: 25px;
-  z-index: 1;
-}
diff --git 
a/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/MultiFieldPanel.html
 
b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/MultiFieldPanel.html
index c6644e5d35..e114ee2303 100644
--- 
a/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/MultiFieldPanel.html
+++ 
b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/markup/html/form/MultiFieldPanel.html
@@ -31,7 +31,7 @@ under the License.
 
     <wicket:fragment wicket:id="noDataFragment">
       <div class="input-group">
-        <div class="form-control" style="background-color:#EEE">
+        <div class="form-control">
           <label wicket:id="field-label">[LABEL]</label>
         </div>
         <span wicket:id="panelPlus">[plus]</span>
diff --git 
a/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
 
b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
index 872de6e51f..3d6a13cd13 100644
--- 
a/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
+++ 
b/client/idrepo/common-ui/src/main/resources/org/apache/syncope/client/ui/commons/panels/NotificationPanel.html
@@ -35,7 +35,7 @@ under the License.
 
     <script id="errorTemplate" type="text/x-kendo-template">
       <div class="alert bg-danger alert-dismissible" style="margin-bottom: 
0px; min-width: 370px">
-      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button">×</button>
+      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button"></button>
       <h4><i class="icon fa fa-ban"></i> <wicket:message key="error"/>!</h4>
       #= message #     
       </div>
@@ -43,15 +43,15 @@ under the License.
     
     <script id="warningTemplate" type="text/x-kendo-template">
       <div class="alert alert-warning alert-dismissible" style="margin-bottom: 
0px; min-width: 370px">
-      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button">×</button>
+      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button"></button>
       <h4><i class="icon fa fa-exclamation-triangle"></i> <wicket:message 
key="warning"/>!</h4>
-      #= message #     
+      #= message #
       </div>
     </script>
 
     <script id="successTemplate" type="text/x-kendo-template">
       <div class="alert alert-success alert-dismissible" style="margin-bottom: 
0px; min-width: 370px">
-      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button">×</button>
+      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button"></button>
       <h4><i class="icon fa fa-check"></i> <wicket:message 
key="success"/>!</h4>
       #= message #
       </div>
@@ -59,7 +59,7 @@ under the License.
 
     <script id="infoTemplate" type="text/x-kendo-template">
       <div class="alert alert-info alert-dismissible" style="margin-bottom: 
0px; min-width: 370px">
-      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button">×</button>
+      <button aria-hidden="true" data-bs-dismiss="alert" class="close 
btn-close" type="button"></button>
       <h4><i class="icon fa fa-info-circle"></i> <wicket:message 
key="information"/></h4>
       #= message #
       </div>
diff --git 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
index 8b9e452517..045e483949 100644
--- 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
+++ 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/panels/TogglePanel.html
@@ -121,7 +121,7 @@ under the License.
 
         </div>
         <div class="close btn-close card-tools">
-          <a wicket:id="close" href="#"><i class="fas fa-times"></i></a>
+          <a wicket:id="close" href="#"><i class="fas fa-times 
invisible"></i></a>
         </div>
       </div>
       <wicket:child/>      
diff --git 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.html
 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.html
index 2604c8c9f1..6cf93097ad 100644
--- 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.html
+++ 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/MultiPanel.html
@@ -35,7 +35,7 @@ under the License.
 
       <wicket:fragment wicket:id="noDataFragment">
         <div class="form-group">
-          <div class="multipanel-box box input-group" 
style="background-color:#EEE">
+          <div class="multipanel-box box input-group">
             <label class="form-label" wicket:id="field-label">[LABEL]</label>
           </div>
           <span wicket:id="panelPlus" class="input-group-append 
input-group-text">[plus]</span>

Reply via email to