| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- @import '../mixins';
- .btn.btn-ds {
- --bs-btn-font-family: var(--ds-font-family-sans);
- --bs-btn-border-radius: var(--ds-border-radius-200);
- &:focus-visible {
- @include ds-focus-outline;
- }
- // Default size
- @include ol-button-size(
- $font-size: var(--ds-font-size-400),
- $line-height: var(--ds-font-line-height-600),
- $padding-x: var(--ds-spacing-400),
- $padding-y: var(--ds-spacing-100)
- );
- &.btn-lg {
- @include ol-button-size(
- $font-size: var(--ds-font-size-400),
- $line-height: var(--ds-font-line-height-600),
- $padding-x: var(--ds-spacing-400),
- $padding-y: var(--ds-spacing-250)
- );
- }
- &.btn-sm {
- @include ol-button-size(
- $font-size: var(--ds-font-size-350),
- $line-height: var(--ds-font-line-height-500),
- $padding-x: var(--ds-spacing-200),
- $padding-y: var(--ds-spacing-100)
- );
- }
- // Variants
- &.btn-primary {
- @include ol-button-variant(
- $color: var(--ds-color-white),
- $background: var(--ds-color-neutral-950),
- $hover-background: var(--ds-color-neutral-900),
- $active-background: var(--ds-color-neutral-800),
- $disabled-color: var(--ds-color-neutral-700),
- $disabled-background: var(--ds-color-neutral-100)
- );
- }
- &.btn-secondary {
- @include ol-button-variant(
- $color: var(--ds-color-neutral-950),
- $background: var(--ds-color-neutral-200),
- $hover-background: var(--ds-color-neutral-300),
- $active-background: var(--ds-color-neutral-400),
- $disabled-color: var(--ds-color-neutral-700),
- $disabled-background: var(--ds-color-neutral-100)
- );
- }
- &.btn-tertiary {
- @include ol-button-variant(
- $color: var(--ds-color-neutral-950),
- $background: var(--ds-color-white),
- $hover-background: var(--ds-color-neutral-100),
- $active-background: var(--ds-color-neutral-200),
- $disabled-color: var(--ds-color-neutral-700),
- $disabled-background: var(--ds-color-neutral-100)
- );
- }
- &.btn-danger {
- @include ol-button-variant(
- $color: var(--ds-color-white),
- $background: var(--ds-color-red-700),
- $hover-background: var(--ds-color-red-800),
- $active-background: var(--ds-color-red-900),
- $disabled-color: var(--ds-color-neutral-700),
- $disabled-background: var(--ds-color-neutral-100)
- );
- }
- &.button-loading {
- .spinner-container {
- display: flex;
- justify-content: center;
- align-items: center;
- .loading-spinner-small {
- border-width: 0.25em;
- height: 1.25rem;
- width: 1.25rem;
- }
- .loading-spinner-large {
- border-width: 0.25em;
- height: 1.5rem;
- width: 1.5rem;
- }
- .spinner-border {
- border-right-color: color-mix(
- in srgb,
- var(--bs-btn-color) 32%,
- var(--bs-btn-bg)
- );
- }
- }
- // Hide the text when the spinner is visible
- & > [aria-hidden='true'] {
- visibility: hidden;
- }
- }
- .button-content {
- display: inline-flex;
- align-items: center;
- gap: var(--ds-spacing-200); // Add gap between text and icons
- justify-content: center;
- }
- .btn-social-icon {
- height: 24px;
- width: 24px;
- padding: var(--ds-spacing-50);
- margin: 0;
- }
- }
|