update home
This commit is contained in:
		| @@ -3,7 +3,7 @@ | ||||
| {% include "partials/head.html" %} | ||||
| {% include "partials/header.html" %} | ||||
|  | ||||
| <body class="bg-white"> | ||||
| <body> | ||||
|  | ||||
|   <!-- Google Tag Manager (noscript) --> | ||||
|   <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N7PNMFH" height="0" width="0" | ||||
| @@ -27,9 +27,9 @@ | ||||
|     // from: https://stackoverflow.com/a/4425214 | ||||
|     var links = document.links; | ||||
|     var internal_hosts = [ | ||||
|         'www.mycelium.threefold.io', | ||||
|         'mycelium.threefold.io', | ||||
|         'www2.mycelium.threefold.io', | ||||
|         'www.aibox.threefold.io', | ||||
|         'aibox.threefold.io', | ||||
|         'www2.aibox.threefold.io', | ||||
|         'localhost', | ||||
|         '127.0.0.1' | ||||
|     ] | ||||
| @@ -42,7 +42,7 @@ | ||||
|   <!-- End Twitter universal website tag code --> | ||||
|  | ||||
|   {% include "partials/header.html" %} | ||||
|   <div id="content" class="px-4 lg:px-0 pt-12 overflow-hidden"> | ||||
|   <div id="content" class="pt-12 overflow-hidden"> | ||||
|     {% block content %}{% endblock %} | ||||
|  | ||||
|   </div> | ||||
|   | ||||
| @@ -1,12 +1,11 @@ | ||||
| {% extends "_default/base.html" %} | ||||
| {% block content %} | ||||
| {% include "partials/hero/aihero1.html" %} | ||||
| {% include "partials/hero/aihero2.html" %} | ||||
| {% include "partials/hero/aihero3.html" %} | ||||
| {% include "partials/hero/aihero8.html" %} | ||||
| {% include "partials/hero/aihero4.html" %} | ||||
| {% include "partials/hero/aihero5.html" %} | ||||
| {% include "partials/hero/coming_soon.html" %} | ||||
| {% include "partials/hero/faq.html" %} | ||||
| {% include "partials/farmer/cta.html" %} | ||||
|  | ||||
|  | ||||
| <!-- home page template, has a banner and rows of page summaries --> | ||||
| <div> | ||||
|     {% set page = get_page(path="home/index.md") %} | ||||
|     {{page.content | safe}} | ||||
| </div> | ||||
|  | ||||
| {% endblock content %} | ||||
							
								
								
									
										44
									
								
								templates/shortcodes/accordion.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								templates/shortcodes/accordion.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| <div class="rounded-lg shadow-lg overflow-hidden my-2 border border-gray-200"> | ||||
