Changes for page Public Web Site
Last modified by Agnease on 2026/07/03 16:14
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -2,45 +2,7 @@ 2 2 #macro (displayPublicContent) 3 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 4 4 {{html clean="false"}} 5 - <section class="hero hero-saas" id="top"> 6 - <div class="container"> 7 - <div class="hero-layout"> 8 - <div class="hero-copy"> 9 - <h1>Professional XWiki consulting <span>and engineering</span></h1> 10 10 11 - <p class="lead"> 12 - Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care. 13 - </p> 14 - 15 - <ul class="benefits"> 16 - <li>XWiki LTS upgrades</li> 17 - <li>Maintenance and support</li> 18 - <li>Custom XWiki development</li> 19 - <li>Migrations and integrations</li> 20 - </ul> 21 - 22 - <div class="hero-actions" id="hero-cta"> 23 - <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06"> 24 - Book a free discussion 25 - </a> 26 - <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a> 27 - </div> 28 - </div> 29 - 30 - <div class="hero-image-wrapper"> 31 - <img 32 - class="hero-image" 33 - src="$xwiki.getDocument('PublicWebSite.WebHome').getAttachmentURL('agnease-xwiki-hero.png')" 34 - alt="Illustration of a professional XWiki platform dashboard with upgrade, security and maintenance elements" 35 - width="1200" 36 - height="900" 37 - loading="eager" 38 - /> 39 - </div> 40 - </div> 41 - </div> 42 - </section> 43 -#* 44 44 <section class="hero hero-centered" aria-labelledby="hero-title"> 45 45 <div class="container hero-inner"> 46 46 <h1 id="hero-title">Professional XWiki consulting and engineering</h1> ... ... @@ -64,7 +64,7 @@ 64 64 </div> 65 65 </div> 66 66 </section> 67 - *#29 + 68 68 <section class="trust-strip" aria-label="Agnease experience"> 69 69 <div class="container"> 70 70 <ul> ... ... @@ -149,37 +149,35 @@ 149 149 </div> 150 150 </section> 151 151 152 - <div class="contrast-band-wrapper"> 153 - <section class="contrast-band" aria-labelledby="industry-trust-title"> 154 - <div class="container"> 155 - <div class="contrast-panel"> 156 - <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2> 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> 157 157 158 - <p class="section-intro">159 - Experience supporting XWiki platforms used in healthcare, financial services, scientific research,160 - government institutions, transportation, software development, compliance programs and regulated environments.161 - </p>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> 162 162 163 - <div class="contrast-tags" aria-label="Industries and environments supported"> 164 - <span>Healthcare</span> 165 - <span>Financial services</span> 166 - <span>Scientific research</span> 167 - <span>Government institutions</span> 168 - <span>Transportation</span> 169 - <span>Software development</span> 170 - <span>Compliance programs</span> 171 - <span>Regulated environments</span> 172 - </div> 173 - 174 - <p class="contrast-support"> 175 - Organizations rely on these platforms to manage documentation, workflows, compliance processes, 176 - research knowledge and critical business information. From upgrades and authentication integrations 177 - to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future. 178 - </p> 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> 179 179 </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> 180 180 </div> 181 - </ section>182 - </ div>141 + </div> 142 + </section> 183 183 184 184 <section class="split-section" aria-labelledby="why-title"> 185 185 <div class="container">
- agnease-xwiki-hero.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Admin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -981.8 KB - Content
- XWiki.StyleSheetExtension[0]
-
- code
-
... ... @@ -150,7 +150,7 @@ 150 150 151 151 /* ========== Buttons ========== */ 152 152 153 - /*.btn-primary {153 +.btn-primary { 154 154 background: @brand; 155 155 border-color: @brand; 156 156 color: #fff; ... ... @@ -162,12 +162,18 @@ 162 162 color: #fff; 163 163 } 164 164 } 165 - */165 + 166 166 .btn-secondary { 167 - color: @ text;167 + color: @brand; 168 168 background: #fff; 169 - border: 1px solid fade(@ text, 35%);169 + border: 1px solid fade(@brand, 35%); 170 170 171 + &:hover, 172 + &:focus { 173 + color: @brand-strong; 174 + border-color: @brand; 175 + background: @brand-bg; 176 + } 171 171 } 172 172 173 173 /* ========== Hero ========== */ ... ... @@ -247,61 +247,36 @@ 247 247 margin-top: 22px; 248 248 } 249 249 250 -/* ========== ContrastBand========== */256 +/* ========== Trust Strip ========== */ 251 251 252 -/* Full‑bleed wrapper */ 253 -.contrast-band-wrapper { 254 - position: relative; 255 - overflow: visible; 256 -} 258 +.trust-strip { 259 + padding: 18px 0; 260 + border-top: 1px solid @line; 257 257 258 -/* Full‑bleed gradient background */ 259 -.contrast-band-wrapper::before { 260 - content: ""; 261 - position: absolute; 262 - top: 0; 263 - left: 50%; 264 - width: 100vw; 265 - height: 100%; 266 - transform: translateX(-50%); 267 - z-index: -1; 262 + ul { 263 + max-width: 960px; 264 + margin: 0 auto; 265 + padding: 0; 266 + list-style: none; 267 + display: flex; 268 + justify-content: center; 269 + gap: 22px; 270 + flex-wrap: wrap; 271 + color: @muted; 272 + font-size: 13px; 273 + } 268 268 269 - background:270 - radial-gradient(circleat 18% 18%,fade(@brand, 22%) 0%, transparent 28%),271 - radial-gradient(circle at86% 12%, fade(@brand, 16%) 0%, transparent30%),272 - linear-gradient(135deg,@text 0%, @text-soft 100%);273 -} 275 + li { 276 + display: flex; 277 + align-items: center; 278 + gap: 7px; 279 + } 274 274 275 -/* Inner band (no gradient here anymore) */ 276 -.contrast-band { 277 - position: relative; 278 - z-index: 0; 279 - padding: 54px 0; 280 - border-top: 0; 281 - color: #fff; 282 - background: none; 281 + i { 282 + color: @brand; 283 + } 283 283 } 284 284 285 -/* Grid overlay */ 286 -.contrast-band::after { 287 - content: ""; 288 - position: absolute; 289 - inset: 0; 290 - background: 291 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 292 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 293 - background-size: 52px 52px; 294 - opacity: .38; 295 - pointer-events: none; 296 - z-index: 0; 297 -} 298 - 299 -/* Content stays above everything */ 300 -.contrast-band .container { 301 - position: relative; 302 - z-index: 1; 303 -} 304 - 305 305 /* ========== Reusable Grids ========== */ 306 306 307 307 .card-grid, ... ... @@ -458,6 +458,80 @@ 458 458 } 459 459 } 460 460 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 + 461 461 /* ========== Services ========== */ 462 462 463 463 .services { ... ... @@ -688,8 +688,8 @@ 688 688 689 689 /* ========== CTA ========== */ 690 690 691 - #mainContentArea.cta-section {692 - padding: 44px 0 56px;746 +.cta-section { 747 + padding: @section-padding; 693 693 694 694 .contact-inline { 695 695 margin: 0; ... ... @@ -701,70 +701,25 @@ 701 701 } 702 702 } 703 703 704 -#mainContentArea .cta-panel { 705 - position: relative; 706 - overflow: hidden; 707 - max-width: 1040px; 759 +.cta-panel { 760 + max-width: 860px; 708 708 margin: 0 auto; 709 - padding: 48px 40px; 710 - border: 0; 711 - border-radius: 26px; 712 - background: 713 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%), 714 - linear-gradient(135deg, @text 0%, @text-soft 100%); 715 - color: #fff; 716 - box-shadow: @shadow; 762 + padding: 32px; 763 + border-radius: @radius; 764 + border: 1px solid fade(@brand, 20%); 765 + box-shadow: @shadow-sm; 717 717 text-align: center; 718 -} 719 719 720 -#mainContentArea .cta-panel::before { 721 - content: ""; 722 - position: absolute; 723 - inset: 0; 724 - background: 725 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 726 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 727 - background-size: 48px 48px; 728 - opacity: .4; 729 - pointer-events: none; 730 -} 768 + h2 { 769 + margin-top: 0; 770 + } 731 731 732 -#mainContentArea .cta-panel h2, 733 -#mainContentArea .cta-panel p, 734 -#mainContentArea .cta-panel .btn { 735 - position: relative; 736 - z-index: 1; 772 + p { 773 + color: @muted; 774 + line-height: 1.55; 775 + } 737 737 } 738 738 739 -#mainContentArea .cta-panel h2 { 740 - max-width: 760px; 741 - margin: 0 auto 16px; 742 - color: #fff; 743 -} 744 - 745 -#mainContentArea .cta-panel p { 746 - max-width: 760px; 747 - margin: 0 auto 28px; 748 - color: #DBE4EF; 749 - font-size: 16px; 750 - line-height: 1.6; 751 -} 752 - 753 -#mainContentArea .cta-panel .btn-primary { 754 - border-color: #fff; 755 - background: #fff; 756 - color: @text; 757 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18); 758 -} 759 - 760 -#mainContentArea .cta-panel .btn-primary:hover, 761 -#mainContentArea .cta-panel .btn-primary:focus { 762 - border-color: #fff; 763 - background: #fff; 764 - color: @brand-strong; 765 - text-decoration: none; 766 -} 767 - 768 768 .resource-inline-cta { 769 769 display: flex; 770 770 align-items: center; ... ... @@ -896,14 +896,9 @@ 896 896 gap: 14px; 897 897 } 898 898 899 - #mainContentArea .cta-panel { 900 - padding: 30px 22px; 901 - border-radius: 20px; 909 + .cta-panel { 910 + padding: 24px 20px; 902 902 } 903 - 904 - #mainContentArea .cta-panel .btn-primary { 905 - width: 100%; 906 - } 907 907 } 908 908 909 909 /* ========== Resource / Article Pages ========== */ ... ... @@ -915,6 +915,9 @@ 915 915 .resource-header { 916 916 padding: @section-padding; 917 917 border-top: none; 923 + background: 924 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 925 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 918 918 919 919 h1 { 920 920 margin: 0 auto 14px; ... ... @@ -1062,6 +1062,7 @@ 1062 1062 border: 1px solid @line; 1063 1063 border-radius: @radius; 1064 1064 padding: 18px; 1073 + background: #fff; 1065 1065 box-shadow: @shadow-sm; 1066 1066 1067 1067 h4 { ... ... @@ -1309,6 +1309,7 @@ 1309 1309 .product-info-card, 1310 1310 .product-feature, 1311 1311 .product-gallery-panel { 1321 + background: #fff; 1312 1312 border: 1px solid @line; 1313 1313 border-radius: @radius; 1314 1314 box-shadow: @shadow-sm; ... ... @@ -1603,262 +1603,35 @@ 1603 1603 background-attachment: fixed; 1604 1604 } 1605 1605 1606 -/* ========== Main Page Hero / SaaS Layout ========== */ 1607 - 1608 -#mainContentArea .hero.hero-saas { 1609 - min-height: auto; 1610 - padding: 60px 0 34px; 1611 - display: flex; 1612 - align-items: center; 1613 - overflow: hidden; 1614 - background: transparent; 1616 +/* Let the body background show through the XWiki wrappers. 1617 +#mainContentArea, 1618 +.resource-page, 1619 +.resources-index-page { 1620 + background: transparent !important; 1621 + background-image: none !important; 1615 1615 } 1616 - 1617 -#mainContentArea .hero-layout { 1618 - max-width: 1120px; 1619 - margin: 0 auto; 1620 - display: grid; 1621 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); 1622 - gap: 56px; 1623 - align-items: center; 1623 +*/ 1624 +/* Remove local decorative backgrounds that compete with the global gradient. 1625 +.hero, 1626 +.hero.hero-centered, 1627 +.trust-strip, 1628 +.industry-trust-section, 1629 +.split-section, 1630 +.resource-strip, 1631 +.homepage-resource-strip, 1632 +.resource-header, 1633 +.product-section-muted, 1634 +.resources-index-page { 1635 + background: transparent !important; 1636 + background-image: none !important; 1624 1624 } 1625 - 1626 -#mainContentArea .hero-copy { 1627 - min-width: 0; 1628 - text-align: left; 1629 -} 1630 - 1631 -#mainContentArea .hero.hero-saas h1 { 1632 - max-width: 640px; 1633 - margin: 0 0 26px; 1634 - font-size: 60px; 1635 - font-weight: 800; 1636 - line-height: 1; 1637 - letter-spacing: -3px; 1638 -} 1639 - 1640 -#mainContentArea .hero.hero-saas h1 span { 1641 - color: @brand; 1642 -} 1643 - 1644 -#mainContentArea .hero.hero-saas .lead { 1645 - max-width: 590px; 1646 - margin: 0 0 28px; 1647 - color: #334155; 1648 - text-align: left; 1649 - font-size: 18px; 1650 - line-height: 1.6; 1651 -} 1652 - 1653 -#mainContentArea .hero.hero-saas .benefits { 1654 - max-width: 620px; 1655 - margin: 0 0 30px; 1656 - padding: 0; 1657 - display: grid; 1658 - grid-template-columns: repeat(2, minmax(0, 1fr)); 1659 - gap: 10px 24px; 1660 - list-style: none; 1661 - color: #475569; 1662 - font-size: 15px; 1663 - text-align: left; 1664 -} 1665 - 1666 -#mainContentArea .hero.hero-saas .benefits li { 1667 - display: grid; 1668 - grid-template-columns: 18px minmax(0, 1fr); 1669 - column-gap: 8px; 1670 - align-items: start; 1671 - margin: 0; 1672 - line-height: 1.45; 1673 -} 1674 - 1675 -#mainContentArea .hero.hero-saas .benefits li::before { 1676 - content: "✓"; 1677 - display: block; 1678 - width: 18px; 1679 - color: @brand; 1680 - font-weight: 900; 1681 - line-height: 1.45; 1682 - text-align: left; 1683 - margin: 0; 1684 -} 1685 - 1686 -#mainContentArea .hero.hero-saas .hero-actions, 1687 -#mainContentArea .hero.hero-saas #hero-cta { 1688 - display: flex; 1689 - flex-wrap: wrap; 1690 - justify-content: flex-start; 1691 - gap: 12px; 1692 - margin-top: 0; 1693 -} 1694 - 1695 -#mainContentArea .hero-image-wrapper { 1696 - min-width: 0; 1697 - display: flex; 1698 - justify-content: center; 1699 - align-items: center; 1700 -} 1701 - 1702 -#mainContentArea .hero-image { 1703 - display: block; 1704 - width: 100%; 1705 - max-width: 620px; 1706 - height: auto; 1707 - border: 0; 1708 -} 1709 - 1710 -/* ========== Main Page Hero Responsive ========== */ 1711 - 1712 -@media (max-width: 1100px) { 1713 - #mainContentArea .hero-layout { 1714 - max-width: 760px; 1715 - grid-template-columns: 1fr; 1716 - gap: 34px; 1717 - } 1718 - 1719 - #mainContentArea .hero-copy { 1720 - order: 1; 1721 - text-align: center; 1722 - } 1723 - 1724 - #mainContentArea .hero-image-wrapper { 1725 - order: 2; 1726 - } 1727 - 1728 - #mainContentArea .hero.hero-saas h1 { 1729 - margin-left: auto; 1730 - margin-right: auto; 1731 - text-align: center; 1732 - } 1733 - 1734 - #mainContentArea .hero.hero-saas .lead { 1735 - margin-left: auto; 1736 - margin-right: auto; 1737 - text-align: center; 1738 - } 1739 - 1740 - #mainContentArea .hero.hero-saas .benefits { 1741 - margin-left: auto; 1742 - margin-right: auto; 1743 - } 1744 - 1745 - #mainContentArea .hero.hero-saas .hero-actions, 1746 - #mainContentArea .hero.hero-saas #hero-cta { 1747 - justify-content: center; 1748 - } 1749 - 1750 - #mainContentArea .hero-image { 1751 - max-width: 620px; 1752 - } 1753 -} 1754 - 1755 -@media (max-width: 640px) { 1756 - #mainContentArea .hero.hero-saas { 1757 - padding: 42px 0 28px; 1758 - } 1759 - 1760 - #mainContentArea .hero-layout { 1761 - gap: 28px; 1762 - } 1763 - 1764 - #mainContentArea .hero.hero-saas h1 { 1765 - font-size: 42px; 1766 - letter-spacing: -1.5px; 1767 - } 1768 - 1769 - #mainContentArea .hero.hero-saas .lead { 1770 - font-size: 17px; 1771 - } 1772 - 1773 - #mainContentArea .hero.hero-saas .benefits { 1774 - grid-template-columns: 1fr; 1775 - } 1776 - 1777 - #mainContentArea .hero-image { 1778 - max-width: 100%; 1779 - } 1780 -} 1781 - 1782 -/* ========== Accessibility / Contrast Improvements ========== */ 1783 - 1784 -/* Keep the article area readable while preserving the page background around it. */ 1785 -/*#mainContentArea .resource-layout { 1786 - padding: 28px; 1787 - border: 1px solid fade(@line, 85%); 1788 - border-radius: @radius; 1789 - background: rgba(255, 255, 255, .88); 1790 - box-shadow: @shadow-sm; 1791 -}*/ 1792 - 1793 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */ 1794 -#mainContentArea .widget, 1795 -#mainContentArea .pathway-card, 1796 -#mainContentArea .service-card, 1797 -#mainContentArea .resource-card, 1798 -#mainContentArea .services .service, 1799 -#mainContentArea .product-card, 1800 -#mainContentArea .product-feature, 1801 -#mainContentArea .product-summary-card, 1802 -#mainContentArea .product-info-card { 1803 - background: #fff; 1804 -} 1805 - 1806 -/* Make notes more readable and visually stronger. */ 1807 -#mainContentArea .resource-note { 1808 - border: 1px solid fade(@brand, 18%); 1809 - border-left: 4px solid @brand; 1810 - background: #fff; 1811 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045); 1812 -} 1813 - 1814 -/* Keep the sidebar clearly separated from the background. */ 1815 -#mainContentArea .resource-sidebar { 1816 - background: #fff; 1817 -} 1818 - 1819 -/* Make CTA panels stand out more clearly. */ 1820 -#mainContentArea .resource-cta, 1821 -#mainContentArea .resource-inline-cta { 1822 - background: #fff; 1823 -} 1824 - 1825 -/* Improve table readability on long resource pages. */ 1826 -#mainContentArea .resource-content table { 1827 - background: #fff; 1828 -} 1829 - 1830 -#mainContentArea .resource-content table th { 1831 - color: @text; 1832 - background: #F8FAFC; 1833 -} 1834 - 1835 -#mainContentArea .resource-content table td { 1836 - color: @text-soft; 1837 -} 1838 - 1839 -/* Slightly improve paragraph/list contrast in long articles. */ 1840 -#mainContentArea .resource-content p, 1841 -#mainContentArea .resource-content li { 1842 - color: @text-soft; 1843 -} 1844 - 1845 -#mainContentArea .resource-content .resource-note p, 1846 -#mainContentArea .resource-content .resource-checklist li, 1847 -#mainContentArea .resource-content .process-list li { 1848 - color: @muted; 1849 -} 1850 - 1851 -@media (max-width: 900px) { 1852 - #mainContentArea .resource-layout { 1853 - padding: 22px; 1854 - } 1855 -} 1856 - 1857 -@media (max-width: 640px) { 1858 - #mainContentArea .resource-layout { 1859 - padding: 18px; 1860 - border-radius: 14px; 1861 - } 1862 -} 1863 - 1864 - 1638 + */ 1639 +/* Keep large panels readable, but remove their inner gradients. 1640 +.industry-trust-section .industry-trust-panel, 1641 +.cta-panel, 1642 +.resource-inline-cta, 1643 +.resource-note, 1644 +.resource-cta { 1645 + background: #fff !important; 1646 + background-image: none !important; 1647 +} */