Changes for page Public Web Site

Last modified by Agnease on 2026/07/03 16:14

From version 28.10
edited by Agnease
on 2026/07/03 12:00
Change comment: There is no comment for this version
To version 25.1
edited by Agnease
on 2026/06/29 13:22
Change comment: Imported from XAR

Summary

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>
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
... ... @@ -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;
... ... @@ -150,7 +150,7 @@
150 150  
151 151  /* ========== Buttons ========== */
152 152  
153 -/*.btn-primary {
140 +.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 -*/
152 +
166 166  .btn-secondary {
167 - color: @text;
154 + color: @brand;
168 168   background: #fff;
169 - border: 1px solid fade(@text, 35%);
156 + border: 1px solid fade(@brand, 35%);
170 170  
158 + &:hover,
159 + &:focus {
160 + color: @brand-strong;
161 + border-color: @brand;
162 + background: @brand-bg;
163 + }
171 171  }
172 172  
173 173  /* ========== Hero ========== */
... ... @@ -179,6 +179,9 @@
179 179  
180 180   &.hero-centered {
181 181   text-align: center;
175 + background:
176 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
177 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
182 182   display: flex;
183 183   align-items: center;
184 184   justify-content: center;
... ... @@ -252,6 +252,7 @@
252 252  .trust-strip {
253 253   padding: 18px 0;
254 254   border-top: 1px solid @line;
251 + background: #fff;
255 255  
256 256   ul {
257 257   max-width: 960px;
... ... @@ -324,6 +324,7 @@
324 324  .pathway-card,
325 325  .service-card,
326 326  .resource-card {
324 + background: #fff;
327 327   border: 1px solid @line;
328 328   border-radius: @radius;
329 329   box-shadow: @shadow-sm;
... ... @@ -519,6 +519,7 @@
519 519   align-items: flex-start;
520 520   gap: 16px;
521 521   padding: 22px;
520 + background: #fff;
522 522   border: 1px solid @line;
523 523   border-radius: @radius;
524 524   box-shadow: @shadow-sm;
... ... @@ -606,6 +606,7 @@
606 606   position: relative;
607 607   padding: 16px 16px 16px 58px;
608 608   margin-bottom: 12px;
608 + background: #fff;
609 609   border: 1px solid @line;
610 610   border-radius: @radius;
611 611   box-shadow: @shadow-sm;
... ... @@ -756,6 +756,8 @@
756 756   padding: 32px;
757 757   border-radius: @radius;
758 758   border: 1px solid fade(@brand, 20%);
759 + background:
760 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
759 759   box-shadow: @shadow-sm;
760 760   text-align: center;
761 761  
... ... @@ -914,6 +914,9 @@
914 914  .resource-header {
915 915   padding: @section-padding;
916 916   border-top: none;
919 + background:
920 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
921 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
917 917  
918 918   h1 {
919 919   margin: 0 auto 14px;
... ... @@ -1061,6 +1061,7 @@
1061 1061   border: 1px solid @line;
1062 1062   border-radius: @radius;
1063 1063   padding: 18px;
1069 + background: #fff;
1064 1064   box-shadow: @shadow-sm;
1065 1065  
1066 1066   h4 {
... ... @@ -1159,6 +1159,7 @@
1159 1159  
1160 1160  .product-card {
1161 1161   position: relative;
1168 + background: #fff;
1162 1162   border: 1px solid @line;
1163 1163   border-radius: @radius;
1164 1164   box-shadow: @shadow-sm;
... ... @@ -1308,6 +1308,7 @@
1308 1308  .product-info-card,
1309 1309  .product-feature,
1310 1310  .product-gallery-panel {
1318 + background: #fff;
1311 1311   border: 1px solid @line;
1312 1312   border-radius: @radius;
1313 1313   box-shadow: @shadow-sm;
... ... @@ -1550,6 +1550,7 @@
1550 1550  /* ========== Resources Index ========== */
1551 1551  
1552 1552  .resources-index-page {
1561 + background: #fff;
1553 1553  
1554 1554   .services-grid {
1555 1555   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1585,259 +1585,3 @@
1585 1585   color: @muted;
1586 1586   }
1587 1587  }
1588 -
1589 -/* ========== Global Theme Background ========== */
1590 -
1591 -html,
1592 -body {
1593 - min-height: 100%;
1594 -}
1595 -
1596 -body {
1597 - color: @text;
1598 - background:
1599 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1600 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1601 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1602 - background-attachment: fixed;
1603 -}
1604 -
1605 -/* Let the body background show through the XWiki wrappers.
1606 -#mainContentArea,
1607 -.resource-page,
1608 -.resources-index-page {
1609 - background: transparent !important;
1610 - background-image: none !important;
1611 -}
1612 -*/
1613 -/* Remove local decorative backgrounds that compete with the global gradient.
1614 -.hero,
1615 -.hero.hero-centered,
1616 -.trust-strip,
1617 -.industry-trust-section,
1618 -.split-section,
1619 -.resource-strip,
1620 -.homepage-resource-strip,
1621 -.resource-header,
1622 -.product-section-muted,
1623 -.resources-index-page {
1624 - background: transparent !important;
1625 - background-image: none !important;
1626 -}
1627 - */
1628 -/* Keep large panels readable, but remove their inner gradients.
1629 -.industry-trust-section .industry-trust-panel,
1630 -.cta-panel,
1631 -.resource-inline-cta,
1632 -.resource-note,
1633 -.resource-cta {
1634 - background: #fff !important;
1635 - background-image: none !important;
1636 -} */
1637 -
1638 -/* ========== Main Page Hero / SaaS Layout ========== */
1639 -
1640 -#mainContentArea .hero.hero-saas {
1641 - min-height: auto;
1642 - padding: 60px 0 34px;
1643 - display: flex;
1644 - align-items: center;
1645 - overflow: hidden;
1646 - background: transparent;
1647 -}
1648 -
1649 -#mainContentArea .hero-layout {
1650 - max-width: 1120px;
1651 - margin: 0 auto;
1652 - display: grid;
1653 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1654 - gap: 56px;
1655 - align-items: center;
1656 -}
1657 -
1658 -#mainContentArea .hero-copy {
1659 - min-width: 0;
1660 - text-align: left;
1661 -}
1662 -
1663 -#mainContentArea .hero.hero-saas h1 {
1664 - max-width: 640px;
1665 - margin: 0 0 26px;
1666 - font-size: 60px;
1667 - font-weight: 800;
1668 - line-height: 1;
1669 - letter-spacing: -3px;
1670 -}
1671 -
1672 -#mainContentArea .hero.hero-saas h1 span {
1673 - color: @brand;
1674 -}
1675 -
1676 -#mainContentArea .hero.hero-saas .lead {
1677 - max-width: 590px;
1678 - margin: 0 0 28px;
1679 - color: #334155;
1680 - text-align: left;
1681 - font-size: 18px;
1682 - line-height: 1.6;
1683 -}
1684 -
1685 -#mainContentArea .hero.hero-saas .benefits {
1686 - max-width: 620px;
1687 - margin: 0 0 30px;
1688 - padding: 0;
1689 - display: grid;
1690 - grid-template-columns: repeat(2, minmax(0, 1fr));
1691 - gap: 10px 24px;
1692 - list-style: none;
1693 - color: #475569;
1694 - font-size: 15px;
1695 - text-align: left;
1696 -}
1697 -
1698 -#mainContentArea .hero.hero-saas .benefits li {
1699 - display: grid;
1700 - grid-template-columns: 18px minmax(0, 1fr);
1701 - column-gap: 8px;
1702 - align-items: start;
1703 - margin: 0;
1704 - line-height: 1.45;
1705 -}
1706 -
1707 -#mainContentArea .hero.hero-saas .benefits li::before {
1708 - content: "✓";
1709 - display: block;
1710 - width: 18px;
1711 - color: @brand;
1712 - font-weight: 900;
1713 - line-height: 1.45;
1714 - text-align: left;
1715 - margin: 0;
1716 -}
1717 -
1718 -#mainContentArea .hero.hero-saas .hero-actions,
1719 -#mainContentArea .hero.hero-saas #hero-cta {
1720 - display: flex;
1721 - flex-wrap: wrap;
1722 - justify-content: flex-start;
1723 - gap: 12px;
1724 - margin-top: 0;
1725 -}
1726 -
1727 -#mainContentArea .hero-image-wrapper {
1728 - min-width: 0;
1729 - display: flex;
1730 - justify-content: center;
1731 - align-items: center;
1732 -}
1733 -
1734 -#mainContentArea .hero-image {
1735 - display: block;
1736 - width: 100%;
1737 - max-width: 620px;
1738 - height: auto;
1739 - border: 0;
1740 -}
1741 -
1742 -/* ========== Main Page Hero Responsive ========== */
1743 -
1744 -@media (max-width: 1100px) {
1745 - #mainContentArea .hero-layout {
1746 - max-width: 760px;
1747 - grid-template-columns: 1fr;
1748 - gap: 34px;
1749 - }
1750 -
1751 - #mainContentArea .hero-copy {
1752 - order: 1;
1753 - text-align: center;
1754 - }
1755 -
1756 - #mainContentArea .hero-image-wrapper {
1757 - order: 2;
1758 - }
1759 -
1760 - #mainContentArea .hero.hero-saas h1 {
1761 - margin-left: auto;
1762 - margin-right: auto;
1763 - text-align: center;
1764 - }
1765 -
1766 - #mainContentArea .hero.hero-saas .lead {
1767 - margin-left: auto;
1768 - margin-right: auto;
1769 - text-align: center;
1770 - }
1771 -
1772 - #mainContentArea .hero.hero-saas .benefits {
1773 - margin-left: auto;
1774 - margin-right: auto;
1775 - }
1776 -
1777 - #mainContentArea .hero.hero-saas .hero-actions,
1778 - #mainContentArea .hero.hero-saas #hero-cta {
1779 - justify-content: center;
1780 - }
1781 -
1782 - #mainContentArea .hero-image {
1783 - max-width: 620px;
1784 - }
1785 -}
1786 -
1787 -@media (max-width: 640px) {
1788 - #mainContentArea .hero.hero-saas {
1789 - padding: 42px 0 28px;
1790 - }
1791 -
1792 - #mainContentArea .hero-layout {
1793 - gap: 28px;
1794 - }
1795 -
1796 - #mainContentArea .hero.hero-saas h1 {
1797 - font-size: 42px;
1798 - letter-spacing: -1.5px;
1799 - }
1800 -
1801 - #mainContentArea .hero.hero-saas .lead {
1802 - font-size: 17px;
1803 - }
1804 -
1805 - #mainContentArea .hero.hero-saas .benefits {
1806 - grid-template-columns: 1fr;
1807 - }
1808 -
1809 - #mainContentArea .hero-image {
1810 - max-width: 100%;
1811 - }
1812 -}
1813 -
1814 -#mainContentArea .resource-content .resources-grid .resource-card {
1815 - display: grid;
1816 - grid-template-columns: 44px minmax(0, 1fr);
1817 - column-gap: 14px;
1818 - align-items: center;
1819 -}
1820 -
1821 -#mainContentArea .resource-content .resources-grid .resource-card .service-icon {
1822 - grid-column: 1;
1823 - grid-row: 1;
1824 - margin: 0;
1825 -}
1826 -
1827 -#mainContentArea .resource-content .resources-grid .resource-card .service-body {
1828 - display: contents;
1829 -}
1830 -
1831 -#mainContentArea .resource-content .resources-grid .resource-card .service-body h4 {
1832 - grid-column: 2;
1833 - grid-row: 1;
1834 - align-self: center;
1835 - margin: 0;
1836 -}
1837 -
1838 -#mainContentArea .resource-content .resources-grid .resource-card .service-body p {
1839 - grid-column: 1 / -1;
1840 - grid-row: 2;
1841 - margin: 14px 0 0;
1842 -}
1843 -