Changes for page Public Web Site

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

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

Summary

Details

XWiki.StyleSheetExtension[0]
code
... ... @@ -599,32 +599,6 @@
599 599   }
600 600  }
601 601  
602 -.resource-content {
603 - order: 1;
604 -}
605 -
606 -.resource-sidebar {
607 - order: 2;
608 -}
609 -
610 -@media (max-width: 767px) {
611 - .resource-layout {
612 - display: flex;
613 - flex-direction: column;
614 - }
615 -
616 - .resource-sidebar {
617 - order: 0;
618 - position: static;
619 - width: 100%;
620 - margin-bottom: 24px;
621 - }
622 -
623 - .resource-content {
624 - order: 1;
625 - }
626 -}
627 -
628 628  /* ========== CTA ========== */
629 629  
630 630  .cta-section {
... ... @@ -762,10 +762,24 @@
762 762   padding: 40px 0 30px;
763 763   border-top: none;
764 764   background:
765 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
766 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
739 + radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%);
767 767  
741 + .resource-kicker {
742 + display: inline-flex;
743 + align-items: center;
744 + gap: 8px;
745 + color: @brand;
746 + background: fade(@brand, 8%);
747 + border: 1px solid fade(@brand, 18%);
748 + border-radius: 999px;
749 + padding: 6px 12px;
750 + margin-bottom: 14px;
751 + font-size: 13px;
752 + font-weight: 700;
753 + }
754 +
768 768   h1 {
756 + max-width: 820px;
769 769   margin: 0 auto 14px;
770 770   text-align: center;
771 771   line-height: 1.18;
... ... @@ -914,6 +914,67 @@
914 914  }
915 915  /* ========== Products / Extensions Pages ========== */
916 916  
905 +.product-page,
906 +.agnease-product-page {
907 + color: @text;
908 +}
909 +
910 +/* Product index hero: keeps the same visual language as .hero-centered,
911 + but allows the product index to stay compact and structured. */
912 +.product-index-hero {
913 + padding: 56px 0 48px;
914 + text-align: center;
915 + background:
916 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
917 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
918 + border-top: none;
919 + border-bottom: 1px solid @line;
920 +
921 + h1 {
922 + max-width: 790px;
923 + margin: 0 auto;
924 + line-height: 1.18;
925 + }
926 +
927 + .page-lead {
928 + max-width: 760px;
929 + margin: 14px auto 0;
930 + color: @muted;
931 + text-align: center;
932 + font-size: 19px;
933 + line-height: 1.55;
934 + }
935 +}
936 +
937 +.product-page-kicker,
938 +.product-card-kicker {
939 + display: inline-flex;
940 + align-items: center;
941 + gap: 8px;
942 + color: @brand;
943 + background: fade(@brand, 8%);
944 + border: 1px solid fade(@brand, 18%);
945 + border-radius: 999px;
946 + padding: 6px 12px;
947 + margin-bottom: 14px;
948 + font-size: 13px;
949 + font-weight: 700;
950 +
951 + i {
952 + color: @brand;
953 + }
954 +}
955 +
956 +.product-card-kicker {
957 + margin-bottom: 10px;
958 + padding: 5px 10px;
959 + font-size: 12px;
960 + text-transform: uppercase;
961 + letter-spacing: .04em;
962 +}
963 +
964 +/* Product index listing */
965 +
917 917  .product-index-section {
918 918   padding: 52px 0 56px;
919 919  
... ... @@ -983,14 +983,6 @@
983 983   }
984 984  }
985 985  
986 -.product-card-kicker {
987 - margin-bottom: 10px;
988 - padding: 5px 10px;
989 - font-size: 12px;
990 - text-transform: uppercase;
991 - letter-spacing: .04em;
992 -}
993 -
994 994  .product-highlights {
995 995   margin: 14px 0 20px;
996 996   padding-left: 18px;
... ... @@ -1002,8 +1002,40 @@
1002 1002   }
1003 1003  }
1004 1004  
1046 +.product-cta-section {
1047 + padding: 0 0 56px;
1048 + border-top: 1px solid @line;
1049 +}
1050 +
1051 +.product-cta-panel {
1052 + max-width: 860px;
1053 + margin: 0 auto;
1054 + padding: 32px;
1055 + border-radius: @radius;
1056 + border: 1px solid fade(@brand, 20%);
1057 + background:
1058 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
1059 + box-shadow: @shadow-sm;
1060 + text-align: center;
1061 +
1062 + h2 {
1063 + margin-top: 0;
1064 + }
1065 +
1066 + p {
1067 + max-width: 680px;
1068 + margin: 0 auto 18px;
1069 + color: @muted;
1070 + line-height: 1.55;
1071 + }
1072 +}
1073 +
1005 1005  /* ========== Individual Product Pages ========== */
1006 1006  
1076 +.product-hero {
1077 + min-height: 330px;
1078 +}
1079 +
1007 1007  .product-layout {
1008 1008   display: grid;
1009 1009   grid-template-columns: 1.1fr .9fr;
... ... @@ -1108,6 +1108,8 @@
1108 1108   }
1109 1109  }
1110 1110  
1184 +/* Screenshot / gallery area for product pages */
1185 +
1111 1111  .product-gallery-panel {
1112 1112   max-width: 1040px;
1113 1113   margin: 20px auto 0;
... ... @@ -1140,11 +1140,28 @@
1140 1140   justify-content: center;
1141 1141  }
1142 1142  
1218 +/* Optional product detail sections */
1219 +
1143 1143  .product-section-muted {
1144 1144   background:
1145 1145   radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1146 1146  }
1147 1147  
1225 +.product-use-cases {
1226 + ul {
1227 + margin: 0;
1228 + padding-left: 20px;
1229 + color: @muted;
1230 + }
1231 +
1232 + li {
1233 + margin: 8px 0;
1234 + line-height: 1.5;
1235 + }
1236 +}
1237 +
1238 +/* ========== Products Responsive ========== */
1239 +
1148 1148  @media (max-width: 980px) {
1149 1149   .product-layout,
1150 1150   .product-feature-grid {
... ... @@ -1157,6 +1157,14 @@
1157 1157  }
1158 1158  
1159 1159  @media (max-width: 640px) {
1252 + .product-index-hero {
1253 + padding: 38px 0 34px;
1254 +
1255 + .page-lead {
1256 + font-size: 17px;
1257 + }
1258 + }
1259 +
1160 1160   .product-card {
1161 1161   grid-template-columns: 1fr;
1162 1162   padding: 22px;
... ... @@ -1173,142 +1173,8 @@
1173 1173   .product-gallery-panel {
1174 1174   padding: 20px;
1175 1175   }
1176 -}
1177 -/* ========== Resources Index ========== */
1178 1178  
1179 -.resources-index-page {
1180 - padding: 56px 0 72px;
1181 - background: @brand-bg;
1182 -}
1183 -
1184 -.resources-intro {
1185 - max-width: 820px;
1186 - margin: 0 auto 32px;
1187 - text-align: center;
1188 -}
1189 -
1190 -.resources-intro p {
1191 - color: @muted;
1192 - font-size: 17px;
1193 - line-height: 1.7;
1194 - margin: 0;
1195 -}
1196 -
1197 -.resources-grid {
1198 - display: grid;
1199 - grid-template-columns: repeat(2, minmax(0, 1fr));
1200 - gap: 24px;
1201 - margin-bottom: 36px;
1202 -}
1203 -
1204 -.resource-card {
1205 - display: flex;
1206 - gap: 18px;
1207 - background: #fff;
1208 - border: 1px solid @line;
1209 - border-radius: @radius;
1210 - box-shadow: @shadow-sm;
1211 - padding: 24px;
1212 -}
1213 -
1214 -.resource-card-icon {
1215 - flex: 0 0 46px;
1216 - width: 46px;
1217 - height: 46px;
1218 - border-radius: 14px;
1219 - background: @brand-soft;
1220 - color: @brand-strong;
1221 - display: flex;
1222 - align-items: center;
1223 - justify-content: center;
1224 - font-size: 20px;
1225 -}
1226 -
1227 -.resource-card-label {
1228 - color: @brand-strong;
1229 - font-size: 13px;
1230 - font-weight: 700;
1231 - text-transform: uppercase;
1232 - letter-spacing: .04em;
1233 - margin-bottom: 8px;
1234 -}
1235 -
1236 -.resource-card h2 {
1237 - font-size: 22px;
1238 - line-height: 1.25;
1239 - margin: 0 0 12px;
1240 -}
1241 -
1242 -.resource-card h2 a {
1243 - color: @text;
1244 - text-decoration: none;
1245 -}
1246 -
1247 -.resource-card h2 a:hover {
1248 - color: @brand-strong;
1249 - text-decoration: none;
1250 -}
1251 -
1252 -.resource-card p {
1253 - color: @muted;
1254 - font-size: 15px;
1255 - line-height: 1.65;
1256 - margin: 0 0 16px;
1257 -}
1258 -
1259 -.resource-card-link {
1260 - color: @brand-strong;
1261 - font-weight: 700;
1262 - text-decoration: none;
1263 -}
1264 -
1265 -.resource-card-link:hover {
1266 - color: @brand;
1267 - text-decoration: none;
1268 -}
1269 -
1270 -.resources-next {
1271 - max-width: 820px;
1272 - margin: 0 auto 32px;
1273 - text-align: center;
1274 -}
1275 -
1276 -.resources-next h2 {
1277 - font-size: 26px;
1278 - margin: 0 0 10px;
1279 -}
1280 -
1281 -.resources-next p {
1282 - color: @muted;
1283 - font-size: 16px;
1284 - line-height: 1.7;
1285 - margin: 0;
1286 -}
1287 -
1288 -@media (max-width: 767px) {
1289 - .resources-index-page {
1290 - padding: 36px 0 52px;
1277 + .product-cta-panel {
1278 + padding: 24px 20px;
1291 1291   }
1292 -
1293 - .resources-intro {
1294 - text-align: left;
1295 - margin-bottom: 24px;
1296 - }
1297 -
1298 - .resources-grid {
1299 - grid-template-columns: 1fr;
1300 - gap: 18px;
1301 - }
1302 -
1303 - .resource-card {
1304 - padding: 20px;
1305 - }
1306 -
1307 - .resource-card h2 {
1308 - font-size: 20px;
1309 - }
1310 -
1311 - .resources-next {
1312 - text-align: left;
1313 - }
1314 1314  }
XWiki.StyleSheetExtension[1]
code
... ... @@ -1,6 +1,16 @@
1 1  /* ========== Agnease Public Top Menu ========== */
2 2  
3 -.agnease-menu-item {
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 {
4 4   .dropdown-toggle {
5 5   font-weight: inherit;
6 6   font-size: inherit;
... ... @@ -8,8 +8,6 @@
8 8  
9 9   .caret {
10 10   margin-left: 4px;
11 - border-top-color: @brand;
12 - border-bottom-color: @brand;
13 13   }
14 14  
15 15   &.open > .dropdown-toggle,
... ... @@ -20,23 +20,22 @@
20 20   background-color: transparent;
21 21   box-shadow: none;
22 22   }
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 - }
30 30  }
31 31  
32 -/* Keep public top-level dropdown items clean and green when hovered/open/focused */
33 +/* Keep Agnease public top-level menu visually clean when hovered/open/focused */
33 33  
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 {
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 {
40 40   background: transparent;
41 41   background-color: transparent;
42 42   color: @brand-strong;
... ... @@ -43,154 +43,107 @@
43 43   box-shadow: none;
44 44  }
45 45  
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 -
59 59  /* Dropdown panels */
60 60  
61 -.agnease-dropdown {
62 - min-width: 270px;
63 - padding: 8px;
64 - border: 1px solid fade(@brand, 18%);
55 +.agnease-services-dropdown,
56 +.agnease-products-dropdown {
57 + min-width: 360px;
58 + padding: 10px;
59 + border: 1px solid @line;
65 65   border-radius: 12px;
66 - background: #fff;
67 - box-shadow: 0 12px 32px fade(@brand-strong, 12%);
61 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
68 68  
69 69   > li > a {
70 70   display: flex;
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;
65 + align-items: flex-start;
66 + gap: 12px;
67 + padding: 10px 12px;
68 + border-radius: 10px;
69 + color: @text;
70 + white-space: normal;
81 81  
82 - i {
83 - width: 18px;
84 - flex: 0 0 18px;
85 - color: @brand;
86 - text-align: center;
87 - font-size: 14px;
88 - }
89 -
90 90   &:hover,
91 - &:focus,
92 - &:active {
73 + &:focus {
93 93   color: @brand-strong;
94 - background: fade(@brand, 8%);
75 + background: @brand-bg;
95 95   text-decoration: none;
96 - outline: none;
97 97  
98 - i {
78 + .menu-icon {
99 99   color: @brand-strong;
80 + background: fade(@brand, 14%);
81 + border-color: fade(@brand, 28%);
100 100   }
101 - }
102 - }
103 103  
104 - > .active > a,
105 - > .active > a:hover,
106 - > .active > a:focus {
107 - color: @brand-strong;
108 - background: fade(@brand, 10%);
109 - text-decoration: none;
84 + strong {
85 + color: @brand-strong;
86 + }
110 110  
111 - i {
112 - color: @brand-strong;
88 + small {
89 + color: @muted;
90 + }
113 113   }
114 114   }
115 115  
116 116   .divider {
117 - margin: 7px 0;
118 - background-color: fade(@brand, 16%);
95 + margin: 8px 0;
96 + background-color: @line;
119 119   }
120 -}
121 121  
122 -.agnease-products-dropdown,
123 -.agnease-resources-dropdown {
124 - min-width: 260px;
99 + .menu-icon {
100 + width: 34px;
101 + height: 34px;
102 + border-radius: 50%;
103 + background: fade(@brand, 8%);
104 + border: 1px solid fade(@brand, 18%);
105 + color: @brand;
106 + display: flex;
107 + align-items: center;
108 + justify-content: center;
109 + flex-shrink: 0;
110 + transition: color .15s ease, background .15s ease, border-color .15s ease;
111 + }
112 +
113 + .menu-text {
114 + display: flex;
115 + flex-direction: column;
116 + line-height: 1.25;
117 +
118 + strong {
119 + color: @brand;
120 + font-size: 14px;
121 + font-weight: 600;
122 + }
123 +
124 + small {
125 + color: @muted;
126 + font-size: 12px;
127 + margin-top: 2px;
128 + font-weight: 400;
129 + }
130 + }
125 125  }
126 126  
127 -/* Remove gray Bootstrap dropdown item states */
128 -.dropdown-menu > li > a:hover,
129 -.dropdown-menu > li > a:focus {
130 - background-image: none;
133 +/* Products dropdown can be slightly narrower for now */
134 +
135 +.agnease-products-dropdown {
136 + min-width: 340px;
131 131  }
132 132  
133 -/* ========== Mobile Menu ========== */
139 +/* Mobile */
134 134  
135 135  @media (max-width: 767px) {
136 - .navbar-nav > li.agnease-menu-item > a,
137 - .navbar-nav > li > a {
138 - padding-top: 8px;
139 - padding-bottom: 8px;
140 - }
141 -
142 - .agnease-dropdown {
142 + .agnease-services-dropdown,
143 + .agnease-products-dropdown {
143 143   min-width: 0;
144 144   width: 100%;
145 - padding: 4px 8px 8px 18px;
146 - border: 0;
146 + padding: 6px;
147 147   border-radius: 0;
148 + border-left: 0;
149 + border-right: 0;
148 148   box-shadow: none;
149 - background: #fff;
150 150  
151 151   > li > a {
152 - padding: 8px 10px;
153 - white-space: normal;
154 - font-size: 14px;
155 - border-radius: 8px;
156 - color: @brand;
157 -
158 - i {
159 - width: 16px;
160 - flex-basis: 16px;
161 - }
162 -
163 - &:hover,
164 - &:focus,
165 - &:active {
166 - color: @brand-strong;
167 - background: fade(@brand, 8%);
168 - }
153 + padding: 10px;
169 169   }
170 -
171 - .divider {
172 - margin: 5px 0;
173 - background-color: fade(@brand, 16%);
174 - }
175 175   }
176 176  }
177 -/* Remove gray background from opened top-level public menu items */
178 -
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;
196 -}