Files
Modrinth-plus/packages/ui/src/components/base/Collapsible.vue

40 lines
657 B
Vue
Raw Normal View History

2025-02-19 22:00:52 -08:00
<template>
<div class="accordion-content" :class="(baseClass ?? ``) + (collapsed ? `` : ` open`)">
<div v-bind="$attrs" :inert="collapsed">
<slot />
</div>
</div>
2025-02-19 22:00:52 -08:00
</template>
<script setup lang="ts">
defineProps<{
baseClass?: string
collapsed: boolean
}>()
2025-02-19 22:00:52 -08:00
defineOptions({
inheritAttrs: false,
})
2025-02-19 22:00:52 -08:00
</script>
<style scoped>
.accordion-content {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease-in-out;
2025-02-19 22:00:52 -08:00
}
@media (prefers-reduced-motion) {
.accordion-content {
transition: none !important;
}
2025-02-19 22:00:52 -08:00
}
.accordion-content.open {
grid-template-rows: 1fr;
2025-02-19 22:00:52 -08:00
}
.accordion-content > div {
overflow: hidden;
2025-02-19 22:00:52 -08:00
}
</style>