@fesjs/fes-design
Version:
fes-design for PC
265 lines (238 loc) • 7.97 kB
text/less
@import '../../style/themes/index';
@import '../../style/mixins/index';
@import './mixin.less';
@btn-prefix-cls: ~'@{cls-prefix}-btn';
@btn-height-lg: @data-input-height-base + 8;
@btn-height-base: @data-input-height-base;
@btn-height-sm: @data-input-height-base - 8;
@btn-min-width-lg: 75px;
@btn-min-width-base: 60px;
@btn-min-width-sm: 40px;
@btn-padding-base: 0 16px;
@btn-padding-sm: 0 12px;
.@{btn-prefix-cls} {
--f-btn-color: var(--f-text-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-border-color-base);
--f-btn-hover-color: var(--f-hover-color-base);
--f-btn-hover-color-light: var(--f-hover-color-base-light);
--f-btn-active-color: var(--f-active-color);
--f-btn-disabled-color: var(--f-disabled-color-base);
--f-btn-border-width: var(--f-border-width-base);
--f-btn-border-style: var(--f-border-style-base);
--f-btn-border-radius: var(--f-border-radius-base);
--f-btn-border-radius-sm: var(--f-border-radius-sm);
--f-btn-font-size: var(--f-font-size-base);
--f-btn-height: @btn-height-base;
--f-btn-padding: @btn-padding-base;
--f-btn-min-width: @btn-min-width-base;
.default();
.text();
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--f-btn-min-width);
height: var(--f-btn-height);
padding: var(--f-btn-padding);
color: var(--f-btn-color);
font-weight: @font-weight-regular;
font-size: var(--f-btn-font-size);
white-space: nowrap;
vertical-align: middle;
background: var(--f-btn-bg-color);
border: var(--f-btn-border-width) var(--f-btn-border-style) transparent;
border-color: var(--f-btn-border-color);
border-radius: var(--f-btn-border-radius);
outline: none;
cursor: pointer;
transition: all @animation-duration-slow @ease-in-out;
user-select: none;
touch-action: manipulation;
&[disabled] {
text-shadow: none;
box-shadow: none;
cursor: not-allowed;
> * {
pointer-events: none;
}
}
&-type-default {
--f-btn-wave-shadow-color: var(--f-primary-color);
.button-animate();
}
&-type-default {
&:hover,
&:focus {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-btn-hover-color-light);
--f-btn-border-color: var(--f-primary-color);
}
&:active {
--f-btn-color: var(--f-btn-active-color);
--f-btn-bg-color: var(--f-btn-hover-color-light);
--f-btn-border-color: var(--f-btn-active-color);
}
&[disabled] {
--f-btn-color: var(--f-btn-disabled-color);
--f-btn-bg-color: var(--f-disabled-color-light);
--f-btn-border-color: var(--f-btn-disabled-color);
}
.button-processing();
}
&-type-primary {
--f-btn-wave-shadow-color: var(--f-primary-color);
--f-btn-color: var(--f-white);
--f-btn-bg-color: var(--f-primary-color);
--f-btn-border-color: var(--f-primary-color);
&:hover,
&:focus {
--f-btn-bg-color: var(--f-btn-hover-color);
--f-btn-border-color: var(--f-btn-hover-color);
}
&:active {
--f-btn-bg-color: var(--f-btn-active-color);
--f-btn-border-color: var(--f-btn-active-color);
}
&[disabled] {
--f-btn-bg-color: var(--f-btn-disabled-color);
--f-btn-border-color: transparent;
}
.button-processing();
.button-animate();
}
&-type-text {
--f-btn-color: var(--f-text-color);
--f-btn-bg-color: transparent;
--f-btn-border-color: transparent;
&:hover,
&:focus {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-hover-color-light);
}
&:active {
--f-btn-color: var(--f-active-color);
--f-btn-bg-color: var(--f-hover-color-light);
}
&[disabled] {
--f-btn-color: var(--f-disabled-color-base);
--f-btn-bg-color: transparent;
}
.button-processing();
}
&-type-link {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: transparent;
--f-btn-border-color: transparent;
&:hover,
&:focus {
--f-btn-color: var(--f-hover-color-base);
}
&:active {
--f-btn-color: var(--f-active-color);
}
&[disabled] {
--f-btn-color: var(--f-disabled-color-base);
}
.button-processing();
}
&-type-info {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-primary-color);
--f-btn-wave-shadow-color: var(--f-primary-color);
&:hover,
&:focus {
--f-btn-bg-color: var(--f-hover-color-light);
}
&:active {
--f-btn-color: var(--f-active-color);
--f-btn-bg-color: var(--f-hover-color-light);
--f-btn-border-color: var(--f-active-color);
}
.button-animate();
}
&-type-success {
--f-btn-color: var(--f-success-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-success-color);
--f-btn-wave-shadow-color: var(--f-success-color);
&:hover,
&:focus {
--f-btn-bg-color: var(--f-hover-success-color);
}
&:active {
--f-btn-color: var(--f-active-success-color);
--f-btn-bg-color: var(--f-hover-success-color);
--f-btn-border-color: var(--f-success-active-color);
}
.button-animate();
}
&-type-warning {
--f-btn-color: var(--f-warning-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-warning-color);
--f-btn-wave-shadow-color: var(--f-warning-color);
&:hover,
&:focus {
--f-btn-bg-color: var(--f-hover-warning-color);
}
&:active {
--f-btn-color: var(--f-active-warning-color);
--f-btn-bg-color: var(--f-hover-warning-color);
--f-btn-border-color: var(--f-warning-active-color);
}
.button-animate();
}
&-type-danger {
--f-btn-color: var(--f-danger-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-danger-color);
--f-btn-wave-shadow-color: var(--f-danger-color);
&:hover,
&:focus {
--f-btn-bg-color: var(--f-hover-danger-color);
}
&:active {
--f-btn-color: var(--f-active-danger-color);
--f-btn-bg-color: var(--f-hover-danger-color);
--f-btn-border-color: var(--f-danger-active-color);
}
.button-animate();
}
&-type-info,
&-type-success,
&-type-warning,
&-type-danger {
&[disabled] {
--f-btn-color: var(--f-btn-disabled-color);
--f-btn-bg-color: var(--f-disabled-color-light);
--f-btn-border-color: var(--f-btn-disabled-color);
}
.button-processing();
}
&-long {
width: 100%;
}
&-icon {
display: inline-flex;
align-items: center;
margin-right: 4px;
&.is-right {
margin-right: 0;
margin-left: 4px;
}
}
&-large {
--f-btn-min-width: @btn-min-width-lg;
--f-btn-height: @btn-height-lg;
--f-btn-font-size: calc(var(--f-font-size-base) + 2px);
}
&-small {
--f-btn-min-width: @btn-min-width-sm;
--f-btn-height: @btn-height-sm;
--f-btn-padding: @btn-padding-sm;
--f-btn-font-size: calc(var(--f-font-size-base) - 2px);
--f-btn-border-radius: var(--f-btn-border-radius-sm);
}
}