Changes for page Public Web Site

Last modified by Agnease on 2026/05/30 16:24

From version 8.4
edited by Agnease
on 2026/05/12 20:28
Change comment: There is no comment for this version
To version 6.29
edited by Agnease
on 2026/05/12 12:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,7 +7,7 @@
7 7   <div class="container hero-inner">
8 8   <div class="hero-kicker">
9 9   <i class="fa fa-shield" aria-hidden="true"></i>
10 - Your trusted partner for professional XWiki services
10 + XWiki consulting, upgrades and long-term support
11 11   </div>
12 12  
13 13   <h1 id="hero-title">Reliable XWiki engineering for organizations that depend on their knowledge platform</h1>
... ... @@ -70,7 +70,7 @@
70 70   <li>Production rollout validation</li>
71 71   </ul>
72 72   <p class="card-link">
73 - <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
73 + <a href="/services/xwiki-upgrades">View upgrade services</a>
74 74   </p>
75 75   </article>
76 76  
... ... @@ -88,7 +88,7 @@
88 88   <li>Security-aware maintenance</li>
89 89   </ul>
90 90   <p class="card-link">
91 - <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
91 + <a href="/services/xwiki-maintenance-support">View support services</a>
92 92   </p>
93 93   </article>
94 94  
... ... @@ -106,7 +106,7 @@
106 106   <li>SSO, LDAP, APIs and integrations</li>
107 107   </ul>
108 108   <p class="card-link">
109 - <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
109 + <a href="/services/xwiki-development-integrations">View development services</a>
110 110   </p>
111 111   </article>
112 112   </div>
... ... @@ -159,7 +159,7 @@
159 159   <p>
160 160   A business-focused explanation of why regular LTS upgrades reduce security, compatibility and maintenance risk.
161 161   </p>
162 - <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the resource</a>
162 + <a href="/resources/why-upgrade-xwiki">Read the resource</a>
163 163   </article>
164 164  
165 165   <article class="resource-card">
... ... @@ -167,7 +167,7 @@
167 167   <p>
168 168   How Agnease approaches safe XWiki upgrades for real production environments with customizations and integrations.
169 169   </p>
170 - <a href="$xwiki.getURL('services.xwiki-upgrades')">View the service</a>
170 + <a href="/services/xwiki-upgrades">View the service</a>
171 171   </article>
172 172   </div>
173 173   </div>
... ... @@ -231,4 +231,5 @@
231 231   </dl>
232 232   </div>
233 233  #end
234 +#displayPublicContent
234 234  {{/velocity}}
XWiki.StyleSheetExtension[0]
code
... ... @@ -726,495 +726,3 @@
726 726   padding: 24px 20px;
727 727   }
728 728  }
729 -/* ========== Resource / Article Pages ========== */
730 -
731 -.resource-page {
732 - padding-top: 34px;
733 -}
734 -
735 -.resource-header {
736 - padding: 40px 0 30px;
737 - border-top: none;
738 - background:
739 - radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%);
740 -
741 - .resource-kicker {
742 - display: inline-flex;
743 - align-items: center;
744 - gap: 8px;
745 - color: @brand;
746 - background: fade(@brand, 8%);
747 - border: 1px solid fade(@brand, 18%);
748 - border-radius: 999px;
749 - padding: 6px 12px;
750 - margin-bottom: 14px;
751 - font-size: 13px;
752 - font-weight: 700;
753 - }
754 -
755 - h1 {
756 - max-width: 820px;
757 - margin: 0 auto 14px;
758 - text-align: center;
759 - line-height: 1.18;
760 - }
761 -
762 - .resource-summary {
763 - max-width: 780px;
764 - margin: 0 auto;
765 - color: @muted;
766 - text-align: center;
767 - font-size: 18px;
768 - line-height: 1.55;
769 - }
770 -}
771 -
772 -.resource-layout {
773 - display: grid;
774 - grid-template-columns: minmax(0, 760px) 280px;
775 - gap: 42px;
776 - max-width: 1080px;
777 - margin: 0 auto;
778 - align-items: start;
779 -}
780 -
781 -.resource-content {
782 - color: @text;
783 - font-size: 16px;
784 - line-height: 1.68;
785 -
786 - h2 {
787 - text-align: left;
788 - margin: 34px 0 12px;
789 - line-height: 1.28;
790 - }
791 -
792 - h3 {
793 - margin: 24px 0 8px;
794 - line-height: 1.3;
795 - }
796 -
797 - p {
798 - margin: 0 0 16px;
799 - }
800 -
801 - ul,
802 - ol {
803 - margin: 0 0 18px;
804 - padding-left: 22px;
805 - }
806 -
807 - li {
808 - margin: 6px 0;
809 - }
810 -
811 - strong {
812 - color: @text;
813 - }
814 -}
815 -
816 -.resource-note {
817 - border-left: 4px solid @brand;
818 - background: @brand-bg;
819 - padding: 16px 18px;
820 - margin: 22px 0;
821 - border-radius: 0 @radius @radius 0;
822 -
823 - p:last-child {
824 - margin-bottom: 0;
825 - }
826 -}
827 -
828 -.resource-checklist {
829 - margin: 18px 0 24px;
830 - padding: 0;
831 - list-style: none;
832 -
833 - li {
834 - position: relative;
835 - padding: 10px 0 10px 34px;
836 - border-bottom: 1px solid @line;
837 -
838 - &:before {
839 - content: "\f00c";
840 - font-family: FontAwesome;
841 - position: absolute;
842 - left: 0;
843 - top: 11px;
844 - color: @brand;
845 - }
846 - }
847 -}
848 -
849 -.resource-sidebar {
850 - position: sticky;
851 - top: 96px;
852 - border: 1px solid @line;
853 - border-radius: @radius;
854 - padding: 18px;
855 - background: #fff;
856 - box-shadow: @shadow-sm;
857 -
858 - h4 {
859 - margin: 0 0 10px;
860 - }
861 -
862 - ul {
863 - margin: 0;
864 - padding-left: 18px;
865 - color: @muted;
866 - }
867 -
868 - li {
869 - margin: 8px 0;
870 - }
871 -
872 - a {
873 - color: @brand;
874 - font-weight: 600;
875 - }
876 -}
877 -
878 -.resource-cta {
879 - margin-top: 36px;
880 - padding: 22px;
881 - border: 1px solid fade(@brand, 20%);
882 - border-radius: @radius;
883 - background: @brand-bg;
884 -
885 - h3 {
886 - margin-top: 0;
887 - }
888 -
889 - p {
890 - color: @muted;
891 - }
892 -}
893 -
894 -@media (max-width: 900px) {
895 - .resource-layout {
896 - grid-template-columns: 1fr;
897 - }
898 -
899 - .resource-sidebar {
900 - position: static;
901 - }
902 -}
903 -/* ========== Products / Extensions Pages ========== */
904 -.product-card-kicker {
905 - margin-bottom: 10px;
906 - padding: 5px 10px;
907 - font-size: 12px;
908 - text-transform: uppercase;
909 - letter-spacing: .04em;
910 -}
911 -
912 -.product-index-section {
913 - padding: 52px 0 56px;
914 -
915 - h2 {
916 - margin-bottom: 10px;
917 - }
918 -}
919 -
920 -.product-card-grid {
921 - max-width: 840px;
922 - margin: 28px auto 0;
923 - display: grid;
924 - grid-template-columns: 1fr;
925 - grid-gap: 18px;
926 -}
927 -
928 -.product-card {
929 - background: #fff;
930 - border: 1px solid @line;
931 - border-radius: @radius;
932 - box-shadow: @shadow-sm;
933 - padding: 28px;
934 - display: grid;
935 - grid-template-columns: 68px 1fr;
936 - grid-gap: 22px;
937 - align-items: start;
938 - transition: transform .18s ease, box-shadow .18s ease;
939 -
940 - &:hover {
941 - transform: translateY(-2px);
942 - box-shadow: @shadow;
943 - }
944 -
945 - .product-card-icon {
946 - width: 58px;
947 - height: 58px;
948 - border-radius: 50%;
949 - background: fade(@brand, 10%);
950 - border: 1px solid fade(@brand, 20%);
951 - color: @brand;
952 - display: flex;
953 - align-items: center;
954 - justify-content: center;
955 - font-size: 22px;
956 - flex-shrink: 0;
957 - }
958 -
959 - h3 {
960 - margin: 0 0 10px;
961 - color: @text;
962 - font-size: 23px;
963 - line-height: 1.25;
964 - font-weight: 800;
965 - }
966 -
967 - p {
968 - color: @muted;
969 - line-height: 1.6;
970 - }
971 -
972 - .card-link {
973 - margin: 0;
974 -
975 - a {
976 - font-weight: 700;
977 - }
978 - }
979 -}
980 -
981 -.product-highlights {
982 - margin: 14px 0 20px;
983 - padding-left: 18px;
984 - color: @muted;
985 -
986 - li {
987 - margin: 6px 0;
988 - line-height: 1.45;
989 - }
990 -}
991 -
992 -.product-cta-section {
993 - padding: 0 0 56px;
994 - border-top: 1px solid @line;
995 -}
996 -
997 -.product-cta-panel {
998 - max-width: 860px;
999 - margin: 0 auto;
1000 - padding: 32px;
1001 - border-radius: @radius;
1002 - border: 1px solid fade(@brand, 20%);
1003 - background:
1004 - radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
1005 - box-shadow: @shadow-sm;
1006 - text-align: center;
1007 -
1008 - h2 {
1009 - margin-top: 0;
1010 - }
1011 -
1012 - p {
1013 - max-width: 680px;
1014 - margin: 0 auto 18px;
1015 - color: @muted;
1016 - line-height: 1.55;
1017 - }
1018 -}
1019 -
1020 -/* ========== Individual Product Pages ========== */
1021 -
1022 -.product-hero {
1023 - min-height: 330px;
1024 -}
1025 -
1026 -.product-layout {
1027 - display: grid;
1028 - grid-template-columns: 1.1fr .9fr;
1029 - grid-gap: 36px;
1030 - max-width: 1040px;
1031 - margin: 0 auto;
1032 - align-items: start;
1033 -}
1034 -
1035 -.product-summary-card,
1036 -.product-info-card,
1037 -.product-gallery-panel {
1038 - background: #fff;
1039 - border: 1px solid @line;
1040 - border-radius: @radius;
1041 - box-shadow: @shadow-sm;
1042 -}
1043 -
1044 -.product-summary-card {
1045 - padding: 26px;
1046 -
1047 - h2 {
1048 - text-align: left;
1049 - margin-top: 0;
1050 - }
1051 -
1052 - p {
1053 - color: @muted;
1054 - line-height: 1.6;
1055 - }
1056 -
1057 - p:last-child {
1058 - margin-bottom: 0;
1059 - }
1060 -}
1061 -
1062 -.product-info-card {
1063 - padding: 22px;
1064 -
1065 - h3 {
1066 - margin-top: 0;
1067 - margin-bottom: 12px;
1068 - }
1069 -
1070 - ul {
1071 - margin: 0;
1072 - padding-left: 20px;
1073 - color: @muted;
1074 - }
1075 -
1076 - li {
1077 - margin: 8px 0;
1078 - line-height: 1.45;
1079 - }
1080 -}
1081 -
1082 -.product-feature-grid {
1083 - display: grid;
1084 - grid-template-columns: repeat(3, minmax(0, 1fr));
1085 - grid-gap: 18px;
1086 - max-width: 1040px;
1087 - margin: 26px auto 0;
1088 -}
1089 -
1090 -.product-feature {
1091 - background: #fff;
1092 - border: 1px solid @line;
1093 - border-radius: @radius;
1094 - box-shadow: @shadow-sm;
1095 - padding: 22px;
1096 - transition: transform .18s ease, box-shadow .18s ease;
1097 -
1098 - &:hover {
1099 - transform: translateY(-2px);
1100 - box-shadow: @shadow;
1101 - }
1102 -
1103 - .feature-icon {
1104 - width: 46px;
1105 - height: 46px;
1106 - border-radius: 50%;
1107 - background: fade(@brand, 10%);
1108 - color: @brand;
1109 - display: flex;
1110 - align-items: center;
1111 - justify-content: center;
1112 - margin-bottom: 14px;
1113 - font-size: 18px;
1114 - }
1115 -
1116 - h3 {
1117 - margin: 0 0 8px;
1118 - color: @text;
1119 - font-size: 18px;
1120 - line-height: 1.25;
1121 - }
1122 -
1123 - p {
1124 - margin: 0;
1125 - color: @muted;
1126 - line-height: 1.5;
1127 - }
1128 -}
1129 -
1130 -.product-gallery-panel {
1131 - max-width: 1040px;
1132 - margin: 20px auto 0;
1133 - padding: 26px;
1134 -
1135 - h2 {
1136 - margin-top: 0;
1137 - text-align: center;
1138 - }
1139 -
1140 - .gallery-note {
1141 - max-width: 700px;
1142 - margin: 0 auto 18px;
1143 - color: @muted;
1144 - text-align: center;
1145 - line-height: 1.55;
1146 - }
1147 -}
1148 -
1149 -.product-gallery-placeholder {
1150 - min-height: 260px;
1151 - padding: 28px;
1152 - border: 1px dashed fade(@brand, 40%);
1153 - border-radius: @radius;
1154 - background: fade(@brand, 5%);
1155 - color: @muted;
1156 - text-align: center;
1157 - display: flex;
1158 - align-items: center;
1159 - justify-content: center;
1160 -}
1161 -
1162 -.product-section-muted {
1163 - background:
1164 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1165 -}
1166 -
1167 -.product-use-cases {
1168 - ul {
1169 - margin: 0;
1170 - padding-left: 20px;
1171 - color: @muted;
1172 - }
1173 -
1174 - li {
1175 - margin: 8px 0;
1176 - line-height: 1.5;
1177 - }
1178 -}
1179 -
1180 -@media (max-width: 980px) {
1181 - .product-layout,
1182 - .product-feature-grid {
1183 - grid-template-columns: 1fr;
1184 - }
1185 -
1186 - .product-summary-card h2 {
1187 - text-align: center;
1188 - }
1189 -}
1190 -
1191 -@media (max-width: 640px) {
1192 - .product-index-hero {
1193 - padding: 38px 0 34px;
1194 -
1195 - .page-lead {
1196 - font-size: 17px;
1197 - }
1198 - }
1199 -
1200 - .product-card {
1201 - grid-template-columns: 1fr;
1202 - padding: 22px;
1203 - text-align: left;
1204 -
1205 - .product-card-icon {
1206 - margin-bottom: 2px;
1207 - }
1208 - }
1209 -
1210 - .product-summary-card,
1211 - .product-info-card,
1212 - .product-feature,
1213 - .product-gallery-panel {
1214 - padding: 20px;
1215 - }
1216 -
1217 - .product-cta-panel {
1218 - padding: 24px 20px;
1219 - }
1220 -}
XWiki.StyleSheetExtension[1]
cache
... ... @@ -1,1 +1,0 @@
1 -long
code
... ... @@ -1,156 +1,0 @@
1 -/* ========== Agnease Public Top Menu ========== */
2 -
3 -@brand: #00937D;
4 -@brand-strong: #007B6A;
5 -@text: #2D3A34;
6 -@muted: #5B6B64;
7 -@line: #E4ECE9;
8 -@brand-bg: #F4FCFA;
9 -
10 -/* Top-level menu items */
11 -
12 -.agnease-services-menu,
13 -.agnease-products-menu {
14 - .dropdown-toggle {
15 - font-weight: inherit;
16 - font-size: inherit;
17 - }
18 -
19 - .caret {
20 - margin-left: 4px;
21 - }
22 -
23 - &.open > .dropdown-toggle,
24 - .dropdown-toggle:hover,
25 - .dropdown-toggle:focus {
26 - color: @brand-strong;
27 - background: transparent;
28 - background-color: transparent;
29 - box-shadow: none;
30 - }
31 -}
32 -
33 -/* Keep Agnease public top-level menu visually clean when hovered/open/focused */
34 -
35 -.navbar-nav > li.agnease-services-menu > a,
36 -.navbar-nav > li.agnease-products-menu > a,
37 -.navbar-nav > li.agnease-services-menu > a:hover,
38 -.navbar-nav > li.agnease-products-menu > a:hover,
39 -.navbar-nav > li.agnease-services-menu > a:focus,
40 -.navbar-nav > li.agnease-products-menu > a:focus,
41 -.navbar-nav > li.agnease-services-menu.open > a,
42 -.navbar-nav > li.agnease-products-menu.open > a,
43 -.navbar-nav > li.agnease-services-menu.open > a:hover,
44 -.navbar-nav > li.agnease-products-menu.open > a:hover,
45 -.navbar-nav > li.agnease-services-menu.open > a:focus,
46 -.navbar-nav > li.agnease-products-menu.open > a:focus {
47 - background: transparent;
48 - background-color: transparent;
49 - color: @brand-strong;
50 - box-shadow: none;
51 -}
52 -
53 -/* Dropdown panels */
54 -
55 -.agnease-services-dropdown,
56 -.agnease-products-dropdown {
57 - min-width: 360px;
58 - padding: 10px;
59 - border: 1px solid @line;
60 - border-radius: 12px;
61 - box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
62 -
63 - > li > a {
64 - display: flex;
65 - align-items: flex-start;
66 - gap: 12px;
67 - padding: 10px 12px;
68 - border-radius: 10px;
69 - color: @text;
70 - white-space: normal;
71 -
72 - &:hover,
73 - &:focus {
74 - color: @brand-strong;
75 - background: @brand-bg;
76 - text-decoration: none;
77 -
78 - .menu-icon {
79 - color: @brand-strong;
80 - background: fade(@brand, 14%);
81 - border-color: fade(@brand, 28%);
82 - }
83 -
84 - strong {
85 - color: @brand-strong;
86 - }
87 -
88 - small {
89 - color: @muted;
90 - }
91 - }
92 - }
93 -
94 - .divider {
95 - margin: 8px 0;
96 - background-color: @line;
97 - }
98 -
99 - .menu-icon {
100 - width: 34px;
101 - height: 34px;
102 - border-radius: 50%;
103 - background: fade(@brand, 8%);
104 - border: 1px solid fade(@brand, 18%);
105 - color: @brand;
106 - display: flex;
107 - align-items: center;
108 - justify-content: center;
109 - flex-shrink: 0;
110 - transition: color .15s ease, background .15s ease, border-color .15s ease;
111 - }
112 -
113 - .menu-text {
114 - display: flex;
115 - flex-direction: column;
116 - line-height: 1.25;
117 -
118 - strong {
119 - color: @brand;
120 - font-size: 14px;
121 - font-weight: 600;
122 - }
123 -
124 - small {
125 - color: @muted;
126 - font-size: 12px;
127 - margin-top: 2px;
128 - font-weight: 400;
129 - }
130 - }
131 -}
132 -
133 -/* Products dropdown can be slightly narrower for now */
134 -
135 -.agnease-products-dropdown {
136 - min-width: 340px;
137 -}
138 -
139 -/* Mobile */
140 -
141 -@media (max-width: 767px) {
142 - .agnease-services-dropdown,
143 - .agnease-products-dropdown {
144 - min-width: 0;
145 - width: 100%;
146 - padding: 6px;
147 - border-radius: 0;
148 - border-left: 0;
149 - border-right: 0;
150 - box-shadow: none;
151 -
152 - > li > a {
153 - padding: 10px;
154 - }
155 - }
156 -}
contentType
... ... @@ -1,1 +1,0 @@
1 -LESS
name
... ... @@ -1,1 +1,0 @@
1 -Menu
use
... ... @@ -1,1 +1,0 @@
1 -onDemand