0 Votes

Changes for page Home

Last modified by Alex Cotiugă on 2026/01/13 13:12

From version 7.49
edited by Alex Cotiugă
on 2025/11/13 12:27
Change comment: There is no comment for this version
To version 7.46
edited by Alex Cotiugă
on 2025/11/13 12:15
Change comment: There is no comment for this version

Summary

Details

XWiki.StyleSheetExtension[0]
Code
... ... @@ -22,7 +22,7 @@
22 22   h2 { font-size: clamp(1.4rem, 1.4vw + .8rem, 2rem); line-height: 1.2; margin: .2rem 0 .4rem; }
23 23   h3 { font-size: 1.12rem; margin: .2rem 0 .25rem; }*/
24 24   .lead { color: @muted; max-width: 72ch; }
25 - .container { max-width: @maxw; margin-top: 5px; padding: 0; overflow-x: clip;}
25 + .container { max-width: @maxw; margin-top: 5px; padding: 0;}
26 26  
27 27   /* Global sections */
28 28   section { padding: 32px 0; border-top: 1px solid @line; }
... ... @@ -179,113 +179,65 @@
179 179   }
180 180  
181 181   /* SERVICES */
182 - .services {
183 - h2 {
184 - margin: 0 0 .3rem;
185 - /* rely on global heading sizing */
186 - }
182 + /* --- Services grid --- */
183 +.services-grid {
184 + display: grid;
185 + grid-template-columns: repeat(2, 1fr);
186 + gap: 32px 36px;
187 +}
187 187  
188 - .services-sub {
189 - margin: 0 0 1.75rem;
190 - color: @muted;
191 - }
189 +/* Service item */
190 +.services-grid > article.service {
191 + display: grid;
192 + grid-template-columns: 48px 1fr;
193 + gap: 16px;
194 + padding: 18px 0;
195 + border-top: 1px solid rgba(0,0,0,0.08);
196 +}
192 192  
193 - /* Grid: two columns, last item spans both */
194 - .services-grid {
195 - display: grid;
196 - grid-template-columns: repeat(2, minmax(0, 1fr));
197 - column-gap: 36px;
198 - row-gap: 32px;
199 - }
198 +/* First row only: remove top border.
199 + Use nth-of-type to avoid XWiki DOM noise changing indexes. */
200 +.services-grid > article.service:nth-of-type(-n + 2) {
201 + border-top: none;
202 +}
200 200  
201 - .service {
202 - display: grid;
203 - grid-template-columns: 48px 1fr;
204 - gap: 16px;
205 - padding: 18px 0;
206 - border-top: 1px solid @line;
204 +/* Icon badge */
205 +.services-grid > article.service > i {
206 + width: 42px;
207 + height: 42px;
208 + border-radius: 50%;
209 + display: flex;
210 + align-items: center;
211 + justify-content: center;
212 + font-size: 18px;
213 + color: #008e78;
214 + background: rgba(0,142,120,0.08);
215 + margin-top: 3px;
216 +}
207 207  
208 - /* first row: no top border */
209 - &:nth-of-type(-n + 2) {
210 - border-top: none;
211 - }
218 +/* Text */
219 +.services-grid .body h3 { margin: 0 0 4px; font-size: 1.125rem; font-weight: 800; }
220 +.services-grid .body p { margin: 0 0 6px; color: #25333b; line-height: 1.5; }
221 +.services-grid .body ul { margin: .45rem 0 0; padding-left: 1.1rem; color: #2d3b43; }
222 +.services-grid .body li { margin: .25rem 0; line-height: 1.45; }
212 212  
213 - /* icon badge */
214 - > i {
215 - width: 42px;
216 - height: 42px;
217 - border-radius: 50%;
218 - display: flex;
219 - align-items: center;
220 - justify-content: center;
221 - font-size: 18px;
222 - color: @brand;
223 - background: fade(@brand, 10%);
224 - margin-top: 3px;
225 - }
224 +/* Last item (Migrations): centered single row */
225 +.services-grid > article.service.service--center {
226 + grid-column: 1 / -1;
227 + max-width: 680px;
228 + justify-self: center;
229 + border-top: 1px solid rgba(0,0,0,0.08);
230 +}
226 226  
227 - .body {
228 - h3 {
229 - margin: 0 0 4px;
230 - font-size: 1.125rem;
231 - font-weight: 800;
232 - }
233 -
234 - p {
235 - margin: 0 0 6px;
236 - color: @text;
237 - line-height: 1.5;
238 - }
239 -
240 - ul {
241 - margin: .45rem 0 0;
242 - padding-left: 1.1rem;
243 - color: @muted;
244 - font-size: .95rem;
245 - }
246 -
247 - li {
248 - margin: .25rem 0;
249 - line-height: 1.45;
250 - }
251 - }
252 -
253 - /* last item (Migrations): centered single row */
254 - &.service--center {
255 - grid-column: 1 / -1;
256 - max-width: 680px;
257 - justify-self: center;
258 - border-top: 1px solid @line; // always show a separator above it
259 - }
260 - }
261 -
262 - /* Responsive */
263 - @media (max-width: 760px) {
264 - .services-grid {
265 - grid-template-columns: 1fr;
266 - row-gap: 20px;
267 - }
268 -
269 - .service {
270 - grid-template-columns: 40px 1fr;
271 -
272 - /* on mobile only the first service has no top border */
273 - &:nth-of-type(1) {
274 - border-top: none;
275 - }
276 -
277 - > i {
278 - width: 36px;
279 - height: 36px;
280 - font-size: 16px;
281 - }
282 -
283 - &.service--center {
284 - max-width: 100%;
285 - }
286 - }
287 - }
288 - }
232 +/* Responsive */
233 +@media (max-width: 760px) {
234 + .services-grid { grid-template-columns: 1fr; gap: 20px; }
235 + .services-grid > article.service { grid-template-columns: 40px 1fr; }
236 + .services-grid > article.service > i { width: 36px; height: 36px; font-size: 16px; }
237 + .services-grid > article.service.service--center { max-width: 100%; }
238 + /* On mobile only the very first service should have no top border */
239 + .services-grid > article.service:nth-of-type(1) { border-top: none; }
240 +}
289 289   /* METRICS */
290 290   .metrics {
291 291   display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr);
... ... @@ -336,6 +336,12 @@
336 336   background-attachment: scroll;
337 337   }
338 338  
291 + /* Fix possible grid or card overshoot */
292 + .container {
293 + max-width: 100%;
294 + overflow-x: clip; /* hides subtle pixel overflow without scroll */
295 + }
296 +
339 339   /* Safety for large paddings/margins that might extend */
340 340   section, .widgets, .services, .metrics, .steps {
341 341   margin-left: auto;