Changes for page Public Web Site

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

From version 10.40
edited by Agnease
on 2026/05/22 08:17
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

Page properties
Content
... ... @@ -146,7 +146,7 @@
146 146   </div>
147 147   </section>
148 148  
149 - <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">
149 + <section class="resource-strip" aria-labelledby="resources-title">
150 150   <div class="container">
151 151   <h2 id="resources-title">Useful XWiki resources</h2>
152 152   <p class="section-intro">
XWiki.StyleSheetExtension[0]
code
... ... @@ -329,10 +329,11 @@
329 329   border: 1px solid @line;
330 330   border-radius: @radius;
331 331   box-shadow: @shadow-sm;
332 - transition: box-shadow .18s ease;
332 + transition: transform .18s ease, box-shadow .18s ease;
333 333  
334 334   &:hover {
335 - box-shadow: @shadow-sm;
335 + transform: translateY(-2px);
336 + box-shadow: @shadow;
336 336   }
337 337  }
338 338  
... ... @@ -598,102 +598,6 @@
598 598   }
599 599  }
600 600  
601 -.resource-content {
602 - order: 1;
603 -}
604 -
605 -.resource-sidebar {
606 - order: 2;
607 -}
608 -
609 -@media (max-width: 767px) {
610 - .resource-layout {
611 - display: flex;
612 - flex-direction: column;
613 - }
614 -
615 - .resource-sidebar {
616 - order: 0;
617 - position: static;
618 - width: 100%;
619 - }
620 -
621 - .resource-content {
622 - order: 1;
623 - }
624 -}
625 -
626 -/* ========== Homepage Resource Strip ========== */
627 -
628 -.homepage-resource-strip {
629 - background:
630 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%);
631 -
632 - .resource-grid {
633 - max-width: 1040px;
634 - margin: 26px auto 0;
635 - display: grid;
636 - grid-template-columns: repeat(2, minmax(0, 1fr));
637 - grid-gap: 22px;
638 - align-items: stretch;
639 - }
640 -
641 - .resource-card {
642 - display: flex;
643 - flex-direction: column;
644 - min-width: 0;
645 - min-height: 100%;
646 - padding: 26px;
647 - }
648 -
649 - .resource-card h4 {
650 - margin: 0 0 10px;
651 - color: @text;
652 - font-size: 21px;
653 - line-height: 1.25;
654 - font-weight: 700;
655 - }
656 -
657 - .resource-card p {
658 - margin: 0 0 18px;
659 - color: @muted;
660 - font-size: 15px;
661 - line-height: 1.6;
662 - }
663 -
664 - .resource-card a {
665 - margin-top: auto;
666 - color: @brand;
667 - font-weight: 700;
668 - text-decoration: underline;
669 -
670 - &:hover,
671 - &:focus {
672 - color: @brand-strong;
673 - }
674 - }
675 -}
676 -
677 -@media (max-width: 980px) {
678 - .homepage-resource-strip {
679 - .resource-grid {
680 - grid-template-columns: 1fr;
681 - }
682 - }
683 -}
684 -
685 -@media (max-width: 640px) {
686 - .homepage-resource-strip {
687 - .resource-card {
688 - padding: 22px;
689 - }
690 -
691 - .resource-card h4 {
692 - font-size: 19px;
693 - }
694 - }
695 -}
696 -
697 697  /* ========== CTA ========== */
698 698  
699 699  .cta-section {
... ... @@ -831,10 +831,24 @@
831 831   padding: 40px 0 30px;
832 832   border-top: none;
833 833   background:
834 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
835 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
739 + radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%);
836 836  
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 +
837 837   h1 {
756 + max-width: 820px;
838 838   margin: 0 auto 14px;
839 839   text-align: center;
840 840   line-height: 1.18;
... ... @@ -983,6 +983,67 @@
983 983  }
984 984  /* ========== Products / Extensions Pages ========== */
985 985  
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 +
986 986  .product-index-section {
987 987   padding: 52px 0 56px;
988 988  
... ... @@ -1052,14 +1052,6 @@
1052 1052   }
1053 1053  }
1054 1054  
1055 -.product-card-kicker {
1056 - margin-bottom: 10px;
1057 - padding: 5px 10px;
1058 - font-size: 12px;
1059 - text-transform: uppercase;
1060 - letter-spacing: .04em;
1061 -}
1062 -
1063 1063  .product-highlights {
1064 1064   margin: 14px 0 20px;
1065 1065   padding-left: 18px;
... ... @@ -1071,8 +1071,40 @@
1071 1071   }
1072 1072  }
1073 1073  
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 +
1074 1074  /* ========== Individual Product Pages ========== */
1075 1075  
1076 +.product-hero {
1077 + min-height: 330px;
1078 +}
1079 +
1076 1076  .product-layout {
1077 1077   display: grid;
1078 1078   grid-template-columns: 1.1fr .9fr;
... ... @@ -1177,6 +1177,8 @@
1177 1177   }
1178 1178  }
1179 1179  
1184 +/* Screenshot / gallery area for product pages */
1185 +
1180 1180  .product-gallery-panel {
1181 1181   max-width: 1040px;
1182 1182   margin: 20px auto 0;
... ... @@ -1209,11 +1209,28 @@
1209 1209   justify-content: center;
1210 1210  }
1211 1211  
1218 +/* Optional product detail sections */
1219 +
1212 1212  .product-section-muted {
1213 1213   background:
1214 1214   radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1215 1215  }
1216 1216  
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 +
1217 1217  @media (max-width: 980px) {
1218 1218   .product-layout,
1219 1219   .product-feature-grid {
... ... @@ -1226,6 +1226,14 @@
1226 1226  }
1227 1227  
1228 1228  @media (max-width: 640px) {
1252 + .product-index-hero {
1253 + padding: 38px 0 34px;
1254 +
1255 + .page-lead {
1256 + font-size: 17px;
1257 + }
1258 + }
1259 +
1229 1229   .product-card {
1230 1230   grid-template-columns: 1fr;
1231 1231   padding: 22px;
... ... @@ -1242,142 +1242,8 @@
1242 1242   .product-gallery-panel {
1243 1243   padding: 20px;
1244 1244   }
1245 -}
1246 -/* ========== Resources Index ========== */
1247 1247  
1248 -.resources-index-page {
1249 - padding: 56px 0 72px;
1250 - background: @brand-bg;
1251 -}
1252 -
1253 -.resources-intro {
1254 - max-width: 820px;
1255 - margin: 0 auto 32px;
1256 - text-align: center;
1257 -}
1258 -
1259 -.resources-intro p {
1260 - color: @muted;
1261 - font-size: 17px;
1262 - line-height: 1.7;
1263 - margin: 0;
1264 -}
1265 -
1266 -.resources-grid {
1267 - display: grid;
1268 - grid-template-columns: repeat(2, minmax(0, 1fr));
1269 - gap: 24px;
1270 - margin-bottom: 36px;
1271 -}
1272 -
1273 -.resource-card {
1274 - display: flex;
1275 - gap: 18px;
1276 - background: #fff;
1277 - border: 1px solid @line;
1278 - border-radius: @radius;
1279 - box-shadow: @shadow-sm;
1280 - padding: 24px;
1281 -}
1282 -
1283 -.resource-card-icon {
1284 - flex: 0 0 46px;
1285 - width: 46px;
1286 - height: 46px;
1287 - border-radius: 14px;
1288 - background: @brand-soft;
1289 - color: @brand-strong;
1290 - display: flex;
1291 - align-items: center;
1292 - justify-content: center;
1293 - font-size: 20px;
1294 -}
1295 -
1296 -.resource-card-label {
1297 - color: @brand-strong;
1298 - font-size: 13px;
1299 - font-weight: 700;
1300 - text-transform: uppercase;
1301 - letter-spacing: .04em;
1302 - margin-bottom: 8px;
1303 -}
1304 -
1305 -.resource-card h2 {
1306 - font-size: 22px;
1307 - line-height: 1.25;
1308 - margin: 0 0 12px;
1309 -}
1310 -
1311 -.resource-card h2 a {
1312 - color: @text;
1313 - text-decoration: none;
1314 -}
1315 -
1316 -.resource-card h2 a:hover {
1317 - color: @brand-strong;
1318 - text-decoration: none;
1319 -}
1320 -
1321 -.resource-card p {
1322 - color: @muted;
1323 - font-size: 15px;
1324 - line-height: 1.65;
1325 - margin: 0 0 16px;
1326 -}
1327 -
1328 -.resource-card-link {
1329 - color: @brand-strong;
1330 - font-weight: 700;
1331 - text-decoration: none;
1332 -}
1333 -
1334 -.resource-card-link:hover {
1335 - color: @brand;
1336 - text-decoration: none;
1337 -}
1338 -
1339 -.resources-next {
1340 - max-width: 820px;
1341 - margin: 0 auto 32px;
1342 - text-align: center;
1343 -}
1344 -
1345 -.resources-next h2 {
1346 - font-size: 26px;
1347 - margin: 0 0 10px;
1348 -}
1349 -
1350 -.resources-next p {
1351 - color: @muted;
1352 - font-size: 16px;
1353 - line-height: 1.7;
1354 - margin: 0;
1355 -}
1356 -
1357 -@media (max-width: 767px) {
1358 - .resources-index-page {
1359 - padding: 36px 0 52px;
1277 + .product-cta-panel {
1278 + padding: 24px 20px;
1360 1360   }
1361 -
1362 - .resources-intro {
1363 - text-align: left;
1364 - margin-bottom: 24px;
1365 - }
1366 -
1367 - .resources-grid {
1368 - grid-template-columns: 1fr;
1369 - gap: 18px;
1370 - }
1371 -
1372 - .resource-card {
1373 - padding: 20px;
1374 - }
1375 -
1376 - .resource-card h2 {
1377 - font-size: 20px;
1378 - }
1379 -
1380 - .resources-next {
1381 - text-align: left;
1382 - }
1383 1383  }
XWiki.StyleSheetExtension[1]
code
... ... @@ -1,148 +1,156 @@
1 1  /* ========== Agnease Public Top Menu ========== */
2 2  
3 -/* Desktop alignment */
4 -#menuview .navbar-nav {
5 - float: right !important;
6 -}
3 +@brand: #00937D;
4 +@brand-strong: #007B6A;
5 +@text: #2D3A34;
6 +@muted: #5B6B64;
7 +@line: #E4ECE9;
8 +@brand-bg: #F4FCFA;
7 7  
8 8  /* Top-level menu items */
9 9  
10 -.agnease-menu-item,
11 -.agnease-menu-link {
12 - > a,
13 - > .dropdown-toggle {
14 - color: @brand;
15 - font-size: 17px;
16 - font-weight: 600;
17 - padding-left: 16px;
18 - padding-right: 16px;
19 - text-decoration: none;
12 +.agnease-services-menu,
13 +.agnease-products-menu {
14 + .dropdown-toggle {
15 + font-weight: inherit;
16 + font-size: inherit;
20 20   }
21 21  
22 - > a:hover,
23 - > a:focus,
24 - > a:active,
25 - &.open > a,
26 - &.active > a {
27 - color: @brand-strong;
28 - text-decoration: none;
29 - outline: none;
30 - }
31 -
32 32   .caret {
33 - margin-left: 5px;
34 - border-top-color: @brand;
35 - border-bottom-color: @brand;
20 + margin-left: 4px;
36 36   }
37 37  
38 - > a:hover .caret,
39 - > a:focus .caret,
40 - > a:active .caret,
41 - &.open > a .caret,
42 - &.active > a .caret {
43 - border-top-color: @brand-strong;
44 - border-bottom-color: @brand-strong;
23 + &.open > .dropdown-toggle,
24 + .dropdown-toggle:hover,
25 + .dropdown-toggle:focus {
26 + color: @brand-strong;
27 + background: transparent;
28 + background-color: transparent;
29 + box-shadow: none;
45 45   }
46 46  }
47 47  
48 -/* Dropdown panel */
33 +/* Keep Agnease public top-level menu visually clean when hovered/open/focused */
49 49  
50 -.agnease-dropdown {
51 - min-width: 310px;
52 - padding: 10px 8px;
53 - border: 1px solid fade(@brand, 18%);
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 {
47 + background: transparent;
48 + background-color: transparent;
49 + color: @brand-strong;
50 + box-shadow: none;
51 +}
52 +
53 +/* Dropdown panels */
54 +
55 +.agnease-services-dropdown,
56 +.agnease-products-dropdown {
57 + min-width: 360px;
58 + padding: 10px;
59 + border: 1px solid @line;
54 54   border-radius: 12px;
55 - background: #fff;
56 - box-shadow: 0 12px 32px fade(@brand-strong, 12%);
61 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
57 57  
58 58   > li > a {
59 59   display: flex;
60 - align-items: center;
65 + align-items: flex-start;
61 61   gap: 12px;
62 - padding: 11px 14px;
63 - color: @brand;
64 - white-space: nowrap;
65 - font-size: 16px;
66 - font-weight: 600;
67 - line-height: 1.3;
68 - text-decoration: none;
67 + padding: 10px 12px;
68 + border-radius: 10px;
69 + color: @text;
70 + white-space: normal;
69 69  
70 - i {
71 - width: 20px;
72 - flex: 0 0 20px;
73 - color: @brand;
74 - text-align: center;
75 - font-size: 15px;
76 - }
77 -
78 78   &:hover,
79 - &:focus,
80 - &:active {
73 + &:focus {
81 81   color: @brand-strong;
75 + background: @brand-bg;
82 82   text-decoration: none;
83 - outline: none;
84 84  
85 - i {
78 + .menu-icon {
86 86   color: @brand-strong;
80 + background: fade(@brand, 14%);
81 + border-color: fade(@brand, 28%);
87 87   }
88 - }
89 - }
90 90  
91 - > .active > a {
92 - color: @brand-strong;
84 + strong {
85 + color: @brand-strong;
86 + }
93 93  
94 - i {
95 - color: @brand-strong;
88 + small {
89 + color: @muted;
90 + }
96 96   }
97 97   }
98 98  
99 99   .divider {
100 100   margin: 8px 0;
101 - background-color: fade(@brand, 16%);
96 + background-color: @line;
102 102   }
103 -}
104 104  
105 -/* Mobile */
106 -
107 -@media (max-width: 767px) {
108 - .site-nav {
109 - margin-left: 0;
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;
110 110   justify-content: center;
111 - flex-wrap: wrap;
109 + flex-shrink: 0;
110 + transition: color .15s ease, background .15s ease, border-color .15s ease;
112 112   }
113 113  
114 - .agnease-menu-item,
115 - .agnease-menu-link {
116 - > a,
117 - > .dropdown-toggle {
118 - font-size: 16px;
119 - padding-top: 9px;
120 - padding-bottom: 9px;
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;
121 121   }
123 +
124 + small {
125 + color: @muted;
126 + font-size: 12px;
127 + margin-top: 2px;
128 + font-weight: 400;
129 + }
122 122   }
131 +}
123 123  
124 - .agnease-dropdown {
133 +/* Products dropdown can be slightly narrower for now */
134 +
135 +.agnease-products-dropdown {
136 + min-width: 340px;
137 +}
138 +
139 +/* Mobile */
140 +
141 +@media (max-width: 767px) {
142 + .agnease-services-dropdown,
143 + .agnease-products-dropdown {
125 125   min-width: 0;
126 126   width: 100%;
127 - padding: 4px 8px 8px 18px;
128 - border: 0;
146 + padding: 6px;
129 129   border-radius: 0;
148 + border-left: 0;
149 + border-right: 0;
130 130   box-shadow: none;
131 - background: transparent;
132 132  
133 133   > li > a {
134 - padding: 8px 10px;
135 - white-space: normal;
136 - font-size: 15px;
137 -
138 - i {
139 - width: 18px;
140 - flex-basis: 18px;
141 - }
153 + padding: 10px;
142 142   }
143 -
144 - .divider {
145 - margin: 5px 0;
146 - }
147 147   }
148 148  }