UNPKG

@fesjs/fes-design

Version:
265 lines (238 loc) 7.97 kB
@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); } }