@import "../../style/themes/default"; @import "../../style/mixins/index"; @import "./mixin"; @btn-prefix-cls: ~"@{ant-prefix}-btn"; // for compatible @btn-ghost-color: @text-color; @btn-ghost-bg: transparent; @btn-ghost-border: @border-color-base; @btn-animation-width: 6px; // Button styles // ----------------------------- .@{btn-prefix-cls} { line-height: @line-height-base; .btn; .btn-default; // Make sure that the target of Button's click event always be `button` // Ref: https://github.com/ant-design/ant-design/issues/7034 > i, > span { pointer-events: none; } &-primary { .btn-primary; .@{btn-prefix-cls}-group &:not(:first-child):not(:last-child) { border-right-color: @btn-group-border; border-left-color: @btn-group-border; &:disabled { border-color: @btn-default-border; } } .@{btn-prefix-cls}-group &:first-child { &:not(:last-child) { border-right-color: @btn-group-border; &[disabled] { border-right-color: @btn-default-border; } } } .@{btn-prefix-cls}-group &:last-child:not(:first-child), .@{btn-prefix-cls}-group & + & { border-left-color: @btn-group-border; &[disabled] { border-left-color: @btn-default-border; } } } &-ghost { .btn-ghost; } &-dashed { .btn-dashed; } &-danger { .btn-danger; } &-circle, &-circle-outline { .btn-circle(@btn-prefix-cls); } &:before { position: absolute; top: -1px; left: -1px; bottom: -1px; right: -1px; background: #fff; opacity: 0.35; content: ''; border-radius: inherit; z-index: 1; transition: opacity .2s; pointer-events: none; display: none; } .@{iconfont-css-prefix} { transition: margin-left .3s @ease-in-out; } &&-loading:before { display: block; } &&-loading:not(&-circle):not(&-circle-outline):not(&-icon-only) { padding-left: 29px; pointer-events: none; position: relative; .@{iconfont-css-prefix} { margin-left: -14px; } } &-sm&-loading:not(&-circle):not(&-circle-outline):not(&-icon-only) { padding-left: 24px; .@{iconfont-css-prefix} { margin-left: -17px; } } &-group { .btn-group(@btn-prefix-cls); } &:not(&-circle):not(&-circle-outline)&-icon-only { padding-left: 8px; padding-right: 8px; } // http://stackoverflow.com/a/21281554/3040605 &:focus > span, &:active > span { position: relative; } // To ensure that a space will be placed between character and `Icon`. > .@{iconfont-css-prefix} + span, > span + .@{iconfont-css-prefix} { margin-left: 8px; } &-danger[ant-click-animating]:after { border-color: @btn-danger-color; } &-background-ghost { background: transparent !important; border-color: #fff; color: #fff; } &-background-ghost&-primary { .button-variant-ghost(@btn-primary-bg); } &-background-ghost&-danger { .button-variant-ghost(@btn-danger-color); } &-two-chinese-chars:first-letter { letter-spacing: .34em; } &-two-chinese-chars > * { letter-spacing: .34em; margin-right: -.34em; } &-block { width: 100%; } } @keyframes buttonEffect { to { opacity: 0; top: -@btn-animation-width; left: -@btn-animation-width; bottom: -@btn-animation-width; right: -@btn-animation-width; border-width: @btn-animation-width; } } a.@{btn-prefix-cls} { line-height: @btn-height-base - 2px; &-lg { line-height: @btn-height-lg - 2px; } &-sm { line-height: @btn-height-sm - 2px; } } [ant-click-animating]:after { content: ''; position: absolute; top: -1px; left: -1px; bottom: -1px; right: -1px; border-radius: inherit; border: 0 solid @primary-color; opacity: 0.4; animation: buttonEffect .4s cubic-bezier(.25, .8, .25, 1); display: block; }