Changes for page Public Web Site
Last modified by Agnease on 2026/07/03 16:14
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - true1 +false - Content
-
... ... @@ -1,9 +1,11 @@ 1 +{{include reference="PublicWebSite.MacrosAndVariables" /}} 2 + 1 1 {{velocity}} 2 2 #macro (displayPublicContent) 3 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 4 4 {{html clean="false"}} 5 5 6 - <section class="hero hero-centered" aria-labelledby="hero-title"> 8 + <section class="hero hero-centered main-page-hero" aria-labelledby="hero-title"> 7 7 <div class="container hero-inner"> 8 8 <h1 id="hero-title">Professional XWiki consulting and engineering</h1> 9 9 ... ... @@ -20,7 +20,7 @@ 20 20 </ul> 21 21 22 22 <div class="hero-actions"> 23 - <a class="btn btn-primary" href=" https://calendly.com/alex-agnease/30min?back=1&month=2026-06">Book afreediscussion</a>25 + <a class="btn btn-primary" href="$freeXWikiReviewCallURL">$freeXWikiReviewCallLabel</a> 24 24 ##<a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a> 25 25 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a> 26 26 </div> ... ... @@ -111,36 +111,6 @@ 111 111 </div> 112 112 </section> 113 113 114 - <section class="industry-trust-section" aria-labelledby="industry-trust-title"> 115 - <div class="container"> 116 - <div class="industry-trust-panel"> 117 - <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2> 118 - 119 - <p class="section-intro"> 120 - Experience supporting XWiki platforms used in healthcare, financial services, scientific research, 121 - government institutions, transportation, software development, compliance programs and regulated environments. 122 - </p> 123 - 124 - <div class="industry-tags" aria-label="Industries and environments supported"> 125 - <span>Healthcare</span> 126 - <span>Financial services</span> 127 - <span>Scientific research</span> 128 - <span>Government institutions</span> 129 - <span>Transportation</span> 130 - <span>Software development</span> 131 - <span>Compliance programs</span> 132 - <span>Regulated environments</span> 133 - </div> 134 - 135 - <p class="industry-support"> 136 - Organizations rely on these platforms to manage documentation, workflows, compliance processes, 137 - research knowledge and critical business information. From upgrades and authentication integrations 138 - to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future. 139 - </p> 140 - </div> 141 - </div> 142 - </section> 143 - 144 144 <section class="split-section" aria-labelledby="why-title"> 145 145 <div class="container"> 146 146 <div class="split-grid"> ... ... @@ -148,11 +148,10 @@ 148 148 <h2 id="why-title">Why work with an XWiki specialist</h2> 149 149 <p> 150 150 XWiki projects often involve more than pages. Production platforms may include custom code, 151 - extensions, authentication, permissions, workflows, integrations, compliance documentation 152 - and business-critical knowledge. 123 + extensions, authentication, permissions, workflows, integrations and business-critical content. 153 153 </p> 154 154 <p> 155 - Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, supportlong-termreliability126 + Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, deliver practical improvements 156 156 and leave the platform easier to maintain after the work is complete. 157 157 </p> 158 158 </div>
- main-page-hero.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.0 MB - Content
- XWiki.StyleSheetExtension[0]
-
- code
-
... ... @@ -1,5 +1,5 @@ 1 1 /* ========== Agnease Public Website ========== */ 2 - /*2 + 3 3 @brand: #00937D; 4 4 @brand-strong: #007B6A; 5 5 @brand-soft: #E7FFF8; ... ... @@ -11,19 +11,6 @@ 11 11 @shadow-sm: 0 6px 20px rgba(0, 0, 0, .06); 12 12 @shadow: 0 12px 36px rgba(0, 0, 0, .08); 13 13 @maxw: 1140px; 14 -*/ 15 -@brand: #00937D; 16 -@brand-strong: #007B6A; 17 -@brand-soft: #E7FFF8; 18 -@brand-bg: #F7F9FC; 19 -@text: #07182D; 20 -@text-soft: #10243D; 21 -@muted: #64748B; 22 -@line: #E6EBF2; 23 -@radius: 18px; 24 -@shadow-sm: 0 18px 45px rgba(15, 23, 42, .06); 25 -@shadow: 0 30px 80px rgba(15, 23, 42, .12); 26 -@maxw: 1140px; 27 27 28 28 @section-padding: 30px 0; 29 29 @section-padding-mobile: 28px 0; ... ... @@ -180,11 +180,13 @@ 180 180 181 181 .hero { 182 182 overflow: hidden; 183 - background-repeat: no-repeat; 184 - background-attachment: scroll; 170 + position: relative; 185 185 186 186 &.hero-centered { 187 187 text-align: center; 174 + background: 175 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 176 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 188 188 display: flex; 189 189 align-items: center; 190 190 justify-content: center; ... ... @@ -191,6 +191,51 @@ 191 191 min-height: 330px; 192 192 } 193 193 183 + &.main-page-hero { 184 + background: 185 + 186 + url('/bin/download/PublicWebSite/WebHome/main-page-hero.png') center center / cover no-repeat; 187 + 188 + &::before, 189 + &::after { 190 + content: ""; 191 + position: absolute; 192 + pointer-events: none; 193 + z-index: 1; 194 + } 195 + 196 + /* Fade left and right image edges into the page background */ 197 + &::before { 198 + inset: 0; 199 + background: 200 + linear-gradient( 201 + 90deg, 202 + #fff 0%, 203 + rgba(255, 255, 255, 0) 13%, 204 + rgba(255, 255, 255, 0) 87%, 205 + #fff 100% 206 + ); 207 + } 208 + 209 + /* Fade bottom edge into white before the next section */ 210 + &::after { 211 + left: 0; 212 + right: 0; 213 + bottom: 0; 214 + height: 90px; 215 + background: linear-gradient( 216 + 180deg, 217 + rgba(255, 255, 255, 0) 0%, 218 + #fff 100% 219 + ); 220 + } 221 + 222 + .hero-inner { 223 + position: relative; 224 + z-index: 2; 225 + } 226 + } 227 + 194 194 .hero-inner { 195 195 max-width: 860px; 196 196 margin: 0 auto; ... ... @@ -258,6 +258,7 @@ 258 258 .trust-strip { 259 259 padding: 18px 0; 260 260 border-top: 1px solid @line; 295 + background: #fff; 261 261 262 262 ul { 263 263 max-width: 960px; ... ... @@ -330,6 +330,7 @@ 330 330 .pathway-card, 331 331 .service-card, 332 332 .resource-card { 368 + background: #fff; 333 333 border: 1px solid @line; 334 334 border-radius: @radius; 335 335 box-shadow: @shadow-sm; ... ... @@ -439,80 +439,6 @@ 439 439 } 440 440 } 441 441 442 -.industry-trust-section { 443 - background: 444 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%); 445 - 446 - .industry-trust-panel { 447 - max-width: 1040px; 448 - margin: 0 auto; 449 - padding: 30px 28px; 450 - border: 1px solid fade(@brand, 16%); 451 - border-radius: @radius; 452 - background: 453 - radial-gradient(34rem 12rem at 50% 0%, fade(@brand-soft, 75%) 0%, #fff 72%); 454 - box-shadow: @shadow-sm; 455 - text-align: center; 456 - } 457 - 458 - h2 { 459 - margin-bottom: 12px; 460 - } 461 - 462 - .section-intro { 463 - margin-bottom: 20px; 464 - max-width: 820px; 465 - } 466 - 467 - .industry-tags { 468 - max-width: 880px; 469 - margin: 0 auto; 470 - display: flex; 471 - flex-wrap: wrap; 472 - justify-content: center; 473 - gap: 10px; 474 - } 475 - 476 - .industry-tags span { 477 - display: inline-flex; 478 - align-items: center; 479 - padding: 7px 12px; 480 - border: 1px solid fade(@brand, 20%); 481 - border-radius: 999px; 482 - background: #fff; 483 - color: @text; 484 - font-size: 13px; 485 - font-weight: 600; 486 - line-height: 1.2; 487 - box-shadow: 0 3px 10px rgba(0, 0, 0, .04); 488 - } 489 - 490 - .industry-support { 491 - max-width: 820px; 492 - margin: 22px auto 0; 493 - color: @muted; 494 - font-size: 16px; 495 - line-height: 1.6; 496 - } 497 -} 498 - 499 -@media (max-width: 640px) { 500 - .industry-trust-section { 501 - .industry-trust-panel { 502 - padding: 24px 18px; 503 - } 504 - 505 - .industry-tags { 506 - gap: 8px; 507 - } 508 - 509 - .industry-tags span { 510 - font-size: 12px; 511 - padding: 6px 10px; 512 - } 513 - } 514 -} 515 - 516 516 /* ========== Services ========== */ 517 517 518 518 .services { ... ... @@ -764,6 +764,8 @@ 764 764 padding: 32px; 765 765 border-radius: @radius; 766 766 border: 1px solid fade(@brand, 20%); 729 + background: 730 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%); 767 767 box-shadow: @shadow-sm; 768 768 text-align: center; 769 769 ... ... @@ -870,6 +870,15 @@ 870 870 min-height: 280px; 871 871 } 872 872 837 + .hero.main-page-hero { 838 + background: 839 + linear-gradient( 840 + rgba(244, 252, 250, 0.92), 841 + rgba(255, 255, 255, 0.97) 842 + ), 843 + url('/bin/download/PublicWebSite/WebHome/main-page-hero.png') center center / cover no-repeat; 844 + } 845 + 873 873 .hero { 874 874 .lead { 875 875 font-size: 17px; ... ... @@ -1002,45 +1002,6 @@ 1002 1002 } 1003 1003 } 1004 1004 1005 -.resource-note.related-resources { 1006 - p { 1007 - margin-bottom: 10px; 1008 - } 1009 - 1010 - ul { 1011 - margin: 0; 1012 - padding-left: 20px; 1013 - } 1014 - 1015 - li { 1016 - margin: 6px 0; 1017 - color: @muted; 1018 - } 1019 -} 1020 - 1021 -.resource-faq-item { 1022 - display: flow-root; 1023 - border-bottom: 1px solid @line; 1024 - padding: 12px 0; 1025 - 1026 - summary { 1027 - cursor: pointer; 1028 - font-weight: 700; 1029 - color: @text; 1030 - line-height: 1.4; 1031 - } 1032 - 1033 - summary:hover, 1034 - summary:focus { 1035 - color: @brand-strong; 1036 - } 1037 - 1038 - p { 1039 - margin: 10px 0 4px; 1040 - color: @muted; 1041 - } 1042 -} 1043 - 1044 1044 .resource-checklist { 1045 1045 margin: 18px 0 24px; 1046 1046 padding: 0; ... ... @@ -1162,40 +1162,30 @@ 1162 1162 } 1163 1163 1164 1164 .product-card-grid { 1165 - max-width: 980px;1166 - margin: 2 6px auto 0;1099 + max-width: 840px; 1100 + margin: 22px auto 0; 1167 1167 display: grid; 1168 1168 grid-template-columns: 1fr; 1169 - grid-gap: 22px;1103 + grid-gap: 18px; 1170 1170 } 1171 1171 1172 1172 .product-card { 1173 - position: relative; 1174 1174 background: #fff; 1175 1175 border: 1px solid @line; 1176 1176 border-radius: @radius; 1177 1177 box-shadow: @shadow-sm; 1178 - padding: 32px;1111 + padding: 28px; 1179 1179 display: grid; 1180 - grid-template-columns: 70px 1fr;1181 - grid-gap: 2 4px;1113 + grid-template-columns: 68px 1fr; 1114 + grid-gap: 22px; 1182 1182 align-items: start; 1183 - overflow: hidden; 1184 1184 1185 - &:before { 1186 - content: ""; 1187 - position: absolute; 1188 - inset: 0 auto 0 0; 1189 - width: 5px; 1190 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%); 1191 - } 1192 - 1193 1193 .product-card-icon { 1194 1194 width: 58px; 1195 1195 height: 58px; 1196 1196 border-radius: 50%; 1197 1197 background: fade(@brand, 10%); 1198 - border: 1px solid fade(@brand, 2 2%);1122 + border: 1px solid fade(@brand, 20%); 1199 1199 color: @brand; 1200 1200 display: flex; 1201 1201 align-items: center; ... ... @@ -1204,15 +1204,11 @@ 1204 1204 flex-shrink: 0; 1205 1205 } 1206 1206 1207 - .product-card-body { 1208 - min-width: 0; 1209 - } 1210 - 1211 1211 h3 { 1212 1212 margin: 0 0 10px; 1213 1213 color: @text; 1214 - font-size: 2 5px;1215 - line-height: 1.2 2;1134 + font-size: 23px; 1135 + line-height: 1.25; 1216 1216 font-weight: 800; 1217 1217 } 1218 1218 ... ... @@ -1221,36 +1221,25 @@ 1221 1221 line-height: 1.6; 1222 1222 } 1223 1223 1224 - .product-card-description { 1225 - max-width: 760px; 1226 - margin: 0 0 14px; 1227 - font-size: 16px; 1144 + .card-link { 1145 + margin: 0; 1146 + 1147 + a { 1148 + font-weight: 700; 1149 + } 1228 1228 } 1229 1229 } 1230 1230 1231 1231 .product-card-kicker { 1232 - display: inline-flex; 1233 - align-items: center; 1234 - gap: 7px; 1235 - width: fit-content; 1236 1236 margin-bottom: 10px; 1237 1237 padding: 5px 10px; 1238 - border: 1px solid fade(@brand, 24%); 1239 - border-radius: 999px; 1240 - background: fade(@brand, 8%); 1241 - color: @brand-strong; 1242 1242 font-size: 12px; 1243 - font-weight: 800; 1244 1244 text-transform: uppercase; 1245 1245 letter-spacing: .04em; 1246 - 1247 - i { 1248 - color: @brand; 1249 - } 1250 1250 } 1251 1251 1252 1252 .product-highlights { 1253 - margin: 14px 0 2 2px;1162 + margin: 14px 0 20px; 1254 1254 padding-left: 18px; 1255 1255 color: @muted; 1256 1256 ... ... @@ -1260,58 +1260,12 @@ 1260 1260 } 1261 1261 } 1262 1262 1263 -.product-card-actions { 1264 - display: flex; 1265 - align-items: center; 1266 - gap: 16px; 1267 - flex-wrap: wrap; 1268 - 1269 - .btn { 1270 - font-weight: 700; 1271 - } 1272 -} 1273 - 1274 -.product-card-contact { 1275 - color: @brand; 1276 - font-weight: 700; 1277 - text-decoration: underline; 1278 - 1279 - &:hover, 1280 - &:focus { 1281 - color: @brand-strong; 1282 - } 1283 -} 1284 - 1285 -@media (max-width: 640px) { 1286 - .product-card { 1287 - grid-template-columns: 1fr; 1288 - padding: 26px 22px; 1289 - text-align: left; 1290 - 1291 - &:before { 1292 - width: 4px; 1293 - } 1294 - 1295 - .product-card-icon { 1296 - margin-bottom: 2px; 1297 - } 1298 - 1299 - h3 { 1300 - font-size: 22px; 1301 - } 1302 - } 1303 - 1304 - .product-card-actions { 1305 - gap: 12px; 1306 - } 1307 -} 1308 - 1309 1309 /* ========== Individual Product Pages ========== */ 1310 1310 1311 1311 .product-layout { 1312 1312 display: grid; 1313 - grid-template-columns: minmax(0,1.12fr)minmax(280px,.88fr);1314 - grid-gap: 3 2px;1176 + grid-template-columns: 1.1fr .9fr; 1177 + grid-gap: 36px; 1315 1315 max-width: 1040px; 1316 1316 margin: 0 auto; 1317 1317 align-items: start; ... ... @@ -1319,7 +1319,6 @@ 1319 1319 1320 1320 .product-summary-card, 1321 1321 .product-info-card, 1322 -.product-feature, 1323 1323 .product-gallery-panel { 1324 1324 background: #fff; 1325 1325 border: 1px solid @line; ... ... @@ -1328,18 +1328,16 @@ 1328 1328 } 1329 1329 1330 1330 .product-summary-card { 1331 - padding: 2 8px;1193 + padding: 26px; 1332 1332 1333 1333 h2 { 1334 1334 text-align: left; 1335 1335 margin-top: 0; 1336 - margin-bottom: 14px; 1337 - line-height: 1.25; 1338 1338 } 1339 1339 1340 1340 p { 1341 1341 color: @muted; 1342 - line-height: 1.6 2;1202 + line-height: 1.6; 1343 1343 } 1344 1344 1345 1345 p:last-child { ... ... @@ -1348,19 +1348,13 @@ 1348 1348 } 1349 1349 1350 1350 .product-info-card { 1351 - padding: 2 4px;1211 + padding: 22px; 1352 1352 1353 1353 h3 { 1354 1354 margin-top: 0; 1355 1355 margin-bottom: 12px; 1356 - line-height: 1.3; 1357 1357 } 1358 1358 1359 - p { 1360 - color: @muted; 1361 - line-height: 1.55; 1362 - } 1363 - 1364 1364 ul { 1365 1365 margin: 0; 1366 1366 padding-left: 20px; ... ... @@ -1369,30 +1369,25 @@ 1369 1369 1370 1370 li { 1371 1371 margin: 8px 0; 1372 - line-height: 1. 3;1226 + line-height: 1.45; 1373 1373 } 1374 1374 } 1375 1375 1376 -.product-card-note { 1377 - margin: 0 0 14px; 1378 - color: @muted; 1379 - line-height: 1.55; 1380 -} 1381 - 1382 1382 .product-feature-grid { 1383 1383 display: grid; 1384 1384 grid-template-columns: repeat(3, minmax(0, 1fr)); 1385 - grid-gap: 20px;1233 + grid-gap: 18px; 1386 1386 max-width: 1040px; 1387 - margin: 2 4px auto 0;1235 + margin: 22px auto 0; 1388 1388 } 1389 1389 1390 1390 .product-feature { 1391 - padding: 24px; 1392 - min-width: 0; 1393 - min-height: 100%; 1239 + background: #fff; 1240 + border: 1px solid @line; 1241 + border-radius: @radius; 1242 + box-shadow: @shadow-sm; 1243 + padding: 22px; 1394 1394 1395 - .card-heading, 1396 1396 .feature-heading { 1397 1397 display: flex; 1398 1398 align-items: center; ... ... @@ -1423,56 +1423,10 @@ 1423 1423 p { 1424 1424 margin: 0; 1425 1425 color: @muted; 1426 - line-height: 1.5 2;1275 + line-height: 1.5; 1427 1427 } 1428 1428 } 1429 1429 1430 -.product-gallery-caption { 1431 - max-width: 820px; 1432 - margin: 12px auto 0; 1433 - color: @muted; 1434 - font-size: 14px; 1435 - line-height: 1.5; 1436 - text-align: center; 1437 -} 1438 - 1439 -/* Keep the default XWiki gallery style. 1440 - Only add spacing before it and center it. */ 1441 -.gallery.xGallery { 1442 - margin: 25px auto; 1443 - width: 920px; 1444 - height: 518px; 1445 -} 1446 - 1447 -.product-section-muted { 1448 - background: 1449 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1450 -} 1451 - 1452 -/* Compact process list when used inside a product card. */ 1453 -.product-summary-card .process-list { 1454 - margin-top: 16px; 1455 - 1456 - li { 1457 - padding: 13px 14px 13px 50px; 1458 - margin-bottom: 10px; 1459 - box-shadow: none; 1460 - } 1461 - 1462 - li:before { 1463 - left: 14px; 1464 - top: 14px; 1465 - width: 24px; 1466 - height: 24px; 1467 - font-size: 12px; 1468 - } 1469 - 1470 - strong { 1471 - margin-bottom: 2px; 1472 - } 1473 -} 1474 - 1475 -/* Kept for older product pages that still use a screenshot placeholder/panel. */ 1476 1476 .product-gallery-panel { 1477 1477 max-width: 1040px; 1478 1478 margin: 20px auto 0; ... ... @@ -1505,6 +1505,11 @@ 1505 1505 justify-content: center; 1506 1506 } 1507 1507 1311 +.product-section-muted { 1312 + background: 1313 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1314 +} 1315 + 1508 1508 @media (max-width: 980px) { 1509 1509 .product-layout, 1510 1510 .product-feature-grid { ... ... @@ -1533,37 +1533,12 @@ 1533 1533 .product-gallery-panel { 1534 1534 padding: 20px; 1535 1535 } 1536 - 1537 - .product-feature { 1538 - .card-heading, 1539 - .feature-heading { 1540 - gap: 12px; 1541 - } 1542 - 1543 - .feature-icon { 1544 - width: 42px; 1545 - height: 42px; 1546 - font-size: 16px; 1547 - } 1548 - } 1549 - 1550 - .gallery.xGallery { 1551 - margin-top: 22px !important; 1552 - } 1553 - 1554 - .product-gallery-caption { 1555 - margin-top: 10px; 1556 - padding: 0 14px; 1557 - } 1558 - 1559 - .product-summary-card .process-list li { 1560 - padding-left: 46px; 1561 - } 1562 1562 } 1563 1563 1564 1564 /* ========== Resources Index ========== */ 1565 1565 1566 1566 .resources-index-page { 1349 + background: #fff; 1567 1567 1568 1568 .services-grid { 1569 1569 grid-template-columns: repeat(2, minmax(0, 1fr)); ... ... @@ -1599,52 +1599,3 @@ 1599 1599 color: @muted; 1600 1600 } 1601 1601 } 1602 - 1603 -/* ========== Global Theme Background ========== */ 1604 - 1605 -html, 1606 -body { 1607 - min-height: 100%; 1608 -} 1609 - 1610 -body { 1611 - color: @text; 1612 - background: 1613 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%), 1614 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%), 1615 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important; 1616 - background-attachment: fixed; 1617 -} 1618 - 1619 -/* Let the body background show through the XWiki wrappers. 1620 -#mainContentArea, 1621 -.resource-page, 1622 -.resources-index-page { 1623 - background: transparent !important; 1624 - background-image: none !important; 1625 -} 1626 -*/ 1627 -/* Remove local decorative backgrounds that compete with the global gradient. 1628 -.hero, 1629 -.hero.hero-centered, 1630 -.trust-strip, 1631 -.industry-trust-section, 1632 -.split-section, 1633 -.resource-strip, 1634 -.homepage-resource-strip, 1635 -.resource-header, 1636 -.product-section-muted, 1637 -.resources-index-page { 1638 - background: transparent !important; 1639 - background-image: none !important; 1640 -} 1641 - */ 1642 -/* Keep large panels readable, but remove their inner gradients. 1643 -.industry-trust-section .industry-trust-panel, 1644 -.cta-panel, 1645 -.resource-inline-cta, 1646 -.resource-note, 1647 -.resource-cta { 1648 - background: #fff !important; 1649 - background-image: none !important; 1650 -} */