Vmeda.Online/src/theme/components/collapsible-item.scss
2023-10-02 21:43:34 +02:00

87 lines
2.9 KiB
SCSS

.collapsible-item {
--display-toggle: none;
--collapsible-height: none;
--toggle-size: 24px;
--gradient-size: 44px;
&.collapsible-loading-height {
display: block !important;
height: auto !important;
--collapsible-height: auto !important;
--display-toggle: none !important;
}
.collapsible-toggle {
display: var(--display-toggle);
}
@include media-breakpoint-down(sm) {
&.collapsible-enabled:not(.collapsible-loading-height) {
position: relative;
padding-bottom: var(--toggle-size); // So the Show less button can fit.
--display-toggle: block;
@include core-transition(height, 300ms);
height: calc(var(--collapsible-height, auto) + var(--toggle-size));
.collapsible-toggle {
position: absolute;
@include position (null, 0, 0, null);
text-align: center;
z-index: 7;
text-transform: none;
font-size: 11px;
font-weight: normal;
background-color: var(--collapsible-toggle-background);
color: var(--collapsible-toggle-text);
min-height: var(--toggle-size);
min-width: var(--toggle-size);
height: var(--toggle-size);
width: var(--toggle-size);
--border-radius: var(--radius-xl);
border-radius: var(--border-radius);
--padding-start: 0px;
--padding-end: 0px;
margin: 0px;
.collapsible-toggle-arrow {
width: var(--toggle-size);
height: var(--toggle-size);
background-position: center;
background-repeat: no-repeat;
background-size: 14px 14px;
transform: rotate(-90deg);
@include core-transition(transform, 500ms);
@include push-arrow-color(#626262);
@include darkmode() {
@include push-arrow-color(#ffffff);
}
}
}
&.collapsible-collapsed {
overflow: hidden;
min-height: calc(var(--toggle-size) + 12px);
height: var(--collapsible-height, auto);
.collapsible-toggle-arrow {
transform: rotate(90deg);
}
&:before {
content: '';
height: 100%;
position: absolute;
@include position(null, 0, 0, 0);
background: linear-gradient(to bottom, rgba(var(--background-gradient-rgb), 0) calc(100% - var(--gradient-size)), rgba(var(--background-gradient-rgb), 1) calc(100% - 4px));
z-index: 6;
}
}
}
}
}