<script setup lang="ts"> const props = defineProps<{ name: string; href: string; img: string; unclickable?: boolean; }>(); const imgUrl = `/images/services/${props.img}`; </script> <template> <a :href="unclickable ? '' : href" :class="['no-underline', { unclickable }]"> <div class="card flex flex-col items-center justify-around"> <img class="m-0" :src="imgUrl" /> <h3 class="m-0">{{ props.name }}</h3> <p class="desc-text text-gray-600 dark:text-gray-200"><slot /></p> </div> </a> </template> <style scoped> img { width: 6rem; } .card { padding: 1rem; border: 0.2rem solid pink; background: rgb(255, 237, 241); border-radius: 0.5rem; width: 12rem; height: 12rem; line-height: 1.25; transition: all 0.2s ease; box-shadow: 0 0.1rem 0.5rem 0 gray; } html.dark .card { border: 0.2rem solid rgb(126, 93, 98); background: rgb(110, 90, 92); box-shadow: 0 0.1rem 0.5rem 0 black; } .card:hover, .card:active { transform: scale(1.05); } .desc-text { font-size: 0.8rem; margin: 0; text-align: center; } a.unclickable { pointer-events: none; } a.unclickable .card { box-shadow: none; } </style>