buttons.scss 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. @mixin ol-button-size($font-size, $line-height, $padding-y, $padding-x: var(--spacing-06)) {
  2. --bs-btn-font-size: #{$font-size};
  3. --bs-btn-line-height: #{$line-height};
  4. --bs-btn-padding-y: #{$padding-y};
  5. --bs-btn-padding-x: #{$padding-x};
  6. }
  7. @mixin ol-button-variant(
  8. $color,
  9. $background,
  10. $border: $background,
  11. $hover-background: $background,
  12. $hover-border: $hover-background,
  13. $borderless: true
  14. ) {
  15. --bs-btn-color: #{$color};
  16. --bs-btn-bg: #{$background};
  17. --bs-btn-border-color: #{$border};
  18. --bs-btn-hover-color: #{$color};
  19. --bs-btn-hover-bg: #{$hover-background};
  20. --bs-btn-hover-border-color: #{$hover-border};
  21. --bs-btn-active-color: #{$color};
  22. --bs-btn-active-bg: #{$hover-background};
  23. --bs-btn-active-border-color: #{$hover-border};
  24. --bs-btn-disabled-color: var(--content-disabled);
  25. --bs-btn-disabled-bg: var(--bg-light-disabled);
  26. --bs-btn-disabled-border-color: var(--bg-light-disabled);
  27. @if $borderless {
  28. --bs-btn-border-width: 0;
  29. }
  30. // Use the default state colors when in a loading state
  31. &[data-ol-loading='true'] {
  32. color: var(--bs-btn-color);
  33. background-color: var(--bs-btn-bg);
  34. border-color: var(--bs-btn-border-color);
  35. }
  36. }
  37. .btn {
  38. // Focus style for all buttons
  39. --bs-btn-focus-box-shadow: 0 0 0 2px var(--border-active-dark);
  40. // Sizes
  41. // Default size
  42. @include ol-button-size(
  43. $font-size: var(--font-size-03),
  44. $line-height: var(--line-height-03),
  45. $padding-y: var(--spacing-03),
  46. );
  47. &.btn-lg {
  48. @include ol-button-size(
  49. $font-size: var(--font-size-03),
  50. $line-height: var(--line-height-03),
  51. $padding-y: var(--spacing-05),
  52. );
  53. }
  54. &.btn-sm {
  55. @include ol-button-size(
  56. $font-size: var(--font-size-02),
  57. $line-height: var(--line-height-02),
  58. $padding-y: var(--spacing-01),
  59. $padding-x: var(--spacing-05),
  60. );
  61. }
  62. // Variants
  63. &.btn-primary {
  64. @include ol-button-variant(
  65. $color: var(--content-primary-dark),
  66. $background: var(--bg-accent-01),
  67. $hover-background: var(--bg-accent-02),
  68. $hover-border: var(--bg-accent-02),
  69. );
  70. }
  71. &.btn-secondary {
  72. @include ol-button-variant(
  73. $color: var(--content-primary),
  74. $background: var(--bg-light-primary),
  75. $border: var(--border-primary),
  76. $hover-background: var(--bg-light-tertiary),
  77. $hover-border: var(--border-primary),
  78. $borderless: false,
  79. );
  80. }
  81. &.btn-ghost {
  82. @include ol-button-variant(
  83. $color: var(--content-primary),
  84. $background: var(--bg-light-primary),
  85. $hover-background: var(--bg-light-tertiary),
  86. )
  87. }
  88. &.btn-danger {
  89. @include ol-button-variant(
  90. $color: var(--content-primary-dark),
  91. $background: var(--bg-danger-01),
  92. $border: var(--bg-danger-01),
  93. $hover-background: var(--bg-danger-02),
  94. )
  95. }
  96. &.btn-danger-ghost {
  97. @include ol-button-variant(
  98. $color: var(--content-danger),
  99. $background: var(--bg-light-primary),
  100. $hover-background: var(--bg-danger-03),
  101. )
  102. }
  103. &.btn-premium {
  104. @include ol-button-variant(
  105. $color: var(--content-primary-dark),
  106. $background: var(--blue-70),
  107. );
  108. background: var(--premium-gradient);
  109. }
  110. }