Geen omschrijving
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

_avatar.scss 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /* Avatar
  2. ******************************************************************************* */
  3. /* Avatar Styles */
  4. .avatar {
  5. --#{$prefix}avatar-size: #{$avatar-size};
  6. --#{$prefix}avatar-group-border: #{$avatar-group-border};
  7. --#{$prefix}avatar-initial-inline: 3px;
  8. --#{$prefix}avatar-initial-bg: #{$avatar-initial-bg};
  9. position: relative;
  10. block-size: var(--#{$prefix}avatar-size);
  11. cursor: pointer;
  12. inline-size: var(--#{$prefix}avatar-size);
  13. .avatar-initial {
  14. position: absolute;
  15. display: flex;
  16. align-items: center;
  17. justify-content: center;
  18. background-color: var(--#{$prefix}avatar-initial-bg);
  19. color: var(--#{$prefix}white);
  20. font-size: var(--#{$prefix}avatar-initial);
  21. font-weight: $font-weight-medium;
  22. inset: 0;
  23. text-transform: uppercase;
  24. }
  25. &.avatar-online,
  26. &.avatar-offline,
  27. &.avatar-away,
  28. &.avatar-busy {
  29. &::after {
  30. position: absolute;
  31. @include border-radius(100%);
  32. block-size: calc(var(--#{$prefix}avatar-size) * .2);
  33. box-shadow: 0 0 0 2px var(--#{$prefix}white);
  34. content: "";
  35. inline-size: calc(var(--#{$prefix}avatar-size) * .2);
  36. inset-block-end: 0;
  37. inset-inline-end: var(--#{$prefix}avatar-initial-inline);
  38. }
  39. }
  40. img {
  41. block-size: 100%;
  42. inline-size: 100%;
  43. }
  44. &.avatar-online::after {
  45. background-color: var(--#{$prefix}success);
  46. }
  47. &.avatar-offline::after {
  48. background-color: var(--#{$prefix}secondary);
  49. }
  50. &.avatar-away::after {
  51. background-color: var(--#{$prefix}warning);
  52. }
  53. &.avatar-busy::after {
  54. background-color: var(--#{$prefix}danger);
  55. }
  56. [class*="avatar-shadow-"] {
  57. background-color: var(--#{$prefix}avatar-icon-bg);
  58. box-shadow: 0 0 0 .25rem rgba(var(--#{$prefix}avatar-icon-shadow-color), .06);
  59. color: var(--#{$prefix}avatar-icon-color);
  60. }
  61. }
  62. /* Pull up avatar style */
  63. .pull-up {
  64. transition: all .25s ease;
  65. &:hover {
  66. z-index: 30;
  67. @include border-radius(50%);
  68. box-shadow: var(--#{$prefix}box-shadow);
  69. transform: translateY(-4px) scale(1.02);
  70. }
  71. }
  72. @each $size, $values in $avatar-sizes {
  73. .avatar-#{$size} {
  74. --#{$prefix}avatar-size: #{nth($values, 1)};
  75. --#{$prefix}avatar-initial: #{nth($values, 2)};
  76. --#{$prefix}avatar-initial-inline: #{nth($values, 3)};
  77. }
  78. }
  79. /* Avatar Group SCSS */
  80. .avatar-group {
  81. .avatar {
  82. margin-inline-start: -.8rem;
  83. transition: all .25s ease;
  84. &:first-child {
  85. margin-inline-start: 0;
  86. }
  87. img,
  88. .avatar-initial {
  89. border: 2px solid var(--#{$prefix}avatar-group-border);
  90. color: var(--#{$prefix}heading-color);
  91. }
  92. &:hover {
  93. z-index: 30;
  94. transition: all .25s ease;
  95. }
  96. }
  97. // Avatar Group Sizings
  98. .avatar-xs {
  99. margin-inline-start: -.65rem;
  100. }
  101. .avatar-sm {
  102. margin-inline-start: -.75rem;
  103. }
  104. .avatar-md {
  105. margin-inline-start: -.9rem;
  106. }
  107. .avatar-lg {
  108. margin-inline-start: -1.5rem;
  109. }
  110. .avatar-xl {
  111. margin-inline-start: -1.75rem;
  112. }
  113. }
  114. @each $state in map-keys($theme-colors) {
  115. .avatar .avatar-shadow-#{$state} {
  116. --#{$prefix}avatar-icon-color: var(--#{$prefix}#{$state});
  117. --#{$prefix}avatar-icon-shadow-color: var(--#{$prefix}#{$state}-rgb);
  118. --#{$prefix}avatar-icon-bg: var(--#{$prefix}#{$state}-bg-subtle);
  119. }
  120. }
  121. /* Avatar dark css */
  122. @if $enable-dark-mode {
  123. @include color-mode(dark) {
  124. /* Avatar Status indication */
  125. .avatar {
  126. --#{$prefix}avatar-initial-bg: #373b50;
  127. &.avatar-online,
  128. &.avatar-offline,
  129. &.avatar-away,
  130. &.avatar-busy {
  131. &::after {
  132. box-shadow: 0 0 0 2px var(--#{$prefix}body-bg);
  133. }
  134. }
  135. }
  136. }
  137. }