<template> <router-link :to="`/@${page.user.username}/pages/${page.name}`" class="vhpxefrj" tabindex="-1" :class="{ shadow: $store.state.device.useShadow, round: $store.state.device.roundedCorners }"> <div class="thumbnail" v-if="page.eyeCatchingImage" :style="`background-image: url('${page.eyeCatchingImage.thumbnailUrl}')`"></div> <article> <header> <h1 :title="page.title">{{ page.title }}</h1> </header> <p v-if="page.summary" :title="page.summary">{{ page.summary.length > 85 ? page.summary.slice(0, 85) + '…' : page.summary }}</p> <footer> <img class="icon" :src="page.user.avatarUrl"/> <p>{{ page.user | userName }}</p> </footer> </article> </router-link> </template> <script lang="ts"> import Vue from 'vue'; export default Vue.extend({ props: { page: { type: Object, required: true }, }, }); </script> <style lang="stylus" scoped> .vhpxefrj display block overflow hidden width 100% background var(--face) &.round border-radius 8px &.shadow box-shadow 0 4px 16px rgba(#000, 0.1) @media (min-width 500px) box-shadow 0 8px 32px rgba(#000, 0.1) > .thumbnail position absolute width 100px height 100% background-position center background-size cover display flex justify-content center align-items center > button font-size 3.5em opacity: 0.7 &:hover font-size 4em opacity 0.9 & + article left 100px width calc(100% - 100px) > article padding 16px > header margin-bottom 8px > h1 margin 0 font-size 1em color var(--urlPreviewTitle) > p margin 0 color var(--urlPreviewText) font-size 0.8em > footer margin-top 8px height 16px > img display inline-block width 16px height 16px margin-right 4px vertical-align top > p display inline-block margin 0 color var(--urlPreviewInfo) font-size 0.8em line-height 16px vertical-align top @media (max-width 700px) > .thumbnail position relative width 100% height 100px & + article left 0 width 100% @media (max-width 550px) font-size 12px > .thumbnail height 80px > article padding 12px @media (max-width 500px) font-size 10px > .thumbnail height 70px > article padding 8px > header margin-bottom 4px > footer margin-top 4px > img width 12px height 12px </style>