@import "../mixins/index"; @btn-prefix-cls: ~"@{css-prefix}btn"; // Button styles // ----------------------------- .@{btn-prefix-cls} { .btn; .btn-default; &-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; } .@{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 & + .@{btn-prefix-cls} { border-left-color: @btn-group-border; &[disabled] { border-left-color: @btn-default-border; } } } &-ghost { .btn-ghost; } &-dashed { .btn-dashed; } &-circle, &-circle-outline { .btn-circle(@btn-prefix-cls); } &-circle-outline { .btn-circle-outline; } &:after { font-family: anticon; content: "\e6a1"; position: absolute; opacity: 0; visibility: hidden; transition: opacity 0.5s ease; } &&-loading { padding-left: 29px; pointer-events: none; opacity: 0.75; &:after { .animation(loadingCircle 1s infinite linear); height: 12px; line-height: 12px; left: 10px; top: 50%; margin-top: -6px; opacity: 1; visibility: visible; } > .anticon { display: none; & + span { margin-left: 0; } } } &-sm&-loading { padding-left: 24px; &:after { left: 7px; } } &-group { .btn-group(@btn-prefix-cls); } // To ensure that a space will be placed between character and `Icon`. > .@{iconfont-css-prefix} + span, > span + .@{iconfont-css-prefix} { margin-left: 0.5em; } &-clicked:before { content: ''; position: absolute; top: -6px; left: -6px; bottom: -6px; right: -6px; border-radius: inherit; z-index: -1; background: inherit; opacity: 1; transform: scale3d(0.5, 0.5, 1); animation: buttonEffect 0.48s ease forwards; } } @keyframes buttonEffect { to { opacity: 0; transform: scale3d(1, 1, 1); } }