added onepager in separate directory
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								onepager/img/autonomous.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								onepager/img/autonomous.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 241 KiB | 
							
								
								
									
										
											BIN
										
									
								
								onepager/img/home_nodes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								onepager/img/home_nodes.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 464 KiB | 
							
								
								
									
										586
									
								
								onepager/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										586
									
								
								onepager/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,586 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>Project Mycelium</title> | ||||
|     <style> | ||||
|         * { | ||||
|             margin: 0; | ||||
|             padding: 0; | ||||
|             box-sizing: border-box; | ||||
|         } | ||||
|  | ||||
|         body { | ||||
|             background-color: #0f172a; | ||||
|             color: #e2e8f0; | ||||
|             font-family: system-ui, -apple-system, sans-serif; | ||||
|             line-height: 1.6; | ||||
|             overflow-x: hidden; | ||||
|             overflow-y: hidden; | ||||
|         } | ||||
|  | ||||
|         .responsive-image { | ||||
|             max-width: 100%;  /* Ensure the image fits within its parent container */ | ||||
|             height: auto;     /* Maintain aspect ratio */ | ||||
|             margin: 0 auto;   /* Center the image */ | ||||
|             display: block;   /* Make images block elements to help with centering */ | ||||
|         } | ||||
|  | ||||
|         .content-container { | ||||
|             padding: 20vh 20px; | ||||
|             height: 100vh; | ||||
|             overflow: hidden; | ||||
|             position: relative; | ||||
|         } | ||||
|  | ||||
|         .scroll-content { | ||||
|             position: relative; | ||||
|             transition: transform 1s cubic-bezier(0.4, 0, 0.2, 1); | ||||
|         } | ||||
|  | ||||
|         .text-section { | ||||
|             position: relative; | ||||
|             height: 55vh; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             opacity: 0; | ||||
|             transform: translateY(40px); | ||||
|             transition: all 1.5s cubic-bezier(0.4, 0, 0.2, 1); | ||||
|         } | ||||
|  | ||||
|         .text-section.visible { | ||||
|             opacity: 1; | ||||
|             transform: translateY(0); | ||||
|         } | ||||
|  | ||||
|         .text-section.entering-up { | ||||
|             opacity: 0; | ||||
|             transform: translateY(-40px); | ||||
|         } | ||||
|  | ||||
|         .text-section.entering-down { | ||||
|             opacity: 0; | ||||
|             transform: translateY(40px); | ||||
|         } | ||||
|  | ||||
|         .text-section.leaving-up { | ||||
|             opacity: 0; | ||||
|             transform: translateY(-40px); | ||||
|         } | ||||
|  | ||||
|         .text-section.leaving-down { | ||||
|             opacity: 0; | ||||
|             transform: translateY(40px); | ||||
|         } | ||||
|  | ||||
|         .section-content { | ||||
|             max-width: 800px; | ||||
|             padding: 0 20px; | ||||
|         } | ||||
|  | ||||
|         .align-left { | ||||
|             margin-right: auto; | ||||
|             margin-left: 17%; | ||||
|             max-width: 600px; | ||||
|         } | ||||
|  | ||||
|         .align-right { | ||||
|             margin-left: auto; | ||||
|             margin-right: 17%; | ||||
|             max-width: 600px; | ||||
|         } | ||||
|  | ||||
|         .align-center { | ||||
|             text-align: center; | ||||
|             margin: 0 auto; | ||||
|         } | ||||
|  | ||||
|         .width-narrow { | ||||
|             max-width: 500px; | ||||
|         } | ||||
|  | ||||
|         .width-wide { | ||||
|             max-width: 700px; | ||||
|         } | ||||
|  | ||||
|         h1 { | ||||
|             color: #60a5fa; | ||||
|             margin-bottom: 1.5rem; | ||||
|             font-size: 3rem; | ||||
|             font-weight: 800; | ||||
|             line-height: 1.2; | ||||
|         } | ||||
|  | ||||
|         h2 { | ||||
|             color: #60a5fa; | ||||
|             margin-bottom: 1.5rem; | ||||
|             font-size: 2.5rem; | ||||
|             font-weight: 700; | ||||
|             line-height: 1.3; | ||||
|         } | ||||
|  | ||||
|         p { | ||||
|             margin-bottom: 1.5rem; | ||||
|             font-size: 1.25rem; | ||||
|             line-height: 1.8; | ||||
|             opacity: 0.9; | ||||
|         } | ||||
|  | ||||
|         .large-text { | ||||
|             font-size: 2rem; | ||||
|             line-height: 1.4; | ||||
|             font-weight: 300; | ||||
|         } | ||||
|  | ||||
|         .quote { | ||||
|             font-size: 2rem; | ||||
|             font-style: italic; | ||||
|             color: #93c5fd; | ||||
|             line-height: 1.4; | ||||
|         } | ||||
|  | ||||
|         .progress-bar { | ||||
|             position: fixed; | ||||
|             top: 0; | ||||
|             left: 0; | ||||
|             width: 100%; | ||||
|             height: 4px; | ||||
|             background: #1e293b; | ||||
|             z-index: 1000; | ||||
|         } | ||||
|  | ||||
|         .progress { | ||||
|             height: 100%; | ||||
|             width: 0%; | ||||
|             background: linear-gradient(90deg, #60a5fa, #93c5fd); | ||||
|             transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); | ||||
|         } | ||||
|  | ||||
|         @media (max-width: 768px) { | ||||
|             .align-left, .align-right { | ||||
|                 margin-left: auto; | ||||
|                 margin-right: auto; | ||||
|                 max-width: 85%; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         .link-container { | ||||
|             display: flex; | ||||
|             justify-content: center; | ||||
|             gap: 20px; | ||||
|             flex-wrap: wrap; | ||||
|             margin-top: 20px; | ||||
|         } | ||||
|  | ||||
|         .link-box { | ||||
|             width: 200px; | ||||
|             text-align: center; | ||||
|             border: 2px solid #93c5fd; /* Thicker border */ | ||||
|             padding: 30px; /* Increased padding */ | ||||
|             border-radius: 12px; /* More rounded corners */ | ||||
|             background-color: rgba(11, 112, 78, 0.1); /* Subtle background */ | ||||
|             transition: transform 0.2s ease, background-color 0.2s ease; /* Add hover effect */ | ||||
|         } | ||||
|  | ||||
|         .link-box:hover { | ||||
|             transform: scale(1.05); | ||||
|             background-color: rgba(255, 255, 255, 0.2); | ||||
|         } | ||||
|  | ||||
|         .link-box a { | ||||
|             color: #60a5fa; | ||||
|             text-decoration: none; | ||||
|             font-size: 1.8rem; /* Significantly larger font size */ | ||||
|             font-weight: 500; /* Slightly bolder */ | ||||
|             display: block; /* Make the whole box clickable */ | ||||
|         } | ||||
|  | ||||
|         .modal { | ||||
|             display: none; | ||||
|             position: fixed; | ||||
|             z-index: 9999; /* Increased z-index */ | ||||
|             left: 0; | ||||
|             top: 0; | ||||
|             width: 100%; | ||||
|             height: 100%; | ||||
|             overflow: hidden; /* Changed to hidden */ | ||||
|             background-color: rgba(0,0,0,0.9); /* Darker overlay */ | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|         } | ||||
|  | ||||
|         .modal-content { | ||||
|             background-color: #0f172a; /* Solid background */ | ||||
|             padding: 40px; | ||||
|             border: 2px solid #93c5fd; | ||||
|             border-radius: 12px; | ||||
|             width: 60%; | ||||
|             box-shadow: 0 8px 16px rgba(0,0,0,0.4); | ||||
|             text-align: center; | ||||
|             font-family: system-ui, -apple-system, sans-serif; | ||||
|             color: #60a5fa; | ||||
|             position: relative; | ||||
|             /* Removed backdrop-filter and any transparency */ | ||||
|         } | ||||
|  | ||||
|         .modal-content p { | ||||
|             font-size: 2.5rem; | ||||
|             margin: 0; | ||||
|             line-height: 1.4; | ||||
|             font-weight: 500; | ||||
|             color: #60a5fa; | ||||
|         } | ||||
|  | ||||
|         .close { | ||||
|             position: absolute; | ||||
|             right: 20px; | ||||
|             top: 10px; | ||||
|             color: #60a5fa; | ||||
|             font-size: 2.5rem; | ||||
|             font-weight: bold; | ||||
|             cursor: pointer; | ||||
|             padding: 10px; | ||||
|             line-height: 1; | ||||
|             z-index: 10000; /* Increased z-index */ | ||||
|         } | ||||
|  | ||||
|         .close:hover, | ||||
|         .close:focus { | ||||
|             color: #93c5fd; | ||||
|             text-decoration: none; | ||||
|         } | ||||
|  | ||||
|     </style> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
|     <div id="myModal" class="modal"> | ||||
|         <div class="modal-content"> | ||||
|             <span class="close">×</span> | ||||
|             <p>Project Mycelium launches on the 24-12-12. Stay tuned!</p> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <div class="progress-bar"> | ||||
|         <div class="progress"></div> | ||||
|     </div> | ||||
|  | ||||
|     <div class="content-container"> | ||||
|         <div class="scroll-content"> | ||||
|             <!-- Section 1 --> | ||||
|             <div class="text-section align-center"> | ||||
|                 <div class="section-content"> | ||||
|                     <h1>Project Mycelium</h1> | ||||
|                     <p class="large-text">The journey together to build Web4: <br>own your data, own your digital life</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|      | ||||
|             <!-- Section 2 with Image on right --> | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left width-narrow"> | ||||
|                     <p>For decades now, our team has been laying the groundwork for Web4, the next generation of the Internet.</p> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <img src="./img/autonomous.png" alt="Description of Image 1" class="responsive-image"> | ||||
|                 </div> | ||||
|             </div> | ||||
|      | ||||
|             <!-- Section 3 with Image on left --> | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right width-narrow"> | ||||
|                     <p>With Project Mycelium, we bring for the first time data, network and cloud in a single ecosystem.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-center"> | ||||
|                     <p class="large-text">We've built a peer-to-peer and end-to-end encrypted network, the Mycelium Network.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <p>The network is a mesh of phones, routers and nodes connected over the Internet.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <p>Data is never corrupted nor lost, and you can work with and without Internet connection.</p> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|  | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-center"> | ||||
|                     <p class="large-text">But not only this, the Mycelium Network can function on top of the current Internet and in parallel.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <p>You can own your data, and you can own your digital life. <br>For real.</p> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <p>Our system is built-in with your own personal Hero AI assistant.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section align-center"> | ||||
|                 <div class="section-content"> | ||||
|                     <h1>Web4: Allowing Everyone Everywhere</h1> | ||||
|                     <p class="large-text">Web4 is all about the endless possibilities <br>a true peer-to-peer Internet can bring to life.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|      | ||||
|             <!-- Section 2 with Image on right --> | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left width-narrow"> | ||||
|                     <p>With the Hero AI assistant, you can take control of your digital life.</p> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <img src="./img/autonomous.png" alt="Description of Image 1" class="responsive-image"> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <!-- Section 2 with Image on right --> | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left"> | ||||
|                     <img src="./img/autonomous.png" alt="Description of Image 1" class="responsive-image"> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right width-narrow"> | ||||
|                     <p>The Web4 we envision allows everyone everywhere to have total sovereignty, privace, security, reliablity and decentralization.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|      | ||||
|             <!-- Section 3 with Image on left --> | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-left width-narrow"> | ||||
|                     <p>You can communicate, share information, participate in private online meetings, publish content, develops apps, and much more.</p> | ||||
|                 </div> | ||||
|                 <div class="section-content align-right"> | ||||
|                     <img src="./img/home_nodes.png" alt="Description of Image 2" class="responsive-image"> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="section-content align-center"> | ||||
|                     <p class="large-text">There are many ways to contribute to the network. We're as strong as our community.</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section"> | ||||
|                 <div class="link-container"> | ||||
|                     <div class="link-box"> | ||||
|                         <a href="https://docs.projectmycelium.io">Nodes</a> | ||||
|                     </div> | ||||
|                     <div class="link-box"> | ||||
|                         <a href="https://docs.projectmycelium.io">Phones</a> | ||||
|                     </div> | ||||
|                     <div class="link-box"> | ||||
|                         <a href="https://docs.projectmycelium.io">Routers</a> | ||||
|                     </div> | ||||
|                     <div class="link-box"> | ||||
|                         <a href="https://docs.projectmycelium.io">$INCA</a> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|             <div class="text-section align-center"> | ||||
|                 <div class="section-content"> | ||||
|                     <h1>Join the Launch</h1> | ||||
|                     <p class="large-text">Project Mycelium is launching soon: 24-12-12</p> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <script> | ||||
|         const HEIGHT_TEXT = 55; | ||||
|         const content = document.querySelector('.scroll-content'); | ||||
|         const sections = document.querySelectorAll('.text-section'); | ||||
|         const progressBar = document.querySelector('.progress'); | ||||
|          | ||||
|         let currentSection = 0; | ||||
|         let isScrolling = false; | ||||
|         let lastScrollTime = Date.now(); | ||||
|         const scrollCooldown = 1000; | ||||
|  | ||||
|         function updateProgress() { | ||||
|             const progress = (currentSection / (sections.length - 1)) * 100; | ||||
|             progressBar.style.width = `${progress}%`; | ||||
|         } | ||||
|  | ||||
|         function showSection(index, direction) { | ||||
|             content.style.transform = `translateY(-${index * HEIGHT_TEXT}vh)`; | ||||
|              | ||||
|             // Reset all sections | ||||
|             sections.forEach(section => { | ||||
|                 section.classList.remove('visible', 'entering-up', 'entering-down', 'leaving-up', 'leaving-down'); | ||||
|             }); | ||||
|  | ||||
|             // Current section | ||||
|             const currentSection = sections[index]; | ||||
|             currentSection.classList.remove(direction === 'up' ? 'entering-up' : 'entering-down'); | ||||
|             currentSection.classList.add('visible'); | ||||
|  | ||||
|             // Previous section (when scrolling down) | ||||
|             if (index > 0 && direction === 'down') { | ||||
|                 sections[index - 1].classList.add('leaving-up'); | ||||
|             } | ||||
|  | ||||
|             // Next section (when scrolling up) | ||||
|             if (index < sections.length - 1 && direction === 'up') { | ||||
|                 sections[index + 1].classList.add('leaving-down'); | ||||
|             } | ||||
|  | ||||
|             // Prepare next section for entry | ||||
|             if (index < sections.length - 1) { | ||||
|                 sections[index + 1].classList.add('entering-down'); | ||||
|             } | ||||
|  | ||||
|             // Prepare previous section for entry | ||||
|             if (index > 0) { | ||||
|                 sections[index - 1].classList.add('entering-up'); | ||||
|             } | ||||
|              | ||||
|             updateProgress(); | ||||
|         } | ||||
|  | ||||
|         function handleScroll(event) { | ||||
|             event.preventDefault(); | ||||
|              | ||||
|             const now = Date.now(); | ||||
|             if (isScrolling || now - lastScrollTime < scrollCooldown) return; | ||||
|              | ||||
|             const delta = event.deltaY; | ||||
|              | ||||
|             if (delta > 0 && currentSection < sections.length - 1) { | ||||
|                 isScrolling = true; | ||||
|                 currentSection++; | ||||
|                 showSection(currentSection, 'down'); | ||||
|             } else if (delta < 0 && currentSection > 0) { | ||||
|                 isScrolling = true; | ||||
|                 currentSection--; | ||||
|                 showSection(currentSection, 'up'); | ||||
|             } | ||||
|              | ||||
|             lastScrollTime = now; | ||||
|             setTimeout(() => { | ||||
|                 isScrolling = false; | ||||
|             }, scrollCooldown); | ||||
|         } | ||||
|  | ||||
|         function handleKeydown(event) { | ||||
|             const now = Date.now(); | ||||
|             if (isScrolling || now - lastScrollTime < scrollCooldown) return; | ||||
|              | ||||
|             if (event.key === 'ArrowDown' && currentSection < sections.length - 1) { | ||||
|                 event.preventDefault(); | ||||
|                 isScrolling = true; | ||||
|                 currentSection++; | ||||
|                 showSection(currentSection, 'down'); | ||||
|             } else if (event.key === 'ArrowUp' && currentSection > 0) { | ||||
|                 event.preventDefault(); | ||||
|                 isScrolling = true; | ||||
|                 currentSection--; | ||||
|                 showSection(currentSection, 'up'); | ||||
|             } | ||||
|              | ||||
|             lastScrollTime = now; | ||||
|             setTimeout(() => { | ||||
|                 isScrolling = false; | ||||
|             }, scrollCooldown); | ||||
|         } | ||||
|  | ||||
|         // Initialize | ||||
|         showSection(0, 'down'); | ||||
|  | ||||
|         // Event listeners | ||||
|         window.addEventListener('wheel', handleScroll, { passive: false }); | ||||
|         window.addEventListener('keydown', handleKeydown); | ||||
|  | ||||
|         // Touch events for mobile | ||||
|         let touchStartY = 0; | ||||
|         let touchEndY = 0; | ||||
|  | ||||
|         window.addEventListener('touchstart', (e) => { | ||||
|             touchStartY = e.touches[0].clientY; | ||||
|         }, { passive: false }); | ||||
|  | ||||
|         window.addEventListener('touchmove', (e) => { | ||||
|             e.preventDefault(); | ||||
|         }, { passive: false }); | ||||
|  | ||||
|         window.addEventListener('touchend', (e) => { | ||||
|             touchEndY = e.changedTouches[0].clientY; | ||||
|             const now = Date.now(); | ||||
|              | ||||
|             if (isScrolling || now - lastScrollTime < scrollCooldown) return; | ||||
|              | ||||
|             const delta = touchStartY - touchEndY; | ||||
|              | ||||
|             if (Math.abs(delta) > 50) { | ||||
|                 if (delta > 0 && currentSection < sections.length - 1) { | ||||
|                     isScrolling = true; | ||||
|                     currentSection++; | ||||
|                     showSection(currentSection, 'down'); | ||||
|                 } else if (delta < 0 && currentSection > 0) { | ||||
|                     isScrolling = true; | ||||
|                     currentSection--; | ||||
|                     showSection(currentSection, 'up'); | ||||
|                 } | ||||
|                  | ||||
|                 lastScrollTime = now; | ||||
|                 setTimeout(() => { | ||||
|                     isScrolling = false; | ||||
|                 }, scrollCooldown); | ||||
|             } | ||||
|         }, { passive: false }); | ||||
|  | ||||
|         const modal = document.getElementById("myModal"); | ||||
|         const linkBoxes = document.querySelectorAll(".link-box"); | ||||
|         const closeBtn = document.querySelector(".close"); | ||||
|  | ||||
|         linkBoxes.forEach(box => { | ||||
|             box.addEventListener("click", function(event) { | ||||
|                 event.preventDefault(); | ||||
|                 modal.style.display = "flex"; // Changed to flex to enable centering | ||||
|             }); | ||||
|         }); | ||||
|  | ||||
|         closeBtn.addEventListener("click", function() { | ||||
|             modal.style.display = "none"; | ||||
|         }); | ||||
|  | ||||
|         window.onclick = function(event) { | ||||
|             if (event.target == modal) { | ||||
|                 modal.style.display = "none"; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     </script> | ||||
| </body> | ||||
| </html> | ||||
		Reference in New Issue
	
	Block a user