@mixin extjs-button-base(
$base-cls: 'btn',
$btn-display: inline-block,
$include-arrows: true,
$flexbox: true
) {
.#{$prefix}#{$base-cls} {
display: $btn-display;
outline: 0;
cursor: pointer;
white-space: nowrap;
text-decoration: none;
vertical-align: top;
overflow: hidden;
position: relative;
> .#{$prefix}frame {
height: 100%;
width: 100%;
}
}
.#{$prefix}#{$base-cls}-wrap {
height: 100%;
width: 100%;
@if $flexbox {
@include ext-box;
@include ext-box-align(stretch);
&.#{$prefix}btn-arrow-bottom,
&.#{$prefix}btn-split-bottom {
@include ext-box-orient(vertical);
}
@if $include-ie {
.#{$prefix}ie9m & {
display: table;
border-spacing: 0;
}
}
} @else {
display: table;
border-spacing: 0;
}
}
.#{$prefix}#{$base-cls}-button {
white-space: nowrap;
line-height: 0;
position: relative;
@if $flexbox {
@include ext-box;
@include ext-box-align(center);
@include ext-box-flex;
&.#{$prefix}#{$base-cls}-icon-top,
&.#{$prefix}#{$base-cls}-icon-bottom {
@include ext-box-orient(vertical);
@include ext-box-align(stretch);
@include ext-box-pack(center);
@if $include-ie {
.#{$prefix}ie10p & {
overflow: hidden;
}
}
}
@if $include-ie {
.#{$prefix}ie9m & {
display: table-cell;
vertical-align: middle;
}
}
} @else {
display: table-cell;
vertical-align: middle;
}
}
.#{$prefix}#{$base-cls}-inner {
overflow: hidden;
text-overflow: ellipsis;
@if $flexbox {
-ms-flex-negative: 1;
display: block;
@if $include-ie {
.#{$prefix}ie9m & {
display: inline-block;
vertical-align: middle;
}
}
} @else {
display: inline-block;
vertical-align: middle;
}
.#{$prefix}#{$base-cls}-icon.#{$prefix}#{$base-cls}-no-text > & {
display: none;
}
}
.#{$prefix}#{$base-cls}-icon-el {
display: none;
vertical-align: middle;
text-align: center;
background-position: center center;
background-repeat: no-repeat;
@if $flexbox {
flex-shrink: 0;
.#{$prefix}#{$base-cls}-icon > & {
display: block;
}
@if $include-ie {
.#{$prefix}ie9m .#{$prefix}#{$base-cls}-icon-left > &,
.#{$prefix}ie9m .#{$prefix}#{$base-cls}-icon-right > & {
display: inline-block;
}
}
} @else {
.#{$prefix}#{$base-cls}-icon > & {
display: inline-block;
}
.#{$prefix}#{$base-cls}-icon-top > &,
.#{$prefix}#{$base-cls}-icon-bottom > & {
display: block;
}
}
}
.#{$prefix}#{$base-cls}-button-center {
@if $include-ie {
.#{$prefix}ie9m & {
text-align: center;
}
}
@if $flexbox {
@include ext-box-pack(center);
}
&.#{$prefix}#{$base-cls}-icon-top,
&.#{$prefix}#{$base-cls}-icon-bottom {
text-align: center;
}
}
.#{$prefix}#{$base-cls}-button-left {
text-align: left;
@if $flexbox {
@include ext-box-pack(start);
}
}
@if $include-rtl {
.#{$prefix}rtl.#{$prefix}#{$base-cls}-button-left {
text-align: right;
}
}
.#{$prefix}#{$base-cls}-button-right {
text-align: right;
@if $flexbox {
@include ext-box-pack(end);
}
}
@if $include-rtl {
.#{$prefix}rtl.#{$prefix}#{$base-cls}-button-right {
text-align: left;
}
}
@if $include-arrows {
.#{$prefix}#{$base-cls}-arrow:after,
.#{$prefix}#{$base-cls}-split:after {
display: block;
background-repeat: no-repeat;
content: '';
box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-webkit-box-sizing: border-box;
text-align: center;
}
.#{$prefix}#{$base-cls}-arrow-right:after,
.#{$prefix}#{$base-cls}-split-right:after {
background-position: right center;
@if $flexbox {
@include ext-box;
@include ext-box-align(center);
@include ext-box-pack(center);
@if $include-ie {
.#{$prefix}ie9m & {
display: table-cell;
vertical-align: middle;
}
}
} @else {
display: table-cell;
vertical-align: middle;
}
}
@if $include-rtl {
.#{$prefix}rtl {
&.#{$prefix}#{$base-cls}-arrow-right:after,
&.#{$prefix}#{$base-cls}-split-right:after {
background-position: left center;
}
}
}
.#{$prefix}#{$base-cls}-arrow-bottom:after,
.#{$prefix}#{$base-cls}-split-bottom:after {
background-position: center bottom;
content: '\00a0';
line-height: 0;
@if $flexbox {
@if $include-ie {
.#{$prefix}ie9m & {
display: table-row;
}
}
} @else {
display: table-row;
}
}
.#{$prefix}#{$base-cls}-split-right > .#{$prefix}btn-button:after {
position: absolute;
display: block;
top: -100%;
right: 0;
height: 300%;
content: '';
}
@if $include-rtl {
.#{$prefix}rtl.#{$prefix}#{$base-cls}-split-right > .#{$prefix}btn-button:after {
left: 0;
right: auto;
}
}
.#{$prefix}#{$base-cls}-split-bottom > .#{$prefix}btn-button:after {
position: absolute;
display: block;
bottom: 0;
left: -100%;
font-size: 0;
width: 300%;
content: '';
}
}
.#{$prefix}#{$base-cls}-mc {
overflow: visible;
}
}
@include extjs-button-base();