Changes for page Public Web Site
Last modified by Agnease on 2026/07/03 14:24
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,54 @@ 191 191 min-height: 330px; 192 192 } 193 193 183 + &.main-page-hero { 184 + background: 185 + linear-gradient( 186 + rgba(244, 252, 250, 0.50), 187 + rgba(255, 255, 255, 0.60) 188 + ), 189 + url('/bin/download/PublicWebSite/WebHome/main-page-hero.png') center center / cover no-repeat; 190 + 191 + &::before, 192 + &::after { 193 + content: ""; 194 + position: absolute; 195 + pointer-events: none; 196 + z-index: 1; 197 + } 198 + 199 + /* Fade left and right image edges into the page background */ 200 + &::before { 201 + inset: 0; 202 + background: 203 + linear-gradient( 204 + 90deg, 205 + #fff 0%, 206 + rgba(255, 255, 255, 0) 13%, 207 + rgba(255, 255, 255, 0) 87%, 208 + #fff 100% 209 + ); 210 + } 211 + 212 + /* Fade bottom edge into white before the next section */ 213 + &::after { 214 + left: 0; 215 + right: 0; 216 + bottom: 0; 217 + height: 90px; 218 + background: linear-gradient( 219 + 180deg, 220 + rgba(255, 255, 255, 0) 0%, 221 + #fff 100% 222 + ); 223 + } 224 + 225 + .hero-inner { 226 + position: relative; 227 + z-index: 2; 228 + } 229 + } 230 + 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; 298 + background: #fff; 261 261 262 262 ul { 263 263 max-width: 960px; ... ... @@ -440,80 +440,6 @@ 440 440 } 441 441 } 442 442 443 -.industry-trust-section { 444 - background: 445 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%); 446 - 447 - .industry-trust-panel { 448 - max-width: 1040px; 449 - margin: 0 auto; 450 - padding: 30px 28px; 451 - border: 1px solid fade(@brand, 16%); 452 - border-radius: @radius; 453 - background: 454 - radial-gradient(34rem 12rem at 50% 0%, fade(@brand-soft, 75%) 0%, #fff 72%); 455 - box-shadow: @shadow-sm; 456 - text-align: center; 457 - } 458 - 459 - h2 { 460 - margin-bottom: 12px; 461 - } 462 - 463 - .section-intro { 464 - margin-bottom: 20px; 465 - max-width: 820px; 466 - } 467 - 468 - .industry-tags { 469 - max-width: 880px; 470 - margin: 0 auto; 471 - display: flex; 472 - flex-wrap: wrap; 473 - justify-content: center; 474 - gap: 10px; 475 - } 476 - 477 - .industry-tags span { 478 - display: inline-flex; 479 - align-items: center; 480 - padding: 7px 12px; 481 - border: 1px solid fade(@brand, 20%); 482 - border-radius: 999px; 483 - background: #fff; 484 - color: @text; 485 - font-size: 13px; 486 - font-weight: 600; 487 - line-height: 1.2; 488 - box-shadow: 0 3px 10px rgba(0, 0, 0, .04); 489 - } 490 - 491 - .industry-support { 492 - max-width: 820px; 493 - margin: 22px auto 0; 494 - color: @muted; 495 - font-size: 16px; 496 - line-height: 1.6; 497 - } 498 -} 499 - 500 -@media (max-width: 640px) { 501 - .industry-trust-section { 502 - .industry-trust-panel { 503 - padding: 24px 18px; 504 - } 505 - 506 - .industry-tags { 507 - gap: 8px; 508 - } 509 - 510 - .industry-tags span { 511 - font-size: 12px; 512 - padding: 6px 10px; 513 - } 514 - } 515 -} 516 - 517 517 /* ========== Services ========== */ 518 518 519 519 .services { ... ... @@ -873,6 +873,15 @@ 873 873 min-height: 280px; 874 874 } 875 875 840 + .hero.main-page-hero { 841 + background: 842 + linear-gradient( 843 + rgba(244, 252, 250, 0.92), 844 + rgba(255, 255, 255, 0.97) 845 + ), 846 + url('/bin/download/PublicWebSite/WebHome/main-page-hero.png') center center / cover no-repeat; 847 + } 848 + 876 876 .hero { 877 877 .lead { 878 878 font-size: 17px; ... ... @@ -1005,45 +1005,6 @@ 1005 1005 } 1006 1006 } 1007 1007 1008 -.resource-note.related-resources { 1009 - p { 1010 - margin-bottom: 10px; 1011 - } 1012 - 1013 - ul { 1014 - margin: 0; 1015 - padding-left: 20px; 1016 - } 1017 - 1018 - li { 1019 - margin: 6px 0; 1020 - color: @muted; 1021 - } 1022 -} 1023 - 1024 -.resource-faq-item { 1025 - display: flow-root; 1026 - border-bottom: 1px solid @line; 1027 - padding: 12px 0; 1028 - 1029 - summary { 1030 - cursor: pointer; 1031 - font-weight: 700; 1032 - color: @text; 1033 - line-height: 1.4; 1034 - } 1035 - 1036 - summary:hover, 1037 - summary:focus { 1038 - color: @brand-strong; 1039 - } 1040 - 1041 - p { 1042 - margin: 10px 0 4px; 1043 - color: @muted; 1044 - } 1045 -} 1046 - 1047 1047 .resource-checklist { 1048 1048 margin: 18px 0 24px; 1049 1049 padding: 0; ... ... @@ -1165,40 +1165,30 @@ 1165 1165 } 1166 1166 1167 1167 .product-card-grid { 1168 - max-width: 980px;1169 - margin: 2 6px auto 0;1102 + max-width: 840px; 1103 + margin: 22px auto 0; 1170 1170 display: grid; 1171 1171 grid-template-columns: 1fr; 1172 - grid-gap: 22px;1106 + grid-gap: 18px; 1173 1173 } 1174 1174 1175 1175 .product-card { 1176 - position: relative; 1177 1177 background: #fff; 1178 1178 border: 1px solid @line; 1179 1179 border-radius: @radius; 1180 1180 box-shadow: @shadow-sm; 1181 - padding: 32px;1114 + padding: 28px; 1182 1182 display: grid; 1183 - grid-template-columns: 70px 1fr;1184 - grid-gap: 2 4px;1116 + grid-template-columns: 68px 1fr; 1117 + grid-gap: 22px; 1185 1185 align-items: start; 1186 - overflow: hidden; 1187 1187 1188 - &:before { 1189 - content: ""; 1190 - position: absolute; 1191 - inset: 0 auto 0 0; 1192 - width: 5px; 1193 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%); 1194 - } 1195 - 1196 1196 .product-card-icon { 1197 1197 width: 58px; 1198 1198 height: 58px; 1199 1199 border-radius: 50%; 1200 1200 background: fade(@brand, 10%); 1201 - border: 1px solid fade(@brand, 2 2%);1125 + border: 1px solid fade(@brand, 20%); 1202 1202 color: @brand; 1203 1203 display: flex; 1204 1204 align-items: center; ... ... @@ -1207,15 +1207,11 @@ 1207 1207 flex-shrink: 0; 1208 1208 } 1209 1209 1210 - .product-card-body { 1211 - min-width: 0; 1212 - } 1213 - 1214 1214 h3 { 1215 1215 margin: 0 0 10px; 1216 1216 color: @text; 1217 - font-size: 2 5px;1218 - line-height: 1.2 2;1137 + font-size: 23px; 1138 + line-height: 1.25; 1219 1219 font-weight: 800; 1220 1220 } 1221 1221 ... ... @@ -1224,36 +1224,25 @@ 1224 1224 line-height: 1.6; 1225 1225 } 1226 1226 1227 - .product-card-description { 1228 - max-width: 760px; 1229 - margin: 0 0 14px; 1230 - font-size: 16px; 1147 + .card-link { 1148 + margin: 0; 1149 + 1150 + a { 1151 + font-weight: 700; 1152 + } 1231 1231 } 1232 1232 } 1233 1233 1234 1234 .product-card-kicker { 1235 - display: inline-flex; 1236 - align-items: center; 1237 - gap: 7px; 1238 - width: fit-content; 1239 1239 margin-bottom: 10px; 1240 1240 padding: 5px 10px; 1241 - border: 1px solid fade(@brand, 24%); 1242 - border-radius: 999px; 1243 - background: fade(@brand, 8%); 1244 - color: @brand-strong; 1245 1245 font-size: 12px; 1246 - font-weight: 800; 1247 1247 text-transform: uppercase; 1248 1248 letter-spacing: .04em; 1249 - 1250 - i { 1251 - color: @brand; 1252 - } 1253 1253 } 1254 1254 1255 1255 .product-highlights { 1256 - margin: 14px 0 2 2px;1165 + margin: 14px 0 20px; 1257 1257 padding-left: 18px; 1258 1258 color: @muted; 1259 1259 ... ... @@ -1263,58 +1263,12 @@ 1263 1263 } 1264 1264 } 1265 1265 1266 -.product-card-actions { 1267 - display: flex; 1268 - align-items: center; 1269 - gap: 16px; 1270 - flex-wrap: wrap; 1271 - 1272 - .btn { 1273 - font-weight: 700; 1274 - } 1275 -} 1276 - 1277 -.product-card-contact { 1278 - color: @brand; 1279 - font-weight: 700; 1280 - text-decoration: underline; 1281 - 1282 - &:hover, 1283 - &:focus { 1284 - color: @brand-strong; 1285 - } 1286 -} 1287 - 1288 -@media (max-width: 640px) { 1289 - .product-card { 1290 - grid-template-columns: 1fr; 1291 - padding: 26px 22px; 1292 - text-align: left; 1293 - 1294 - &:before { 1295 - width: 4px; 1296 - } 1297 - 1298 - .product-card-icon { 1299 - margin-bottom: 2px; 1300 - } 1301 - 1302 - h3 { 1303 - font-size: 22px; 1304 - } 1305 - } 1306 - 1307 - .product-card-actions { 1308 - gap: 12px; 1309 - } 1310 -} 1311 - 1312 1312 /* ========== Individual Product Pages ========== */ 1313 1313 1314 1314 .product-layout { 1315 1315 display: grid; 1316 - grid-template-columns: minmax(0,1.12fr)minmax(280px,.88fr);1317 - grid-gap: 3 2px;1179 + grid-template-columns: 1.1fr .9fr; 1180 + grid-gap: 36px; 1318 1318 max-width: 1040px; 1319 1319 margin: 0 auto; 1320 1320 align-items: start; ... ... @@ -1322,7 +1322,6 @@ 1322 1322 1323 1323 .product-summary-card, 1324 1324 .product-info-card, 1325 -.product-feature, 1326 1326 .product-gallery-panel { 1327 1327 background: #fff; 1328 1328 border: 1px solid @line; ... ... @@ -1331,18 +1331,16 @@ 1331 1331 } 1332 1332 1333 1333 .product-summary-card { 1334 - padding: 2 8px;1196 + padding: 26px; 1335 1335 1336 1336 h2 { 1337 1337 text-align: left; 1338 1338 margin-top: 0; 1339 - margin-bottom: 14px; 1340 - line-height: 1.25; 1341 1341 } 1342 1342 1343 1343 p { 1344 1344 color: @muted; 1345 - line-height: 1.6 2;1205 + line-height: 1.6; 1346 1346 } 1347 1347 1348 1348 p:last-child { ... ... @@ -1351,19 +1351,13 @@ 1351 1351 } 1352 1352 1353 1353 .product-info-card { 1354 - padding: 2 4px;1214 + padding: 22px; 1355 1355 1356 1356 h3 { 1357 1357 margin-top: 0; 1358 1358 margin-bottom: 12px; 1359 - line-height: 1.3; 1360 1360 } 1361 1361 1362 - p { 1363 - color: @muted; 1364 - line-height: 1.55; 1365 - } 1366 - 1367 1367 ul { 1368 1368 margin: 0; 1369 1369 padding-left: 20px; ... ... @@ -1372,30 +1372,25 @@ 1372 1372 1373 1373 li { 1374 1374 margin: 8px 0; 1375 - line-height: 1. 3;1229 + line-height: 1.45; 1376 1376 } 1377 1377 } 1378 1378 1379 -.product-card-note { 1380 - margin: 0 0 14px; 1381 - color: @muted; 1382 - line-height: 1.55; 1383 -} 1384 - 1385 1385 .product-feature-grid { 1386 1386 display: grid; 1387 1387 grid-template-columns: repeat(3, minmax(0, 1fr)); 1388 - grid-gap: 20px;1236 + grid-gap: 18px; 1389 1389 max-width: 1040px; 1390 - margin: 2 4px auto 0;1238 + margin: 22px auto 0; 1391 1391 } 1392 1392 1393 1393 .product-feature { 1394 - padding: 24px; 1395 - min-width: 0; 1396 - min-height: 100%; 1242 + background: #fff; 1243 + border: 1px solid @line; 1244 + border-radius: @radius; 1245 + box-shadow: @shadow-sm; 1246 + padding: 22px; 1397 1397 1398 - .card-heading, 1399 1399 .feature-heading { 1400 1400 display: flex; 1401 1401 align-items: center; ... ... @@ -1426,56 +1426,10 @@ 1426 1426 p { 1427 1427 margin: 0; 1428 1428 color: @muted; 1429 - line-height: 1.5 2;1278 + line-height: 1.5; 1430 1430 } 1431 1431 } 1432 1432 1433 -.product-gallery-caption { 1434 - max-width: 820px; 1435 - margin: 12px auto 0; 1436 - color: @muted; 1437 - font-size: 14px; 1438 - line-height: 1.5; 1439 - text-align: center; 1440 -} 1441 - 1442 -/* Keep the default XWiki gallery style. 1443 - Only add spacing before it and center it. */ 1444 -.gallery.xGallery { 1445 - margin: 25px auto; 1446 - width: 920px; 1447 - height: 518px; 1448 -} 1449 - 1450 -.product-section-muted { 1451 - background: 1452 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1453 -} 1454 - 1455 -/* Compact process list when used inside a product card. */ 1456 -.product-summary-card .process-list { 1457 - margin-top: 16px; 1458 - 1459 - li { 1460 - padding: 13px 14px 13px 50px; 1461 - margin-bottom: 10px; 1462 - box-shadow: none; 1463 - } 1464 - 1465 - li:before { 1466 - left: 14px; 1467 - top: 14px; 1468 - width: 24px; 1469 - height: 24px; 1470 - font-size: 12px; 1471 - } 1472 - 1473 - strong { 1474 - margin-bottom: 2px; 1475 - } 1476 -} 1477 - 1478 -/* Kept for older product pages that still use a screenshot placeholder/panel. */ 1479 1479 .product-gallery-panel { 1480 1480 max-width: 1040px; 1481 1481 margin: 20px auto 0; ... ... @@ -1508,6 +1508,11 @@ 1508 1508 justify-content: center; 1509 1509 } 1510 1510 1314 +.product-section-muted { 1315 + background: 1316 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1317 +} 1318 + 1511 1511 @media (max-width: 980px) { 1512 1512 .product-layout, 1513 1513 .product-feature-grid { ... ... @@ -1536,37 +1536,12 @@ 1536 1536 .product-gallery-panel { 1537 1537 padding: 20px; 1538 1538 } 1539 - 1540 - .product-feature { 1541 - .card-heading, 1542 - .feature-heading { 1543 - gap: 12px; 1544 - } 1545 - 1546 - .feature-icon { 1547 - width: 42px; 1548 - height: 42px; 1549 - font-size: 16px; 1550 - } 1551 - } 1552 - 1553 - .gallery.xGallery { 1554 - margin-top: 22px !important; 1555 - } 1556 - 1557 - .product-gallery-caption { 1558 - margin-top: 10px; 1559 - padding: 0 14px; 1560 - } 1561 - 1562 - .product-summary-card .process-list li { 1563 - padding-left: 46px; 1564 - } 1565 1565 } 1566 1566 1567 1567 /* ========== Resources Index ========== */ 1568 1568 1569 1569 .resources-index-page { 1352 + background: #fff; 1570 1570 1571 1571 .services-grid { 1572 1572 grid-template-columns: repeat(2, minmax(0, 1fr)); ... ... @@ -1602,52 +1602,3 @@ 1602 1602 color: @muted; 1603 1603 } 1604 1604 } 1605 - 1606 -/* ========== Global Theme Background ========== */ 1607 - 1608 -html, 1609 -body { 1610 - min-height: 100%; 1611 -} 1612 - 1613 -body { 1614 - color: @text; 1615 - background: 1616 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%), 1617 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%), 1618 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important; 1619 - background-attachment: fixed; 1620 -} 1621 - 1622 -/* Let the body background show through the XWiki wrappers. 1623 -#mainContentArea, 1624 -.resource-page, 1625 -.resources-index-page { 1626 - background: transparent !important; 1627 - background-image: none !important; 1628 -} 1629 -*/ 1630 -/* Remove local decorative backgrounds that compete with the global gradient. 1631 -.hero, 1632 -.hero.hero-centered, 1633 -.trust-strip, 1634 -.industry-trust-section, 1635 -.split-section, 1636 -.resource-strip, 1637 -.homepage-resource-strip, 1638 -.resource-header, 1639 -.product-section-muted, 1640 -.resources-index-page { 1641 - background: transparent !important; 1642 - background-image: none !important; 1643 -} 1644 - */ 1645 -/* Keep large panels readable, but remove their inner gradients. 1646 -.industry-trust-section .industry-trust-panel, 1647 -.cta-panel, 1648 -.resource-inline-cta, 1649 -.resource-note, 1650 -.resource-cta { 1651 - background: #fff !important; 1652 - background-image: none !important; 1653 -} */