amis/scss/components/_button-group.scss

128 lines
2.7 KiB
SCSS
Raw Normal View History

2019-04-30 11:11:25 +08:00
.#{$ns}ButtonGroup {
2019-12-06 09:58:08 +08:00
position: relative;
display: inline-flex;
vertical-align: middle;
> .#{$ns}Button {
2019-04-30 11:11:25 +08:00
position: relative;
2019-12-06 09:58:08 +08:00
flex: 0 1 auto;
}
2019-04-30 11:11:25 +08:00
> .#{$ns}Button {
@include hover {
z-index: 1;
2019-04-30 11:11:25 +08:00
}
&:focus,
&:active,
&.active,
&.is-active {
z-index: 1;
2019-04-30 11:11:25 +08:00
}
2019-12-06 09:58:08 +08:00
}
2020-10-19 10:44:09 +08:00
.#{$ns}Button + .#{$ns}Button,
.#{$ns}Button + .#{$ns}ButtonGroup,
.#{$ns}ButtonGroup + .#{$ns}Button,
.#{$ns}ButtonGroup + .#{$ns}ButtonGroup {
margin-left: calc(var(--Button-borderWidth) * -1);
}
2020-10-19 10:44:09 +08:00
&--block {
display: block;
}
2019-04-30 11:11:25 +08:00
}
.#{$ns}ButtonToolbar {
2019-12-06 09:58:08 +08:00
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);
2019-12-06 09:58:08 +08:00
width: auto;
}
2019-04-30 11:11:25 +08:00
}
.#{$ns}ButtonGroup {
2019-12-06 09:58:08 +08:00
> .#{$ns}Button:first-child {
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);
2019-12-06 09:58:08 +08:00
}
2019-04-30 11:11:25 +08:00
> .#{$ns}Button:not(:last-child),
> .#{$ns}ButtonGroup:not(:last-child) > .#{$ns}Button {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
2019-04-30 11:11:25 +08:00
> .#{$ns}Button:not(:first-child),
> .#{$ns}ButtonGroup:not(:first-child) > .#{$ns}Button {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
2019-12-06 09:58:08 +08:00
}
> .#{$ns}ButtonGroup:last-child > .#{$ns}Button:not(:last-child) {
border-top-right-radius: 0;
}
2019-12-06 09:58:08 +08:00
}
.#{$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}ButtonGroup + .#{$ns}Button,
> .#{$ns}ButtonGroup + .#{$ns}ButtonGroup {
margin-top: calc(var(--Button-borderWidth) * -1);
2019-12-06 09:58:08 +08:00
margin-left: 0;
}
> .#{$ns}Button:not(:last-child),
> .#{$ns}ButtonGroup: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 {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
/* 修正头尾的圆角 */
> .#{$ns}Button:first-child,
> .#{$ns}ButtonGroup:first-child > .#{$ns}Button:first-child {
border-top-right-radius: var(--Button-borderRadius);
}
> .#{$ns}Button:last-child,
> .#{$ns}ButtonGroup:last-child > .#{$ns}Button:last-child {
border-bottom-left-radius: var(--Button-borderRadius);
}
2019-04-30 11:11:25 +08:00
}
.#{$ns}ButtonGroup--tiled {
display: flex;
2019-04-30 11:11:25 +08:00
.#{$ns}Button,
.#{$ns}ButtonGroup {
flex-grow: 1;
text-align: center;
2019-12-06 09:58:08 +08:00
}
}