This commit is contained in:
unurled 2024-01-25 11:53:46 +01:00
parent c6306ce99f
commit e42ecdd3a1
Signed by: unurled
GPG key ID: FDBC9CBE1F82423F
8 changed files with 165 additions and 122 deletions

View file

@ -1,15 +1,17 @@
<script setup lang="ts"> <script setup lang="ts">
import NavBar from "./components/NavBar.vue" import NavBar from "./components/NavBar.vue"
import Footer from "./components/Footer.vue" import Footer from "./components/Footer.vue"
</script> </script>
<template> <template>
<NavBar /> <NavBar class="navbar" />
<router-view /> <router-view />
<Footer /> <Footer />
</template> </template>
<style scoped> <style scoped>
@media only screen and (min-width: 768px) {
}
</style> </style>

View file

@ -6,17 +6,14 @@
<style> <style>
.footer { @media only screen and (min-width: 768px) {
position: absolute; .git-link {
bottom: 5vh; color: var(--dark-accent4);
} }
.git-link { .git-link:hover {
color: var(--dark-accent4); color: var(--dark-accent6);
} }
.git-link:hover {
color: var(--dark-accent6);
} }
</style> </style>

View file

@ -5,7 +5,7 @@ defineProps<{ name: string }>()
</script> </script>
<script lang="ts"> <script lang="ts">
var rotate = document.getElementById("rotate"); const rotate = document.getElementById("rotate");
if (rotate != null) { if (rotate != null) {
rotate.style.animation = "rotate 0.4s linear infinite both"; rotate.style.animation = "rotate 0.4s linear infinite both";

View file

@ -25,27 +25,47 @@ const props = defineProps({
<style> <style>
.display { .display {
display: inline-flex; display: flex;
flex-direction: row;
flex-wrap: nowrap;
} }
.link { .link {
padding: .5em; padding: .2em;
background-color: var(--dark-shade1); background-color: var(--dark-shade1);
-webkit-box-shadow: 0px 0px 20px 10px #2d3139; -webkit-box-shadow: 0px 0px 10px 5px #2d3139;
-moz-box-shadow: 0px 0px 20px 10px #2d3139; -moz-box-shadow: 0px 0px 10px 5px #2d3139;
box-shadow: 0px 0px 20px 10px #2d3139; box-shadow: 0px 0px 10px 5px #2d3139;
text-shadow: 0px 0px 10px var(--dark-accent4); text-shadow: 0px 0px 5px var(--dark-accent4);
border-radius: 1em; border-radius: 1em;
font-size: 2rem; font-size: 1rem;
color: var(--dark-accent4); color: var(--dark-accent4);
margin-right: 3em;
transition: transform .2s; transition: transform .2s;
} }
.link:hover { @media only screen and (min-width: 768px) {
color: var(--dark-accent1); .display {
background-color: var(--dark-accent4); display: inline-flex;
transform: translate(0, 10%); }
}
.link {
padding: .5em;
background-color: var(--dark-shade1);
-webkit-box-shadow: 0px 0px 20px 10px #2d3139;
-moz-box-shadow: 0px 0px 20px 10px #2d3139;
box-shadow: 0px 0px 20px 10px #2d3139;
text-shadow: 0px 0px 10px var(--dark-accent4);
border-radius: 1em;
font-size: 2rem;
color: var(--dark-accent4);
margin-right: 3em;
transition: transform .2s;
}
.link:hover {
color: var(--dark-accent1);
background-color: var(--dark-accent4);
transform: translate(0, 10%);
}
}
</style> </style>

View file

@ -5,24 +5,33 @@ import Link from './Link.vue';
</script> </script>
<template> <template>
<div class="nav"> <div class="links">
<div class="links"> <Link href="https://unurled.me" :isExternal="true" label="Website" icon="mdi:web" />
<Link href="https://unurled.me" :isExternal="true" label="Website" icon="mdi:web" /> <Link href="https://github.com/unurled" :isExternal="true" label="Github" icon="feather:github"/>
<Link href="https://github.com/unurled" :isExternal="true" label="Github" icon="feather:github"/> <Link href="https://git.unurled.me/unurled" :isExternal="true" label="Git" icon="mdi:git"/>
<Link href="https://git.unurled.me/unurled" :isExternal="true" label="Git" icon="mdi:git"/>
</div>
</div> </div>
</template> </template>
<style> <style>
.nav {
.links {
display: flex; display: flex;
position: fixed; /* position: fixed; */
top: 2vh; flex-direction: row;
left: 40%; flex-wrap: wrap;
align-items: center; gap: 1em;
justify-content: center; justify-content: center;
width: 75vw;
} }
@media only screen and (min-width: 768px) {
.links {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
}
</style> </style>

View file

@ -10,7 +10,7 @@ const props = defineProps({
</script> </script>
<template> <template>
<a class="card" :href="link"> <a class="card" :href="link">
<h1 class="name">{{ name }}</h1> <h1 class="name">{{ name }}</h1>
<p class="description">{{ description }}</p> <p class="description">{{ description }}</p>
<img :src="icon" > <img :src="icon" >
@ -20,24 +20,35 @@ const props = defineProps({
<style> <style>
.card { .card {
width: 25%; display: flex;
flex-direction: column;
color: var(--dark-accent2); color: var(--dark-accent2);
border: solid; border: solid;
border-radius: 15px; border-radius: 15px;
border-color: var(--dark-accent1); border-color: var(--dark-accent1);
margin-bottom: 10px; margin-bottom: 10px;
transition: .5s transform; transition: .5s transform;
max-height: 25%;
} }
.card:hover { @media only screen and (min-width: 768px) {
color: var(--dark-accent3); .card {
transform: translate(0, -8%); width: 25%;
color: var(--dark-accent4); color: var(--dark-accent2);
} border: solid;
border-radius: 15px;
border-color: var(--dark-accent1);
margin-bottom: 10px;
transition: .5s transform;
max-height: 25%;
}
.card:hover .project-link { .card:hover {
color: var(--dark-accent3); transform: translate(0, -8%);
} color: var(--dark-accent4);
}
.card:hover .project-link {
color: var(--dark-accent3);
}
}
</style> </style>

View file

@ -1,7 +1,7 @@
import './style.css' import './style.css'
import './hex.css' import './hex.css'
import { createApp } from 'vue' import { createApp } from 'vue'
import { router } from './router/index' import { router } from './router'
import App from './App.vue' import App from './App.vue'
const app = createApp(App) const app = createApp(App)

View file

@ -1,15 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue'
import Project from '../components/Project.vue' import Project from '../components/Project.vue'
const isShowing = ref(false)
onMounted(() => {
// setup animations to start when on mount
isShowing.value = true
})
</script> </script>
<template> <template>
@ -39,43 +31,10 @@ onMounted(() => {
<style> <style>
.main-content { .item-group {
display: flex; display: inline-block;
animation: appear 5s ease-in-out; animation: spin 1s infinite ease-in-out;
animation-iteration-count: 1;
opacity: 1;
gap: 3em;
align-items: center;
} }
.infos {
position: absolute;
width: 15em;
left: 5em;
margin-top: 4.5%;
flex-grow: 1;
}
.separator {
position: absolute;
left: 25rem;
margin-top: 4.5%;
height: 60vh;
width: 5px;
border-radius: 150000px;
background-color: var(--dark-shade7);
flex-grow: 5;
}
.projects {
position: absolute;
left: 30rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 10px;
}
@keyframes spin { @keyframes spin {
0% { 0% {
transform: rotate(-15deg); transform: rotate(-15deg);
@ -88,39 +47,84 @@ onMounted(() => {
} }
} }
.item-group {
display: inline-block; @media only screen and (min-width: 768px) {
animation: spin 1s infinite ease-in-out; .main-content {
display: flex;
animation: appear 5s ease-in-out;
animation-iteration-count: 1;
opacity: 1;
gap: 3em;
align-items: center;
} }
.infos {
.name-logo { width: 15em;
position: fixed; margin-top: 4.5%;
color: var(--dark-shade7); flex-shrink: 5;
animation: logo 2s ease-in-out;
animation-iteration-count: 1;
top: 5vh; left: 7.5vw;
}
@keyframes logo {
0% {
top: 45vh;
left: 45vw;
opacity: 0;
} }
100% {
.separator {
left: 25rem;
margin-top: 4.5%;
height: 60vh;
width: 5px;
border-radius: 150000px;
background-color: var(--dark-shade7);
flex-grow: 5;
}
.projects {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 10px;
}
.item-group {
display: inline-block;
animation: spin 1s infinite ease-in-out;
}
.name-logo {
position: fixed;
color: var(--dark-shade7);
animation: logo 2s ease-in-out;
animation-iteration-count: 1;
top: 5vh; left: 7.5vw; top: 5vh; left: 7.5vw;
opacity: 1; }
@keyframes spin {
0% {
transform: rotate(-15deg);
}
50% {
transform: rotate(15deg);
}
100% {
transform: rotate(-15deg);
}
}
@keyframes logo {
0% {
top: 45vh;
left: 45vw;
opacity: 0;
}
100% {
top: 5vh; left: 7.5vw;
opacity: 1;
}
}
@keyframes appear {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
} }
} }
@keyframes appear {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
</style> </style>