ai / frontend /src /lib /components /OnBoarding.svelte
fdrah
initial-commit
9e93b10
Raw
History Blame Contribute Delete
3.02 kB
<script>
import { getContext, onMount } from "svelte";
const i18n = getContext("i18n");
import { REXPRO_BASE_URL } from "$lib/constants";
import Marquee from "./common/Marquee.svelte";
import SlideShow from "./common/SlideShow.svelte";
import ArrowRightCircle from "./icons/ArrowRightCircle.svelte";
export let show = true;
export let getStartedHandler = () => {};
function setLogoImage() {
const logo = document.getElementById("logo");
if (logo) {
const isDarkMode =
document.documentElement.classList.contains("dark");
if (isDarkMode) {
const darkImage = new Image();
darkImage.src = `${REXPRO_BASE_URL}/static/favicon-dark.png`;
darkImage.onload = () => {
logo.src = `${REXPRO_BASE_URL}/static/favicon-dark.png`;
logo.style.filter = ""; // Ensure no inversion is applied if splash-dark.png exists
};
darkImage.onerror = () => {
logo.style.filter = "invert(1)"; // Invert image if splash-dark.png is missing
};
}
}
}
$: if (show) {
setLogoImage();
}
</script>
{#if show}
<div class="w-full h-screen max-h-[100dvh] text-white relative">
<div class="fixed m-10 z-50">
<div class="flex space-x-2">
<div class=" self-center">
<img
id="logo"
src="{REXPRO_BASE_URL}/static/favicon.png"
class=" w-6 rounded-full"
alt="logo"
/>
</div>
</div>
</div>
<SlideShow duration={5000} />
<div
class="w-full h-full absolute top-0 left-0 bg-linear-to-t from-20% from-black to-transparent"
></div>
<div
class="w-full h-full absolute top-0 left-0 backdrop-blur-xs bg-black/50"
></div>
<div
class="relative bg-transparent w-full h-screen max-h-[100dvh] flex z-10"
>
<div
class="flex flex-col justify-end w-full items-center pb-10 text-center"
>
<div class="text-5xl lg:text-7xl font-secondary">
<Marquee
duration={5000}
words={[
$i18n.t("Explore the cosmos"),
$i18n.t("Unlock mysteries"),
$i18n.t("Chart new frontiers"),
$i18n.t("Dive into knowledge"),
$i18n.t("Discover wonders"),
$i18n.t("Ignite curiosity"),
$i18n.t("Forge new paths"),
$i18n.t("Unravel secrets"),
$i18n.t("Pioneer insights"),
$i18n.t("Embark on adventures"),
]}
/>
<div class="mt-0.5">{$i18n.t(`wherever you are`)}</div>
</div>
<div class="flex justify-center mt-8">
<div class="flex flex-col justify-center items-center">
<button
aria-label={$i18n.t("Get started")}
class="relative z-20 flex p-1 rounded-full bg-white/5 hover:bg-white/10 transition font-medium text-sm"
on:click={() => {
getStartedHandler();
}}
>
<ArrowRightCircle
className="size-6"
aria-hidden="true"
/>
</button>
<div
class="mt-1.5 font-primary text-base font-medium"
aria-hidden="true"
>
{$i18n.t(`Get started`)}
</div>
</div>
</div>
</div>
</div>
</div>
{/if}