|             <input type="checkbox" id="{{ id_accordion }}" class="peer hidden"> | ||||
|             <label for="{{ id_accordion }}" class="accordion flex items-center justify-between p-4 cursor-pointer transition-colors"> | ||||
|                 <span class="text-lg font-semibold">{{ question }}</span> | ||||
|                 <svg class="w-6 h-6 transition-transform peer-checked:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | ||||
|                     <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> | ||||
|                 </svg> | ||||
|             </label> | ||||
|             <div class="max-h-0 overflow-hidden transition-all duration-300 peer-checked:max-h-screen"> | ||||
|                 <div class="p-4"> | ||||
|                     {% if description %}  | ||||
|                     <p class="semigray font-normal leading-relaxed">{{ description }} </p> | ||||
|                     {% endif %} | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|  | ||||
|         <style> | ||||
|  | ||||
|             body .accordion:hover { | ||||
|                 background-color: rgb(240, 240, 240) !important; | ||||
|              } | ||||
|  | ||||
|             body.dark-mode .accordion:hover { | ||||
|                background-color: #2e2e2e !important; | ||||
|             } | ||||
|         </style> | ||||
|  | ||||
|          | ||||
|  | ||||
|     | ||||
|  | ||||
|       | ||||
|  | ||||
|       | ||||
|  | ||||
|  | ||||
|       | ||||
|     | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     | ||||
							
								
								
									
										71
									
								
								templates/shortcodes/animated_header.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								templates/shortcodes/animated_header.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| {% 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> | ||||
|    | ||||
							
								
								
									
										36
									
								
								templates/shortcodes/cta.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								templates/shortcodes/cta.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| {% set title_1 = title_1 | default(value="") %} | ||||
| {% set title_2 = title_2 | default(value="") %} | ||||
| {% set title_3 = title_3 | default(value="") %} | ||||
| {% set button_text_1 = button_text_1 | default(value="") %} | ||||
| {% set button_link_1 = button_link_1 | default(value="") %} | ||||
| {% set button_text_2 = button_text_2 | default(value="") %} | ||||
| {% set button_link_2 = button_link_2 | default(value="") %} | ||||
| {% set button_text_3 = button_text_3 | default(value="") %} | ||||
| {% set button_link_3 = button_link_3 | default(value="") %} | ||||
| {% set button_text_4 = button_text_4 | default(value="") %} | ||||
| {% set button_link_4 = button_link_4 | default(value="") %} | ||||
|  | ||||
| <div class="py-12 px-4"> | ||||
|     <div class="mx-auto ring-1 shadow-2xl ring-black/5 py-12 rounded-2xl bg-white/5 max-w-7xl px-6 lg:flex lg:items-center lg:justify-between lg:px-20"> | ||||
|       <h2 class="max-w-xl leading-tight items-start lg:text-left text-center fade-in"> | ||||
|         {{ title_1 }} <br>{{ title_2 }}<br> {{ title_3 }} | ||||
|       </h2> | ||||
|       <div class="mt-10 flex items-center 0 gap-x-6 lg:mt-0 lg:shrink-0 flex-wrap justify-center lg:justify-start"> | ||||
|         <a href="{{ button_link_1 }}" target="_blank" class="fade-in rounded-2xl bg-black px-4 py-2.5 text-sm lg:text-md font-semibold text-white shadow-sm hover:text-gray-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 mb-4 lg:mb-0"> | ||||
|           {{ button_text_1 }} | ||||
|         </a> | ||||
|         {% if button_link_2 %} | ||||
|         <a href="{{ button_link_2 }}" target="_blank" class="blinking-effect rounded-2xl bg-white px-4 py-2.5 text-sm font-semibold text-black shadow-sm hover:bg-gray-200 hover:text-gray-800 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 mb-4 lg:mb-0"> | ||||
|           {{ button_text_2 }} | ||||
|         </a> | ||||
|         {% endif %} | ||||
|         <a href="{{ button_link_3 }}" target="_blank" class="text-sm/6 font-semibold text-gray-900"> | ||||
|           {{ button_text_3 }} <span aria-hidden="true">→</span> | ||||
|         </a> | ||||
|         {% if button_link_4 %} | ||||
|         <a href="{{ button_link_4 }}" class="fade-in text-sm/6 font-semibold text-white">{{ button_text_4 }}<span aria-hidden="true">→</span></a> | ||||
|          {% endif%} | ||||
|       </div> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
							
								
								
									
										60
									
								
								templates/shortcodes/farm_steps.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								templates/shortcodes/farm_steps.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| {% set image_src = image_src | default(value="") %} | ||||
| {% set image_alt = image_alt | default(value="") %} | ||||
| {% set title = title | default(value="") %} | ||||
| {% set subtitle = subtitle | default(value="") %} | ||||
| {% set description = description | default(value="") %} | ||||
| {% set button_text_1 = button_text_1 | default(value="") %} | ||||
| {% set button_link_1 = button_link_1 | default(value="") %} | ||||
| {% set button_text_2 = button_text_2 | default(value="") %} | ||||
| {% set button_link_2 = button_link_2 | default(value="") %} | ||||
|  | ||||
|  | ||||
|  | ||||
|         <div class="fade-in-box flex flex-col p-8 rounded-2xl my-4 bg-gray-50"> | ||||
|           <img class="fade-in relative mb-4" width="20%" src="{{ image_src }}" alt="{{ image_alt }}"> | ||||
|           <dt class="flex items-center gap-x-3 text-lg rounded-2xl font-semibold"> | ||||
|             {{ title }} | ||||
|           </dt>           | ||||
|           <dt class="text-lg font-normal">{{ subtitle }}<dt> | ||||
|           <dd class="mt-4 flex flex-auto flex-col"> | ||||
|             <p class="flex-auto leading-normal font-light text-gray-800 text-base">{{ description }}</p> | ||||
|             <div class="flex mt-6 justify-center fade-in"> | ||||
|               {% if button_link_1 %} | ||||
|               <a href="{{ button_link_1 }}" class="mr-2 fade-in rounded-2xl bg-white px-4 py-2.5 text-sm font-semibold text-black shadow-sm hover:text-gray-800 hover:bg-green focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2" target="_blank">{{ button_text_1 }}</a> | ||||
|               {% endif %} | ||||
|               {% if button_link_1 %} | ||||
|               <a href="{{ button_link_2 }}" class="fade-in rounded-2xl bg-white px-4 py-2.5 text-sm font-semibold text-black shadow-sm hover:text-gray-800 hover:bg-green focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2" target="_blank">{{ button_text_2 }}</a> | ||||
|               {% endif %} | ||||
|             </div> | ||||
|           </dd> | ||||
|         </div> | ||||
|  | ||||
|  | ||||
|  | ||||
| <style> | ||||
|   /* Fade-in animation for the grid items */ | ||||
|   .fade-in-box { | ||||
|     opacity: 0; | ||||
|     animation: fadeIn 0.6s 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> | ||||
							
								
								
									
										84
									
								
								templates/shortcodes/hero_animation.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								templates/shortcodes/hero_animation.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| {% set title = title | default(value="") %} | ||||
| {% set title_part_1 = title_part_1 | default(value="") %} | ||||
| {% set title_part_2 = title_part_2 | default(value="") %} | ||||
| {% set title_part_3 = title_part_3 | default(value="") %} | ||||
| {% set title_part_4 = title_part_4 | default(value="") %} | ||||
| {% set title_part_5 = title_part_5 | default(value="") %} | ||||
| {% set image_src = image_src | default(value="") %} | ||||
| {% set image_alt = image_alt | default(value="") %} | ||||
| {% set button_text = button_text | default(value="") %} | ||||
| {% set button_link = button_link | default(value="") %} | ||||
|  | ||||
| <div class="fade-in relative isolate overflow-hidden py-12 lg:py-24 lg:h-screen"> | ||||
|     <div class="mx-auto max-w-7xl lg:col-span-2 px-4 lg:flex lg:gap-x-2 lg:px-8"> | ||||
|       <div class="mx-auto max-w-2xl shrink-0 lg:mx-0 lg:pt-8"> | ||||
|         <h1 class="mt-10 font-medium tracking-tight text-pretty text-black leading-tight lg:text-[7.37rem] text-[3.5rem]"> | ||||
|           {{ title }}  | ||||
|           <span id="slides" class="slides"></span> | ||||
|         </h1> | ||||
|         <div id="learn-more" class="lg:mt-10 mt-4 flex items-center gap-x-6">  | ||||
|           <a href="{{ button_link }}" target="_blank" class="text-xl font-semibold text-black hover:text-gray-500"> | ||||
|             {{ button_text }} <span aria-hidden="true">→</span> | ||||
|           </a> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="mx-auto flex max-w-5xl lg:mt-12 mt-0 lg:mr-0 lg:ml-5 lg:max-w-none lg:flex-none"> | ||||
|         <div class="max-w-3xl flex-none lg:max-w-5xl"> | ||||
|           <img src="{{ image_src }}" alt="{{ image_alt }}" width="2432" height="1442" class="lg:w-[66rem] w-[25rem]"> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
|    | ||||
|   <script> | ||||
|   document.addEventListener("DOMContentLoaded", function () { | ||||
|       const phrases = [ | ||||
|           "{{ title_part_1 }}", | ||||
|           "{{ title_part_2 }}", | ||||
|           "{{ title_part_3 }}", | ||||
|           "{{ title_part_4 }}", | ||||
|           "{{ title_part_5 }}" // Final phrase | ||||
|       ]; | ||||
|    | ||||
|       let index = 0; | ||||
|       const slideElement = document.getElementById("slides"); | ||||
|       const learnMoreElement = document.getElementById("learn-more"); | ||||
|    | ||||
|       function typeText(text, i, callback) { | ||||
|           if (i < text.length) { | ||||
|               slideElement.textContent += text.charAt(i); | ||||
|               setTimeout(() => typeText(text, i + 1, callback), 100); | ||||
|           } else { | ||||
|               setTimeout(callback, 500); | ||||
|           } | ||||
|       } | ||||
|    | ||||
|       function deleteText(callback) { | ||||
|           let text = slideElement.textContent; | ||||
|           if (text.length > 0) { | ||||
|               slideElement.textContent = text.substring(0, text.length - 1); | ||||
|               setTimeout(() => deleteText(callback), 50); | ||||
|           } else { | ||||
|               setTimeout(callback, 500); | ||||
|           } | ||||
|       } | ||||
|    | ||||
|       function cyclePhrases() { | ||||
|           if (index < phrases.length - 1) { | ||||
|               typeText(phrases[index], 0, () => { | ||||
|                   deleteText(() => { | ||||
|                       index++; | ||||
|                       cyclePhrases(); | ||||
|                   }); | ||||
|               }); | ||||
|           } else { | ||||
|               typeText(phrases[index], 0, () => { | ||||
|                   learnMoreElement.classList.remove("hidden"); // Show "Learn more" | ||||
|               }); | ||||
|           } | ||||
|       } | ||||
|    | ||||
|       cyclePhrases(); // Start the loop | ||||
|   }); | ||||
|   </script> | ||||
|    | ||||
							
								
								
									
										30
									
								
								templates/shortcodes/left_header.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								templates/shortcodes/left_header.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| {% set title = title | default(value="MYCELIUM") %} | ||||
| {% set subtitle = subtitle | default(value="") %} | ||||
| {% set subtitle_2 = subtitle_2 | default(value="") %} | ||||
| {% set description = description | default(value="") %} | ||||
| {% set description2 = description2 | default(value="") %} | ||||
| {% set description3 = description3 | default(value="") %} | ||||
| {% set button_text = button_text | default(value="") %} | ||||
| {% set button_link = button_link | default(value="") %} | ||||
|  | ||||
| <div class="lg:pt-24 pt-12 lg:max-w-7xl container mx-auto px-4 lg:px-0"> | ||||
|   <div class="mx-auto"> | ||||
|     <div class="mx-auto"> | ||||
|       {% if subtitle %} | ||||
|       <p class="text-base font-light tracking-wide">{{ subtitle }}</p> | ||||
|       {% endif %} | ||||
|       <h2 class="fade-in my-4">{{ title }}</h2> | ||||
|       <h3 class="mx-auto fade-in">{{ subtitle_2 }}</h2> | ||||
|       <p class="mt-6 max-w-3xl text-lg font-light">{{ description }}</p> | ||||
|       {% if description2 %} | ||||
|       <p class="mt-6 text-lg font-light">{{ description2 }}</p> | ||||
|       {% endif %} | ||||
|  | ||||
|       {% if description3 %} | ||||
|       <p class="text-left mt-4 max-w-3xl text-pretty lg:text-lg text-md font-light  fade-in"> | ||||
|         {{ description3 }} <a href="{{ button_link }}" class="font-semibold" target="_blanks"><u>{{ button_text }}</u></a> | ||||
|       </p> | ||||
|       {% endif %} | ||||
|     </div> | ||||
|   </div> | ||||
| </div> | ||||
							
								
								
									
										112
									
								
								templates/shortcodes/timeline.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								templates/shortcodes/timeline.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| <div class="space-y-8 lg:py-12 py-6 mx-auto max-w-7xl relative before:absolute before:inset-0 before:ml-5 before:-translate-x-px md:before:mx-auto md:before:translate-x-0 before:h-full before:w-0.5 before:bg-gradient-to-b before:from-transparent before:via-slate-300 before:to-transparent"> | ||||
|  | ||||
|     <!-- Item #1 --> | ||||
|     <div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active py-4"> | ||||
|         <div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-gray-600 text-white group-[.is-active]:bg-emerald-500 group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2"> | ||||
|             <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10"> | ||||
|                 <path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" /> | ||||
|             </svg> | ||||
|         </div> | ||||
|         <div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow"> | ||||
|             <div class="font-semibold text-lg text-black mb-2">Run AI Models with Full Control   </div> | ||||
|             <div class="text-gray-900 font-light"> | ||||
|                  | ||||
|                 <br>Execute AI models directly on your dedicated GPU | ||||
|  | ||||
|                 <br>Decide which models are allowed to run on your AI BOX | ||||
|  | ||||
|                 <br>Reserve 100% of your GPU resources anytime for your own experimentation | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <!-- Item #2 --> | ||||
|     <div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active  py-4"> | ||||
|         <div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-gray-600 group-[.is-active]:bg-emerald-500 text-white group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2"> | ||||
|             <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10"> | ||||
|                 <path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" /> | ||||
|             </svg> | ||||
|         </div> | ||||
|         <div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow"> | ||||
|             <div class="font-semibold text-lg text-black mb-2">Rent Out Virtual Machines (CloudSlices) | ||||
|             </div> | ||||
|             <div class="text-gray-900 font-light"> | ||||
|                 Slice your hardware into a maximum of 8 Virtual Machines | ||||
|                 <br>Control GPU allocation: 0, 1, or 2 GPUs per VM (no oversubscription) | ||||
|                 <br>Users can connect or disconnect GPUs as needed, with owner permissions | ||||
|                 <br>Each VM is securely connected to Mycelium (P2P overlay network), ensuring efficient communication        | ||||
|                 <br>Pre-built container images available for quick setup and deployment | ||||
|                 <br>Web gateways allow external connections to VM containers | ||||
|                 <br> | ||||
|                 <br>Planned Q2 2025. | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <!-- Item #3 --> | ||||
|     <div class="fade-in relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active  py-4"> | ||||
|         <div class="flex items-center justify-center w-10 h-10 rounded-full border border-white bg-gray-600 group-[.is-active]:bg-emerald-500 text-white group-[.is-active]:text-emerald-50 shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2"> | ||||
|             <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="12" height="10"> | ||||
|                 <path fill-rule="nonzero" d="M10.422 1.257 4.655 7.025 2.553 4.923A.916.916 0 0 0 1.257 6.22l2.75 2.75a.916.916 0 0 0 1.296 0l6.415-6.416a.916.916 0 0 0-1.296-1.296Z" /> | ||||
|             </svg> | ||||
|         </div> | ||||
|         <div class="fade-in w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] bg-white/5 p-4 rounded-2xl shadow"> | ||||
|             <div class="font-semibold text-lg text-black mb-2">Mycelium Actors</div> | ||||
|             <div class="text-gray-900 font-light"> | ||||
|                 Become a host for Mycelium Actors and contribute to the Mycelium network. | ||||
|                 <br>Mycelium Actors process jobs and generate rewards for their hosts. | ||||
|                 <br>These jobs can range from AI requests (such as LLM processing) to higher-level functions like text-to-speech, website building, transcribing youtube video's, training a large language model, communicate ... | ||||
|                 <br> | ||||
|                 <br>By leveraging Mycelium Actors, we pave the way for Augmented Collective Intelligence. | ||||
|                 <br> | ||||
|                 <br>Planned for Q2 2025. | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
|  | ||||
| <style> | ||||
|     /* Initial state: elements are invisible */ | ||||
| .fade-in { | ||||
|   opacity: 0; | ||||
|   transition: opacity 1s ease-out; | ||||
| } | ||||
|  | ||||
| /* State when element is in view */ | ||||
| .fade-in.visible { | ||||
|   opacity: 1; | ||||
| } | ||||
|  | ||||
| </style> | ||||
|  | ||||
| <script> | ||||
|     // Get all the elements that need to be faded in | ||||
|     document.addEventListener('DOMContentLoaded', function() { | ||||
|         const h2 = document.getElementById("blinking"); | ||||
|  | ||||
|         setInterval(() => { | ||||
|             h2.style.opacity = (h2.style.opacity == "1") ? "0.5" : "1"; | ||||
|         }, 1500); // Blinks every 2 seconds | ||||
|   // Target all elements with the 'fade-in' class | ||||
|   const fadeInElements = document.querySelectorAll('.fade-in'); | ||||
|  | ||||
|   const observer = new IntersectionObserver((entries, observer) => { | ||||
|     entries.forEach(entry => { | ||||
|       if (entry.isIntersecting) { | ||||
|         // Add 'visible' class to the element when it's in view | ||||
|         entry.target.classList.add('visible'); | ||||
|         observer.unobserve(entry.target); // Stop observing after it fades in | ||||
|       } | ||||
|     }); | ||||
|   }, { | ||||
|     threshold: 0.1 // Trigger when 10% of the element is in view | ||||
|   }); | ||||
|  | ||||
|   fadeInElements.forEach(element => { | ||||
|     observer.observe(element); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
| </script> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user