Changes for page Tidy-Lab Cloud Platform

Last modified by Humphrey AI on 2026/03/22 10:27

From version 35.2
edited by Christian Wawrzinek
on 2026/03/19 16:23
Change comment: allow view right for XWiki.XWikiAllGroup
To version 42.1
edited by Humphrey AI
on 2026/03/22 10:25
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.wac
1 +XWiki.humphrey
Content
... ... @@ -33,3 +33,7 @@
33 33  (((
34 34  
35 35  )))
36 +
37 +{{html clean="false"}}
38 +<!-- mail test 2026-03-22 -->
39 +{{/html}}
XWiki.JavaScriptExtension[0]
code
... ... @@ -4,68 +4,20 @@
4 4   var hero = document.querySelector('.tl-hero');
5 5   if (!hero) return;
6 6  
7 - // Collect all chrome elements to fade
8 - var chromeSelectors = [
9 - '#menuview', '#headerglobal', '#hierarchy_breadcrumb',
10 - '.document-header', '#xdocFooter', '#xwikidata',
11 - '#footerglobal', '.skip-nav'
12 - ];
13 - var chromeElements = [];
14 - chromeSelectors.forEach(function(sel) {
15 - var el = document.querySelector(sel);
16 - if (el) chromeElements.push(el);
17 - });
18 -
19 - var wasFading = false;
20 -
7 + // Simple scroll check: toggle tl-scrolled when past the hero
21 21   function onScroll() {
22 22   var heroHeight = hero.offsetHeight;
23 23   var scrollY = window.pageYOffset || document.documentElement.scrollTop;
24 24  
25 - // Start fading at 30% scroll, fully visible at 70%
26 - var fadeStart = heroHeight * 0.3;
27 - var fadeEnd = heroHeight * 0.7;
28 - var progress = 0;
29 -
30 - if (scrollY <= fadeStart) {
31 - progress = 0;
32 - } else if (scrollY >= fadeEnd) {
33 - progress = 1;
34 - } else {
35 - progress = (scrollY - fadeStart) / (fadeEnd - fadeStart);
36 - }
37 -
38 - if (progress > 0 && progress < 1) {
39 - // Fading: switch from display:none to opacity-based
40 - if (!wasFading) {
41 - document.body.classList.add('tl-fading');
42 - document.body.classList.remove('tl-scrolled');
43 - wasFading = true;
44 - }
45 - chromeElements.forEach(function(el) {
46 - el.style.opacity = progress;
47 - });
48 - } else if (progress >= 1) {
49 - // Fully scrolled: restore normal layout
50 - document.body.classList.remove('tl-fading');
12 + if (scrollY >= heroHeight * 0.7) {
51 51   document.body.classList.add('tl-scrolled');
52 - chromeElements.forEach(function(el) {
53 - el.style.opacity = '';
54 - });
55 - wasFading = false;
56 56   } else {
57 - // At top: hide everything
58 - document.body.classList.remove('tl-fading');
59 59   document.body.classList.remove('tl-scrolled');
60 - chromeElements.forEach(function(el) {
61 - el.style.opacity = '';
62 - });
63 - wasFading = false;
64 64   }
65 65   }
66 66  
67 67   window.addEventListener('scroll', onScroll, { passive: true });
68 - onScroll(); // run once on load
20 + onScroll();
69 69  
70 70   // Smooth scroll for the arrow
71 71   var scrollLink = document.querySelector('.tl-hero-scroll');
XWiki.StyleSheetExtension[0]
code
... ... @@ -21,40 +21,21 @@
21 21   }
22 22  
23 23   /* ==========================================================================
24 - Phase 1: HERO VISIBLEhide chrome, full-bleed layout
24 + NAV — always visible, fixed, blends with hero
25 25   ========================================================================== */
26 26  
27 - /* Chrome elements: hidden initially with display:none (no space taken) */
28 - .tl-hero-page:not(.tl-scrolled) #menuview,
29 - .tl-hero-page:not(.tl-scrolled) #headerglobal,
30 - .tl-hero-page:not(.tl-scrolled) #hierarchy_breadcrumb,
31 - .tl-hero-page:not(.tl-scrolled) .document-header,
32 - .tl-hero-page:not(.tl-scrolled) #xdocFooter,
33 - .tl-hero-page:not(.tl-scrolled) #xwikidata,
34 - .tl-hero-page:not(.tl-scrolled) #footerglobal,
35 - .tl-hero-page:not(.tl-scrolled) .skip-nav {
27 + /* Hide hamburger drawer button — empty menu, not needed */
28 + .tl-hero-page #tmDrawerActivator {
36 36   display: none !important;
37 37   }
38 38  
39 - /* When fading in (JS adds tl-fading), switch to opacity-based visibility */
40 - .tl-hero-page.tl-fading #menuview,
41 - .tl-hero-page.tl-fading #headerglobal,
42 - .tl-hero-page.tl-fading #hierarchy_breadcrumb,
43 - .tl-hero-page.tl-fading .document-header,
44 - .tl-hero-page.tl-fading #xdocFooter,
45 - .tl-hero-page.tl-fading #xwikidata,
46 - .tl-hero-page.tl-fading #footerglobal,
47 - .tl-hero-page.tl-fading .skip-nav {
48 - display: block !important;
32 + /* Nav bar logo margin */
33 + .tl-hero-page #menuview .navbar-brand img {
34 + margin: 2px !important;
49 49   }
50 50  
51 - .tl-hero-page.tl-fading .document-header {
52 - display: flex !important;
53 - }
54 -
55 - /* Sticky navbar once visible */
56 - .tl-hero-page.tl-fading #menuview,
57 - .tl-hero-page.tl-scrolled #menuview {
37 + /* Nav is always fixed at top */
38 + .tl-hero-page #menuview {
58 58   position: fixed !important;
59 59   top: 0;
60 60   left: 0;
... ... @@ -61,8 +61,45 @@
61 61   width: 100%;
62 62   z-index: 1030;
63 63   overflow: hidden;
45 + transition: background-color 0.3s ease, box-shadow 0.3s ease;
64 64   }
65 65  
48 + /* On the hero: match hero purple exactly (#2D2B55, not theme default #1e1b4b) */
49 + .tl-hero-page:not(.tl-scrolled) #menuview,
50 + .tl-hero-page:not(.tl-scrolled) #menuview .navbar-default {
51 + background-color: #2D2B55 !important;
52 + background-image: none !important;
53 + border-color: transparent !important;
54 + box-shadow: none !important;
55 + }
56 +
57 + /* After scrolling past hero: same purple with shadow */
58 + .tl-hero-page.tl-scrolled #menuview,
59 + .tl-hero-page.tl-scrolled #menuview .navbar-default {
60 + background-color: #2D2B55 !important;
61 + background-image: none !important;
62 + border-color: transparent !important;
63 + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15) !important;
64 + }
65 +
66 + /* Search button: match hero purple instead of theme default #1e1b4b */
67 +.tl-hero-page #menuview .btn[aria-controls="headerglobalsearchinput"],
68 +.tl-hero-page #menuview .navbar-default .btn[title="Search"] {
69 + background-color: var(--hero-purple) !important;
70 + border-color: rgba(255, 255, 255, 0.15) !important;
71 +}
72 +
73 +/* Hide non-nav chrome on the hero (breadcrumbs, footer, etc.) */
74 + .tl-hero-page:not(.tl-scrolled) #headerglobal,
75 + .tl-hero-page:not(.tl-scrolled) #hierarchy_breadcrumb,
76 + .tl-hero-page:not(.tl-scrolled) .document-header,
77 + .tl-hero-page:not(.tl-scrolled) #xdocFooter,
78 + .tl-hero-page:not(.tl-scrolled) #xwikidata,
79 + .tl-hero-page:not(.tl-scrolled) #footerglobal,
80 + .tl-hero-page:not(.tl-scrolled) .skip-nav {
81 + display: none !important;
82 + }
83 +
66 66   /* Prevent any horizontal overflow */
67 67   html, body.tl-hero-page,
68 68   .tl-hero-page #xwikimaincontainer,
... ... @@ -208,7 +208,6 @@
208 208   color: rgba(123, 120, 255, 0.6);
209 209   font-size: 24px;
210 210   text-decoration: none;
211 - animation: tl-bounce 2s ease infinite;
212 212   z-index: 2;
213 213   }
214 214  
... ... @@ -217,12 +217,6 @@
217 217   text-decoration: none;
218 218   }
219 219  
220 - @keyframes tl-bounce {
221 - 0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
222 - 40% { transform: translateX(-50%) translateY(-12px); }
223 - 60% { transform: translateX(-50%) translateY(-6px); }
224 - }
225 -
226 226   /* ==========================================================================
227 227   Content area below hero — restore normal layout
228 228   ========================================================================== */
... ... @@ -245,7 +245,7 @@
245 245   }
246 246  
247 247   /* ==========================================================================
248 - Scroll-Reveal Animations (from concept-b)
259 + Animations (from concept-b)
249 249   ========================================================================== */
250 250   @keyframes tl-fadeIn {
251 251   from { opacity: 0; }
... ... @@ -257,6 +257,13 @@
257 257   to { opacity: 1; transform: translateY(0); }
258 258   }
259 259  
271 + @keyframes tl-bounce {
272 + 0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
273 + 40% { transform: translateX(-50%) translateY(-12px); }
274 + 60% { transform: translateX(-50%) translateY(-6px); }
275 + }
276 +
277 + /* Scroll-reveal for below-the-fold content */
260 260   .tl-reveal {
261 261   opacity: 0;
262 262   transform: translateY(28px);
... ... @@ -316,12 +316,6 @@
316 316   /* --- Print: skip hero --- */
317 317   @media print {
318 318   .tl-hero { display: none; }
319 - .tl-hero-page #tmHeader,
320 - .tl-hero-page .navbar,
321 - .tl-hero-page #hierarchy {
322 - opacity: 1;
323 - pointer-events: auto;
324 - }
325 325   }
326 326  
327 327   /* ==========================================================================