soft-components
Version:
Simple soft flexible set of web components
67 lines (65 loc) • 2.88 kB
CSS
:host {
display: block;
}
:host .heading {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
box-shadow: calc(var(--sc-highlight-dist-x) * 0.2) calc(var(--sc-highlight-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 0.2) calc(var(--sc-shadow-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
box-shadow: calc(var(--sc-highlight-dist-x) * 0.2) calc(var(--sc-highlight-dist-y) * 0.2) calc(1.875rem * 0.2) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), calc(var(--sc-shadow-dist-x) * 0.2) calc(var(--sc-shadow-dist-y) * 0.2) calc(1.875rem * 0.2) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
border-radius: var(--sc-border-radius, 1em);
border: none;
text-align: left;
padding: var(--sc-accordion-item-heading-padding-y) var(--sc-accordion-item-heading-padding-x);
cursor: pointer;
transition: border-radius var(--sc-accordion-animation-duration) ease var(--sc-accordion-animation-duration);
background: var(--sc-accordion-item-heading-bg-color);
}
:host .heading .heading-text {
color: var(--sc-accordion-item-heading-text-color);
margin: 0;
flex: 1;
}
:host .heading .arrow {
color: var(--sc-text-color);
transition: transform var(--sc-accordion-animation-duration) var(--sc-accordion-animation-timing-function);
}
:host .heading .arrow svg {
width: calc(var(--sc-root-spacing, 8px) * 4);
width: calc(var(--sc-root-spacing, 0.5rem) * 4);
height: calc(var(--sc-root-spacing, 8px) * 4);
height: calc(var(--sc-root-spacing, 0.5rem) * 4);
}
:host .heading .arrow svg path {
fill: currentColor;
}
:host .body-container {
overflow: hidden;
max-height: 0;
transition: max-height var(--sc-accordion-animation-duration) var(--sc-accordion-animation-timing-function);
background: var(--sc-accordion-item-body-bg-color);
}
:host .body-container .body {
border-radius: var(--sc-border-radius, 1em);
box-shadow: inset calc(var(--sc-highlight-dist-x) * 0.2) calc(var(--sc-highlight-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-highlight-color, rgba(255, 255, 255, 0.2)), inset calc(var(--sc-shadow-dist-x) * 0.2) calc(var(--sc-shadow-dist-y) * 0.2) calc(30px * 0.2) 0 var(--sc-shadow-color, rgba(0, 0, 0, 0.2));
border-top-left-radius: 0;
border-top-right-radius: 0;
overflow: hidden;
padding: var(--sc-accordion-item-body-padding-y) var(--sc-accordion-item-body-padding-x);
}
:host(.autoHeight) .body-container {
overflow: hidden;
}
:host(.active) .heading {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
transition: border-radius 0s ease;
border-bottom: var(--sc-accordion-item-heading-border-bottom);
}
:host(.active) .heading .arrow {
transform: rotate(180deg);
}
:host(.active) .body-container {
max-height: var(--sc-accordion-item-body-max-height);
}