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, 1 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -2,7 +2,45 @@ 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> 5 5 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 +#* 6 6 <section class="hero hero-centered" aria-labelledby="hero-title"> 7 7 <div class="container hero-inner"> 8 8 <h1 id="hero-title">Professional XWiki consulting and engineering</h1> ... ... @@ -26,7 +26,7 @@ 26 26 </div> 27 27 </div> 28 28 </section> 29 - 67 +*# 30 30 <section class="trust-strip" aria-label="Agnease experience"> 31 31 <div class="container"> 32 32 <ul> ... ... @@ -111,9 +111,9 @@ 111 111 </div> 112 112 </section> 113 113 114 - <section class=" industry-trust-section" aria-labelledby="industry-trust-title">152 + <section class="contrast-band" aria-labelledby="industry-trust-title"> 115 115 <div class="container"> 116 - <div class=" industry-trust-panel">154 + <div class="contrast-panel"> 117 117 <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2> 118 118 119 119 <p class="section-intro"> ... ... @@ -121,7 +121,7 @@ 121 121 government institutions, transportation, software development, compliance programs and regulated environments. 122 122 </p> 123 123 124 - <div class=" industry-tags" aria-label="Industries and environments supported">162 + <div class="contrast-tags" aria-label="Industries and environments supported"> 125 125 <span>Healthcare</span> 126 126 <span>Financial services</span> 127 127 <span>Scientific research</span> ... ... @@ -132,7 +132,7 @@ 132 132 <span>Regulated environments</span> 133 133 </div> 134 134 135 - <p class=" industry-support">173 + <p class="contrast-support"> 136 136 Organizations rely on these platforms to manage documentation, workflows, compliance processes, 137 137 research knowledge and critical business information. From upgrades and authentication integrations 138 138 to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
- agnease-xwiki-hero.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Admin - Size
-
... ... @@ -1,0 +1,1 @@ 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,18 +162,12 @@ 162 162 color: #fff; 163 163 } 164 164 } 165 - 165 +*/ 166 166 .btn-secondary { 167 - color: @ brand;167 + color: @text; 168 168 background: #fff; 169 - border: 1px solid fade(@ brand, 35%);169 + border: 1px solid fade(@text, 35%); 170 170 171 - &:hover, 172 - &:focus { 173 - color: @brand-strong; 174 - border-color: @brand; 175 - background: @brand-bg; 176 - } 177 177 } 178 178 179 179 /* ========== Hero ========== */ ... ... @@ -185,9 +185,6 @@ 185 185 186 186 &.hero-centered { 187 187 text-align: center; 188 - background: 189 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 190 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 191 191 display: flex; 192 192 align-items: center; 193 193 justify-content: center; ... ... @@ -256,34 +256,104 @@ 256 256 margin-top: 22px; 257 257 } 258 258 259 -/* ========== TrustStrip========== */250 +/* ========== Contrast Band ========== */ 260 260 261 -.trust-strip { 262 - padding: 18px 0; 263 - border-top: 1px solid @line; 252 +.contrast-band { 253 + position: relative; 254 + overflow: hidden; 255 + padding: 54px 0; 256 + background: 257 + radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%), 258 + radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%), 259 + linear-gradient(135deg, @text 0%, @text-soft 100%); 260 + color: #fff; 264 264 265 - ul { 266 - max-width: 960px; 262 + &::before { 263 + content: ""; 264 + position: absolute; 265 + inset: 0; 266 + background: 267 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 268 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 269 + background-size: 52px 52px; 270 + opacity: .38; 271 + pointer-events: none; 272 + } 273 + 274 + .container { 275 + position: relative; 276 + z-index: 1; 277 + } 278 + 279 + .contrast-panel { 280 + max-width: 1040px; 267 267 margin: 0 auto; 268 - padding: 0; 269 - list-style: none; 270 - display: flex; 271 - justify-content: center; 272 - gap: 22px; 273 - flex-wrap: wrap; 274 - color: @muted; 275 - font-size: 13px; 282 + text-align: center; 276 276 } 277 277 278 - li { 279 - display: flex; 285 + h2 { 286 + max-width: 860px; 287 + margin: 0 auto 12px; 288 + color: #fff; 289 + } 290 + 291 + .section-intro { 292 + max-width: 840px; 293 + margin: 0 auto 26px; 294 + color: #D9E3EE; 295 + } 296 +} 297 + 298 +.contrast-tags { 299 + max-width: 940px; 300 + margin: 0 auto; 301 + display: flex; 302 + flex-wrap: wrap; 303 + justify-content: center; 304 + gap: 10px; 305 + 306 + span { 307 + display: inline-flex; 280 280 align-items: center; 281 - gap: 7px; 309 + padding: 8px 13px; 310 + border: 1px solid fade(#fff, 18%); 311 + border-radius: 999px; 312 + background: fade(#fff, 8%); 313 + color: #F8FAFC; 314 + font-size: 13px; 315 + font-weight: 700; 316 + line-height: 1.2; 317 + 318 + &::before { 319 + content: ""; 320 + width: 7px; 321 + height: 7px; 322 + margin-right: 8px; 323 + border-radius: 50%; 324 + background: @brand; 325 + box-shadow: 0 0 0 4px fade(@brand, 18%); 326 + } 282 282 } 328 +} 283 283 284 - i { 285 - color: @brand; 330 +.contrast-support { 331 + max-width: 860px; 332 + margin: 30px auto 0; 333 + color: #D9E3EE; 334 + text-align: center; 335 + font-size: 15px; 336 + line-height: 1.7; 337 +} 338 + 339 +@media (max-width: 640px) { 340 + .contrast-band { 341 + padding: 40px 0; 286 286 } 343 + 344 + .contrast-tags span { 345 + font-size: 12px; 346 + padding: 8px 11px; 347 + } 287 287 } 288 288 289 289 /* ========== Reusable Grids ========== */ ... ... @@ -333,7 +333,6 @@ 333 333 .pathway-card, 334 334 .service-card, 335 335 .resource-card { 336 - background: #fff; 337 337 border: 1px solid @line; 338 338 border-radius: @radius; 339 339 box-shadow: @shadow-sm; ... ... @@ -529,7 +529,6 @@ 529 529 align-items: flex-start; 530 530 gap: 16px; 531 531 padding: 22px; 532 - background: #fff; 533 533 border: 1px solid @line; 534 534 border-radius: @radius; 535 535 box-shadow: @shadow-sm; ... ... @@ -617,7 +617,6 @@ 617 617 position: relative; 618 618 padding: 16px 16px 16px 58px; 619 619 margin-bottom: 12px; 620 - background: #fff; 621 621 border: 1px solid @line; 622 622 border-radius: @radius; 623 623 box-shadow: @shadow-sm; ... ... @@ -749,8 +749,8 @@ 749 749 750 750 /* ========== CTA ========== */ 751 751 752 -.cta-section { 753 - padding: @section-padding;810 +#mainContentArea .cta-section { 811 + padding: 44px 0 56px; 754 754 755 755 .contact-inline { 756 756 margin: 0; ... ... @@ -762,27 +762,70 @@ 762 762 } 763 763 } 764 764 765 -.cta-panel { 766 - max-width: 860px; 823 +#mainContentArea .cta-panel { 824 + position: relative; 825 + overflow: hidden; 826 + max-width: 1040px; 767 767 margin: 0 auto; 768 - padding: 32px;769 - border -radius:@radius;770 - border : 1px solid fade(@brand,20%);828 + padding: 48px 40px; 829 + border: 0; 830 + border-radius: 26px; 771 771 background: 772 - radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%); 773 - box-shadow: @shadow-sm; 832 + radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%), 833 + linear-gradient(135deg, @text 0%, @text-soft 100%); 834 + color: #fff; 835 + box-shadow: @shadow; 774 774 text-align: center; 837 +} 775 775 776 - h2 { 777 - margin-top: 0; 778 - } 839 +#mainContentArea .cta-panel::before { 840 + content: ""; 841 + position: absolute; 842 + inset: 0; 843 + background: 844 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 845 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 846 + background-size: 48px 48px; 847 + opacity: .4; 848 + pointer-events: none; 849 +} 779 779 780 - p { 781 - color: @muted; 782 - line-height: 1.55; 783 - } 851 +#mainContentArea .cta-panel h2, 852 +#mainContentArea .cta-panel p, 853 +#mainContentArea .cta-panel .btn { 854 + position: relative; 855 + z-index: 1; 784 784 } 785 785 858 +#mainContentArea .cta-panel h2 { 859 + max-width: 760px; 860 + margin: 0 auto 16px; 861 + color: #fff; 862 +} 863 + 864 +#mainContentArea .cta-panel p { 865 + max-width: 760px; 866 + margin: 0 auto 28px; 867 + color: #DBE4EF; 868 + font-size: 16px; 869 + line-height: 1.6; 870 +} 871 + 872 +#mainContentArea .cta-panel .btn-primary { 873 + border-color: #fff; 874 + background: #fff; 875 + color: @text; 876 + box-shadow: 0 18px 42px rgba(0, 0, 0, .18); 877 +} 878 + 879 +#mainContentArea .cta-panel .btn-primary:hover, 880 +#mainContentArea .cta-panel .btn-primary:focus { 881 + border-color: #fff; 882 + background: #fff; 883 + color: @brand-strong; 884 + text-decoration: none; 885 +} 886 + 786 786 .resource-inline-cta { 787 787 display: flex; 788 788 align-items: center; ... ... @@ -914,9 +914,14 @@ 914 914 gap: 14px; 915 915 } 916 916 917 - .cta-panel { 918 - padding: 24px 20px; 1018 + #mainContentArea .cta-panel { 1019 + padding: 30px 22px; 1020 + border-radius: 20px; 919 919 } 1022 + 1023 + #mainContentArea .cta-panel .btn-primary { 1024 + width: 100%; 1025 + } 920 920 } 921 921 922 922 /* ========== Resource / Article Pages ========== */ ... ... @@ -928,9 +928,6 @@ 928 928 .resource-header { 929 929 padding: @section-padding; 930 930 border-top: none; 931 - background: 932 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 933 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 934 934 935 935 h1 { 936 936 margin: 0 auto 14px; ... ... @@ -1078,7 +1078,6 @@ 1078 1078 border: 1px solid @line; 1079 1079 border-radius: @radius; 1080 1080 padding: 18px; 1081 - background: #fff; 1082 1082 box-shadow: @shadow-sm; 1083 1083 1084 1084 h4 { ... ... @@ -1177,7 +1177,6 @@ 1177 1177 1178 1178 .product-card { 1179 1179 position: relative; 1180 - background: #fff; 1181 1181 border: 1px solid @line; 1182 1182 border-radius: @radius; 1183 1183 box-shadow: @shadow-sm; ... ... @@ -1327,7 +1327,6 @@ 1327 1327 .product-info-card, 1328 1328 .product-feature, 1329 1329 .product-gallery-panel { 1330 - background: #fff; 1331 1331 border: 1px solid @line; 1332 1332 border-radius: @radius; 1333 1333 box-shadow: @shadow-sm; ... ... @@ -1570,7 +1570,6 @@ 1570 1570 /* ========== Resources Index ========== */ 1571 1571 1572 1572 .resources-index-page { 1573 - background: #fff; 1574 1574 1575 1575 .services-grid { 1576 1576 grid-template-columns: repeat(2, minmax(0, 1fr)); ... ... @@ -1655,3 +1655,272 @@ 1655 1655 background: #fff !important; 1656 1656 background-image: none !important; 1657 1657 } */ 1757 + 1758 +/* ========== Main Page Hero / SaaS Layout ========== */ 1759 + 1760 +#mainContentArea .hero.hero-saas { 1761 + min-height: auto; 1762 + padding: 60px 0 34px; 1763 + display: flex; 1764 + align-items: center; 1765 + overflow: hidden; 1766 + background: transparent; 1767 +} 1768 + 1769 +#mainContentArea .hero-layout { 1770 + max-width: 1120px; 1771 + margin: 0 auto; 1772 + display: grid; 1773 + grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); 1774 + gap: 56px; 1775 + align-items: center; 1776 +} 1777 + 1778 +#mainContentArea .hero-copy { 1779 + min-width: 0; 1780 + text-align: left; 1781 +} 1782 + 1783 +#mainContentArea .hero.hero-saas h1 { 1784 + max-width: 640px; 1785 + margin: 0 0 26px; 1786 + font-size: 60px; 1787 + font-weight: 800; 1788 + line-height: 1; 1789 + letter-spacing: -3px; 1790 +} 1791 + 1792 +#mainContentArea .hero.hero-saas h1 span { 1793 + color: @brand; 1794 +} 1795 + 1796 +#mainContentArea .hero.hero-saas .lead { 1797 + max-width: 590px; 1798 + margin: 0 0 28px; 1799 + color: #334155; 1800 + text-align: left; 1801 + font-size: 18px; 1802 + line-height: 1.6; 1803 +} 1804 + 1805 +#mainContentArea .hero.hero-saas .benefits { 1806 + max-width: 620px; 1807 + margin: 0 0 30px; 1808 + padding: 0; 1809 + display: grid; 1810 + grid-template-columns: repeat(2, minmax(0, 1fr)); 1811 + gap: 10px 24px; 1812 + list-style: none; 1813 + color: #475569; 1814 + font-size: 15px; 1815 + text-align: left; 1816 +} 1817 + 1818 +#mainContentArea .hero.hero-saas .benefits li { 1819 + display: grid; 1820 + grid-template-columns: 18px minmax(0, 1fr); 1821 + column-gap: 8px; 1822 + align-items: start; 1823 + margin: 0; 1824 + line-height: 1.45; 1825 +} 1826 + 1827 +#mainContentArea .hero.hero-saas .benefits li::before { 1828 + content: "✓"; 1829 + display: block; 1830 + width: 18px; 1831 + color: @brand; 1832 + font-weight: 900; 1833 + line-height: 1.45; 1834 + text-align: left; 1835 + margin: 0; 1836 +} 1837 + 1838 +#mainContentArea .hero.hero-saas .hero-actions, 1839 +#mainContentArea .hero.hero-saas #hero-cta { 1840 + display: flex; 1841 + flex-wrap: wrap; 1842 + justify-content: flex-start; 1843 + gap: 12px; 1844 + margin-top: 0; 1845 +} 1846 + 1847 +#mainContentArea .hero-image-wrapper { 1848 + min-width: 0; 1849 + display: flex; 1850 + justify-content: center; 1851 + align-items: center; 1852 +} 1853 + 1854 +#mainContentArea .hero-image { 1855 + display: block; 1856 + width: 100%; 1857 + max-width: 620px; 1858 + height: auto; 1859 + border: 0; 1860 +} 1861 + 1862 +/* ========== Main Page Hero Responsive ========== */ 1863 + 1864 +@media (max-width: 1100px) { 1865 + #mainContentArea .hero-layout { 1866 + max-width: 760px; 1867 + grid-template-columns: 1fr; 1868 + gap: 34px; 1869 + } 1870 + 1871 + #mainContentArea .hero-copy { 1872 + order: 1; 1873 + text-align: center; 1874 + } 1875 + 1876 + #mainContentArea .hero-image-wrapper { 1877 + order: 2; 1878 + } 1879 + 1880 + #mainContentArea .hero.hero-saas h1 { 1881 + margin-left: auto; 1882 + margin-right: auto; 1883 + text-align: center; 1884 + } 1885 + 1886 + #mainContentArea .hero.hero-saas .lead { 1887 + margin-left: auto; 1888 + margin-right: auto; 1889 + text-align: center; 1890 + } 1891 + 1892 + #mainContentArea .hero.hero-saas .benefits { 1893 + margin-left: auto; 1894 + margin-right: auto; 1895 + } 1896 + 1897 + #mainContentArea .hero.hero-saas .hero-actions, 1898 + #mainContentArea .hero.hero-saas #hero-cta { 1899 + justify-content: center; 1900 + } 1901 + 1902 + #mainContentArea .hero-image { 1903 + max-width: 620px; 1904 + } 1905 +} 1906 + 1907 +@media (max-width: 640px) { 1908 + #mainContentArea .hero.hero-saas { 1909 + padding: 42px 0 28px; 1910 + } 1911 + 1912 + #mainContentArea .hero-layout { 1913 + gap: 28px; 1914 + } 1915 + 1916 + #mainContentArea .hero.hero-saas h1 { 1917 + font-size: 42px; 1918 + letter-spacing: -1.5px; 1919 + } 1920 + 1921 + #mainContentArea .hero.hero-saas .lead { 1922 + font-size: 17px; 1923 + } 1924 + 1925 + #mainContentArea .hero.hero-saas .benefits { 1926 + grid-template-columns: 1fr; 1927 + } 1928 + 1929 + #mainContentArea .hero-image { 1930 + max-width: 100%; 1931 + } 1932 +} 1933 + 1934 +/* ========== Accessibility / Contrast Improvements ========== */ 1935 + 1936 +/* Make the global background softer and less distracting. */ 1937 +body { 1938 + background: 1939 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%), 1940 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%), 1941 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important; 1942 + background-attachment: scroll; 1943 +} 1944 + 1945 +/* Keep the article area readable while preserving the page background around it. */ 1946 +#mainContentArea .resource-layout { 1947 + padding: 28px; 1948 + border: 1px solid fade(@line, 85%); 1949 + border-radius: @radius; 1950 + background: rgba(255, 255, 255, .88); 1951 + box-shadow: @shadow-sm; 1952 +} 1953 + 1954 +/* Ensure all reusable cards have a real surface, not transparent over the gradient. */ 1955 +#mainContentArea .widget, 1956 +#mainContentArea .pathway-card, 1957 +#mainContentArea .service-card, 1958 +#mainContentArea .resource-card, 1959 +#mainContentArea .services .service, 1960 +#mainContentArea .product-card, 1961 +#mainContentArea .product-feature, 1962 +#mainContentArea .product-summary-card, 1963 +#mainContentArea .product-info-card { 1964 + background: #fff; 1965 +} 1966 + 1967 +/* Make notes more readable and visually stronger. */ 1968 +#mainContentArea .resource-note { 1969 + border: 1px solid fade(@brand, 18%); 1970 + border-left: 4px solid @brand; 1971 + background: #fff; 1972 + box-shadow: 0 10px 28px rgba(15, 23, 42, .045); 1973 +} 1974 + 1975 +/* Keep the sidebar clearly separated from the background. */ 1976 +#mainContentArea .resource-sidebar { 1977 + background: #fff; 1978 +} 1979 + 1980 +/* Make CTA panels stand out more clearly. */ 1981 +#mainContentArea .resource-cta, 1982 +#mainContentArea .resource-inline-cta { 1983 + background: #fff; 1984 +} 1985 + 1986 +/* Improve table readability on long resource pages. */ 1987 +#mainContentArea .resource-content table { 1988 + background: #fff; 1989 +} 1990 + 1991 +#mainContentArea .resource-content table th { 1992 + color: @text; 1993 + background: #F8FAFC; 1994 +} 1995 + 1996 +#mainContentArea .resource-content table td { 1997 + color: @text-soft; 1998 +} 1999 + 2000 +/* Slightly improve paragraph/list contrast in long articles. */ 2001 +#mainContentArea .resource-content p, 2002 +#mainContentArea .resource-content li { 2003 + color: @text-soft; 2004 +} 2005 + 2006 +#mainContentArea .resource-content .resource-note p, 2007 +#mainContentArea .resource-content .resource-checklist li, 2008 +#mainContentArea .resource-content .process-list li { 2009 + color: @muted; 2010 +} 2011 + 2012 +@media (max-width: 900px) { 2013 + #mainContentArea .resource-layout { 2014 + padding: 22px; 2015 + } 2016 +} 2017 + 2018 +@media (max-width: 640px) { 2019 + #mainContentArea .resource-layout { 2020 + padding: 18px; 2021 + border-radius: 14px; 2022 + } 2023 +} 2024 + 2025 +