<template> <div class="photos" :class="{ wide: actor.photos.length > 2 }" > <a v-if="actor.avatar" :href="`/media/${actor.avatar.path}`" target="_blank" rel="noopener noreferrer" class="avatar-link photo-link" > <img :src="`/media/${actor.avatar.thumbnail}`" :title="actor.avatar.copyright && `© ${actor.avatar.copyright}`" class="avatar photo" > </a> <a v-for="photo in actor.photos" :key="`photo-${photo.id}`" :href="`/media/${photo.path}`" target="_blank" rel="noopener noreferrer" class="photo-link" > <img :src="`/media/${photo.thumbnail}`" :title="photo.copyright && `© ${photo.copyright}`" class="photo" > </a> </div> </template> <script> export default { props: { actor: { type: Object, default: null, }, }, }; </script> <style lang="scss" scoped> @import 'theme'; .photos { display: inline-grid; grid-template-columns: repeat(auto-fit, 12rem); grid-gap: .5rem; font-size: 0; .avatar-link { display: none; } &.compact { .photo { width: auto; } } } .photo-link { } .photo { width: 100%; height: 100%; object-fit: cover; box-shadow: 0 0 3px $shadow-weak; } @media(min-width: $breakpoint3) { .photos.wide { max-width: 30vw; } } @media(max-width: $breakpoint3) { .photos { width: 100%; max-width: 100%; display: flex; overflow-x: scroll; scrollbar-width: none; .avatar-link { display: inline-block; } &::-webkit-scrollbar { display: none; } } .photo-link { height: 15rem; flex-shrink: 0; margin: 0 .5rem 0 0; } } </style>