Changes for page Public Web Site

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

From version 29.2
edited by Agnease
on 2026/07/03 15:23
Change comment: There is no comment for this version
To version 25.19
edited by Agnease
on 2026/06/30 11:14
Change comment: There is no comment for this version

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
... ... @@ -23,7 +23,7 @@
23 23  @radius: 18px;
24 24  @shadow-sm: 0 18px 45px rgba(15, 23, 42, .06);
25 25  @shadow: 0 30px 80px rgba(15, 23, 42, .12);
26 -@maxw: 1140px;
26 +@maxw: 1240px;
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 {
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 ========== */
... ... @@ -179,6 +179,9 @@
179 179  
180 180   &.hero-centered {
181 181   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%);
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;
264 + 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 {
337 + 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;
533 + 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;
621 + background: #fff;
609 609   border: 1px solid @line;
610 610   border-radius: @radius;
611 611   box-shadow: @shadow-sm;
... ... @@ -738,7 +738,7 @@
738 738  /* ========== CTA ========== */
739 739  
740 740  .cta-section {
741 - padding: 44px 0 56px;
754 + padding: @section-padding;
742 742  
743 743   .contact-inline {
744 744   margin: 0;
... ... @@ -748,68 +748,69 @@
748 748   color: @brand;
749 749   }
750 750   }
764 +}
751 751  
752 - .cta-panel {
753 - position: relative;
754 - overflow: hidden;
755 - max-width: 1040px;
756 - margin: 0 auto;
757 - padding: 48px 40px;
758 - border: 0;
759 - border-radius: 26px;
760 - background:
761 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
762 - linear-gradient(135deg, @text 0%, @text-soft 100%);
763 - color: #fff;
764 - box-shadow: @shadow;
765 - text-align: center;
766 +.cta-panel {
767 + max-width: 860px;
768 + margin: 0 auto;
769 + padding: 32px;
770 + border-radius: @radius;
771 + border: 1px solid fade(@brand, 20%);
772 + background:
773 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
774 + box-shadow: @shadow-sm;
775 + text-align: center;
766 766  
767 - &::before {
768 - content: "";
769 - position: absolute;
770 - inset: 0;
771 - background:
772 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
773 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
774 - background-size: 48px 48px;
775 - opacity: .4;
776 - pointer-events: none;
777 - }
777 + h2 {
778 + margin-top: 0;
779 + }
778 778  
779 - h2,
780 - p,
781 - .btn {
782 - position: relative;
783 - z-index: 1;
784 - }
781 + p {
782 + color: @muted;
783 + line-height: 1.55;
784 + }
785 +}
785 785  
786 - h2 {
787 - max-width: 760px;
788 - margin: 0 auto 16px;
789 - color: #fff;
790 - }
787 +.resource-inline-cta {
788 + display: flex;
789 + align-items: center;
790 + justify-content: space-between;
791 + gap: 22px;
792 + margin: 30px 0;
793 + padding: 20px 22px;
794 + border: 1px solid fade(@brand, 22%);
795 + border-radius: @radius;
796 + background: @brand-bg;
797 + box-shadow: @shadow-sm;
791 791  
799 + p {
800 + margin: 0;
801 + color: @muted;
802 + line-height: 1.55;
803 + }
804 +
805 + strong {
806 + color: @text;
807 + }
808 +
809 + .btn {
810 + flex-shrink: 0;
811 + }
812 +}
813 +
814 +@media (max-width: 767px) {
815 + .resource-inline-cta {
816 + display: block;
817 + text-align: center;
818 +
792 792   p {
793 - max-width: 760px;
794 - margin: 0 auto 28px;
795 - color: #DBE4EF;
796 - font-size: 16px;
797 - line-height: 1.6;
820 + margin-bottom: 14px;
798 798   }
799 799  
800 - .btn-primary {
801 - border-color: #fff;
802 - background: #fff;
803 - color: @text;
804 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
805 -
806 - &:hover,
807 - &:focus {
808 - border-color: #fff;
809 - background: #fff;
810 - color: @brand-strong;
811 - text-decoration: none;
812 - }
823 + .btn {
824 + display: inline-block;
825 + margin-left: auto;
826 + margin-right: auto;
813 813   }
814 814   }
815 815  }
... ... @@ -901,15 +901,8 @@
901 901   gap: 14px;
902 902   }
903 903  
904 - .cta-section {
905 - .cta-panel {
906 - padding: 30px 22px;
907 - border-radius: 20px;
908 -
909 - .btn-primary {
910 - width: 100%;
911 - }
912 - }
918 + .cta-panel {
919 + padding: 24px 20px;
913 913   }
914 914  }
915 915  
... ... @@ -922,6 +922,9 @@
922 922  .resource-header {
923 923   padding: @section-padding;
924 924   border-top: none;
932 + background:
933 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
934 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
925 925  
926 926   h1 {
927 927   margin: 0 auto 14px;
... ... @@ -1069,6 +1069,7 @@
1069 1069   border: 1px solid @line;
1070 1070   border-radius: @radius;
1071 1071   padding: 18px;
1082 + background: #fff;
1072 1072   box-shadow: @shadow-sm;
1073 1073  
1074 1074   h4 {
... ... @@ -1167,6 +1167,7 @@
1167 1167  
1168 1168  .product-card {
1169 1169   position: relative;
1181 + background: #fff;
1170 1170   border: 1px solid @line;
1171 1171   border-radius: @radius;
1172 1172   box-shadow: @shadow-sm;
... ... @@ -1316,6 +1316,7 @@
1316 1316  .product-info-card,
1317 1317  .product-feature,
1318 1318  .product-gallery-panel {
1331 + background: #fff;
1319 1319   border: 1px solid @line;
1320 1320   border-radius: @radius;
1321 1321   box-shadow: @shadow-sm;
... ... @@ -1558,6 +1558,7 @@
1558 1558  /* ========== Resources Index ========== */
1559 1559  
1560 1560  .resources-index-page {
1574 + background: #fff;
1561 1561  
1562 1562   .services-grid {
1563 1563   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1610,7 +1610,7 @@
1610 1610   background-attachment: fixed;
1611 1611  }
1612 1612  
1613 -/* Let the body background show through the XWiki wrappers.
1627 +/* Let the body background show through the XWiki wrappers. */
1614 1614  #mainContentArea,
1615 1615  .resource-page,
1616 1616  .resources-index-page {
... ... @@ -1617,8 +1617,8 @@
1617 1617   background: transparent !important;
1618 1618   background-image: none !important;
1619 1619  }
1620 -*/
1621 -/* Remove local decorative backgrounds that compete with the global gradient.
1634 +
1635 +/* Remove local decorative backgrounds that compete with the global gradient. */
1622 1622  .hero,
1623 1623  .hero.hero-centered,
1624 1624  .trust-strip,
... ... @@ -1632,8 +1632,8 @@
1632 1632   background: transparent !important;
1633 1633   background-image: none !important;
1634 1634  }
1635 - */
1636 -/* Keep large panels readable, but remove their inner gradients.
1649 +
1650 +/* Keep large panels readable, but remove their inner gradients. */
1637 1637  .industry-trust-section .industry-trust-panel,
1638 1638  .cta-panel,
1639 1639  .resource-inline-cta,
... ... @@ -1641,181 +1641,4 @@
1641 1641  .resource-cta {
1642 1642   background: #fff !important;
1643 1643   background-image: none !important;
1644 -} */
1645 -
1646 -/* ========== Main Page Hero / SaaS Layout ========== */
1647 -
1648 -#mainContentArea .hero.hero-saas {
1649 - min-height: auto;
1650 - padding: 60px 0 34px;
1651 - display: flex;
1652 - align-items: center;
1653 - overflow: hidden;
1654 - background: transparent;
1655 1655  }
1656 -
1657 -#mainContentArea .hero-layout {
1658 - max-width: 1120px;
1659 - margin: 0 auto;
1660 - display: grid;
1661 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1662 - gap: 56px;
1663 - align-items: center;
1664 -}
1665 -
1666 -#mainContentArea .hero-copy {
1667 - min-width: 0;
1668 - text-align: left;
1669 -}
1670 -
1671 -#mainContentArea .hero.hero-saas h1 {
1672 - max-width: 640px;
1673 - margin: 0 0 26px;
1674 - font-size: 60px;
1675 - font-weight: 800;
1676 - line-height: 1;
1677 - letter-spacing: -3px;
1678 -}
1679 -
1680 -#mainContentArea .hero.hero-saas h1 span {
1681 - color: @brand;
1682 -}
1683 -
1684 -#mainContentArea .hero.hero-saas .lead {
1685 - max-width: 590px;
1686 - margin: 0 0 28px;
1687 - color: #334155;
1688 - text-align: left;
1689 - font-size: 18px;
1690 - line-height: 1.6;
1691 -}
1692 -
1693 -#mainContentArea .hero.hero-saas .benefits {
1694 - max-width: 620px;
1695 - margin: 0 0 30px;
1696 - padding: 0;
1697 - display: grid;
1698 - grid-template-columns: repeat(2, minmax(0, 1fr));
1699 - gap: 10px 24px;
1700 - list-style: none;
1701 - color: #475569;
1702 - font-size: 15px;
1703 - text-align: left;
1704 -}
1705 -
1706 -#mainContentArea .hero.hero-saas .benefits li {
1707 - display: grid;
1708 - grid-template-columns: 18px minmax(0, 1fr);
1709 - column-gap: 8px;
1710 - align-items: start;
1711 - margin: 0;
1712 - line-height: 1.45;
1713 -}
1714 -
1715 -#mainContentArea .hero.hero-saas .benefits li::before {
1716 - content: "✓";
1717 - display: block;
1718 - width: 18px;
1719 - color: @brand;
1720 - font-weight: 900;
1721 - line-height: 1.45;
1722 - text-align: left;
1723 - margin: 0;
1724 -}
1725 -
1726 -#mainContentArea .hero.hero-saas .hero-actions,
1727 -#mainContentArea .hero.hero-saas #hero-cta {
1728 - display: flex;
1729 - flex-wrap: wrap;
1730 - justify-content: flex-start;
1731 - gap: 12px;
1732 - margin-top: 0;
1733 -}
1734 -
1735 -#mainContentArea .hero-image-wrapper {
1736 - min-width: 0;
1737 - display: flex;
1738 - justify-content: center;
1739 - align-items: center;
1740 -}
1741 -
1742 -#mainContentArea .hero-image {
1743 - display: block;
1744 - width: 100%;
1745 - max-width: 620px;
1746 - height: auto;
1747 - border: 0;
1748 -}
1749 -
1750 -/* ========== Main Page Hero Responsive ========== */
1751 -
1752 -@media (max-width: 1100px) {
1753 - #mainContentArea .hero-layout {
1754 - max-width: 760px;
1755 - grid-template-columns: 1fr;
1756 - gap: 34px;
1757 - }
1758 -
1759 - #mainContentArea .hero-copy {
1760 - order: 1;
1761 - text-align: center;
1762 - }
1763 -
1764 - #mainContentArea .hero-image-wrapper {
1765 - order: 2;
1766 - }
1767 -
1768 - #mainContentArea .hero.hero-saas h1 {
1769 - margin-left: auto;
1770 - margin-right: auto;
1771 - text-align: center;
1772 - }
1773 -
1774 - #mainContentArea .hero.hero-saas .lead {
1775 - margin-left: auto;
1776 - margin-right: auto;
1777 - text-align: center;
1778 - }
1779 -
1780 - #mainContentArea .hero.hero-saas .benefits {
1781 - margin-left: auto;
1782 - margin-right: auto;
1783 - }
1784 -
1785 - #mainContentArea .hero.hero-saas .hero-actions,
1786 - #mainContentArea .hero.hero-saas #hero-cta {
1787 - justify-content: center;
1788 - }
1789 -
1790 - #mainContentArea .hero-image {
1791 - max-width: 620px;
1792 - }
1793 -}
1794 -
1795 -@media (max-width: 640px) {
1796 - #mainContentArea .hero.hero-saas {
1797 - padding: 42px 0 28px;
1798 - }
1799 -
1800 - #mainContentArea .hero-layout {
1801 - gap: 28px;
1802 - }
1803 -
1804 - #mainContentArea .hero.hero-saas h1 {
1805 - font-size: 42px;
1806 - letter-spacing: -1.5px;
1807 - }
1808 -
1809 - #mainContentArea .hero.hero-saas .lead {
1810 - font-size: 17px;
1811 - }
1812 -
1813 - #mainContentArea .hero.hero-saas .benefits {
1814 - grid-template-columns: 1fr;
1815 - }
1816 -
1817 - #mainContentArea .hero-image {
1818 - max-width: 100%;
1819 - }
1820 -}
1821 -