Skip to content

Commit

Permalink
Vue School Free Weekend Banner (vuejs#1359)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicodevs authored Apr 8, 2022
1 parent 17d1ecf commit 89ffabe
Show file tree
Hide file tree
Showing 16 changed files with 316 additions and 381 deletions.
131 changes: 0 additions & 131 deletions docs/.vitepress/components/VueSchool/BannerCoins.vue

This file was deleted.

84 changes: 51 additions & 33 deletions docs/.vitepress/components/VueSchool/BannerTop.vue
Original file line number Diff line number Diff line change
@@ -1,44 +1,33 @@
<template>
<a
id="vs"
href="https://vueschool.io/sales/blackfriday?friend=vuerouter"
href="https://vueschool.io/free-weekend?friend=vuerouter"
target="_blank"
rel="noreferrer"
>
<BannerCoins />
<div class="vs-logo">
<img src="/images/vueschool/vs-iso.svg" class="logo-small">
<img src="/images/vueschool/vs-logo.svg" class="logo-big">
</div>
<div class="vs-core">
<div class="vs-logo">
<img src="/images/vueschool/vueschool_blackfriday_logo.svg">
</div>
<div class="vs-slogan">
<div class="vs-slogan-subtitle">
Access to all Vue Courses at Vue School
VUE 3 MASTERCLASS - FREE WEEKEND
</div>
<div class="vs-slogan-title">
Cyber Monday <strong>35% OFF</strong> - Closes Soon
Register at <strong>vueschool.io/free-weekend</strong>
</div>
</div>
<div class="vs-button">
Get Discount
Free Access
</div>
<img class="vs-tag" src="/images/vueschool/extended.svg" alt="Extended">
</div>
<div id="vs-close" class="vs-close" @click.stop.prevent="$emit('close')">
<img src="/images/vueschool/vueschool_close.svg" alt="Close">
<img src="/images/vueschool/vs-close.svg" alt="Close">
</div>
</a>
</template>

<script>
import BannerCoins from './BannerCoins.vue'
export default {
components: {
BannerCoins
}
}
</script>

<style>
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&display=swap');
Expand All @@ -58,25 +47,45 @@ export default {
z-index: 100;
height: 5rem;
line-height: 1;
background-image: url(/images/vueschool/vueschool_banner_mobile.png);
background-image: url(/images/vueschool/vs-fw-bg.svg);
background-size: cover;
background-repeat: no-repeat;
}
#vs:hover {
text-decoration: none;
}
#vs .vs-logo {
position: absolute;
left: 20px;
top: 20px;
}
#vs .vs-logo .logo-small {
display: none;
}
#vs .vs-logo .logo-big {
display: none;
}
@media (min-width: 768px) {
#vs .vs-logo .logo-small {
display: inline-block;
}
}
@media (min-width: 1024px) {
#vs .vs-logo .logo-small {
display: none;
}
#vs .vs-logo .logo-big {
display: inline-block;
}
}
@media (min-width: 680px) {
#vs {
height: 5rem;
justify-content: center;
background-image: none;
}
}
#vs:hover .vs-core .vs-button {
background: linear-gradient(261deg, #e61463 100%, #db5248 3%);
}
#vs .vs-core {
display: none;
border-color: #e61463;
}
@media (min-width: 680px) {
#vs .vs-core {
Expand All @@ -88,47 +97,56 @@ export default {
font-family: Archivo;
color: #fff;
margin-left: 8px;
text-align: center;
}
@media (min-width: 680px) {
#vs .vs-core .vs-slogan {
margin-left: 24px;
}
}
#vs .vs-core .vs-slogan .vs-slogan-subtitle {
font-size: 12px;
font-size: 14px;
color: #47b785;
font-weight: bold;
}
@media (min-width: 680px) {
#vs .vs-core .vs-slogan .vs-slogan-subtitle {
font-size: 14px;
font-size: 18px;
}
}
#vs .vs-core .vs-slogan .vs-slogan-title {
margin-top: 6px;
font-size: 16px;
font-weight: 600;
}
@media (min-width: 680px) {
#vs .vs-core .vs-slogan .vs-slogan-title {
font-size: 18px;
}
}
#vs .vs-core .vs-slogan .vs-slogan-title strong {
color: #ffae29;
font-weight: 600;
color: #48a0ff;
font-weight: 400;
}
#vs .vs-core .vs-button {
color: #fff;
padding: 7px 10px;
border-radius: 4px;
background: linear-gradient(to left, #e61b60, #dd4a4c);
font-weight: 600;
white-space: nowrap;
margin-right: 18px;
margin-left: 16px;
font-family: 'Archivo', sans-serif;
object-fit: contain;
border-radius: 30px;
border-style: solid;
border-width: 2px;
background-image: linear-gradient(255deg, #d457d0 98%, #ed81eb 2%), linear-gradient(to bottom, #b349b0, #db61d9);
text-transform: uppercase;
border-color: #B349B0;
display: none;
}
@media (min-width: 680px) {
#vs .vs-core .vs-button {
display: inline-block;
margin-right: 0;
padding: 8px 24px;
margin-left: 22px;
Expand Down
27 changes: 23 additions & 4 deletions docs/.vitepress/theme/Layout.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
<template>
<div class="main-container">
<BannerTop v-if="showTopBanner" @close="closeBannerTop" />
<div
class="main-container"
:class="{ 'has-top-banner': showTopBanner }"
>
<BannerTop
v-if="showTopBanner"
@close="closeBannerTop"
/>
<ParentLayout>
<template #sidebar-top>
<div class="sponsors sponsors-top">
Expand Down Expand Up @@ -52,14 +58,27 @@ import { defineAsyncComponent } from 'vue'
import DefaultTheme from 'vitepress/dist/client/theme-default'
import sponsors from '../components/sponsors.json'
const BannerTop = defineAsyncComponent(() => import('../components/VueSchool/BannerTop.vue'))
export default {
name: 'Layout',
components: {
ParentLayout: DefaultTheme.Layout
ParentLayout: DefaultTheme.Layout,
BannerTop
},
data() {
return {
sponsors
sponsors,
showTopBanner: false
}
},
mounted () {
this.showTopBanner = !localStorage.getItem('VS_FW_22')
},
methods: {
closeBannerTop () {
this.showTopBanner = false
localStorage.setItem('VS_FW_22', 1)
}
}
}
Expand Down
6 changes: 0 additions & 6 deletions docs/public/images/vueschool/extended.svg

This file was deleted.

Binary file removed docs/public/images/vueschool/tech-coin-js.png
Binary file not shown.
Binary file removed docs/public/images/vueschool/tech-coin-nuxt.png
Binary file not shown.
Binary file removed docs/public/images/vueschool/tech-coin-ts.png
Binary file not shown.
Binary file removed docs/public/images/vueschool/tech-coin-vue.png
Binary file not shown.
Binary file removed docs/public/images/vueschool/tech-coin-vuex.png
Binary file not shown.
File renamed without changes
Loading

0 comments on commit 89ffabe

Please sign in to comment.