diff --git a/src/components/Header.vue b/src/components/Header.vue index 0a4ab80..27cd585 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -13,12 +13,13 @@ @@ -31,14 +32,15 @@ home + Regional Rumble nationals - the kickoff - news + + news tournaments team - discord + discord - donate + @@ -98,4 +100,4 @@ export default { } } } - \ No newline at end of file + diff --git a/src/router/index.js b/src/router/index.js index 5c780cd..f4786a4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -50,6 +50,26 @@ Vue.use(VueRouter) name: 'Nationals Register', component: () => import('../views/NationalsRegister.vue') }, + { + path: '/regionalrumble', + name: 'RumbleMain', + component: () => import('../views/RegionalRumble.vue'), + }, + { + path: '/regionalrumble/apac', + name: 'RumbleApac', + component: () => import('../views/AsianRumble.vue'), + }, + { + path: '/regionalrumble/mena', + name: 'RumbleMena', + component: () => import('../views/MERumble.vue'), + }, + { + path: '/regionalrumble/ssa', + name: 'RumbleSsa', + component: () => import('../views/AfricanRumble.vue'), + }, { path: '*', name: 'NotFound', diff --git a/src/scss/main.scss b/src/scss/main.scss index c88d8bb..6dd2955 100644 --- a/src/scss/main.scss +++ b/src/scss/main.scss @@ -30,7 +30,9 @@ 'pages/tournaments', 'pages/about', 'pages/kickoff', - 'pages/nationals'; + 'pages/nationals', + 'pages/rumble', + 'pages/rumbleregions'; @import 'themes/default'; diff --git a/src/scss/pages/_rumble.scss b/src/scss/pages/_rumble.scss new file mode 100644 index 0000000..617eb8d --- /dev/null +++ b/src/scss/pages/_rumble.scss @@ -0,0 +1,332 @@ +.rumble { + display: flex; + flex-direction: column; + max-height: 100vh; + scroll-snap-type: y mandatory; + overflow-x: hidden; + overflow-y: scroll; + + .bg-only { + position: absolute; + top: 0; + left: 0; + height: 400%; + width: 400%; + overflow: hidden; + z-index: -1; + background-color: #161616; + opacity: 0.1; + rotate: 30deg; + transform: translate(-50%, 0); + background-image: linear-gradient(#ffffff 1.8px, transparent 1.8px), linear-gradient(90deg, #ffffff 1.8px, transparent 1.8px), linear-gradient(#ffffff 0.9px, transparent 0.9px), linear-gradient(90deg, #ffffff 0.9px, #161616 0.9px); + background-size: 45px 45px, 45px 45px, 9px 9px, 9px 9px; + background-position: -1.8px -1.8px, -1.8px -1.8px, -0.9px -0.9px, -0.9px -0.9px; + + animation: moveBg 20s ease-in-out infinite; + } + + section { + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; + scroll-snap-align: start; + + } + + .intro { + position: relative; + flex-direction: row; + + img.rumbleLogo, + img.rumbleRedLogo, + img.rumbleGreenLogo, + img.rumbleYellowLogo { + position: absolute; + display: block; + } + + img.rumbleLogo { + top: 47%; + bottom: 63%; + margin: auto; + width: 30%; + max-width: 576px; + transition: 0.15s linear; + z-index: 5; + + &:hover { + cursor: pointer; + animation: logoHover 0.25s ease-in-out; + scale: 1.1; + filter: drop-shadow(0px 50px 15px rgba(white, 0.25)); + } + } + + img.rumbleRedLogo, + img.rumbleGreenLogo, + img.rumbleYellowLogo { + left: 0; + right: 0; + top: 50%; + bottom: 50%; + margin: auto; + width: 28%; + max-width: 840px; + visibility: hidden; + } + + img.rumbleLogo:hover ~ img.rumbleRedLogo { + animation: logoRedDisplay 0.25s ease-in-out; + } + + img.rumbleLogo:hover ~ img.rumbleGreenLogo { + animation: logoGreenDisplay 0.25s ease-in-out; + } + + img.rumbleLogo:hover ~ img.rumbleYellowLogo { + animation: logoYellowDisplay 0.25s ease-in-out; + } + + img.rlLogo { + position: absolute; + min-width: 100px; + width: 7%; + display: block; + align-self: flex-end; + left: 0; + right: 0; + top: 60%; + bottom: 0; + margin: auto; + } + + .scroll-indicator { + position: absolute; + display: flex; + justify-content: center; + align-items: center; + bottom: 5%; + rotate: 90deg; + text-transform: uppercase; + font-size: 0.8rem; + animation: moveScroll 2s ease-in-out infinite; + + &::after { + content: ''; + display: inline-block; + width: 30px; + height: 1px; + background: white; + } + } + } + + .selector { + width: 100%; + height: 100%; + overflow: hidden; + + div { + position: relative; + width: calc(100vw / 3); + height: 100vh; + background-size: cover; + display: flex; + justify-content: center; + align-items: center; + transition: all 0.5s ease; + + &.apac { + background-image: url('https://cms.aplesports.com/storage/uploads/2023/09/18/65085dc28ca0frawkkim-KKz6NgO69yQ-unsplash.jpg'); + background-position: 25% 50%; + } + + &.me { + background-image: url('https://cms.aplesports.com/storage/uploads/2023/09/18/65085e8004a71neom-9633dHhioC8-unsplash1.jpg'); + background-position: 50% 50%; + } + + &.ssa { + background-image: url('https://cms.aplesports.com/storage/uploads/2023/09/18/65085e22e5166lina-loos-04-C1NZk1hE-unsplash.jpg'); + background-position: 40% 50%; + } + + &:hover { + width: calc(calc(100vw / 3) + 50%); + cursor: pointer; + } + + img { + width: 50%; + } + + .unoverlay { + display: block; + position: absolute; + width: 100%; + height: 100%; + background: rgba(black, 0); + transition: 0.5s ease-in-out; + } + } + } + section.footer { + font-family: $text-font-stack; + width: 100%; + min-height: 200px; + height: 200px; + padding: 2rem 2rem; + background: lighten($bg-color, 20%); + text-align: center; + font-size: 1rem; + letter-spacing: 0.5px; + line-height: 1.5; + } +} + +@keyframes moveBg { + 0% { + transform: translate(-50%, 0); + } + 50% { + transform: translate(-50%, 2%); + } + 100% { + transform: translate(-50%, 0); + } +} + +@keyframes logoHover { + 0% { + scale: 1; + rotate: 0; + } + 25% { + rotate: 2deg; + } + 50% { + rotate: -2deg; + } + 75% { + rotate: 2deg; + } + 100% { + scale: 1.1; + rotate: 0; + } +} + +@keyframes logoRedDisplay { + 0% { + visibility: hidden; + } + 25% { + visibility: visible; + } + 40% { + visibility: hidden; + } + 75% { + visibility: hidden; + } + 100% { + visibility: hidden; + } +} + +@keyframes logoGreenDisplay { + 0% { + visibility: hidden; + } + 25% { + visibility: hidden; + } + 50% { + visibility: visible; + } + 60% { + visibility: hidden; + } + 100% { + visibility: hidden; + } +} + +@keyframes logoYellowDisplay { + 0% { + visibility: hidden; + } + 25% { + visibility: hidden; + } + 50% { + visibility: hidden; + } + 75% { + visibility: visible; + } + 90% { + visibility: hidden; + } +} + +@keyframes moveScroll { + 0% { + transform: translate(0, 0); + } + 10% { + transform: translate(10%, 0); + } + 20% { + transform: translate(0, 0); + } + 100% { + transform: translate(0, 0); + } +} + +@media screen and (max-width: 960px) { + .rumble > .intro { + img.rumbleLogo { + width: calc(100vw * 0.8); + } + + img.rumbleRedLogo, + img.rumbleGreenLogo, + img.rumbleYellowLogo { + width: 95%; + } + + } + + .rumble > .selector { + flex-direction: column; + + div { + width: 100vw; + height: calc(100vh / 3); + + img { + width: auto; + min-height: 100px; + height: 30%; + transition: 0.5s ease; + } + + &:hover { + width: 100vw; + height: 70vh; + } + + &.apac:hover > img { + margin-top: 50%; + } + + &.ssa:hover > img { + margin-bottom: 50%; + } + } + } +} diff --git a/src/scss/pages/_rumbleregions.scss b/src/scss/pages/_rumbleregions.scss new file mode 100644 index 0000000..e7d8063 --- /dev/null +++ b/src/scss/pages/_rumbleregions.scss @@ -0,0 +1,149 @@ +.regional { + .bg-only { + position: fixed; + top: 0; + left: 0; + height: 400%; + width: 400%; + overflow: hidden; + z-index: -1; + background-color: #161616; + opacity: 0.1; + rotate: 30deg; + transform: translate(-50%, 0); + background-image: linear-gradient(#ffffff 1.8px, transparent 1.8px), linear-gradient(90deg, #ffffff 1.8px, transparent 1.8px), linear-gradient(#ffffff 0.9px, transparent 0.9px), linear-gradient(90deg, #ffffff 0.9px, #161616 0.9px); + background-size: 45px 45px, 45px 45px, 9px 9px, 9px 9px; + background-position: -1.8px -1.8px, -1.8px -1.8px, -0.9px -0.9px, -0.9px -0.9px; + + animation: moveBg 20s ease-in-out infinite; + } + section { + min-height: 100vh; + + &.hero { + position: relative; + + img { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + min-width: 300px; + width: 20%; + max-width: 500px; + } + + .goback { + padding-top: 100px; + margin: 0 auto; + display: flex; + flex-direction: row; + max-width: 300px; + justify-content: space-evenly; + align-items: center; + + p { + font-size: 14pt; + } + svg { + width: 24px; + height: 24px; + fill: white; + } + + &:hover { + cursor: pointer; + + p { + text-decoration-line: underline; + } + } + } + } + + &.info { + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + .infomercial { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + + div { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: calc(calc(100vw / 2) - 4rem); + h2 { + text-align: center; + } + } + } + } + + &.trailer { + min-height: 100vh; + display: grid; + place-items: center; + padding: 1rem 2rem; + + iframe { + width: 100%; + height: 100%; + max-width: 1280px; + max-height: 720px; + } + } + } + footer { + font-family: $text-font-stack; + width: 100%; + padding: 2rem 2rem; + background: lighten($bg-color, 20%); + text-align: center; + font-size: 1rem; + letter-spacing: 0.5px; + line-height: 1.5; + } +} + + +@keyframes moveBg { + 0% { + transform: translate(-50%, 0); + } + 50% { + transform: translate(-50%, 2%); + } + 100% { + transform: translate(-50%, 0); + } +} + +@media screen and (max-width: 960px) { + .regional > section.info { + padding: 1rem 2rem; + margin-bottom: 5rem; + + .infomercial { + flex-direction: column; + width: 100%; + height: 100%; + + div { + width: 100%; + height: 100%; + justify-content: space-evenly; + align-items: flex-start; + } + } + } +} diff --git a/src/views/AfricanRumble.vue b/src/views/AfricanRumble.vue new file mode 100644 index 0000000..e118ddd --- /dev/null +++ b/src/views/AfricanRumble.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/views/AsianRumble.vue b/src/views/AsianRumble.vue new file mode 100644 index 0000000..989a97f --- /dev/null +++ b/src/views/AsianRumble.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/MERumble.vue b/src/views/MERumble.vue new file mode 100644 index 0000000..36a3ef4 --- /dev/null +++ b/src/views/MERumble.vue @@ -0,0 +1,54 @@ + + + diff --git a/src/views/RegionalRumble.vue b/src/views/RegionalRumble.vue new file mode 100644 index 0000000..e18f3a4 --- /dev/null +++ b/src/views/RegionalRumble.vue @@ -0,0 +1,97 @@ + + +