ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
231 lines (187 loc) • 5.52 kB
text/less
@import '../../style/themes/index';
@import '../../style/mixins/index';
@collapse-prefix-cls: ~'@{ant-prefix}-collapse';
.@{collapse-prefix-cls} {
.reset-component();
@font-height: floor(@font-size-base * @line-height-base);
background-color: @collapse-header-bg;
border: @border-width-base @border-style-base @border-color-base;
border-radius: @collapse-panel-border-radius;
&-rtl {
direction: rtl;
}
& > &-item {
border-bottom: @border-width-base @border-style-base @border-color-base;
&:first-child {
&,
& > .@{collapse-prefix-cls}-header {
border-radius: @collapse-panel-border-radius @collapse-panel-border-radius 0 0;
}
}
&:last-child {
&,
& > .@{collapse-prefix-cls}-header {
border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;
}
}
> .@{collapse-prefix-cls}-header {
position: relative; // Compatible with old version of antd, should remove in next version
display: flex;
flex-wrap: nowrap;
align-items: flex-start;
padding: @collapse-header-padding;
color: @heading-color;
line-height: @line-height-base;
cursor: pointer;
transition: all @animation-duration-slow, visibility 0s;
> .@{collapse-prefix-cls}-title {
flex: auto;
}
// >>>>> Arrow
.@{collapse-prefix-cls}-expand-icon {
display: flex;
align-items: center;
height: @font-height;
margin-inline-end: @margin-sm;
}
.@{collapse-prefix-cls}-arrow {
font-size: @font-size-icon;
// when `transform: rotate()` is applied to icon's root element
transition: transform @animation-duration-slow;
// when `transform: rotate()` is applied to icon's child element
svg {
transition: transform @animation-duration-slow;
}
}
// >>>>> Text
.@{collapse-prefix-cls}-title {
margin-inline-end: auto;
}
&:focus-visible {
outline: @line-width-focus solid @border-color-primary;
outline-offset: 1px;
transition: outline-offset 0s, outline 0s;
}
}
.@{collapse-prefix-cls}-collapsible-header {
cursor: default;
.@{collapse-prefix-cls}-title {
flex: none;
cursor: pointer;
}
.@{collapse-prefix-cls}-expand-icon {
cursor: pointer;
}
}
.@{collapse-prefix-cls}-collapsible-icon {
cursor: unset;
.@{collapse-prefix-cls}-expand-icon {
cursor: pointer;
}
}
&.@{collapse-prefix-cls}-no-arrow {
> .@{collapse-prefix-cls}-header {
padding-left: @padding-sm;
}
}
}
&-panel {
color: @text-color;
background-color: @collapse-content-bg;
border-top: @border-width-base @border-style-base @border-color-base;
& > .@{collapse-prefix-cls}-body {
padding: @collapse-content-padding;
}
&-hidden {
display: none;
}
}
&-small {
> .@{collapse-prefix-cls}-item {
> .@{collapse-prefix-cls}-header {
padding: @padding-xs @padding-sm;
padding-inline-start: @padding-xs;
}
> .@{collapse-prefix-cls}-expand-icon {
// Arrow offset
margin-inline-end: calc(@padding-sm - @padding-xs);
}
> .@{collapse-prefix-cls}-panel > .@{collapse-prefix-cls}-body {
padding: @padding-sm;
}
}
}
&-large {
> .@{collapse-prefix-cls}-item {
font-size: @font-size-lg;
line-height: @line-height-lg;
> .@{collapse-prefix-cls}-header {
padding: @padding-md @padding-lg;
padding-inline-start: @padding-md;
}
> .@{collapse-prefix-cls}-panel > .@{collapse-prefix-cls}-body {
padding: @padding-lg;
}
}
}
&-item:last-child {
border-bottom: 0;
> .@{collapse-prefix-cls}-panel {
border-radius: 0 0 @collapse-panel-border-radius @collapse-panel-border-radius;
}
}
& &-item-disabled > &-header {
&,
& > .arrow {
color: @disabled-color;
cursor: not-allowed;
}
}
// ========================== Icon Placement ==========================
&-icon-placement-end {
& > .@{collapse-prefix-cls}-item {
> .@{collapse-prefix-cls}-header {
.@{collapse-prefix-cls}-expand-icon {
order: 1;
margin-inline-end: 0;
margin-inline-start: @margin-sm;
}
}
}
}
&-borderless {
background-color: @collapse-header-bg;
border: 0;
> .@{collapse-prefix-cls}-item {
border-bottom: 1px solid @border-color-base;
}
> .@{collapse-prefix-cls}-item:last-child,
> .@{collapse-prefix-cls}-item:last-child > .@{collapse-prefix-cls}-header {
border-radius: 0;
}
> .@{collapse-prefix-cls}-item:last-child {
border-bottom: 0;
}
> .@{collapse-prefix-cls}-item > .@{collapse-prefix-cls}-panel {
background-color: transparent;
border-top: 0;
}
> .@{collapse-prefix-cls}-item > .@{collapse-prefix-cls}-panel > .@{collapse-prefix-cls}-body {
padding: @padding-xss 12px @padding-md;
}
}
&-ghost {
background-color: transparent;
border: 0;
> .@{collapse-prefix-cls}-item {
border-bottom: 0;
> .@{collapse-prefix-cls}-panel {
background-color: transparent;
border: 0;
> .@{collapse-prefix-cls}-body {
padding-block: @padding-sm;
}
}
}
}
}