UNPKG

modo-mobile

Version:

A mobile UI toolkit, based on React

164 lines (137 loc) 3.44 kB
.button-size(@height; @padding; @font-size; @border-radius) { padding: @padding; font-size: @font-size; border-radius: @border-radius; height: @height; } .button-disabled(@color: @btn-disable-color; @background: @btn-disable-bg; @border: @btn-disable-border) { &.disabled, &[disabled] { pointer-events: none; position: relative; &:before { display: block; } // &, // &:hover, // &:focus, // &:active, // &.active { // .button-color(@color; @background; @border); // } } } .button-color(@color; @background; @border) { color: @color; background-color: @background; border-color: @border; } .btn() { width: 100%; display: flex; font-weight: @btn-font-weight; text-align: center; touch-action: manipulation; cursor: pointer; background-image: none; border: 1px solid transparent; white-space: nowrap; .button-size(@btn-height-base; @btn-padding-base; @font-size-base; @btn-border-radius-base); user-select: none; transition: all 0.3s @ease-in-out; position: relative; box-sizing: border-box; justify-content: center; > .@{iconfont-css-prefix} { line-height: 1; } &, &:active, &:focus { outline: 0; } &:not([disabled]):hover { text-decoration: none; } &:not([disabled]):active { outline: 0; transition: none; } &.disabled, &[disabled] { cursor: not-allowed; > * { pointer-events: none; } } &-lg { .button-size(@btn-height-lg; @btn-padding-lg; @btn-font-size-lg; @btn-border-radius-base); } &-sm { .button-size(@btn-height-sm; @btn-padding-sm; @btn-font-size-sm; @btn-border-radius-sm); } } // circle button: the content only contains icon .btn-circle(@btnClassName: btn) { .square(@btn-circle-size); .button-size(@btn-circle-size; 0; @font-size-base + 2px; 50%); &.@{btnClassName}-lg { .square(@btn-circle-size-lg); .button-size(@btn-circle-size-lg; 0; @btn-font-size-lg + 2px; 50%); } &.@{btnClassName}-sm { .square(@btn-circle-size-sm); .button-size(@btn-circle-size-sm; 0; @font-size-base; 50%); } } .btn-primary() { .button-variant-primary(@btn-primary-color; @btn-primary-bg); } // ghost button style .btn-ghost() { .button-variant-other(@btn-ghost-color, @btn-ghost-bg, @btn-ghost-border); } // dashed button style .btn-dashed() { .button-variant-other(@btn-default-color, @btn-default-bg, @border-color-base); border-style: dashed; } // danger button style .btn-danger() { .button-variant-primary(@btn-danger-color, @btn-danger-bg); } // default button style .btn-default() { .button-variant-other(@btn-default-color; @btn-default-bg; @btn-default-border); &:hover, &:focus, &:active, &.active { background: @btn-default-bg; text-decoration: none; } } .button-variant-primary(@color; @background) { .button-color(@color; @background; @background); &:hover, &:focus { .button-color(@color; tint(@background, 20%) ; tint(@background, 20%)); } &:active, &.active { .button-color(@color; shade(@background, 5%) ; shade(@background, 5%)); } .button-disabled(); } .button-variant-other(@color; @background; @border) { .button-color(@color; @background; @border); &:hover, &:focus { .button-color(@primary-5; @background; @primary-5); } &:active, &.active { .button-color(@primary-7; @background; @primary-7); } .button-disabled(); }