UNPKG

amazeui

Version:

Sleek, intuitive, and powerful front-end framework for faster and easier web development.

244 lines (202 loc) 4.86 kB
// Name: Button // // Description: Define style for buttons // // Component: `.am-btn` // // Sub-objects: `.am-btn-group` // `.am-btn-dropdown` // // Modifiers: `.am-btn-default` // `.am-btn-primary` // `.am-btn-warning` // `.am-btn-success` // `.am-btn-danger` // `.am-btn-secondary` // `.am-btn-link` // `.am-btn-sm` // `.am-btn-lg` // `.am-btn-xs` // `.am-btn-block` // // States: `.am-active` // `.am-disabled` // // ============================================================================= /* ========================================================================== Component: Button ============================================================================ */ // Button base styles .@{ns}btn { display: inline-block; margin-bottom: 0; // for input.am-btn padding: 0.5em 1em; // relative font size vertical-align: middle; font-size: @btn-font-size; font-weight: @btn-font-weight; line-height: @btn-line-height; text-align: center; white-space: nowrap; background-image: none; border: 1px solid transparent; border-radius: @global-radius; cursor: pointer; outline: none; -webkit-appearance: none; user-select: none; transition: background-color 300ms ease-out, border-color 300ms ease-out; .hook-btn; &, &:active { &:focus { .tab-focus(); } } &:hover, &:focus { color: @btn-default-color; text-decoration: none; .hook-btn-hover; } &:active, &.@{ns}active { background-image: none; box-shadow: inset 0 3px 5px rgba(0, 0, 0, .15); .hook-btn-active; } &.@{ns}disabled, &[disabled], fieldset[disabled] & { // https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events pointer-events: none; // Disable mouse events border-color: transparent; cursor: not-allowed; // may not styled because pointer-events: none; opacity: 0.45; box-shadow: none; .hook-btn-disable; } &.@{ns}round { border-radius: @global-rounded; } &.@{ns}radius { border-radius: @radius-normal; } } // Modifiers // ============================================================================= .@{ns}btn-default { .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); .hook-btn-default; } .@{ns}btn-primary { .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); .hook-btn-primary; } .@{ns}btn-secondary { .button-variant(@btn-secondary-color; @btn-secondary-bg; @btn-secondary-border); .hook-btn-secondary; } .@{ns}btn-warning { .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); .hook-btn-warning; } .@{ns}btn-danger { .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); .hook-btn-danger; } .@{ns}btn-success { .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); .hook-btn-success; } /* Style links like a button */ .@{ns}btn-link { color: @link-color; font-weight: normal; cursor: pointer; border-radius: 0; &, &:active, &[disabled], fieldset[disabled] & { background-color: transparent; box-shadow: none; } &, &:hover, &:focus, &:active { border-color: transparent; } &:hover, &:focus { color: @link-hover-color; text-decoration: underline; background-color: transparent; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: @btn-link-disabled-color; text-decoration: none; } } } /* button size */ .@{ns}btn-xs { .button-size(@btn-xs-font-size); .hook-btn-xs; } .@{ns}btn-sm { .button-size(@btn-sm-font-size); .hook-btn-sm; } .@{ns}btn-lg { .button-size(@btn-lg-font-size); .hook-btn-lg; } .@{ns}btn-xl { .button-size(@btn-xl-font-size); .hook-btn-xl; } /* Block button */ .@{ns}btn-block { display: block; width: 100%; padding-left: 0; padding-right: 0; } /* Multiple block buttons vertically space */ .@{ns}btn-block + .@{ns}btn-block { margin-top: 5px; } /* Specificity overrides */ input[type="submit"], input[type="reset"], input[type="button"] { &.@{ns}btn-block { width: 100%; } } /* Button with loading spinner */ .@{ns}btn.@{ns}btn-loading { .@{ns}icon-spin { margin-right: 5px; } } // Hooks // ============================================================================= .hook-btn() {} .hook-btn-hover() {} .hook-btn-active() {} .hook-btn-disable() {} .hook-btn-default() {} .hook-btn-primary() {} .hook-btn-warning() {} .hook-btn-danger() {} .hook-btn-success() {} .hook-btn-secondary() {} .hook-btn-xs() {} .hook-btn-sm() {} .hook-btn-xl() {} .hook-btn-lg() {}