diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2025-01-22 02:09:56 +0000 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2025-01-22 02:09:56 +0000 |
| commit | 850affbd55fee9cd48a82ade94a3a5e60fd737a8 (patch) | |
| tree | 3d53005a151f17bdef27afcfaeec91aa1217a25e /components/Panel.vue | |
| parent | c6a34e6f7d6c0f592b8e370ee942017d914662bd (diff) | |
Add version and some icons
Diffstat (limited to 'components/Panel.vue')
| -rw-r--r-- | components/Panel.vue | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/components/Panel.vue b/components/Panel.vue index 8e72414..1e86ed1 100644 --- a/components/Panel.vue +++ b/components/Panel.vue @@ -1,4 +1,5 @@ <script setup lang="ts"> +import { ArrowRight } from 'lucide-vue-next'; import { defineProps, type PropType } from 'vue'; defineProps({ @@ -7,10 +8,27 @@ defineProps({ required: false, default: 'normal', }, + title: { + type: String, + required: false, + default: '', + }, + breadcrumbs: { + type: Array as PropType<Array<{ text: string, to: string }>>, + required: false, + default: () => [], + }, }); </script> <template> <div class="card" :class="kind"> + <div v-if="title" class="card-title-container"> + <span v-for="(breadcrumb, index) in breadcrumbs" class="breadcrumb" :key="index"> + <NuxtLink :to="breadcrumb.to">{{ breadcrumb.text }}</NuxtLink> + <ArrowRight /> + </span> + <span class="card-title"> {{ title }} </span> + </div> <slot /> </div> </template> @@ -21,6 +39,46 @@ defineProps({ border-radius: 0.5rem; } +.card-title-container { + line-height: 1; + background-color: var(--color-background-muted); + padding: 1rem 1rem; + margin: -1rem -1rem 1rem -1rem; + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem;; + border-bottom: 1px solid var(--color-border); + display: flex; + align-items: center; + gap: 0.5rem; +} + +.card-title { + font-size: 1.5rem; + font-weight: 700; +} + +.breadcrumb { + font-size: 1.2rem; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.breadcrumb > svg { + width: 1.2rem; + height: 1.2rem; + color: var(--color-text-muted); +} + +.breadcrumb > a { + color: var(--color-text-muted); +} + +.breadcrumb > a:hover { + color: var(--color-primary); +} + .normal { background-color: white; border: 0.1rem solid var(--color-border); |
