_badges.scss 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. .badge {
  2. --#{$prefix}badge-padding-x: #{$badge-padding-x};
  3. --#{$prefix}badge-padding-y: #{$badge-padding-y};
  4. --#{$prefix}badge-font-size: #{$badge-font-size};
  5. --#{$prefix}badge-font-weight: #{$badge-font-weight};
  6. --#{$prefix}badge-color: #{$badge-color};
  7. --#{$prefix}badge-border-radius: #{$badge-border-radius};
  8. --#{$prefix}badge-icon-size: 1em;
  9. --#{$prefix}badge-line-height: 1;
  10. display: inline-flex;
  11. padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
  12. font-weight: var(--#{$prefix}badge-font-weight);
  13. font-size: var(--#{$prefix}badge-font-size);
  14. color: var(--#{$prefix}badge-color);
  15. text-align: center;
  16. white-space: nowrap;
  17. justify-content: center;
  18. align-items: center;
  19. gap: .25rem;
  20. background: $badge-bg-color;
  21. overflow: hidden;
  22. user-select: none;
  23. border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
  24. border-radius: var(--#{$prefix}badge-border-radius);
  25. min-width: calc(1em + var(--#{$prefix}badge-padding-y) * 2 + 2px);
  26. letter-spacing: 0.04em;
  27. vertical-align: bottom;
  28. line-height: var(--#{$prefix}badge-line-height);
  29. @at-root a#{&} {
  30. color: $card-bg;
  31. }
  32. .icon {
  33. width: 1em;
  34. height: 1em;
  35. font-size: var(--#{$prefix}badge-icon-size);
  36. stroke-width: 2;
  37. }
  38. }
  39. .badge:empty,
  40. .badge-dot {
  41. display: inline-block;
  42. width: $badge-empty-size;
  43. height: $badge-empty-size;
  44. min-width: 0;
  45. min-height: auto;
  46. padding: 0;
  47. border-radius: $border-radius-pill;
  48. vertical-align: baseline;
  49. }
  50. //
  51. // Outline badge
  52. //
  53. .badge-outline {
  54. background-color: transparent;
  55. border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) currentColor;
  56. }
  57. //
  58. // Pill badge
  59. //
  60. .badge-pill {
  61. border-radius: $border-radius-pill;
  62. }
  63. //
  64. // Badges list
  65. //
  66. .badges-list {
  67. @include elements-list;
  68. }
  69. //
  70. // Notification badge
  71. //
  72. .badge-notification {
  73. position: absolute !important;
  74. top: 0 !important;
  75. right: 0 !important;
  76. transform: translate(50%, -50%);
  77. z-index: 1;
  78. }
  79. .badge-blink {
  80. animation: blink 2s infinite;
  81. }
  82. //
  83. // Badge sizes
  84. //
  85. .badge-sm {
  86. --#{$prefix}badge-font-size: #{$badge-font-size-sm};
  87. --#{$prefix}badge-icon-size: 1em;
  88. --#{$prefix}badge-padding-y: 2px;
  89. --#{$prefix}badge-padding-x: 0.25rem;
  90. }
  91. .badge-lg {
  92. --#{$prefix}badge-font-size: #{$badge-font-size-lg};
  93. --#{$prefix}badge-icon-size: 1em;
  94. --#{$prefix}badge-padding-y: 0.25rem;
  95. --#{$prefix}badge-padding-x: 0.5rem;
  96. }
  97. //
  98. // Badge with only icon
  99. //
  100. .badge-icononly {
  101. --#{$prefix}badge-padding-x: 0;
  102. }