You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Authentication/components/Menu.vue

633 lines
19 KiB

<template>
<div>
<div class="o-grid__item hover-target">
<button class="c-hamburger c-hamburger--htla" @click="makeActive">
<span>toggle menu</span>
</button>
</div>
<div id="menu" class="menu" :class="{active: isActive}">
<div class="section section_fixed" id="menu-inner">
<div class="section__clip">
<div class="section__content grad-darkpurple">
<div class="description">
<!-- <h1>The future of Management Platform is here.</h1> -->
<p>
<span>
Vold is an advanced, modular-based Management System, custom-tailored to fit your needs.
<br>
<br>&copy;
</span>
<span id="copyRightYear2"></span>
<a href="index.html" class="hover-target" title="Advanced Management Platform for Modern Businesses">Vold</a>
<span>. All rights reserved.</span>
<a href="mailto:app@vold.io" class="hover-target">Contact Us</a>
<span> Website by</span>
<a href="http://fleava.com/" target="_blank" title="Fleava Bali Digital Advertising Agency" class="hover-target">Fleava</a>
</p>
</div>
<div class="nav-container">
<div></div>
<div>
<a href="#cms" class="scroll-nav nav-menu">
<div class="bg grad-red"></div>
<span>01</span>
<h3>
Vold
<br>CMS
</h3>
</a>
</div>
<div>
<a href="#file" class="scroll-nav nav-menu">
<div class="bg grad-purple"></div>
<span>02</span>
<h3>
File
<br>Manager
</h3>
</a>
</div>
<div>
<a href="#oana" class="scroll-nav nav-menu">
<div class="bg grad-pink"></div>
<span>03</span>
<h3>
Artificial
<br>Intelligence
</h3>
</a>
</div>
<div>
<a href="#data" class="scroll-nav nav-menu">
<div class="bg grad-darkblue"></div>
<span>04</span>
<h3>
Data
<br>Visualizer
</h3>
</a>
</div>
<div>
<a href="#insight" class="scroll-nav nav-menu">
<div class="bg grad-midblue"></div>
<span>05</span>
<h3>
Audience
<br>Insight
</h3>
</a>
</div>
<div>
<a href="#globe" class="scroll-nav nav-menu">
<div class="bg grad-purple"></div>
<span>06</span>
<h3>
Globe
<br>Visualizer
</h3>
</a>
</div>
<div>
<a href="#custom" class="scroll-nav nav-menu">
<div class="bg grad-red"></div>
<span>07</span>
<h3>
Customize
<br>Vold
</h3>
</a>
</div>
<div>
<a href="#contact" class="scroll-nav nav-menu">
<div class="bg grad-purple"></div>
<span>08</span>
<h3>
Contact
<br>Vold
</h3>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isActive: false,
}
},
methods: {
makeActive: function() {
this.isActive = !this.isActive;
}
}
};
</script>
<style lang="scss" scoped>
/* ---------- MENU ---------- */
.o-grid__item {
position: fixed;
left: 40px;
z-index: 3;
top: 50%;
margin-top: -50px;
z-index: 100;
}
.c-hamburger {
display: block;
position: relative;
overflow: hidden;
margin: 0;
padding: 0;
width: 65px;
height: 96px;
font-size: 0;
text-indent: -9999px;
cursor: pointer;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
box-shadow: none;
border-radius: none;
border: none;
-webkit-transition: background 0.3s;
transition: background 0.3s;
}
.c-hamburger:focus {
outline: none;
}
.c-hamburger span {
display: block;
position: absolute;
top: 44px;
left: 5px;
right: 18px;
height: 1px;
background: white;
}
.c-hamburger span::before,
.c-hamburger span::after {
position: absolute;
display: block;
left: 0;
width: 100%;
height: 1px;
background-color: #fff;
content: "";
}
.c-hamburger span::before {
top: -9px;
}
.c-hamburger span::after {
bottom: -9px;
width: 50%;
}
.c-hamburger--htla {
background: none;
}
.c-hamburger--htla span {
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
}
.c-hamburger--htla span::before {
-webkit-transform-origin: top right;
-ms-transform-origin: top right;
transform-origin: top right;
-webkit-transition: -webkit-transform 0.3s, width 0.3s, top 0.3s;
transition: transform 0.3s, width 0.3s, top 0.3s;
}
.c-hamburger--htla span::after {
-webkit-transform-origin: bottom right;
-ms-transform-origin: bottom right;
transform-origin: bottom right;
-webkit-transition: -webkit-transform 0.3s, width 0.3s, bottom 0.3s;
transition: transform 0.3s, width 0.3s, bottom 0.3s;
}
.c-hamburger {
opacity: 0;
transition: all 2.8s cubic-bezier(.19, 1, .22, .95) .1s;
-webkit-transition: all 2.8s cubic-bezier(.19, 1, .22, .95) .1s;
-webkit-transform: translateX(-50px) skewX(-60deg);
-ms-transform: translateX(-50px) skewX(-60deg);
transform: translateX(-50px) skewX(-60deg);
}
/* active state, i.e. menu open */
.c-hamburger--htla.is-active {}
.c-hamburger--htla.is-active span {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.c-hamburger--htla.is-active span::before,
.c-hamburger--htla.is-active span::after {
width: 50%;
}
.c-hamburger--htla.is-active span::before {
top: 0;
-webkit-transform: translateX(23px) translateY(1px) rotate(45deg);
-ms-transform: translateX(23px) translateY(1px) rotate(45deg);
transform: translateX(23px) translateY(1px) rotate(45deg);
}
.c-hamburger--htla.is-active span::after {
bottom: -1px;
-webkit-transform: translateX(23px) translateY(-1px) rotate(-45deg);
-ms-transform: translateX(23px) translateY(-1px) rotate(-45deg);
transform: translateX(23px) translateY(-1px) rotate(-45deg);
}
.menu {
position: fixed;
z-index: 99;
width: 100%;
height: 100%;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
pointer-events: none;
opacity: 1;
}
.menu .section__content .overlay {
z-index: -1;
background-color: rgba(10, 20, 30, .7)
}
.menu-overlay {
position: absolute;
width: 100%;
height: 100%;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .6);
opacity: 0;
-webkit-transition: all .8s cubic-bezier(0.19, 1, 0.22, 1);
transition: all .8s cubic-bezier(0.19, 1, 0.22, 1);
}
.menu.active {
pointer-events: auto;
}
.menu.active .menu-overlay {
opacity: 1;
}
.menu .section__clip {
width: 0;
-webkit-transition: all .8s cubic-bezier(0.19, 1, 0.22, 1);
transition: all .8s cubic-bezier(0.19, 1, 0.22, 1);
}
.menu.active .section__clip {
width: 100%;
width: 100vw;
}
.menu .description,
.menu .description h1,
.menu .description p {
transition: all 1.8s cubic-bezier(.19, 1, .22, .95);
-webkit-transition: all 1.8s cubic-bezier(.19, 1, .22, .95);
}
.menu .description {
width: 50%;
max-width: 280px;
margin: 0 auto;
position: absolute;
bottom: 10%;
right: 10%;
opacity: 0;
z-index: 2;
overflow: hidden;
display: flex;
flex-direction: row;
}
.menu.active .description {
opacity: 1;
}
.menu .description p {
width: 100%;
font-size: 8px;
text-transform: uppercase;
letter-spacing: 2px;
color: rgba(255, 255, 255, .3);
padding-left: 30px;
}
.menu .description p span {
pointer-events: none;
}
.menu .description p a {
color: rgba(255, 255, 255, .5);
}
.menu .description p a:hover {
color: rgba(255, 255, 255, .8);
}
.menu .description h1,
.menu .description p {
opacity: 0;
-webkit-transform: translateX(-100px);
-ms-transform: translateX(-100px);
transform: translateX(-100px);
}
.menu .description h1 {
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s
}
.menu .description p:nth-child(1) {
-webkit-transition-delay: 0.2s;
transition-delay: 0.2s
}
.menu .description p:nth-child(2) {
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s
}
.menu.active .description h1,
.menu.active .description p {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
.nav-container {
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
}
.nav-container>div {
border-left: 1px solid rgba(255, 255, 255, .05);
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
}
.nav-container>div:nth-child(1) {
border-left: none;
}
.nav-container a {
position: relative;
width: 100%;
height: 100%;
top: 0;
left: 0;
overflow: hidden;
display: flex;
justify-content: center;
flex-direction: column;
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
}
.nav-container a,
.nav-container a span,
.nav-container a h3,
.nav-container a .bg {
opacity: 0;
transition: all 1s cubic-bezier(.19, 1, .22, .95);
-webkit-transition: all 1s cubic-bezier(.19, 1, .22, .95);
}
.nav-container a span,
.nav-container a h3 {
margin-left: 10px;
}
.menu.active .nav-container a,
.menu.active .nav-container a span,
.menu.active .nav-container a h3 {
opacity: 1;
}
.menu.active .nav-container a {
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
.menu.active .nav-container div:nth-child(2) a {
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s
}
.menu.active .nav-container div:nth-child(3) a {
-webkit-transition-delay: 0.14s;
transition-delay: 0.14s
}
.menu.active .nav-container div:nth-child(4) a {
-webkit-transition-delay: 0.18s;
transition-delay: 0.18s
}
.menu.active .nav-container div:nth-child(5) a {
-webkit-transition-delay: 0.22s;
transition-delay: 0.22s
}
.menu.active .nav-container div:nth-child(6) a {
-webkit-transition-delay: 0.26s;
transition-delay: 0.26s
}
.menu.active .nav-container div:nth-child(7) a {
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s
}
.menu.active .nav-container div:nth-child(8) a {
-webkit-transition-delay: 0.34s;
transition-delay: 0.34s
}
.menu.active .nav-container div:nth-child(9) a {
-webkit-transition-delay: 0.38s;
transition-delay: 0.38s
}
.nav-container a .bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
opacity: 0;
}
.nav-container a span {
display: block;
font: 700 80px/1 "Proxima Nova", Arial, Helvetica, sans-serif;
color: rgba(255, 255, 255, .1);
-webkit-transform: translateX(-30px);
-ms-transform: translateX(-30px);
transform: translateX(-30px);
}
@media screen and (max-width: 890px) {
.nav-container a span {
font-size: 60px;
}
}
.nav-container h3 {
font: 400 10px "Proxima Nova", Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: rgba(255, 255, 255, .5);
letter-spacing: 2px;
margin-top: 0;
-webkit-transform: translateX(10px);
-ms-transform: translateX(10px);
transform: translateX(10px);
}
.nav-container a:hover .bg {
opacity: 1;
}
.nav-container a:hover span {
color: rgba(255, 255, 255, .2);
-webkit-transform: translateX(-20px);
-ms-transform: translateX(-20px);
transform: translateX(-20px);
}
.nav-container a:hover h3 {
color: rgba(255, 255, 255, 1);
-webkit-transform: translateX(0px);
-ms-transform: translateX(0px);
transform: translateX(0px);
}
.grad-darkpurple {
background: rgb(0,50,66); /* Old browsers */
background: -moz-linear-gradient(45deg, rgba(0,50,66,1) 0%, rgba(32,0,96,1) 50%, rgba(79,0,92,1) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, rgba(0,50,66,1) 0%,rgba(32,0,96,1) 50%,rgba(79,0,92,1) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, rgba(0,50,66,1) 0%,rgba(32,0,96,1) 50%,rgba(79,0,92,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#003242', endColorstr='#4f005c',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-blue, .section .section__content h2::before {
background: rgb(130,0,244); /* Old browsers */
background: -moz-linear-gradient(45deg, rgba(130,0,244,1) 0%, rgba(37,247,255,1) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, rgba(130,0,244,1) 0%,rgba(37,247,255,1) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, rgba(130,0,244,1) 0%,rgba(37,247,255,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8200f4', endColorstr='#25f7ff',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-midblue {
background: #350096; /* Old browsers */
background: -moz-linear-gradient(45deg, #350096 0%, #00e3c6 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, #350096 0%,#00e3c6 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, #350096 0%,#00e3c6 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#350096', endColorstr='#00e3c6',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-darkblue {
background: #23075d; /* Old browsers */
background: -moz-linear-gradient(45deg, #23075d 0%, #00605c 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, #23075d 0%,#00605c 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, #23075d 0%,#00605c 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#23075d', endColorstr='#00605c',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-purple {
background: rgb(42,10,169); /* Old browsers */
background: -moz-linear-gradient(45deg, rgba(42,10,169,1) 0%, rgba(124,19,157,1) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, rgba(42,10,169,1) 0%,rgba(124,19,157,1) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, rgba(42,10,169,1) 0%,rgba(124,19,157,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2a0aa9', endColorstr='#7c139d',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-pink, .section .section__content.grad-darkblue h2::before {
background: #fa49ff; /* Old browsers */
background: -moz-linear-gradient(45deg, #fa49ff 0%, #6267fc 64%, #5bead5 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, #fa49ff 0%,#6267fc 64%,#5bead5 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, #fa49ff 0%,#6267fc 64%,#5bead5 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fa49ff', endColorstr='#5bead5',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.grad-red, .section .section__content.grad-midblue h2::before{
background: #221884; /* Old browsers */
background: -moz-linear-gradient(45deg, #221884 0%, #be3679 50%, #ffa458 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(45deg, #221884 0%,#be3679 50%,#ffa458 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(45deg, #221884 0%,#be3679 50%,#ffa458 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#221884', endColorstr='#ffa458',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}
.section {
position: relative;
height: 100%;
}
.section__clip {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
clip: rect(auto, auto, auto, auto);
-webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);
clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);
}
.section__content {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
</style>