UNPKG

@innovaccer/design-system

Version:

React components library project for Innovaccer Design System

554 lines (453 loc) 12.3 kB
.Button { display: flex; flex-direction: row; justify-content: center; align-items: center; box-sizing: border-box; position: relative; vertical-align: middle; cursor: pointer; user-select: none; border: 0; border-radius: var(--border-radius-10); padding-top: var(--spacing-20); padding-bottom: var(--spacing-20); text-align: center; font-family: var(--font-family); font-weight: var(--font-weight-normal); font-size: var(--font-size); line-height: var(--font-height-s); color: var(--text-white); transition: var(--duration--fast-01) var(--standard-productive-curve); } .Button--disabled { cursor: not-allowed; } .Button:focus-visible { outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); } .Button--iconAlign-right { flex-direction: row-reverse; } .Button-regularIcon--left { margin-left: calc(-1 * var(--spacing-05)); } .Button-regularIcon--right { margin-right: calc(-1 * var(--spacing-05)); } .Button--tiny { height: var(--spacing-60); padding-right: var(--spacing-20); padding-left: var(--spacing-20); padding-top: var(--spacing-10); padding-bottom: var(--spacing-10); font-size: var(--font-size-s); font-weight: var(--font-weight-medium); } .Button--tinySquare { width: var(--spacing-60); } .Button--regular { height: var(--spacing-80); padding-right: var(--spacing-30); padding-left: var(--spacing-30); } .Button--regularSquare { width: var(--spacing-80); } .Button--large { height: 40px; padding-right: var(--spacing-40); padding-left: var(--spacing-40); line-height: var(--font-height-m); font-size: var(--font-size-m); } .Button--largeSquare { width: 40px; } .Button--tinySquare .Button-icon, .Button--largeSquare .Button-icon, .Button--tinySquare .Spinner, .Button--largeSquare .Spinner { padding-left: var(--spacing-05); padding-right: var(--spacing-05); } .Button--expanded { width: 100%; } .Button-icon { line-height: inherit; display: flex; align-items: center; } .Button-icon--left { margin-right: var(--spacing-15); } .Button-icon--right { margin-left: var(--spacing-15); } .Button--basic { background: var(--secondary-light); color: var(--inverse); } .Button--basic:hover { background: var(--secondary); } .Button--basic:active { background: var(--secondary-dark); } .Button--basic-disabled { background: var(--secondary-lighter); color: var(--inverse-lightest); } .Button--primary { background: var(--primary); } .Button--primary:hover { background: var(--primary-dark); } .Button--primary:active { background: var(--primary-darker); } .Button--primary-disabled { background: var(--primary-lighter); } .Button-infoIcon--primary { color: var(--text-link); } .Button--success { background: var(--primary); } .Button--success:hover { background: var(--primary-dark); } .Button--success:active { background: var(--primary-darker); } .Button--success-disabled { background: var(--primary-lighter); } .Button-infoIcon--success { color: var(--text-link); } .Button--alert { background: var(--alert); } .Button--alert:hover { background: var(--alert-dark); } .Button--alert:active { background: var(--alert-darker); } .Button--alert-disabled { background: var(--alert-lighter); } .Button-infoIcon--alert { color: var(--alert); } .Button--transparent { background: transparent; color: var(--inverse); } .Button--transparent:hover { background: var(--secondary); } .Button--transparent:active { background: var(--secondary-dark); } .Button--transparent:focus-visible:active { background: var(--secondary-dark); } .Button--transparent-disabled { background: transparent; color: var(--inverse-lightest); } .Button-spinner { display: flex; position: absolute; z-index: 1; } .Button--selected { background: var(--primary-ultra-light); color: var(--primary-dark); box-shadow: inset 0 0 0 2px var(--primary); } .Button--selected:hover { background: var(--primary-lightest); } .Button--selected:active { background: var(--primary-lighter); color: var(--primary-darker); box-shadow: inset 0 0 0 2px var(--primary-dark); } .Button--selected:focus-visible { background: var(--primary-ultra-light); outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-05) var(--primary); } .Button--selected:focus-visible:active { background: var(--primary-lighter); outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-05) var(--primary-dark); } .Button--selected-disabled { background: var(--primary-ultra-light); color: var(--primary-lighter); box-shadow: inset 0 0 0 2px var(--primary-lightest); } .Button-text--hidden { visibility: hidden; } .Button-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .Button-infoIconWrapper { position: absolute; top: -4px; right: -4px; width: var(--spacing-30); height: var(--spacing-30); box-sizing: border-box; border-radius: var(--border-radius-full); display: flex; align-items: center; justify-content: center; overflow: hidden; border: var(--border-width-2-5) solid var(--secondary-lightest); pointer-events: none; } .Button-infoIconWrapper--transparent { border: none; background: transparent; top: var(--spacing-2-5); right: var(--spacing-2-5); } .Button-infoIconWrapper--iconOnly-transparent { top: var(--spacing-2-5); right: var(--spacing-2-5); } .Button-infoIconWrapper-outlined--basic { background: var(--secondary-lightest); } .Button-infoIconWrapper-outlined--primary { background: var(--primary-ultra-light); } .Button-infoIconWrapper-outlined--alert { background: var(--alert-ultra-light); } .Button-infoIconWrapper--basic { background: var(--secondary-lighter); } .Button-infoIconWrapper--primary, .Button-infoIconWrapper--success { background: var(--primary-lightest); } .Button-infoIconWrapper--alert { background: var(--alert-lightest); } .Button-infoIcon { color: var(--text-subtle); } /* outlined button styles */ .Button-outlined--basic { color: var(--inverse); background: transparent; box-shadow: inset 0 0 0 1px var(--secondary); } .Button-outlined--basic:hover { background: var(--secondary-lighter); box-shadow: inset 0 0 0 1px var(--inverse-lightest); } .Button-outlined--basic:active { background: var(--secondary); box-shadow: inset 0 0 0 1px var(--inverse-lightest); } .Button-outlined--basic:focus-visible { outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary); } .Button-outlined--basic-disabled { color: var(--inverse-lightest); background: transparent; box-shadow: inset 0 0 0 1px var(--secondary); } .Button-outlined--selected { background: var(--primary-ultra-light); color: var(--primary-dark); box-shadow: inset 0 0 0 2px var(--primary); } .Button-outlined--selected:hover { background: var(--primary-lightest); box-shadow: inset 0 0 0 2px var(--primary); } .Button-outlined--selected:active { background: var(--primary-lighter); color: var(--primary-darker); box-shadow: inset 0 0 0 2px var(--primary-dark); } .Button-outlined--selected:focus-visible { color: var(--primary-dark); outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-05) var(--primary); } .Button-outlined--selected:focus-visible:active { background: var(--primary-lighter); color: var(--primary-darker); outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-05) var(--primary-dark); } .Button-outlined--selected-disabled { background: var(--primary-ultra-light); color: var(--primary-lighter); box-shadow: inset 0 0 0 2px var(--primary-lightest); } .Button-outlined--primary { background: transparent; box-shadow: inset 0 0 0 1px var(--primary); color: var(--primary); } .Button-outlined--primary:hover { background: var(--primary-ultra-light); box-shadow: inset 0 0 0 1px var(--primary-dark); color: var(--primary-dark); } .Button-outlined--primary:active { background: var(--primary-lightest); box-shadow: inset 0 0 0 1px var(--primary-dark); color: var(--primary-dark); } .Button-outlined--primary:focus-visible { outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-2-5) var(--primary); } .Button-outlined--primary-disabled { background: transparent; color: var(--primary-lighter); box-shadow: inset 0 0 0 1px var(--primary-lighter); } .Button-infoIcon-outlined--primary { color: var(--text-link); } .Button-outlined--alert { background: transparent; box-shadow: inset 0 0 0 1px var(--alert); color: var(--alert); } .Button-outlined--alert:hover { background: var(--alert-ultra-light); box-shadow: inset 0 0 0 1px var(--alert-dark); color: var(--alert-dark); } .Button-outlined--alert:active { background: var(--alert-lightest); box-shadow: inset 0 0 0 1px var(--alert-dark); color: var(--alert-dark); } .Button-outlined--alert:focus-visible { outline: var(--border-width-05) solid var(--primary-focus); outline-offset: var(--spacing-05); box-shadow: inset 0 0 0 var(--border-width-2-5) var(--alert); } .Button-outlined--alert-disabled { background: transparent; color: var(--alert-lighter); box-shadow: inset 0 0 0 1px var(--alert-lighter); } .Button-infoIcon-outlined--alert { color: var(--alert); } .Button-srOnly { position: absolute; width: var(--spacing-2-5); height: var(--spacing-2-5); padding: 0; margin: calc(-1 * var(--spacing-2-5)); overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } @media (forced-colors: active) { .Button--basic, .Button--primary, .Button--success, .Button--alert, .Button--transparent { border: var(--border-width-2-5) solid ButtonText; } .Button--basic-disabled, .Button--primary-disabled, .Button--success-disabled, .Button--alert-disabled, .Button--transparent-disabled { border: var(--border-width-2-5) solid GrayText; } /* Selected state: inset box-shadow acts as the visible border */ .Button--selected, .Button--selected:hover, .Button--selected:active, .Button--selected-disabled { border: var(--border-width-05) solid ButtonText; box-shadow: none; } .Button--selected:focus-visible, .Button--selected:focus-visible:active { outline: var(--border-width-05) solid Highlight; box-shadow: none; } /* Outlined variants: inset box-shadow is the only visible border */ .Button-outlined--basic, .Button-outlined--basic:hover, .Button-outlined--basic:active, .Button-outlined--basic-disabled { border: var(--border-width-2-5) solid ButtonText; box-shadow: none; } .Button-outlined--basic:focus-visible { outline: var(--border-width-05) solid Highlight; box-shadow: none; } .Button-outlined--selected, .Button-outlined--selected:hover, .Button-outlined--selected:active, .Button-outlined--selected-disabled { border: var(--border-width-05) solid ButtonText; box-shadow: none; } .Button-outlined--selected:focus-visible, .Button-outlined--selected:focus-visible:active { outline: var(--border-width-05) solid Highlight; box-shadow: none; } .Button-outlined--primary, .Button-outlined--primary:hover, .Button-outlined--primary:active, .Button-outlined--primary-disabled { border: var(--border-width-2-5) solid ButtonText; box-shadow: none; } .Button-outlined--primary:focus-visible { outline: var(--border-width-05) solid Highlight; box-shadow: none; } .Button-outlined--alert, .Button-outlined--alert:hover, .Button-outlined--alert:active, .Button-outlined--alert-disabled { border: var(--border-width-2-5) solid ButtonText; box-shadow: none; } .Button-outlined--alert:focus-visible { outline: var(--border-width-05) solid Highlight; box-shadow: none; } }