amis/packages/amis-ui/scss/components/_collapse.scss

232 lines
6.0 KiB
SCSS

.#{$ns}Collapse {
border-width: var(--collapse-default-top-border-width)
var(--collapse-default-right-border-width)
var(--collapse-default-bottom-border-width)
var(--collapse-default-left-border-width);
border-style: var(--collapse-default-top-border-style)
var(--collapse-default-right-border-style)
var(--collapse-default-bottom-border-style)
var(--collapse-default-left-border-style);
border-color: var(--collapse-default-top-border-color)
var(--collapse-default-right-border-color)
var(--collapse-default-bottom-border-color)
var(--collapse-default-left-border-color);
border-radius: var(--collapse-default-top-left-border-radius)
var(--collapse-default-top-right-border-radius)
var(--collapse-default-bottom-right-border-radius)
var(--collapse-default-bottom-left-border-radius);
padding: 0;
line-height: px2rem(20px);
// overflow: hidden;
&-header {
font-size: var(--Collapse-header-fontSize);
font-weight: var(--Collapse-header-fontWeight);
color: var(--collapse-default-header-color);
line-height: var(--collapse-default-header-lineHeight);
padding: var(--Collapse-header-padding);
margin: 0;
cursor: pointer;
background: var(--Collapse-header-bg);
&-wrapper {
display: inline-flex;
flex-direction: var(--Collapse-header-wrapper-direction);
}
&-tpl {
margin-right: px2rem(8px);
}
&:hover {
background: var(--Collapse-header-onHover-bg);
color: var(--collapse-default-header-hover-color);
}
&.is-mobile {
background: none;
border-radius: 0 !important;
position: relative;
padding-left: 0;
&:hover {
background: none;
}
}
}
.Collapse-arrow {
content: var(--collapse-icon-icon);
}
&-arrow-wrap {
width: px2rem(16px);
height: px2rem(16px);
display: inline-flex;
justify-content: center;
align-items: center;
margin-right: var(--collapse-icon-margin);
svg {
width: var(--collapse-icon-size);
height: var(--collapse-icon-size);
color: var(--collapse-icon-color);
top: 0;
}
}
&-icon-tranform {
display: inline-block;
width: px2rem(16px);
text-align: center;
margin-right: var(--gap-xs);
}
// 干扰太多了,先注释
// .#{$ns}TplField {
// display: inline-block;
// }
&.is-active > .#{$ns}Collapse-header > .#{$ns}Collapse-arrow-wrap > &-arrow {
transform: rotate(var(--collapse-icon-rotate));
transform-origin: 50% 50%;
}
&.is-active > * > &-icon-tranform {
transform: rotate(var(--collapse-icon-rotate));
}
&--disabled > &-header {
cursor: not-allowed;
user-select: none;
color: var(--collapse-default-disabled-color);
background: var(--collapse-default-disabled-header-bg-color);
}
&--disabled &-arrow-wrap svg {
color: var(--collapse-default-disabled-color);
}
// title 显示在底部的模式
&--title-bottom &-header {
text-align: center;
font-size: var(--fontSizeBase);
border-top: var(--Collapse-header-collapsed-borderTop);
border-bottom: var(--Collapse-header-collapsed-borderBottom);
}
&--title-bottom.is-collapsed &-header {
border-top: none;
}
&--title-bottom &-arrow {
top: px2rem(-4px);
transform: rotate(var(--collapse-icon-rotate));
}
&--title-bottom.is-active &-arrow {
top: 0;
transform: rotate(calc(-1 * var(--collapse-icon-rotate)));
}
&-contentWrapper {
transition: height var(--animation-duration) ease;
&.in,
&.out {
height: 0;
overflow: hidden;
}
}
&-content {
padding: var(--Collapse-content-padding);
color: var(--Collapse-content-color);
font-size: var(--Collapse-content-fontSize);
font-weight: var(--Collapse-content-fontWeight);
line-height: var(--collapse-default-content-lineHeight);
background: var(--collapse-default-bg-color);
}
&.is-mobile {
border-top: none;
border-left: none;
border-right: none;
&:last-child {
border-bottom: none;
}
.#{$ns}Collapse-icon-tranform,
.#{$ns}Collapse-arrow-wrap {
margin-right: px2rem(-18px);
float: right;
margin-top: px2rem(2px);
}
.#{$ns}Collapse-content {
padding-left: 0;
padding-right: 0;
}
}
}
//FieldSet Form + Collapse
.#{$ns}Form {
.#{$ns}Collapse {
border: none;
.#{$ns}Collapse-header {
background-color: var(--white);
display: inline-flex;
justify-content: flex-end;
align-items: center;
flex-direction: row-reverse;
border-radius: 0;
}
.#{$ns}Collapse-content {
padding: 0;
}
}
/* 恢复 Form 嵌套场景下的样式 */
.#{$ns}Collapse-fieldset--disabled {
border-width: var(--collapse-default-top-border-width)
var(--collapse-default-right-border-width)
var(--collapse-default-bottom-border-width)
var(--collapse-default-left-border-width);
border-style: var(--collapse-default-top-border-style)
var(--collapse-default-right-border-style)
var(--collapse-default-bottom-border-style)
var(--collapse-default-left-border-style);
border-color: var(--collapse-default-top-border-color)
var(--collapse-default-right-border-color)
var(--collapse-default-bottom-border-color)
var(--collapse-default-left-border-color);
border-radius: var(--collapse-default-top-left-border-radius)
var(--collapse-default-top-right-border-radius)
var(--collapse-default-bottom-right-border-radius)
var(--collapse-default-bottom-left-border-radius);
.#{$ns}Collapse-header {
background: var(--Collapse-header-bg);
display: block;
border-radius: unset;
}
.#{$ns}Collapse-content {
padding: var(--Collapse-content-padding);
}
}
}
/* 移动端样式调整 */
@include media-breakpoint-down(sm) {
.#{$ns}Collapse {
border: none;
position: relative;
&::before {
@include hairline-bottom(var(--collapse-default-bottom-border-color));
}
}
}