147 lines
3.7 KiB
Vue
147 lines
3.7 KiB
Vue
<template>
|
|
<div>
|
|
<div class="background fixed w-full h-full">
|
|
<video class="animation screen" loop autoplay muted ref="animation">
|
|
<source src="https://files.erudi.fr/evilspins/sloughi-run-loop-big.webm" type="video/webm">
|
|
<source src="https://files.erudi.fr/evilspins/sloughi-run-loop-small.webm" type="video/webm"
|
|
media="all and (max-width: 640px)">
|
|
</video>
|
|
</div>
|
|
<div class="w-full flex justify-center">
|
|
<nav class="[&>*]:p-2 text-white bottom-0 right-0 fixed flex justify-center z-50">
|
|
<a href="https://www.youtube.com/channel/UCATtFHnOLDCv8qroi2KW3ZA" target="about:blank" class="mt-1">
|
|
<img src="/youtube.svg" alt="youtube channel" />
|
|
</a>
|
|
<a href="mailto:contact@evilspins.com">📬</a>
|
|
<a href="/about">❓</a>
|
|
</nav>
|
|
</div>
|
|
<section class="splash-screen flex items-center flex-col">
|
|
<figure class="ui">
|
|
<img class="logo" src="/logo.svg">
|
|
<h1 class="text-white pt-6 text-lg md:text-xl lg:text-2xl text-center font-bold tracking-widest text-shadow">compilations
|
|
Indépendantes
|
|
</h1>
|
|
<button class="button button--screened relative top-16 flex justify-center items-center" @click="scrollDown()">
|
|
↓
|
|
</button>
|
|
</figure>
|
|
</section>
|
|
<section class="flex justify-center relative bg-black">
|
|
<div class="flex gap-[2%] flex-wrap max-w-7xl justify-center">
|
|
<h2 class="w-full my-12 text-white pt-6 text-3xl capitalize text-center font-bold tracking-widest">compilations</h2>
|
|
<compilationsList />
|
|
<h2 class="w-full my-12 text-white pt-6 text-3xl capitalize text-center font-bold tracking-widest">playlists</h2>
|
|
<playlistsList />
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</template>
|
|
<script setup lang="ts">
|
|
// SEO
|
|
useSeoMeta({
|
|
title: 'evilSpins - compilations indépendantes',
|
|
ogTitle: 'evilSpins - compilations indépendantes',
|
|
description: 'evilSpins - compilations indépendantes, la bande originale d\'un film qui n\'existe pas',
|
|
ogDescription: 'evilSpins - compilations indépendantes, la bande originale d\'un film qui n\'existe pas',
|
|
ogImage: 'https://evilspins.com/logo.svg'
|
|
})
|
|
|
|
const dataStore = useDataStore()
|
|
const animation = ref()
|
|
|
|
const scrollDown = function () {
|
|
window.scrollTo({ top: window.innerHeight, behavior: 'smooth' })
|
|
}
|
|
|
|
onMounted(async () => {
|
|
window.addEventListener('scroll', () => {
|
|
const scrollTop = window.scrollY || document.documentElement.scrollTop;
|
|
const screenHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
|
|
// console.log(1 / (screenHeight / scrollTop))
|
|
animation.value.style.opacity = screenHeight / (scrollTop * 4)
|
|
});
|
|
})
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
body {
|
|
margin: 0;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.logo,
|
|
.button,
|
|
.shadow,
|
|
.animation,
|
|
.mix {
|
|
transition: .7s opacity;
|
|
}
|
|
|
|
.screen {
|
|
position: absolute;
|
|
height: 100vh;
|
|
min-width: 100%;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.splash-screen {
|
|
position: relative;
|
|
height: 100vh;
|
|
box-shadow: inset black 0px 1px 800px 200px;
|
|
}
|
|
|
|
.animation {
|
|
z-index: 1;
|
|
object-fit: cover;
|
|
opacity: .8;
|
|
/* opacity: 0; */
|
|
}
|
|
|
|
.mix {
|
|
z-index: 4;
|
|
position: fixed;
|
|
}
|
|
|
|
.shadow {
|
|
z-index: 3;
|
|
box-shadow: rgb(0, 0, 0) 0px 0px 170px 70px inset;
|
|
opacity: .9;
|
|
}
|
|
|
|
.ui {
|
|
z-index: 4;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
max-width: 80%;
|
|
transform: translate(-50%, -50%);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.logo {
|
|
filter: drop-shadow(8px 8px 0 rgb(0 0 0 / 0.8));
|
|
}
|
|
|
|
.mixPlayer {
|
|
background: black;
|
|
max-height: 70vh;
|
|
}
|
|
|
|
.hide {
|
|
opacity: 0;
|
|
z-index: 0;
|
|
}
|
|
|
|
.show {
|
|
opacity: 1;
|
|
}
|
|
|
|
.text-shadow {
|
|
text-shadow: 3px 2px 8px black;
|
|
}
|
|
</style>
|