components/FollowEvent.vue (112 lines of code) (raw):

<template> <div class="follow-wrapper"> <div class="follow"> <h3 class="follow__title">{{ followEvent.title }}</h3> <p class="follow__hashtag">{{ followEvent.hashtag }}</p> <p class="follow__lead">{{ followEvent.lead }}</p> </div> <div class="gather"> <img src="~/assets/svg/gather_logo.svg" alt="" role="presentation" class="gather__logo" /> <picture role="presentation" class="gather__dancers"> <source srcset="~/assets/img/gather_dancers.png" media="(prefers-reduced-motion: reduce)" /> <img srcset="~/assets/img/gather_dancers.gif" alt="" /> </picture> <div class="gather__description"> {{ followEvent.description }} </div> </div> </div> </template> <script> export default { data() { return { followEvent: null } }, async fetch() { const { followEvent } = await this.$content('2021/pages/home/index') .only(['followEvent']) .fetch() this.followEvent = followEvent }, } </script> <style lang="scss" scoped> .follow-wrapper { display: flex; flex-direction: column; align-items: center; margin: 0 auto; padding-top: 56px; background-image: url('~/assets/svg/bg_pills/graphic_pills_footer.svg'); background-repeat: no-repeat; background-position: bottom; @media screen and (min-width: $screen-sm) { padding-top: 160px; } } .follow { display: flex; flex-direction: column; flex-wrap: wrap; text-align: center; &__title { @include mobileToDesktopFontSize(var(--fs-small), var(--fs-large)); margin: 0 auto; padding: 0 24px; } &__hashtag { @include gradientTitle(var(--fc-primary), var(--fc-accent)); margin: 8px 0 40px; font-weight: var(--fw-extra-bold); font-size: var(--fs-small); font-family: var(--ff-title); word-break: break-word; @media screen and (min-width: $screen-tablet) { font-size: var(--fs-large); } @media screen and (min-width: $screen-xl) { font-size: var(--fs-giant); } @media screen and (min-width: $screen-max) { font-size: var(--fs-colossal); } } &__lead { padding: 0 24px; font-size: var(--fs-small); line-height: 30px; @media screen and (min-width: $screen-sm) { padding: 0 112px; } } } .gather { display: flex; flex-direction: column; align-items: center; justify-content: center; margin-top: 56px; row-gap: 42px; @media screen and (min-width: $screen-sm) { margin-top: 120px; } &__logo { max-width: 40px; max-height: 53px; } &__description { max-width: 588px; padding: 0 24px; line-height: 1.4rem; text-align: center; } } </style>