commit
e02a63a8a7
@ -0,0 +1,27 @@ |
|||||||
|
# Nuxt dev/build outputs |
||||||
|
.output |
||||||
|
.data |
||||||
|
.nuxt |
||||||
|
.nitro |
||||||
|
.cache |
||||||
|
dist |
||||||
|
|
||||||
|
# Node dependencies |
||||||
|
node_modules |
||||||
|
package-lock.json |
||||||
|
|
||||||
|
# Logs |
||||||
|
logs |
||||||
|
*.log |
||||||
|
|
||||||
|
# Misc |
||||||
|
.DS_Store |
||||||
|
.fleet |
||||||
|
.idea |
||||||
|
/README.md.old |
||||||
|
|
||||||
|
# Local env files |
||||||
|
.env |
||||||
|
.env.* |
||||||
|
!.env.example |
||||||
|
|
@ -0,0 +1,6 @@ |
|||||||
|
export default defineAppConfig({ |
||||||
|
ui: { |
||||||
|
primary: 'purple', |
||||||
|
gray: 'slate', |
||||||
|
} |
||||||
|
}) |
@ -0,0 +1,10 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
<NuxtLayout> |
||||||
|
<NuxtPage/> |
||||||
|
<div class="mx-auto px-0 m-0 mt-6 md:mt-8"> |
||||||
|
<p class="text-xs mx-auto italic text-center text-slate-400 font-thin">Copyright WubzyGD 2024</p> |
||||||
|
</div> |
||||||
|
</NuxtLayout> |
||||||
|
</div> |
||||||
|
</template> |
@ -0,0 +1,74 @@ |
|||||||
|
:root { |
||||||
|
--theme-purple: #a172a6; |
||||||
|
--theme-black: #171717; |
||||||
|
--theme-blue: #b0f6ff; |
||||||
|
--theme-purple-invis: #a172a69a; |
||||||
|
--theme-black-invis: #1717179a; |
||||||
|
--theme-blue-invis: #b0f6ff9a; |
||||||
|
} |
||||||
|
|
||||||
|
@keyframes shine { |
||||||
|
to { |
||||||
|
background-position: 200% center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@keyframes dropdown-title { |
||||||
|
from {transform: translateY(-100vh);} |
||||||
|
to {transform: translateY(0);} |
||||||
|
} |
||||||
|
|
||||||
|
.shiny { |
||||||
|
background: linear-gradient(to right, var(--theme-purple) 20%, var(--theme-black) 35%, var(--theme-black) 35%, var(--theme-purple) 50%, var(--theme-purple) 50%, var(--theme-blue) 75%, var(--theme-purple) 90%); |
||||||
|
background-size: 200% auto; |
||||||
|
animation: /*dropdown-title 1.5s ease-in-out, */shine 2.5s linear infinite; |
||||||
|
@apply overflow-hidden bg-clip-text max-w-min text-transparent; |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
@apply md:text-7xl lg:text-8xl text-6xl h-fit max-h-fit mx-auto m-0 p-0 text-center; |
||||||
|
} |
||||||
|
|
||||||
|
#avatar-border { |
||||||
|
--angle: 0deg; |
||||||
|
animation: rotate 5s cubic-bezier(.13,.82,.87,.18) infinite; |
||||||
|
background-image: linear-gradient(var(--angle), #a172a6 20%, #d0faeb 60%, #a172a6 100%); |
||||||
|
|
||||||
|
} |
||||||
|
#bg-gradient { |
||||||
|
background: linear-gradient(to bottom, #00000000 0%, #00000000 5%, #171717cc 35%, #171717ea 55%, #171717ff 85%); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.arrow { |
||||||
|
box-sizing: border-box; |
||||||
|
height: 100%; |
||||||
|
width: 100%; |
||||||
|
border-style: solid; |
||||||
|
border-color: white; |
||||||
|
border-width: 0px 1px 1px 0px; |
||||||
|
transform: rotate(45deg); |
||||||
|
transition: border-width 150ms ease-in-out; |
||||||
|
} |
||||||
|
|
||||||
|
.arrow:hover { |
||||||
|
border-bottom-width: 4px; |
||||||
|
border-right-width: 4px; |
||||||
|
} |
||||||
|
|
||||||
|
.blurred { |
||||||
|
filter: blur(10px); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@keyframes rotate { |
||||||
|
to { |
||||||
|
--angle: 360deg; |
||||||
|
} |
||||||
|
} |
||||||
|
@property --angle { |
||||||
|
syntax: '<angle>'; |
||||||
|
initial-value: 0deg; |
||||||
|
inherits: false; |
||||||
|
} |
After Width: | Height: | Size: 484 KiB |
After Width: | Height: | Size: 3.0 MiB |
@ -0,0 +1,23 @@ |
|||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({ |
||||||
|
devtools: { enabled: true }, |
||||||
|
modules: ["@nuxt/ui", '@formkit/auto-animate', '@nuxt/image'], |
||||||
|
|
||||||
|
app: { |
||||||
|
head: { |
||||||
|
htmlAttrs: { |
||||||
|
lang: 'en' |
||||||
|
}, |
||||||
|
meta: [ |
||||||
|
{charset: 'utf-8'}, |
||||||
|
{name: 'viewport', content: 'width=device-width, initial-scale=1'} |
||||||
|
], |
||||||
|
link: [ |
||||||
|
{rel: 'icon', type: 'image/x-icon', href: 'https://cdn.wubzy.xyz/katsu-icon.gif'}, |
||||||
|
{rel: 'stylesheet', href: "https://fonts.googleapis.com/css2?family=Montserrat:wght@200..700&display=swap"}, |
||||||
|
{rel: 'stylesheet', href: "https://fonts.googleapis.com/css2?family=Nunito:wght@200..700&display=swap"}, |
||||||
|
{rel: 'stylesheet', href: '_nuxt/assets/css/styles.css'} |
||||||
|
] |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
@ -0,0 +1,19 @@ |
|||||||
|
{ |
||||||
|
"name": "nuxt-app", |
||||||
|
"private": true, |
||||||
|
"type": "module", |
||||||
|
"scripts": { |
||||||
|
"build": "nuxt build", |
||||||
|
"dev": "nuxt dev", |
||||||
|
"generate": "nuxt generate", |
||||||
|
"preview": "nuxt preview", |
||||||
|
"postinstall": "nuxt prepare" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"@formkit/auto-animate": "^0.8.2", |
||||||
|
"@nuxt/devtools": "latest", |
||||||
|
"@nuxt/image": "^1.5.0", |
||||||
|
"@nuxt/ui": "^2.13.0", |
||||||
|
"nuxt": "^3.10.1" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,104 @@ |
|||||||
|
<script setup> |
||||||
|
import {ref, onMounted} from 'vue'; |
||||||
|
onMounted(() => { |
||||||
|
const avatar = document.getElementById('avatar'); |
||||||
|
window.onscroll = () => { |
||||||
|
if (window.scrollY > avatar.getBoundingClientRect().top) { |
||||||
|
document.getElementById('bg-gradient').classList.remove('gradient-unscrolled'); |
||||||
|
document.getElementById('bg-gradient').classList.add('gradient-scrolled'); |
||||||
|
document.getElementById('main-content').classList.remove('blurred'); |
||||||
|
} else { |
||||||
|
document.getElementById('bg-gradient').classList.add('gradient-unscrolled'); |
||||||
|
document.getElementById('bg-gradient').classList.remove('gradient-scrolled'); |
||||||
|
document.getElementById('main-content').classList.add('blurred'); |
||||||
|
} |
||||||
|
}; |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div> |
||||||
|
<div id="index-master" class='overflow-hidden'> |
||||||
|
<div class="relative p0 m0 size-0"> |
||||||
|
<div id="bg-gradient" class="absolute z-[-1] min-h-screen min-w-screen w-screen h-screen m0 p0 left-0 pointer-events-none gradient-unscrolled"></div> |
||||||
|
<div id="bg-container" class="p0 m0 z-[-2] absolute min-h-screen min-w-screen w-screen h-screen left-0 top-0 pointer-events-none"></div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="container" class="mx-0 md:mx-20 lg:mx-32 my-0 p-2"> |
||||||
|
<div id="intro" class="px-4 mx-auto min-h-max"> |
||||||
|
<h1 class="my-12 font-nun font-extralight shiny title">WubzyGD</h1> |
||||||
|
<div id="avatar-container" class="relative p0 2xl:size-[17vw] xl:size-[23vw] lg:size-[30vw] md:size-[40vw] size-[45vw] mx-auto"> |
||||||
|
<img src="@/assets/images/katsu.gif" alt="Wubzy's avatar" id="avatar" class="absolute mx-auto max-w-full size-full inset-0 z-[1] rounded-full"> |
||||||
|
<div id="avatar-border" class="absolute inset-[-3px] rounded-full z-0 rotate-0"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="main-content-container" class="p0 max-w-[100%] mt-28 md:mt-32 xl:mt-48 2xl:mt-64 ease-in-out duration-300"> |
||||||
|
<div id="arrow-float-container" class="relative mx-auto p0 mb-20 h-[30px] w-[30px]"> |
||||||
|
<div id="arrow-float" class="absolute left-auto right-auto"> |
||||||
|
<div class="guide-arrow w-[30px] h-[30px]"> |
||||||
|
<a data-scroll href="#main-content"> |
||||||
|
<div class="arrow"></div> |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div id="main-content" class="blurred mx-0 lg:mx-[9vw] xl:mx-[14vw] mb-8 mt-32 xl:mt-64 p-10 md:p-25 lg:p-35 xl:p-45 border-2 rounded"> |
||||||
|
<h1 class="font-mont text-5xl font-normal text-w-blue text-center">Hi, I'm Wubzy!</h1> |
||||||
|
<p class="font-nun font-thin text-lg text-w-pink mt-4 text-center">This is my website! And it's also under construction :P</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<style> |
||||||
|
html { |
||||||
|
background-color: #171717; |
||||||
|
|
||||||
|
max-width: 100vw; |
||||||
|
padding: 0 0; |
||||||
|
margin: 0 0; |
||||||
|
scroll-behavior: smooth; |
||||||
|
/*overflow-x: hidden;*/ |
||||||
|
} |
||||||
|
</style> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
#arrow-float-container { |
||||||
|
margin-top: 50px; |
||||||
|
} |
||||||
|
|
||||||
|
#arrow-float { |
||||||
|
animation: float-arrow ease-in-out 3s infinite alternate both; |
||||||
|
} |
||||||
|
|
||||||
|
@keyframes float-arrow { |
||||||
|
0% {top:0%;} |
||||||
|
25% {top:-10%;} |
||||||
|
75% {top:50%;} |
||||||
|
100% {top:40%;} |
||||||
|
} |
||||||
|
|
||||||
|
#bg-container { |
||||||
|
background: url('@/assets/images/background.jpg'); |
||||||
|
background-position: center; |
||||||
|
background-size: cover; |
||||||
|
background-repeat: no-repeat; |
||||||
|
} |
||||||
|
#bg-gradient { |
||||||
|
transition: top .75s ease-in-out, opacity .85s ease-in-out; |
||||||
|
} |
||||||
|
.gradient-unscrolled {@apply top-[50px] md:top-[100px] xl:top-[200px] opacity-95;} |
||||||
|
.gradient-scrolled {top: 0;} |
||||||
|
|
||||||
|
#main-content { |
||||||
|
border-color: var(--theme-purple-invis); |
||||||
|
transition: margin .35s ease-in, border .35s ease-in, background-color .35s ease-in, filter .75s ease-in; |
||||||
|
background-color: var(--theme-black-invis); |
||||||
|
} |
||||||
|
#main-content:hover { |
||||||
|
border-color: var(--theme-purple); |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,13 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
|
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
|
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
|
||||||
|
</style> |
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,3 @@ |
|||||||
|
{ |
||||||
|
"extends": "../.nuxt/tsconfig.server.json" |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
/** @type {import('tailwindcss').Config} */ |
||||||
|
export default { |
||||||
|
corePlugins: { |
||||||
|
//preflight: false
|
||||||
|
}, |
||||||
|
content: [], |
||||||
|
theme: { |
||||||
|
extend: { |
||||||
|
fontFamily: { |
||||||
|
mont: 'Montserrat, sans-serif', |
||||||
|
nun: 'Nunito, sans-serif' |
||||||
|
}, |
||||||
|
colors: { |
||||||
|
'w-blue': '#b0f6ff', |
||||||
|
'w-purple': '#a172a6', |
||||||
|
'w-pink': '#f3b5d3' |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
plugins: [], |
||||||
|
} |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript |
||||||
|
"extends": "./.nuxt/tsconfig.json" |
||||||
|
} |
Loading…
Reference in new issue