Sharkey/packages/frontend/src/components/form/section.vue

56 lines
932 B
Vue
Raw Normal View History

<!--
SPDX-FileCopyrightText: syuilo and other misskey contributors
SPDX-License-Identifier: AGPL-3.0-only
-->
2021-09-29 17:50:45 +02:00
<template>
2023-03-05 12:28:39 +01:00
<div :class="[$style.root, { [$style.rootFirst]: first }]">
<div :class="[$style.label, { [$style.labelFirst]: first }]"><slot name="label"></slot></div>
<div :class="[$style.description]"><slot name="description"></slot></div>
2023-03-05 12:28:39 +01:00
<div :class="$style.main">
2021-09-29 17:50:45 +02:00
<slot></slot>
</div>
</div>
</template>
2021-12-30 13:47:48 +01:00
<script lang="ts" setup>
2023-01-05 13:04:56 +01:00
defineProps<{
first?: boolean;
}>();
2021-09-29 17:50:45 +02:00
</script>
2023-03-05 12:28:39 +01:00
<style lang="scss" module>
.root {
2021-09-29 17:50:45 +02:00
border-top: solid 0.5px var(--divider);
2023-01-05 13:04:56 +01:00
//border-bottom: solid 0.5px var(--divider);
2023-03-05 12:28:39 +01:00
}
2021-09-29 17:50:45 +02:00
2023-03-05 12:28:39 +01:00
.rootFirst {
border-top: none;
}
2021-11-28 12:07:37 +01:00
2023-03-05 12:28:39 +01:00
.label {
font-weight: bold;
padding: 1.5em 0 0 0;
margin: 0 0 8px 0;
2021-09-29 17:50:45 +02:00
2023-03-05 12:28:39 +01:00
&:empty {
display: none;
2023-01-05 13:04:56 +01:00
}
2023-03-05 12:28:39 +01:00
}
2023-01-05 13:04:56 +01:00
2023-03-05 12:28:39 +01:00
.labelFirst {
padding-top: 0;
}
2023-01-05 13:04:56 +01:00
2023-03-05 12:28:39 +01:00
.main {
margin: 1.5em 0 0 0;
2021-09-29 17:50:45 +02:00
}
.description {
font-size: 0.85em;
color: var(--fgTransparentWeak);
margin: 0 0 8px 0;
}
2021-09-29 17:50:45 +02:00
</style>