UNPKG

artistry

Version:

A powerful and configurable stylesheet

173 lines (145 loc) 4.88 kB
@require 'input-settings.styl'; .button { display: inline-block; padding: var(--input-padding); border-width: $input-border-width; border-style: solid; border-radius: $input-border-radius; text-decoration: none; text-align: center; cursor: pointer; user-select: none; transition: opacity 0.3s, box-shadow 0.3s; // Added for consistency between Button and A tags. font-size: var(--input-font-size); font-weight: 500; line-height: 1.15; text-transform: $button-text-transform; -webkit-font-smoothing: antialiased; &.button-small { --input-padding: var(--input-padding-small); --input-font-size: var(--input-font-size-small); } &.button-large { --input-padding: var(--input-padding-large); --input-font-size: var(--input-font-size-large); } &:disabled { filter: var(--input-locked); cursor: default; } &.button-no-focus { outline: none; } &.button-no-caps { text-transform: none; } &:not(.button-textonly):not(.button-outline):not(.button-underline) { border-color: var(--button-default-border-color); color: var(--button-default-color); background-color: var(--button-default-background-color); box-shadow: $input-box-shadow-height-0; &:hover:enabled { box-shadow: $input-box-shadow-height-1; } &:focus:enabled:not(.button-no-focus) { outline: none; filter: var(--input-brighter); } &:active:enabled, &:active:enabled:not(.button-no-focus), &.button-down:enabled, &.button-down:enabled:not(.button-no-focus) { filter: var(--input-darker); } &[data-theme='primary'], &.button-primary { border: $input-border-width solid var(--button-primary-border-color); color: var(--button-primary-color); background-color: var(--button-primary-background-color); } &[data-theme='danger'], &.button-danger { border: $input-border-width solid var(--button-danger-border-color); color: var(--button-danger-color); background-color: var(--button-danger-background-color); } } &.button-textonly, &.button-outline, &.button-underline { color: var(--button-textonly-default-color); border-color: transparent; background-color: transparent; box-shadow: none; &:hover:enabled { background-color: var(--button-textonly-background-color); filter: var(--input-brighter); } &:focus:enabled:not(.button-no-focus) { outline: none; background-color: var(--button-textonly-background-color); } &:active:enabled, &:active:enabled:not(.button-no-focus), &.button-down:enabled, &.button-down:enabled:not(.button-no-focus) { background-color: var(--button-textonly-background-color); filter: var(--input-darker); } &[data-theme='primary'], &.button-primary { color: var(--button-textonly-primary-color); } &[data-theme='danger'], &.button-danger { color: var(--button-textonly-danger-color); } } &.button-outline { border-color: var(--button-outline-border-color); border-width: $button-outline-border-width; } &.button-underline { border-bottom-color: var(--button-outline-border-color); border-width: $button-outline-border-width; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } &.button-lockable { position: relative; &.button-locked { cursor: default; user-select: none; pointer-events: none; & > .button-text { opacity: 0; } & > .button-spinner { opacity: 1; } } &.button-locked:hover, &.button-locked:focus, &.button-locked:active { filter: var(--input-locked) !important; } & > .button-text { display: block; opacity: 1; transition: opacity 0.5s; } & > .button-spinner { position: absolute; display: block; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); opacity: 0; transition: opacity 0.5s; } } &.button-nowrap { white-space: nowrap; } }