shoelace/src/components/details/details.scss

86 wiersze
1.7 KiB
SCSS

@import 'component';
/**
* @prop --hide-duration: The length of the hide transition.
* @prop --hide-timing-function: The timing function (easing) to use for the hide transition.
* @prop --show-duration: The length of the show transition.
* @prop --show-timing-function: The timing function (easing) to use for the show transition.
*/
:host {
display: block;
--hide-duration: var(--sl-transition-medium);
--hide-timing-function: ease;
--show-duration: var(--sl-transition-medium);
--show-timing-function: ease;
}
.details {
border: solid 1px var(--sl-color-gray-90);
border-radius: var(--sl-border-radius-medium);
}
.details--disabled {
opacity: 0.5;
}
.details__header {
display: flex;
align-items: center;
border-radius: inherit;
padding: var(--sl-spacing-medium);
user-select: none;
cursor: pointer;
&:focus {
outline: none;
}
}
.focus-visible .details__header:focus {
box-shadow: var(--sl-focus-ring-box-shadow);
}
.details--disabled .details__header {
cursor: not-allowed;
&:focus {
outline: none;
box-shadow: none;
}
}
.details__summary {
flex: 1 1 auto;
display: flex;
align-items: center;
}
.details__summary-icon {
flex: 0 0 auto;
display: flex;
align-items: center;
transition: var(--sl-transition-medium) transform ease;
}
.details--open .details__summary-icon {
transform: rotate(90deg);
}
.details__body {
height: 0;
overflow: hidden;
transition-property: height;
transition-duration: var(--hide-duration);
transition-timing-function: var(--hide-timing-function);
}
.details--open .details__body {
transition-duration: var(--show-duration);
transition-timing-function: var(--show-timing-function);
}
.details__content {
padding: var(--sl-spacing-medium);
}