badge.scss 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. @mixin light-themed-badge-tag {
  2. --badge-tag-themed-content-color: var(--content-primary);
  3. --badge-tag-themed-btn-hover-bg: var(--neutral-40);
  4. --badge-tag-themed-hover-bg: var(--neutral-30);
  5. --badge-tag-themed-btn-bg: var(--neutral-20);
  6. }
  7. @mixin dark-themed-badge-tag {
  8. --badge-tag-themed-content-color: var(--content-primary-dark);
  9. --badge-tag-themed-btn-hover-bg: var(--neutral-60);
  10. --badge-tag-themed-hover-bg: var(--neutral-50);
  11. --badge-tag-themed-btn-bg: var(--neutral-70);
  12. }
  13. :root {
  14. @include light-themed-badge-tag;
  15. @include theme('default') {
  16. .badge.badge-themed {
  17. @include dark-themed-badge-tag;
  18. }
  19. }
  20. }
  21. $max-width: 160px;
  22. .badge {
  23. display: inline-flex;
  24. align-items: stretch;
  25. max-width: 100%;
  26. line-height: var(--line-height-01);
  27. padding: 0 var(--bs-badge-padding-x);
  28. &:not(.badge-tag) {
  29. max-width: $max-width;
  30. }
  31. }
  32. .badge-prepend {
  33. margin-right: var(--spacing-02);
  34. display: flex;
  35. align-items: center;
  36. .material-symbols {
  37. font-size: inherit;
  38. }
  39. }
  40. .badge-close {
  41. @include reset-button;
  42. display: flex;
  43. align-items: center;
  44. justify-content: center;
  45. flex-shrink: 0;
  46. padding: 0 var(--spacing-02);
  47. border-top-right-radius: inherit;
  48. border-bottom-right-radius: inherit;
  49. color: inherit;
  50. user-select: none;
  51. .badge-close-icon {
  52. font-size: $font-size-base;
  53. }
  54. }
  55. .badge-close,
  56. .badge-tag-content-btn {
  57. &:hover {
  58. background-color: var(--neutral-40);
  59. }
  60. }
  61. .badge-content {
  62. @include text-truncate;
  63. padding: var(--bs-badge-padding-y) 0;
  64. min-width: 1em;
  65. }
  66. .badge-tag {
  67. @include body-sm;
  68. padding: 0;
  69. color: $dark;
  70. &:hover {
  71. background-color: var(--neutral-30) !important;
  72. }
  73. }
  74. .badge-tag-content {
  75. display: flex;
  76. align-items: center;
  77. overflow: hidden;
  78. max-width: $max-width;
  79. padding-left: var(--bs-badge-padding-x);
  80. padding-right: var(--bs-badge-padding-x);
  81. border-top-left-radius: inherit;
  82. border-bottom-left-radius: inherit;
  83. &:last-child {
  84. border-top-right-radius: inherit;
  85. border-bottom-right-radius: inherit;
  86. }
  87. }
  88. .badge-tag-content-btn {
  89. @include reset-button;
  90. padding-left: var(--bs-badge-padding-x);
  91. padding-right: var(--bs-badge-padding-x);
  92. }
  93. .badge-tag-circle {
  94. display: block;
  95. margin: var(--spacing-02);
  96. width: var(--spacing-04);
  97. height: var(--spacing-04);
  98. border-radius: 50%;
  99. }
  100. .badge-premium {
  101. background-color: var(--neutral-20);
  102. color: var(--neutral-90);
  103. vertical-align: middle;
  104. margin-left: 5px;
  105. font-weight: var(--badge-font-weight);
  106. }
  107. .badge-premium-gradient {
  108. background: var(--premium-gradient);
  109. color: var(--content-primary-dark);
  110. vertical-align: middle;
  111. margin-left: 5px;
  112. font-weight: var(--badge-font-weight);
  113. }
  114. .badge-link {
  115. display: inline-block;
  116. &.badge-link-light:hover .badge {
  117. background-color: var(--neutral-30) !important;
  118. }
  119. &.badge-link-no-max-width {
  120. .badge {
  121. max-width: none;
  122. }
  123. }
  124. .badge {
  125. @include body-sm;
  126. padding: 0 var(--bs-badge-padding-x);
  127. transition: background-color 0.15s ease-in-out;
  128. &:hover {
  129. transition: background-color 0.15s ease-in-out;
  130. }
  131. }
  132. }
  133. .badge-link-list {
  134. display: flex;
  135. gap: var(--spacing-05);
  136. flex-wrap: wrap;
  137. list-style: none;
  138. margin: 0;
  139. padding: 0;
  140. align-content: flex-start;
  141. .badge {
  142. max-width: 200px;
  143. }
  144. }
  145. .badge.badge-themed {
  146. .badge-close,
  147. .badge-tag-content-btn {
  148. &:hover {
  149. background-color: var(--badge-tag-themed-btn-hover-bg);
  150. }
  151. }
  152. &.badge-tag {
  153. color: var(--badge-tag-themed-content-color);
  154. background-color: var(--badge-tag-themed-btn-bg) !important;
  155. &:hover {
  156. background-color: var(--badge-tag-themed-hover-bg) !important;
  157. }
  158. }
  159. .badge-content {
  160. color: var(--badge-tag-themed-content-color);
  161. }
  162. }