34 lines
839 B
Vue
Executable file
34 lines
839 B
Vue
Executable file
<template>
|
|
<article class="Person flex-col">
|
|
<img
|
|
loading="lazy"
|
|
width="150"
|
|
height="150"
|
|
:srcset="[userImage('1x', true), userImage('2x', true), userImage('3x', true)].join(', ')"
|
|
:src="userImage('1x', false)"
|
|
:alt="`Bild von ${name}`"
|
|
/>
|
|
<h3>{{name}}</h3>
|
|
<p>
|
|
<span v-for="tag in tags">{{tag}}</span>
|
|
</p>
|
|
<p class="flavour">{{flavour}}</p>
|
|
<Button :href="link" class="button" target="_blank" rel="noreferrer noopener" :aria-label="`Externer Link zur Homepage von ${name}`">
|
|
Zur Homepage
|
|
</Button>
|
|
</article>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
type Props = {
|
|
img: string
|
|
name: string
|
|
tags: string[]
|
|
flavour: string
|
|
link: string
|
|
}
|
|
|
|
const { img } = defineProps<Props>()
|
|
|
|
const userImage = getImage('/img/network/', img)
|
|
</script>
|