add all
This commit is contained in:
parent
26fcafced8
commit
632cdcfb64
BIN
static/images/aibox6.jpg
Normal file
BIN
static/images/aibox6.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 242 KiB |
@ -1,7 +1,8 @@
|
||||
{% extends "_default/base.html" %}
|
||||
{% block content %}
|
||||
|
||||
{% include "partials/hero/myhero.html" %}
|
||||
{% include "partials/hero/aihero1.html" %}
|
||||
{% include "partials/hero/aihero2.html" %}
|
||||
{% include "partials/hero/aihero3.html" %}
|
||||
{% include "partials/hero/myhero1.html" %}
|
||||
{% include "partials/hero/myhero3.html" %}
|
||||
{% include "partials/hero/myhero5.html" %}
|
||||
|
73
templates/partials/hero/aihero1.html
Normal file
73
templates/partials/hero/aihero1.html
Normal file
@ -0,0 +1,73 @@
|
||||
<div class="fade-in relative isolate overflow-hidden">
|
||||
<div class="mx-auto max-w-7xl lg:col-span-2 px-6 py-18 lg:flex lg:gap-x-2 lg:px-8 lg:py-24">
|
||||
<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]">
|
||||
Your
|
||||
<span id="slides" class="slides"></span>
|
||||
</h1>
|
||||
<div id="learn-more" class="mt-10 flex items-center gap-x-6 hidden">
|
||||
<a href="#" class="text-xl font-semibold text-black hover:text-gray-200">
|
||||
Learn more <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="/images/aibox6.jpg" alt="App screenshot" width="2432" height="1442" class="lg:w-[66rem] w-[25rem]">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const phrases = [
|
||||
"Personal AI Powerhouse.",
|
||||
"Smart GPU, Your Rules.",
|
||||
"True Digital Playground.",
|
||||
"Gateway to AI freedom.",
|
||||
"Personal AIBox." // 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>
|
||||
|
118
templates/partials/hero/aihero2.html
Normal file
118
templates/partials/hero/aihero2.html
Normal file
File diff suppressed because one or more lines are too long
113
templates/partials/hero/aihero3.html
Normal file
113
templates/partials/hero/aihero3.html
Normal file
@ -0,0 +1,113 @@
|
||||
<div class="fade-in bg-transparent relative isolate overflow-hidden pt-12 lg:pt-24 pb-0">
|
||||
<div class="mx-auto max-w-7xl px-6 lg:px-8 pb-10">
|
||||
<div class="mx-auto max-w-2xl lg:max-w-4xl">
|
||||
<div class="text-center">
|
||||
<h2 class="fade-in text-balance font-normal tracking-tight text-black lg:text-[6rem] text-[2.5rem]">What Can You Do with an <span class="font-medium">AIBox</span></h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-8 pt-12 pb-24 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-black 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">Run AI Models with Full Control </div>
|
||||
<div class="text-gray-900 font-light">
|
||||
Creation of Core Technology
|
||||
<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-black 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
|
||||
</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-black 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">Lightweight, Secure, and Flexible VM</div>
|
||||
<div class="text-gray-900 font-light">
|
||||
VMs come with a minimal OS and Docker (Podman) support
|
||||
<br>Each VM is securely connected to Mycelium (P2P overlay network), ensuring efficient communication
|
||||
<br>Pre-built Docker images available for quick setup and deployment
|
||||
<br>Supports native Docker images and flights
|
||||
<br>Web gateways allow external connections to VM containers
|
||||
</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() {
|
||||
// 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>
|
||||
|
@ -1,19 +1,73 @@
|
||||
<div class="relative isolate overflow-hidden">
|
||||
<div class="mx-auto max-w-7xl lg:col-span-2 px-6 pt-10 pb-24 sm:pb-32 lg:flex lg:gap-x-20 lg:px-8 lg:py-40">
|
||||
<div class="mx-auto max-w-2xl shrink-0 lg:mx-0 lg:pt-8">
|
||||
<p class="text-base/7 font-light text-black tracking-wide">SUBHEADER</p>
|
||||
<h1 class="mt-10 font-semibold tracking-tight text-pretty text-black lg:text-6xl text-4xl">This is Hero2.html</h1>
|
||||
<h2 class="fade-in text-pretty lg:text-5xl text-4xl font-normal tracking-tight text-black">This is smaller title h2</h2>
|
||||
<p class="mt-8 text-lg font-light text-gray-50 lg:text-xl">Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat.</p>
|
||||
<div class="mt-10 flex items-center gap-x-6">
|
||||
<a href="#" class="rounded-2xl bg-white px-3.5 py-2.5 text-sm font-semibold text-white shadow-xs hover:bg-gray-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-200">Get started</a>
|
||||
<a href="#" class="text-sm/6 font-semibold text-black hover:text-gray-200">Learn more <span aria-hidden="true">→</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx-auto mt-16 flex max-w-2xl sm:mt-24 lg:mt-0 lg:mr-0 lg:ml-10 lg:max-w-none lg:flex-none xl:ml-32">
|
||||
<div class="max-w-3xl flex-none lg:max-w-5xl">
|
||||
<img src="https://tailwindui.com/plus/img/component-images/dark-project-app-screenshot.png" alt="App screenshot" width="2432" height="1442" class="w-[76rem] rounded-md bg-white/5 shadow-2xl ">
|
||||
</div>
|
||||
<div class="fade-in relative isolate overflow-hidden">
|
||||
<div class="mx-auto max-w-7xl lg:col-span-2 px-6 py-18 lg:flex lg:gap-x-2 lg:px-8 lg:py-24">
|
||||
<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]">
|
||||
Your
|
||||
<span id="slides" class="slides"></span>
|
||||
</h1>
|
||||
<div id="learn-more" class="mt-10 flex items-center gap-x-6 hidden">
|
||||
<a href="#" class="text-xl font-semibold text-black hover:text-gray-200">
|
||||
Learn more <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="/images/aibox6.jpg" alt="App screenshot" width="2432" height="1442" class="lg:w-[66rem] w-[25rem]">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const phrases = [
|
||||
"Personal AI Powerhouse.",
|
||||
"Smart Digital Companion.",
|
||||
"Always-On Genius.",
|
||||
"Supercharged Peer.",
|
||||
"Ultimate AI Sidekick.",
|
||||
"Personal AIBox." // 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>
|
||||
|
Loading…
Reference in New Issue
Block a user