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/Modules/Authentication/components/Menu.vue

633 lines
19 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>