<template> <div> <HeaderComponent current-page="blogs" :transparent="scroll < 50" :with-shadow="scroll > 50" @onButtonClick="scrollToContacts" ></HeaderComponent> <div class="overflow-hidden mt-[-80px] pt-20"> <div class="absolute bg-gray-bg blur-[58px] rounded-[190px] w-[380px] h-[380px] z-0 -right-[82px] -top-[51px]" ></div> <section class="relative z-10 px-[6.7%] mt-[63px]"> <h1 class="text-black text-[2rem]"> Blog <FeatureSvg class="inline absolute -top-[6px] -translate-x-[3px] text-blue gap-x-10 w-6 h-6" ></FeatureSvg> </h1> <ul class="mt-2"> <li v-for="blog in blogs" :key="blog.id"> <article class="p-4 mt-6 rounded-2xl bg-white shadow-3x28"> <img :src="blog.image" alt="Title image" class="w-full mb-4" /> <router-link :to="`${$publicPath}blogs/${blog.id}`" class="font-medium text-xl text-dark leading-[1.66rem] hover:text-blue-text transition-colors" > {{ blog.title }} </router-link> <p class="mt-2 leading-5 text-gray-text"> <small>{{ blog.date }}</small> </p> <p class="mt-4 text-gray-600"> {{ blog.content.length > 340 ? blog.content.slice(0, 340) + "..." : blog.content }} </p> </article> </li> </ul> </section> <FooterComponent ref="contacts" class="mt-[92px]"></FooterComponent> </div> </div> </template> <script> import HeaderComponent from "../components/HeaderComponent.vue"; import FeatureSvg from "../components/svg/FeatureSvg.vue"; import BlogsMixin from "../components/mixins/BlogsMixin.vue"; import FooterComponent from "../components/FooterComponent.vue"; export default { name: "BlogsPage", data() { return { scroll: window.scrollY, }; }, mounted() { window.addEventListener("scroll", this.onScroll); }, beforeDestroy() { window.removeEventListener("scroll", this.onScroll); }, methods: { onScroll() { this.scroll = window.scrollY; }, scrollToContacts(){ this.$refs.contacts.$el.scrollIntoView({ behavior: 'smooth' }); } }, components: { HeaderComponent, FeatureSvg, FooterComponent }, mixins: [BlogsMixin], }; </script>