choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
213 lines (174 loc) • 5.11 kB
text/less
@import '../../style/themes/default';
@import '../../style/mixins/index';
@collapse-prefix-cls: ~'@{c7n-prefix}-collapse';
.collapse-close() {
transform: rotate(0);
}
.collapse-open() {
transform: rotate(90deg);
}
.@{collapse-prefix-cls} {
.reset-component;
background-color: @collapse-header-bg;
border: @collapse-border;
border-bottom: 0;
border-radius: @collapse-panel-border-radius;
&-trigger {
.@{collapse-prefix-cls}-header {
cursor: pointer;
}
}
& > &-item {
border-bottom: @collapse-border;
&:last-child {
&,
& > .@{collapse-prefix-cls}-header {
border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;
}
}
> .@{collapse-prefix-cls}-header {
position: relative;
padding: @collapse-header-padding;
color: @heading-color;
line-height: @collapse-header-line-height;
transition: all @animation-duration-slow;
.@{collapse-prefix-cls}-extra {
float: right;
}
&:focus {
outline: none;
}
.@{collapse-prefix-cls}-expand-icon {
.iconfont-font('\e5c5', @collapse-expand-icon-size);
height: @collapse-expand-icon-size;
line-height: 1;
vertical-align: top;
transform: rotate(-90deg);
cursor: pointer;
&.@{collapse-prefix-cls}-expanded {
vertical-align: top;
transform: rotate(0);
}
}
.@{collapse-prefix-cls}-expand-text {
display: inline-block;
padding-right: 0.1rem;
cursor: pointer;
}
}
}
// Expand Icon right
&-icon-position-right {
border: @collapse-icon-right-border;
.@{collapse-prefix-cls}-content {
padding: @collapse-icon-right-content-padding;
border-top: @collapse-icon-right-content-border-top;
}
& > .@{collapse-prefix-cls}-item {
font-size: @collapse-icon-right-item-font-size;
border-bottom: @collapse-icon-right-item-border-bottom;
> .@{collapse-prefix-cls}-header {
color: @collapse-icon-right-header-color;
background-color: @collapse-icon-right-header-bg;
border-bottom: @collapse-icon-right-header-border-bottom;
.@{collapse-prefix-cls}-expand-icon-wrapper {
float: right;
}
.@{collapse-prefix-cls}-expand-icon {
transform: rotate(90deg);
}
.@{collapse-prefix-cls}-expand-text {
padding: @collapse-icon-right-expand-text-padding;
text-align: right;
cursor: pointer;
}
}
&:not(&-disabled) .@{collapse-prefix-cls}-expand-icon-wrapper {
color: @collapse-icon-right-wrapper-color;
}
}
}
&-icon-position-text-right {
& > .@{collapse-prefix-cls}-item {
.@{collapse-prefix-cls}-expand-icon-wrapper {
margin-left: 10px;
}
}
}
&-anim-active {
transition: height @animation-duration-base @ease-out;
}
&-content {
padding: 0 @collapse-content-padding;
overflow: hidden;
color: @text-color;
background-color: @collapse-content-bg;
border-top: @collapse-border;
& > &-box {
padding-top: @collapse-content-padding;
padding-bottom: @collapse-content-padding;
}
&-inactive {
display: none;
}
}
&-item:last-child {
> .@{collapse-prefix-cls}-content {
border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;
}
}
& > &-item > &-header[aria-expanded='true'] {
.arrow {
.collapse-open();
}
}
&-borderless {
background-color: @component-background;
border: 0;
}
&-borderless > &-item {
border-bottom: @collapse-border;
.@{collapse-prefix-cls}-header {
padding: @collapse-borderless-header-padding;
font-weight: @collapse-borderless-header-font-weight;
font-size: @collapse-borderless-header-font-size;
line-height: @collapse-borderless-header-line-height;
}
}
&-borderless > &-item:last-child,
&-borderless > &-item:last-child &-header {
border-radius: 0;
}
&-borderless > &-item > &-content {
background-color: transparent;
border-top: 0;
}
&-borderless > &-item > &-content > &-content-box {
padding-top: 0.04rem;
}
& &-item-disabled > &-header {
&,
& > .arrow {
color: @disabled-color;
cursor: not-allowed;
}
.@{collapse-prefix-cls}-expand-icon, .@{collapse-prefix-cls}-expand-text {
cursor: not-allowed;
}
}
&-ghost {
background-color: transparent;
border: 0;
> .@{collapse-prefix-cls}-item {
border-bottom: 0;
> .@{collapse-prefix-cls}-content {
background-color: transparent;
border-top: 0;
> .@{collapse-prefix-cls}-content-box {
padding-top: 12px;
padding-bottom: 12px;
}
}
}
}
}