48 lines
798 B
Vue
48 lines
798 B
Vue
<script setup lang="ts">
|
|
withDefaults(defineProps<{
|
|
title: string,
|
|
wide?: boolean,
|
|
blurb?: string
|
|
}>(), { wide: false })
|
|
</script>
|
|
|
|
<template>
|
|
<div class="glass glass-border glass-box" :class="{ 'glass-box--wide': wide }">
|
|
<h2 v-if="title">{{ title }}</h2>
|
|
<p v-if="blurb">{{ blurb }}</p>
|
|
<slot />
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.glass-box {
|
|
width: clamp(280px, 100%, 700px);
|
|
gap: 1em;
|
|
padding: 2em;
|
|
margin: 2em;
|
|
}
|
|
|
|
.glass-box--wide {
|
|
width: clamp(280px, 100%, 960px);
|
|
}
|
|
|
|
h2 {
|
|
font-size: 2rem;
|
|
text-align: center;
|
|
}
|
|
|
|
p {
|
|
text-align: center;
|
|
width: 100%;
|
|
opacity: 0.7;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
.glass-box {
|
|
padding: 1.25em;
|
|
min-height: unset;
|
|
}
|
|
}
|
|
</style>
|