@clinic/clinic-common
Version:
Shared parts between the Clinic.js suite
96 lines (82 loc) • 2.01 kB
CSS
.nc-dropdown {
background-color: var(--nc-dropdown-borderColor, rgba(255, 255, 255, 0.7));
padding: 1px;
display: flex;
position: relative;
color: var(--nc-dropdown-color, white);
z-index: 2;
}
.nc-dropdown .label{
padding: 0.2em 0.5em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nc-dropdown .label-wrapper {
background-color: var(--nc-dropdown-bgColor, black);
align-items: center;
display: flex;
min-width: 2.4em;
}
.nc-dropdown .nc-button{
margin-left: 1px;
}
.nc-dropdown .nc-button .icon-img {
margin: 2px;
transition: transform 0.6s cubic-bezier(0.42, 0, 0.23, 1.65);
transform-origin: 50%;
}
.nc-dropdown.expanded .nc-button .icon-img {
transform: rotateZ(90deg);
}
.nc-dropdown.expanded.direction-up .nc-button .icon-img {
transform: rotateZ(-90deg);
}
.nc-dropdown .nc-dropdown-content-wrapper {
background-color: var(--nc-dropdown-contentBg, black);
position: absolute;
right: 0;
top: calc(100% + 2px);
display: none;
opacity: 0;
--anim-duration: 0.2s;
transform-origin: right top;
border: 1px solid var(--nc-dropdown-contentBorderColor, rgba(255, 255, 255, 0.5));
max-height: 40vh;
overflow: auto;
}
.nc-dropdown.nc-dropdown.direction-up .nc-dropdown-content-wrapper {
transform-origin: right bottom;
}
.nc-dropdown.contracted .nc-dropdown-content-wrapper {
display: block;
animation: var(--anim-duration) dropdown-contract 0s 1 normal forwards;
}
.nc-dropdown.expanded .nc-dropdown-content-wrapper {
display: block;
animation: var(--anim-duration) dropdown-expand 0.001s 1 normal forwards;
}
.nc-dropdown.direction-up .nc-dropdown-content-wrapper {
top: auto;
bottom: calc(100% + 2px);
}
@keyframes dropdown-expand {
0% {
opacity: 0;
transform: scale(0.9);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes dropdown-contract {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0.9);
}
}