ygd
Version:
An enterprise-class UI design language and React-based implementation
261 lines (220 loc) • 5.12 kB
text/less
@import '../../style/themes/default';
@import '../../style/mixins/index';
@import './mixin';
@btn-prefix-cls: ~'@{yg-prefix}-btn';
// for compatible
@btn-ghost-color: @text-color;
@btn-ghost-bg: transparent;
@btn-ghost-border: @border-color-base;
// Button styles
// -----------------------------
.@{btn-prefix-cls} {
// Fixing https://github.com/ant-design/ant-design/issues/12978
// It is a render problem of chrome, which is only happened in the codesandbox demo
// 0.001px solution works and I don't why
line-height: @line-height-base;
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 {
display: inline-block;
pointer-events: none;
}
> i.anticon{
vertical-align: -0.2em;
}
&-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;
}
}
}
&-wxorange{
.btn-wxorange
}
&-wxblue{
.btn-wxblue
}
&-ghost {
.btn-ghost;
}
&-dashed {
.btn-dashed;
}
&-link {
border-color: transparent;
cursor: pointer;
color: #475669;
font-size: @font-size-base;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
padding: 0;
&:active,
&[disabled] {
border-color: transparent;
background-color: transparent;
background-image: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
&[disabled]:hover,
&[disabled]:focus {
color: @font-3;
text-decoration: none;
}
}
&-popup-cancel {
.btn-popup-cancel;
}
&-popup-sure {
.btn-popup-sure;
}
&-greyfull {
.btn-greyfull;
}
&-lighton{
.btn-lighton;
}
&-success {
.btn-success;
}
&-warning {
.btn-warning;
}
&-danger {
.btn-danger;
}
&-link {
.btn-link;
}
&-round {
.btn-round(@btn-prefix-cls);
}
&-circle,
&-circle-outline {
.btn-circle(@btn-prefix-cls);
}
&::before {
position: absolute;
top: -1px;
right: -1px;
bottom: -1px;
left: -1px;
z-index: 1;
display: none;
background: @component-background;
border-radius: inherit;
opacity: 0.35;
transition: opacity 0.2s;
pointer-events: none;
content: '';
}
.@{iconfont-css-prefix} {
transition: margin-left 0.3s @ease-in-out;
// Follow icon blur under windows. Change the render.
// https://github.com/ant-design/ant-design/issues/13924
&.@{iconfont-css-prefix}-plus,
&.@{iconfont-css-prefix}-minus {
> svg {
shape-rendering: optimizeSpeed;
}
}
}
&&-loading::before {
display: block;
}
&&-loading:not(&-circle):not(&-circle-outline):not(&-icon-only) {
position: relative;
padding-left: 29px;
pointer-events: none;
.@{iconfont-css-prefix}:not(:last-child) {
margin-left: -14px;
}
}
&-sm{
line-height: @btn-height-sm;
}
&-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-right: 8px;
padding-left: 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;
}
&-background-ghost {
color: @component-background;
background: transparent;
border-color: @component-background;
}
&-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: 0.34em;
}
&-two-chinese-chars > *:not(.@{iconfont-css-prefix}) {
margin-right: -0.34em;
letter-spacing: 0.34em;
}
&-block {
width: 100%;
}
// https://github.com/ant-design/ant-design/issues/12681
&:empty {
vertical-align: top;
}
}
a.@{btn-prefix-cls} {
line-height: @btn-height-base;
&-lg {
line-height: @btn-height-lg;
}
&-sm {
line-height: @btn-height-sm;
}
}
.@{yg-prefix}-greyfull {}
.@{yg-prefix}-btn-disabled:hover { background-color: #e5e5e5; }