157 lines
3.5 KiB
SCSS
157 lines
3.5 KiB
SCSS
.#{$ns}ButtonGroup {
|
||
position: relative;
|
||
display: inline-flex;
|
||
vertical-align: middle;
|
||
flex-wrap: wrap;
|
||
|
||
> .#{$ns}Button {
|
||
position: relative;
|
||
flex: 0 1 auto;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
> .#{$ns}Button,
|
||
.#{$ns}Badge {
|
||
@include hover {
|
||
z-index: 1;
|
||
}
|
||
|
||
&:focus,
|
||
&:active,
|
||
&.active,
|
||
&.is-active {
|
||
z-index: 1;
|
||
}
|
||
}
|
||
|
||
.#{$ns}Badge {
|
||
.#{$ns}Badge-text,
|
||
.#{$ns}Badge-dot,
|
||
.#{$ns}Badge-ribbon,
|
||
.#{$ns}Badge-dot {
|
||
z-index: 2;
|
||
}
|
||
}
|
||
|
||
.#{$ns}Button + .#{$ns}Button,
|
||
.#{$ns}Button + .#{$ns}ButtonGroup,
|
||
.#{$ns}Button + .#{$ns}Badge,
|
||
.#{$ns}ButtonGroup + .#{$ns}Button,
|
||
.#{$ns}ButtonGroup + .#{$ns}ButtonGroup,
|
||
.#{$ns}Badge + .#{$ns}Badge,
|
||
.#{$ns}Badge + .#{$ns}Button {
|
||
margin-left: calc(var(--ButtonGroup-borderWidth) * -1);
|
||
}
|
||
|
||
&--block {
|
||
display: block;
|
||
}
|
||
&-button--active {
|
||
z-index: 1;
|
||
}
|
||
}
|
||
|
||
.#{$ns}ButtonToolbar {
|
||
display: inline-flex;
|
||
flex-wrap: wrap;
|
||
justify-content: flex-start;
|
||
align-items: center;
|
||
|
||
.#{$ns}ButtonGroup {
|
||
margin-left: var(--gap-xs);
|
||
margin-top: var(--gap-xs);
|
||
width: auto;
|
||
}
|
||
}
|
||
|
||
.#{$ns}ButtonGroup {
|
||
> .#{$ns}Button:first-child,
|
||
> .#{$ns}Badge .#{$ns}Button {
|
||
margin-left: 0;
|
||
}
|
||
|
||
// cxd的ButtonGroup的is-active和:active样式不一样,这里做个兼容
|
||
.#{$ns}Button--primary.is-active {
|
||
color: var(--ButtonGroup--primary-isActive-color);
|
||
background: var(--ButtonGroup--primary-isActive-bg);
|
||
}
|
||
|
||
> .#{$ns}Button:not(:last-child),
|
||
> .#{$ns}ButtonGroup:not(:last-child) > .#{$ns}Button,
|
||
> .#{$ns}Badge:not(:last-child) > .#{$ns}Button {
|
||
border-top-right-radius: 0;
|
||
border-bottom-right-radius: 0;
|
||
}
|
||
|
||
> .#{$ns}Button:not(:first-child),
|
||
> .#{$ns}ButtonGroup:not(:first-child) > .#{$ns}Button,
|
||
> .#{$ns}Badge:not(:first-child) > .#{$ns}Button {
|
||
border-top-left-radius: 0;
|
||
border-bottom-left-radius: 0;
|
||
}
|
||
|
||
> .#{$ns}ButtonGroup:last-child > .#{$ns}Button:not(:last-child) {
|
||
border-top-right-radius: 0;
|
||
}
|
||
}
|
||
|
||
.#{$ns}ButtonGroup--vertical {
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
justify-content: center;
|
||
|
||
.#{$ns}Button,
|
||
.#{$ns}ButtonGroup {
|
||
width: 100%;
|
||
}
|
||
|
||
> .#{$ns}Button + .#{$ns}Button,
|
||
> .#{$ns}Button + .#{$ns}ButtonGroup,
|
||
> .#{$ns}Button + .#{$ns}Badge,
|
||
> .#{$ns}ButtonGroup + .#{$ns}Button,
|
||
> .#{$ns}ButtonGroup + .#{$ns}ButtonGroup,
|
||
> .#{$ns}Badge + .#{$ns}Badge,
|
||
> .#{$ns}Badge + .#{$ns}Button {
|
||
margin-top: calc(var(--ButtonGroup-borderWidth) * -1);
|
||
margin-left: 0;
|
||
}
|
||
> .#{$ns}Button:not(:last-child),
|
||
> .#{$ns}ButtonGroup:not(:last-child) > .#{$ns}Button,
|
||
> .#{$ns}Badge:not(:last-child) > .#{$ns}Button {
|
||
border-bottom-left-radius: 0;
|
||
border-bottom-right-radius: 0;
|
||
}
|
||
|
||
> .#{$ns}Button:not(:first-child),
|
||
> .#{$ns}ButtonGroup:not(:first-child) > .btn,
|
||
> .#{$ns}Badge:not(:first-child) > .btn {
|
||
border-top-left-radius: 0;
|
||
border-top-right-radius: 0;
|
||
}
|
||
|
||
/* 修正头尾的圆角 */
|
||
> .#{$ns}Button:first-child,
|
||
> .#{$ns}ButtonGroup:first-child > .#{$ns}Button:first-child,
|
||
> .#{$ns}Badge:first-child > .#{$ns}Button:first-child {
|
||
border-top-right-radius: var(--borders-radius-3);
|
||
}
|
||
|
||
> .#{$ns}Button:last-child,
|
||
> .#{$ns}ButtonGroup:last-child > .#{$ns}Button:last-child,
|
||
> .#{$ns}Badge:last-child > .#{$ns}Button:last-child {
|
||
border-bottom-left-radius: var(--borders-radius-3);
|
||
}
|
||
}
|
||
|
||
.#{$ns}ButtonGroup--tiled {
|
||
display: flex;
|
||
|
||
.#{$ns}Button,
|
||
.#{$ns}ButtonGroup {
|
||
flex-grow: 1;
|
||
text-align: center;
|
||
}
|
||
}
|