43 lines
680 B
Vue
43 lines
680 B
Vue
<script lang="ts" setup>
|
|
defineProps<{
|
|
dark?: boolean;
|
|
bordered?: boolean;
|
|
shadowed?: boolean;
|
|
noPadding?: boolean;
|
|
}>();
|
|
</script>
|
|
|
|
<template>
|
|
<div
|
|
class="app-box"
|
|
:class="{
|
|
dark,
|
|
'app-box__bordered': bordered,
|
|
'app-box__shadowed': shadowed,
|
|
'app-box__no-padding': noPadding,
|
|
}"
|
|
>
|
|
<slot />
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.app-box {
|
|
overflow: hidden;
|
|
background-color: var(--surface-1);
|
|
border-radius: var(--radius-2);
|
|
padding: var(--size-3);
|
|
}
|
|
|
|
.app-box__no-padding {
|
|
padding: 0;
|
|
}
|
|
|
|
.app-box__shadowed {
|
|
box-shadow: var(--shadow-3);
|
|
}
|
|
|
|
.app-box__bordered {
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
</style>
|