71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% set header = header | default(value="") %}
 | 
						|
 | 
						|
<div class="max-w-3xl">
 | 
						|
    <h2 id="typing-text" class="mx-auto fade-in">
 | 
						|
    </h2>
 | 
						|
</div>        
 | 
						|
     
 | 
						|
  <style>
 | 
						|
    /* Fade-in animation for the grid items */
 | 
						|
    .fade-in-box {
 | 
						|
      opacity: 0;
 | 
						|
      animation: fadeIn 2.2s ease-in-out forwards;
 | 
						|
    }
 | 
						|
  
 | 
						|
    /* Fading in each grid item with a slight delay */
 | 
						|
    .fade-in-box:nth-child(1) { animation-delay: 0s; }
 | 
						|
    .fade-in-box:nth-child(2) { animation-delay: 0.2s; }
 | 
						|
    .fade-in-box:nth-child(3) { animation-delay: 0.4s; }
 | 
						|
    .fade-in-box:nth-child(4) { animation-delay: 0.6s; }
 | 
						|
    .fade-in-box:nth-child(5) { animation-delay: 0.8s; }
 | 
						|
    .fade-in-box:nth-child(6) { animation-delay: 1s; }
 | 
						|
    .fade-in-box:nth-child(7) { animation-delay: 1.2s; }
 | 
						|
    .fade-in-box:nth-child(8) { animation-delay: 1.4s; }
 | 
						|
    .fade-in-box:nth-child(9) { animation-delay: 1.6s; }
 | 
						|
    .fade-in-box:nth-child(10) { animation-delay: 1.8s; }
 | 
						|
    .fade-in-box:nth-child(11) { animation-delay: 2s; }
 | 
						|
    .fade-in-box:nth-child(12) { animation-delay: 2.2s; }
 | 
						|
  
 | 
						|
    @keyframes fadeIn {
 | 
						|
      to {
 | 
						|
        opacity: 1;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  </style>
 | 
						|
  
 | 
						|
  <script>
 | 
						|
    document.addEventListener("DOMContentLoaded", function () {
 | 
						|
        const text = "Take Control of Your AI Future";
 | 
						|
        const textElement = document.getElementById("typing-text");
 | 
						|
        let loopCount = 0;
 | 
						|
        const maxLoops = 1;
 | 
						|
  
 | 
						|
        function typeText(i, callback) {
 | 
						|
            if (i < text.length) {
 | 
						|
                textElement.textContent += text.charAt(i);
 | 
						|
                setTimeout(() => typeText(i + 1), 100);
 | 
						|
            } else {
 | 
						|
                setTimeout(callback, 2000);
 | 
						|
            }
 | 
						|
        }
 | 
						|
  
 | 
						|
 | 
						|
 | 
						|
  
 | 
						|
        function loopTyping() {
 | 
						|
            if (loopCount < maxLoops) {
 | 
						|
                typeText(0, () => {
 | 
						|
                    deleteText(() => {
 | 
						|
                        loopCount++;
 | 
						|
                        loopTyping();
 | 
						|
                    });
 | 
						|
                });
 | 
						|
            } else {
 | 
						|
                typeText(0, () => {}); // Final typing with no delete
 | 
						|
            }
 | 
						|
        }
 | 
						|
  
 | 
						|
        loopTyping();
 | 
						|
    });
 | 
						|
  </script>
 | 
						|
   |