Changes for page Public Web Site

Last modified by Agnease on 2026/05/30 16:24

From version 8.16
edited by Agnease
on 2026/05/19 03:34
Change comment: There is no comment for this version
To version 8.26
edited by Agnease
on 2026/05/19 03:50
Change comment: There is no comment for this version

Summary

Details

XWiki.StyleSheetExtension[1]
code
... ... @@ -1,16 +1,6 @@
1 1  /* ========== Agnease Public Top Menu ========== */
2 2  
3 -@brand: #00937D;
4 -@brand-strong: #007B6A;
5 -@text: #2D3A34;
6 -@muted: #5B6B64;
7 -@line: #E4ECE9;
8 -@brand-bg: #F4FCFA;
9 -
10 -/* Top-level menu items */
11 -
12 -.agnease-services-menu,
13 -.agnease-products-menu {
3 +.agnease-menu-item {
14 14   .dropdown-toggle {
15 15   font-weight: inherit;
16 16   font-size: inherit;
... ... @@ -18,6 +18,8 @@
18 18  
19 19   .caret {
20 20   margin-left: 4px;
11 + border-top-color: @brand;
12 + border-bottom-color: @brand;
21 21   }
22 22  
23 23   &.open > .dropdown-toggle,
... ... @@ -28,22 +28,23 @@
28 28   background-color: transparent;
29 29   box-shadow: none;
30 30   }
23 +
24 + &.open > .dropdown-toggle .caret,
25 + .dropdown-toggle:hover .caret,
26 + .dropdown-toggle:focus .caret {
27 + border-top-color: @brand-strong;
28 + border-bottom-color: @brand-strong;
29 + }
31 31  }
32 32  
33 -/* Keep Agnease public top-level menu visually clean when hovered/open/focused */
32 +/* Keep public top-level dropdown items clean and green when hovered/open/focused */
34 34  
35 -.navbar-nav > li.agnease-services-menu > a,
36 -.navbar-nav > li.agnease-products-menu > a,
37 -.navbar-nav > li.agnease-services-menu > a:hover,
38 -.navbar-nav > li.agnease-products-menu > a:hover,
39 -.navbar-nav > li.agnease-services-menu > a:focus,
40 -.navbar-nav > li.agnease-products-menu > a:focus,
41 -.navbar-nav > li.agnease-services-menu.open > a,
42 -.navbar-nav > li.agnease-products-menu.open > a,
43 -.navbar-nav > li.agnease-services-menu.open > a:hover,
44 -.navbar-nav > li.agnease-products-menu.open > a:hover,
45 -.navbar-nav > li.agnease-services-menu.open > a:focus,
46 -.navbar-nav > li.agnease-products-menu.open > a:focus {
34 +.navbar-nav > li.agnease-menu-item > a,
35 +.navbar-nav > li.agnease-menu-item > a:hover,
36 +.navbar-nav > li.agnease-menu-item > a:focus,
37 +.navbar-nav > li.agnease-menu-item.open > a,
38 +.navbar-nav > li.agnease-menu-item.open > a:hover,
39 +.navbar-nav > li.agnease-menu-item.open > a:focus {
47 47   background: transparent;
48 48   background-color: transparent;
49 49   color: @brand-strong;
... ... @@ -50,217 +50,154 @@
50 50   box-shadow: none;
51 51  }
52 52  
46 +/* Override Bootstrap/XWiki gray open states */
47 +.nav .open > a,
48 +.nav .open > a:hover,
49 +.nav .open > a:focus,
50 +.navbar-nav > .open > a,
51 +.navbar-nav > .open > a:hover,
52 +.navbar-nav > .open > a:focus {
53 + background: transparent;
54 + background-color: transparent;
55 + color: @brand-strong;
56 + box-shadow: none;
57 +}
58 +
53 53  /* Dropdown panels */
54 54  
55 -.agnease-services-dropdown,
56 -.agnease-resources-dropdown,
57 -.agnease-products-dropdown {
58 - min-width: 360px;
59 - padding: 10px;
60 - border: 1px solid @line;
61 +.agnease-dropdown {
62 + min-width: 270px;
63 + padding: 8px;
64 + border: 1px solid fade(@brand, 18%);
61 61   border-radius: 12px;
62 - box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
66 + background: #fff;
67 + box-shadow: 0 12px 32px fade(@brand-strong, 12%);
63 63  
64 64   > li > a {
65 65   display: flex;
66 - align-items: flex-start;
67 - gap: 12px;
68 - padding: 10px 12px;
69 - border-radius: 10px;
70 - color: @text;
71 - white-space: normal;
71 + align-items: center;
72 + gap: 10px;
73 + padding: 9px 11px;
74 + border-radius: 9px;
75 + color: @brand;
76 + background: transparent;
77 + white-space: nowrap;
78 + font-size: 14px;
79 + font-weight: 700;
80 + line-height: 1.25;
72 72  
82 + i {
83 + width: 18px;
84 + flex: 0 0 18px;
85 + color: @brand;
86 + text-align: center;
87 + font-size: 14px;
88 + }
89 +
73 73   &:hover,
74 - &:focus {
91 + &:focus,
92 + &:active {
75 75   color: @brand-strong;
76 - background: @brand-bg;
94 + background: fade(@brand, 8%);
77 77   text-decoration: none;
96 + outline: none;
78 78  
79 - .menu-icon {
98 + i {
80 80   color: @brand-strong;
81 - background: fade(@brand, 14%);
82 - border-color: fade(@brand, 28%);
83 83   }
101 + }
102 + }
84 84  
85 - strong {
86 - color: @brand-strong;
87 - }
104 + > .active > a,
105 + > .active > a:hover,
106 + > .active > a:focus {
107 + color: @brand-strong;
108 + background: fade(@brand, 10%);
109 + text-decoration: none;
88 88  
89 - small {
90 - color: @muted;
91 - }
111 + i {
112 + color: @brand-strong;
92 92   }
93 93   }
94 94  
95 95   .divider {
96 - margin: 8px 0;
97 - background-color: @line;
117 + margin: 7px 0;
118 + background-color: fade(@brand, 16%);
98 98   }
99 -
100 - .menu-icon {
101 - width: 34px;
102 - height: 34px;
103 - border-radius: 50%;
104 - background: fade(@brand, 8%);
105 - border: 1px solid fade(@brand, 18%);
106 - color: @brand;
107 - display: flex;
108 - align-items: center;
109 - justify-content: center;
110 - flex-shrink: 0;
111 - transition: color .15s ease, background .15s ease, border-color .15s ease;
112 - }
113 -
114 - .menu-text {
115 - display: flex;
116 - flex-direction: column;
117 - line-height: 1.25;
118 -
119 - strong {
120 - color: @brand;
121 - font-size: 14px;
122 - font-weight: 600;
123 - }
124 -
125 - small {
126 - color: @muted;
127 - font-size: 12px;
128 - margin-top: 2px;
129 - font-weight: 400;
130 - }
131 - }
132 132  }
133 133  
134 -/* Products dropdown can be slightly narrower for now */
135 -
136 -.agnease-products-dropdown {
137 - min-width: 340px;
122 +.agnease-products-dropdown,
123 +.agnease-resources-dropdown {
124 + min-width: 260px;
138 138  }
139 139  
140 -/* Mobile */
141 -
142 -@media (max-width: 767px) {
143 - .agnease-services-dropdown,
144 - .agnease-resources-dropdown,
145 - .agnease-products-dropdown {
146 - min-width: 0;
147 - width: 100%;
148 - padding: 6px;
149 - border-radius: 0;
150 - border-left: 0;
151 - border-right: 0;
152 - box-shadow: none;
153 -
154 - > li > a {
155 - padding: 10px;
156 - }
157 - }
127 +/* Remove gray Bootstrap dropdown item states */
128 +.dropdown-menu > li > a:hover,
129 +.dropdown-menu > li > a:focus {
130 + background-image: none;
158 158  }
159 159  
160 -/* ========== Mobile Navigation Optimization ========== */
133 +/* ========== Mobile Menu ========== */
161 161  
162 162  @media (max-width: 767px) {
163 - .navbar-nav {
164 - margin: 0;
165 - }
166 -
167 - .navbar-collapse {
168 - border-top: 1px solid @line;
169 - box-shadow: none;
170 - }
171 -
136 + .navbar-nav > li.agnease-menu-item > a,
172 172   .navbar-nav > li > a {
173 - padding: 14px 18px;
174 - font-weight: 600;
175 - color: @text;
138 + padding-top: 8px;
139 + padding-bottom: 8px;
176 176   }
177 177  
178 - .navbar-nav > li > a:hover,
179 - .navbar-nav > li > a:focus {
180 - background: @brand-bg;
181 - color: @brand-strong;
182 - }
183 -
184 - .navbar-nav .open > a,
185 - .navbar-nav .open > a:hover,
186 - .navbar-nav .open > a:focus {
187 - background: @brand-bg;
188 - color: @brand-strong;
189 - }
190 -
191 - .navbar-nav .dropdown-menu {
192 - position: static;
193 - float: none;
142 + .agnease-dropdown {
143 + min-width: 0;
194 194   width: 100%;
195 - margin: 0;
196 - padding: 6px 0 12px;
145 + padding: 4px 8px 8px 18px;
197 197   border: 0;
198 198   border-radius: 0;
199 199   box-shadow: none;
200 200   background: #fff;
201 - }
202 202  
203 - .navbar-nav .dropdown-menu .divider {
204 - margin: 6px 18px;
205 - background-color: @line;
206 - }
151 + > li > a {
152 + padding: 8px 10px;
153 + white-space: normal;
154 + font-size: 14px;
155 + border-radius: 8px;
156 + color: @brand;
207 207  
208 - .navbar-nav .dropdown-menu > li > a {
209 - display: flex;
210 - align-items: flex-start;
211 - gap: 12px;
212 - padding: 10px 18px 10px 28px;
213 - white-space: normal;
214 - color: @text;
215 - }
158 + i {
159 + width: 16px;
160 + flex-basis: 16px;
161 + }
216 216  
217 - .navbar-nav .dropdown-menu > li > a:hover,
218 - .navbar-nav .dropdown-menu > li > a:focus {
219 - background: @brand-bg;
220 - color: @brand-strong;
221 - }
163 + &:hover,
164 + &:focus,
165 + &:active {
166 + color: @brand-strong;
167 + background: fade(@brand, 8%);
168 + }
169 + }
222 222  
223 - .navbar-nav .dropdown-menu .menu-icon {
224 - flex: 0 0 28px;
225 - width: 28px;
226 - height: 28px;
227 - margin-top: 2px;
228 - border-radius: 9px;
229 - background: @brand-soft;
230 - color: @brand-strong;
231 - display: flex;
232 - align-items: center;
233 - justify-content: center;
234 - font-size: 14px;
171 + .divider {
172 + margin: 5px 0;
173 + background-color: fade(@brand, 16%);
174 + }
235 235   }
176 +}
177 +/* Remove gray background from opened top-level public menu items */
236 236  
237 - .navbar-nav .dropdown-menu .menu-text {
238 - display: block;
239 - min-width: 0;
240 - }
241 -
242 - .navbar-nav .dropdown-menu .menu-text strong {
243 - display: block;
244 - font-size: 14px;
245 - line-height: 1.25;
246 - color: @text;
247 - }
248 -
249 - .navbar-nav .dropdown-menu .menu-text small {
250 - display: block;
251 - margin-top: 2px;
252 - font-size: 12px;
253 - line-height: 1.35;
254 - color: @muted;
255 - }
256 -
257 - .navbar-nav .dropdown-menu > li > a:hover .menu-text strong,
258 - .navbar-nav .dropdown-menu > li > a:focus .menu-text strong {
259 - color: @brand-strong;
260 - }
261 -
262 - .navbar-nav .caret {
263 - float: right;
264 - margin-top: 8px;
265 - }
179 +.site-nav .dropdown.open > a,
180 +.site-nav .dropdown.open > a:hover,
181 +.site-nav .dropdown.open > a:focus,
182 +.site-nav .agnease-menu-item.open > a,
183 +.site-nav .agnease-menu-item.open > a:hover,
184 +.site-nav .agnease-menu-item.open > a:focus,
185 +.navbar-nav > li.dropdown.open > a,
186 +.navbar-nav > li.dropdown.open > a:hover,
187 +.navbar-nav > li.dropdown.open > a:focus,
188 +.navbar-nav > li.agnease-menu-item.open > a,
189 +.navbar-nav > li.agnease-menu-item.open > a:hover,
190 +.navbar-nav > li.agnease-menu-item.open > a:focus {
191 + color: @brand-strong;
192 + background: transparent !important;
193 + background-color: transparent !important;
194 + background-image: none !important;
195 + box-shadow: none !important;
266 266  }