UNPKG

benivo-ui-library

Version:

Benivo UI library

622 lines (514 loc) 14.9 kB
// // Buttons // .client-hub { .dropdown .btn { &:first-child { border-bottom-right-radius: 0 !important; border-top-right-radius: 0 !important; } &.btn-toggle { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important; } } } .btn { position: relative; display: inline-block; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; background: transparent; color: inherit; outline: none; padding: @btn-padding; font-family: @btn-font-family; font-weight: @btn-font-weight; font-size: @btn-font-size; line-height: @btn-line-height; font-style: @btn-text-style; text-decoration: @btn-text-decoration; text-transform: @btn-text-transform; border: @btn-border; letter-spacing: @btn-letter-spaceing; .border-radius(@btn-brd-radius); .user-select(none); .appearance(none); .transition(@btn-transition); &:focus-visible { outline: 2px solid var(--primary-light); outline-offset: 2px; } &.loading { opacity: .5; pointer-events: none; } &.disabled, &.disable, &:disabled, &[disabled] { opacity: .5; cursor: not-allowed; pointer-events: none; label { cursor: not-allowed; } } &.no-border { border: 0 !important; } &.btn-block { width: 100%; } .btn-icon { font-size: 1rem; display: inline-flex; align-items: center; } .btn-text { line-height: 1; } span { &.hide { visibility: hidden; } } .bn-spinner-overlay { position: absolute; top: 0; left: 0; .border-radius(@btn-brd-radius); } .bn-spinner { div { border-color: var(--white) transparent transparent transparent; } } &.bold { font-weight: @font-weight-bold; } // size scale &.btn-xs { height: 36px; padding: @btn-xs-padding; font-size: @btn-xs-font-size; } &.btn-sm { height: 40px; padding: @btn-sm-padding; font-size: @btn-sm-font-size; } &.btn-md { height: 44px; padding: @btn-md-padding; font-size: @btn-md-font-size; } &.btn-lg { height: 48px; padding: @btn-lg-padding; font-size: @btn-lg-font-size; } &.btn-xl { height: 60px; padding: @btn-xl-padding; font-size: @btn-xl-font-size; } &.btn-icon-only { padding: 0; width: 40px; min-width: 36px; justify-content: center; display: inline-flex; align-items: center; .btn-text { display: none; } } &.btn-xs.btn-icon-only { width: 36px; } &.btn-sm.btn-icon-only { width: 40px; } &.btn-md.btn-icon-only { width: 44px; } &.btn-lg.btn-icon-only { width: 48px; } &.btn-xl.btn-icon-only { width: 60px; } &.btn-link, &.btn-ghost { background: transparent; border: none; color: var(--primary); &:not(.disabled):not([disabled]):hover { text-decoration: underline; } } &.btn-with-icon { display: inline-flex; align-items: center; text-align: left; white-space: inherit; &.btn-content-center { justify-content: center; } .btn-icon { font-size: 1rem; margin: -0.5rem 0 -0.5rem 0; &.mirror { .transform(scaleX(-1)); } } .btn-text { padding-right: 0.5rem; padding-left: 0.5rem; } } &.btn-with-icon-place { padding: 0; gap: 0; display: flex; background: transparent; border: none; .btn-icon { display: block; flex-shrink: 0; width: 40px; height: 40px; .border-radius(@btn-brd-radius 0 0 @btn-brd-radius); // border: solid 1px rgba(0, 0, 0, 0.1); background: color-mix(in srgb, black 10%, transparent); color: inherit; font-size: 24px; line-height: 40px; margin-right: -1px; cursor: pointer; } .btn-text { display: block; flex-grow: 1; height: 40px; padding: 0 30px; .border-radius(0 @btn-brd-radius @btn-brd-radius 0); // border: solid 1px rgba(0, 0, 0, 0.1); background: transparent; color: inherit; font-weight: @font-weight-semibold; line-height: 40px; white-space: nowrap; cursor: pointer; } &.btn-icon-right { // flex-direction: row-reverse; .btn-icon { .border-radius(0 @btn-brd-radius @btn-brd-radius 0); margin-right: 0; margin-left: -1px; } .btn-text { .border-radius(@btn-brd-radius 0 0 @btn-brd-radius); } } } &.btn-reject { color: var(--error-main); border-color: var(--error-main); .icon-cross { &:before { color: var(--error-main); } } } &.btn-variant-contained { &.btn-color-primary { color: var(--white); background: var(--primary); &:hover { background: color-mix(in srgb, black 10%, var(--primary)); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } } &.btn-color-danger { color: var(--white); background: var(--error-main); &:hover { background: color-mix(in srgb, black 10%, var(--error-main)); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } } &.btn-color-success { color: var(--white); background: var(--success-main); &:hover { background: color-mix(in srgb, black 10%, var(--success-main)); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } } &.btn-color-warning { color: var(--white); background: var(--warning-main); &:hover { background: color-mix(in srgb, black 10%, var(--warning-main)); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } } &.btn-color-ghost { color: var(--primary); background: var(--primary-light); &:hover { background: color-mix(in srgb, white 85%, var(--primary)); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &.btn-color-grey { color: var(--text-600); background: var(--bg-50); &:hover { background: var(--bg-100); } &.disabled, &.disable, &:disabled, &[disabled] { background: var(--bg-200); color: var(--text-600); } .bn-spinner { div { border-color: var(--text-600) transparent transparent transparent; } } } &.btn-color-link { background: transparent; border: none; color: var(--primary); padding: 0; &:hover { text-decoration: underline; } &:focus-visible { outline: 'none'; } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } } &.btn-variant-outlined { background: transparent; &.btn-color-primary { color: var(--primary); border: 1px solid var(--primary); &:hover { background: var(--primary-light); } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &.btn-color-danger { color: var(--error-main); border: 1px solid var(--error-main); &:hover { background: var(--error-light); } .bn-spinner { div { border-color: var(--error-main) transparent transparent transparent; } } } &.btn-color-success { color: var(--success-main); border: 1px solid var(--success-main); &:hover { background: var(--success-light); } .bn-spinner { div { border-color: var(--success-main) transparent transparent transparent; } } } &.btn-color-warning { color: var(--warning-main); border: 1px solid var(--warning-main); &:hover { background: var(--warning-light); } .bn-spinner { div { border-color: var(--warning-main) transparent transparent transparent; } } } &.btn-color-ghost { color: var(--primary); background: var(--primary-light); border: 1px solid var(--primary-light); &:hover { background: color-mix(in srgb, white 85%, var(--primary)); } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &.btn-color-grey { color: var(--text-600); border: 1px solid var(--border-200); &:hover { background: var(--bg-50); } .bn-spinner { div { border-color: var(--text-600) transparent transparent transparent; } } } &.btn-color-link { background: transparent; border: none; color: var(--primary); padding: 0; &:hover { text-decoration: underline; } &:focus-visible { outline: 'none'; } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } } &.btn-variant-text { background: transparent; border: none; padding: 0; height: auto; &.btn-color-primary { color: var(--primary); .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &.btn-color-danger { color: var(--error-main); .bn-spinner { div { border-color: var(--error-main) transparent transparent transparent; } } } &.btn-color-success { color: var(--success-main); .bn-spinner { div { border-color: var(--success-main) transparent transparent transparent; } } } &.btn-color-warning { color: var(--warning-main); .bn-spinner { div { border-color: var(--warning-main) transparent transparent transparent; } } } &.btn-color-ghost { color: var(--primary); .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &.btn-color-grey { color: var(--text-600); .bn-spinner { div { border-color: var(--text-600) transparent transparent transparent; } } } &.btn-color-link { color: var(--primary); &:hover { text-decoration: underline; } &:focus-visible { outline: 'none'; } .bn-spinner { div { border-color: var(--primary) transparent transparent transparent; } } } &:not(.disabled):not([disabled]):not(.disable):not(:disabled):hover { text-decoration: underline; } } &.has-error { border-color: var(--error-main) !important; } }