-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathBaseCard.vue
More file actions
34 lines (29 loc) · 807 Bytes
/
BaseCard.vue
File metadata and controls
34 lines (29 loc) · 807 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<template>
<div :class="cardClasses">
<div :class="bodyClasses">
<slot />
</div>
</div>
</template>
<script setup>
const props = defineProps({
variant: {
type: String,
default: 'default', // default | subtle | danger | success
},
})
const cardVariantMap = {
default: 'card shadow-sm border-0 bg-white',
subtle: 'card shadow-sm border-0 bg-light',
danger: 'card shadow-sm border-0 bg-danger text-white',
success: 'card shadow-sm border-0 bg-success text-white',
}
const bodyVariantMap = {
default: 'card-body p-4',
subtle: 'card-body p-4',
danger: 'card-body p-4',
success: 'card-body p-4',
}
const cardClasses = cardVariantMap[props.variant] || cardVariantMap.default
const bodyClasses = bodyVariantMap[props.variant] || bodyVariantMap.default
</script>