You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

521 lines
12 KiB
SCSS

@import './../common/abstracts/_mixin.scss';
@import './../common/abstracts/variable.scss';
@mixin button-type-style($color, $normal, $active, $disabled, $disabledcolor) {
background: $normal;
color: $color;
font-weight: $-fw-medium;
&::after {
border-color: $normal;
}
&.wd-button--active {
background: $active;
}
@include when(disabled) {
&.wd-button--active {
background: $disabled;
color: $disabledcolor;
}
background: $disabled;
color: $disabledcolor;
&::after {
border-color: $disabled;
}
}
@include when(loading) {
&,
&.wd-button--active {
color: $color;
background: $normal;
}
&::after {
border-color: $normal;
}
}
@include when(suck) {
border-radius: 0;
}
}
@mixin button-plain-style($color, $normal, $active, $disabled) {
color: $color;
background: transparent;
&::after {
border-color: $normal;
}
&.wd-button--active {
color: $active;
background: transparent;
&::after {
border-color: $active;
}
}
@include when(disabled) {
color: $disabled;
background: transparent;
&::after {
border-color: $disabled;
}
&.wd-button--active {
background: transparent;
&::after {
border-color: $disabled;
}
}
}
@include when(loading) {
&,
&.wd-button--active {
color: $color;
background: transparent;
&::after {
border-color: $normal;
}
}
}
}
.wot-theme-dark {
@include b(button) {
@include when(info) {
@include button-type-style($-dark-color,
$-dark-background4,
$-dark-background5,
$-dark-background7,
$-dark-color3);
}
@include when(plain) {
@include when(info) {
@include button-plain-style($-dark-color, $-dark-background5, $-dark-color, $-dark-color-gray);
}
@include when(primary) {
&.wd-button--active {
background: transparent;
color: themeColor($-color-theme, "light", #9DB9F6);
}
@include when(disabled) {
background-color: transparent;
&.wd-button--active {
background-color: transparent;
}
}
}
}
@include when(text) {
@include when(disabled) {
color: $-dark-color-gray;
background: transparent;
}
}
@include when(icon) {
color: $-dark-color;
&.wd-button--active {
background: $-dark-background4;
}
@include when(disabled) {
color: $-dark-color-gray;
background: transparent;
&.wd-button--active {
background: transparent;
}
}
}
}
}
@include b(button) {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
outline: none;
-webkit-appearance: none;
outline: none;
background: transparent;
box-sizing: border-box;
border: none;
color: $-button-normal-color;
transition: all 0.2s;
user-select: none;
font-weight: normal;
&::after {
display: none;
}
&.wd-button--active {
color: $-button-normal-active-color;
background: $-button-normal-active-bg;
&::after {
border-color: $-button-normal-border-active-color;
}
}
@include when(disabled) {
color: $-button-normal-disabled-color;
background: $-button-normal-disabled-bg;
&::after {
border-color: $-button-normal-border-disabled-color;
}
&.wd-button--active {
color: $-button-normal-disabled-color;
background: $-button-normal-disabled-bg;
&::after {
border-color: $-button-normal-border-disabled-color;
}
}
}
@include e(loading) {
margin-right: 5px;
animation: wd-rotate 0.8s linear infinite;
animation-duration: 2s;
}
@include e(loading-svg) {
width: 100%;
height: 100%;
background-size: cover;
background-repeat: no-repeat;
}
@include when(loading) {
&.wd-button--active {
color: $-button-normal-color;
background: transparent;
&::after {
border-color: $-button-border-color;
}
}
}
@include when(primary) {
@include button-type-style(
$-color-white,
$-button-primary-bg-color,
$-button-primary-active-color,
$-button-primary-disabled-color,
$-color-white
);
}
@include when(success) {
@include button-type-style($-color-white, $-button-success-color, $-button-success-active-color, $-button-success-disabled-color, $-color-white);
}
@include when(info) {
@include button-type-style(
$-button-info-color,
$-button-info-bg-color,
$-button-info-active-bg-color,
$-button-info-disabled-bg-color,
$-button-info-disabled-color
);
}
@include when(warning) {
@include button-type-style($-color-white, $-button-warning-color, $-button-warning-active-color, $-button-warning-disabled-color, $-color-white);
}
@include when(error) {
@include button-type-style($-color-white, $-button-error-color, $-button-error-active-color, $-button-error-disabled-color, $-color-white);
}
@include when(small) {
height: $-button-small-height;
padding: $-button-small-padding;
border-radius: $-button-small-radius;
font-size: $-button-small-fs;
font-weight: normal;
@include when(round) {
border-radius: calc($-button-small-height / 2);
&::after {
border-radius: $-button-small-height;
}
}
.wd-button__loading {
width: $-button-small-loading;
height: $-button-small-loading;
}
}
@include when(medium) {
height: $-button-medium-height;
padding: $-button-medium-padding;
border-radius: $-button-medium-radius;
font-size: $-button-medium-fs;
&::after {
border-radius: calc($-button-medium-radius * 2);
}
@include when(primary) {
box-shadow: $-button-medium-box-shadow-size $-button-primary-box-shadow-color;
}
@include when(success) {
box-shadow: $-button-medium-box-shadow-size $-button-success-box-shadow-color;
}
@include when(warning) {
box-shadow: $-button-medium-box-shadow-size $-button-warning-box-shadow-color;
}
@include when(error) {
box-shadow: $-button-medium-box-shadow-size $-button-error-box-shadow-color;
}
@include when(plain) {
box-shadow: none;
}
@include when(round) {
min-width: 118px;
border-radius: calc($-button-medium-height / 2);
&::after {
border-radius: $-button-medium-height;
}
@include when(icon) {
min-width: 0;
border-radius: 50%;
}
@include when(text) {
min-width: 0;
border-radius: 0;
}
}
.wd-button__loading {
width: $-button-medium-loading;
height: $-button-medium-loading;
}
}
@include when(large) {
height: $-button-large-height;
padding: $-button-large-padding;
border-radius: $-button-large-radius;
font-size: $-button-large-fs;
&::after {
border-radius: calc($-button-large-radius * 2);
}
&:not(.is-plain) {
@include when(primary) {
box-shadow: $-button-large-box-shadow-size $-button-primary-box-shadow-color;
}
@include when(success) {
box-shadow: $-button-large-box-shadow-size $-button-success-box-shadow-color;
}
@include when(warning) {
box-shadow: $-button-large-box-shadow-size $-button-warning-box-shadow-color;
}
@include when(error) {
box-shadow: $-button-large-box-shadow-size $-button-error-box-shadow-color;
}
}
@include when(round) {
border-radius: calc($-button-large-height / 2);
&::after {
border-radius: $-button-large-height;
}
@include when(icon) {
border-radius: 50%;
}
@include when(text) {
border-radius: 0;
}
}
.wd-button__loading {
width: $-button-large-loading;
height: $-button-large-loading;
}
}
@include when(text) {
color: $-button-primary-color;
padding: 4px 0;
&::after {
display: none;
}
&.wd-button--active {
color: $-button-primary-active-color;
background: transparent;
}
@include when(disabled) {
color: $-button-normal-disabled-color;
background: transparent;
}
}
@include when(plain) {
background: $-color-white;
&::after {
position: absolute;
display: block;
content: '';
width: 200%;
height: 200%;
left: 0;
top: 0;
border: 1px solid $-button-border-color;
box-sizing: border-box;
transform: scale(0.5);
transform-origin: left top;
}
@include when(primary) {
@include button-plain-style($-button-primary-color, $-button-primary-color, $-button-primary-active-color, $-button-primary-disabled-color);
&.wd-button--active {
background-color: $-button-primary-plain-active-bg-color;
}
@include when(disabled) {
&.wd-button--active {
background-color: $-button-primary-plain-active-bg-color;
}
opacity: 1;
background-color: $-button-primary-plain-active-bg-color;
color: $-button-primary-plain-disabled-color;
}
}
@include when(success) {
@include button-plain-style($-button-success-color, $-button-success-color, $-button-success-active-color, $-button-success-disabled-color);
}
@include when(info) {
@include button-plain-style($-button-info-plain-normal-color, $-button-info-bg-color, $-button-info-active-color, $-button-info-disabled-color);
&::after {
border-color: $-button-info-plain-border-color;
}
&.wd-button--active {
background-color: $-button-info-plain-active-bg-color;
&::after {
border-color: $-button-info-plain-active-color;
}
}
@include when(disabled) {
&,
&.wd-button--active {
background-color: $-button-info-plain-disabled-bg-color;
&::after {
border-color: $-button-info-plain-disabled-bg-color;
}
}
}
@include when(loading) {
&::after,
&.wd-button--active::after {
border-color: $-button-info-plain-border-color;
}
}
}
@include when(warning) {
@include button-plain-style($-button-warning-color, $-button-warning-color, $-button-warning-active-color, $-button-warning-disabled-color);
}
@include when(error) {
@include button-plain-style($-button-error-color, $-button-error-color, $-button-error-active-color, $-button-error-disabled-color);
}
@include when(suck) {
&.wd-button--active {
background: $-button-suck-active-color;
}
@include when(disabled) {
background: $-color-white;
}
}
}
@include when(suck) {
display: flex;
font-size: $-button-large-fs;
height: $-button-suck-height;
border-radius: 0;
&::after {
display: none;
}
}
@include when(block) {
display: flex;
}
@include when(icon) {
width: $-button-icon-size;
height: $-button-icon-size;
padding: 0;
border-radius: 50%;
font-size: 0;
color: $-button-icon-color;
&::after {
display: none;
}
&.wd-button--active {
background: $-button-icon-active-color;
}
:deep(.wd-button__icon){
margin-right: 0;
}
@include when(disabled) {
color: $-button-icon-disabled-color;
background: transparent;
&.wd-button--active {
background: transparent;
}
}
}
@include edeep(icon) {
display: block;
margin-right: 6px;
font-size: $-button-icon-fs;
vertical-align: middle;
}
@include e(text) {
user-select: none;
white-space: nowrap;
}
}
// 微信2.8.0以上版本加了较高层级的默认样式,需要重置掉
.wd-button {
min-height: auto;
width: auto;
}
@keyframes wd-rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}