StaticApps/src/theme/components/_collapse.scss

86 lines
1.4 KiB
SCSS

v-collapse {
display: flex;
flex-direction: column;
v-collapse-item.open {
margin-top: .5rem;
margin-bottom: 1rem;
}
}
v-collapse-item, v-collapse-content, v-collapse-head {
display: block;
}
v-collapse-item {
margin-top: 0;
transition: box-shadow .5s, margin .3s;
box-shadow: #3949ab;
&.open {
box-shadow: $box-shadow-1;
v-collapse-content {
overflow: unset;
animation: collapse-overflow .5s linear;
}
}
}
@keyframes collapse-overflow {
0%, 99% {
overflow: hidden;
}
100% {
overflow: unset;
}
}
v-collapse-item:not(:last-child) {
v-collapse-head {
border-bottom: 0.05rem solid rgba(59, 59, 59, .3);
}
}
v-collapse-head {
padding: 1rem .5rem;
cursor: pointer;
user-select: none;
background-color: rgba(0, 0, 0, .2);
color: #ffffff;
font-weight: bold;
position: relative;
&:after {
content: '';
border: solid #fff;
border-width: 0 .1rem .1rem 0;
width: .5rem;
height: .5rem;
position: absolute;
right: 1em;
margin-top: .1rem;
transform: rotate(45deg);
transition: .3s;
}
}
v-collapse-item.open {
v-collapse-head:after {
transform: rotate(225deg);
margin-top: .4rem;
}
}
v-collapse-content {
max-height: 0;
overflow: hidden;
transition: max-height .5s cubic-bezier(0.65, -0.02, 0.56, 1.04);
background-color: rgba(0, 0, 0, .05);
}
.collapse-inner {
display: block;
padding: 1rem;
}