This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 4_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/4_1_X by this push:
new bbf65843b7 [SYNCOPE- 1989] fix dark-theme for Console (#1492)
bbf65843b7 is described below
commit bbf65843b74c86f9d7e8ac64dabe64c20126fc5d
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 89be27758a..e6c51178fc 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>