zarm
Version:
基于 React 的移动端UI库
188 lines (178 loc) • 5.02 kB
CSS
.za-collapse {
--border-color: var(--za-collapse-border-color, var(--za-border-color));
--arrow-color: var(--za-collapse-arrow-color, var(--za-arrow-color));
--arrow-size: var(--za-collapse-arrow-size, var(--za-arrow-size));
--arrow-width: var(--za-collapse-arrow-width, var(--za-arrow-width));
--arrow-disabled-color: var(--za-collapse-arrow-disabled-color, #eee);
--header-height: var(--za-collapse-header-height, 44px);
--header-padding-horizontal: var(--za-collapse-header-padding-horizontal, 16px);
--header-padding-vertical: var(--za-collapse-header-padding-vertical, 15px);
--header-disable-color: var(--za-collapse-header-disable-color, var(--za-color-text-disabled));
--content-color: var(--za-collapse-content-color, var(--za-color-text-caption));
--content-padding-vertical: var(--za-collapse-content-padding-vertical, var(--za-padding-v-sm));
--content-padding-horizontal: var(--za-collapse-content-padding-horizontal, var(--za-padding-h-sm));
position: relative;
}
.za-collapse:after {
content: "";
pointer-events: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
border-radius: 0;
border: 0 solid var(--border-color);
/* prettier-ignore */
border-top-width: 1PX;
/* prettier-ignore */
border-bottom-width: 1PX;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
.za-collapse:after {
width: 200%;
height: 200%;
transform: scale(0.5);
transform-origin: 0 0;
border-radius: 0;
}
}
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
.za-collapse:after {
width: 300%;
height: 300%;
transform: scale(0.3333);
transform-origin: 0 0;
border-radius: 0;
}
}
.za-collapse--animated .za-collapse-item__content {
transition: all 0.3s ease;
}
.za-collapse-item:not(.za-collapse-item--disabled) .za-collapse-item__header:active {
background-color: var(--za-background-active);
}
.za-collapse-item__header {
position: relative;
overflow: hidden;
display: flex;
align-items: center;
min-height: var(--header-height);
padding: 0 var(--header-padding-horizontal);
transition-duration: 0.1s;
transition-property: background-color, color;
}
.za-collapse-item__header:after {
content: "";
pointer-events: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
border-radius: 0;
border: 0 solid var(--border-color);
/* prettier-ignore */
border-top-width: 1PX;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
.za-collapse-item__header:after {
width: 200%;
height: 200%;
transform: scale(0.5);
transform-origin: 0 0;
border-radius: 0;
}
}
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
.za-collapse-item__header:after {
width: 300%;
height: 300%;
transform: scale(0.3333);
transform-origin: 0 0;
border-radius: 0;
}
}
.za-collapse-item__header:after {
left: var(--header-padding-horizontal);
}
.za-collapse-item__title {
flex: 1;
font-size: 17px;
}
.za-collapse-item__content {
position: relative;
height: 0;
overflow: hidden;
font-size: 13px;
color: var(--content-color);
will-change: height;
}
.za-collapse-item__content:after {
content: "";
pointer-events: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
border-radius: 0;
border: 0 solid var(--border-color);
/* prettier-ignore */
border-top-width: 1PX;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
.za-collapse-item__content:after {
width: 200%;
height: 200%;
transform: scale(0.5);
transform-origin: 0 0;
border-radius: 0;
}
}
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
.za-collapse-item__content:after {
width: 300%;
height: 300%;
transform: scale(0.3333);
transform-origin: 0 0;
border-radius: 0;
}
}
.za-collapse-item__content:after {
left: var(--header-padding-horizontal);
}
.za-collapse-item__content__inner {
padding: var(--content-padding-vertical) var(--content-padding-horizontal);
}
.za-collapse-item__arrow {
margin-top: -3px;
margin-left: 5px;
margin-right: 2px;
}
.za-collapse-item__arrow:after {
display: inline-block;
content: "";
border-right: var(--arrow-width) solid var(--arrow-color);
border-top: var(--arrow-width) solid var(--arrow-color);
width: var(--arrow-size);
height: var(--arrow-size);
transform: rotate(135deg);
transition: all 0.3s ease;
}
.za-collapse-item--disabled .za-collapse-item__title {
color: var(--header-disable-color);
}
.za-collapse-item--disabled .za-collapse-item__arrow:after {
border-right-color: var(--arrow-disabled-color);
border-top-color: var(--arrow-disabled-color);
}
.za-collapse-item--active .za-collapse-item__content {
height: auto;
}
.za-collapse-item--active .za-collapse-item__arrow {
margin-top: 0;
}
.za-collapse-item--active .za-collapse-item__arrow:after {
transform: rotate(-45deg);
}