online-users.scss 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. :root {
  2. --toolbar-btn-color: var(--white);
  3. --online-users-border-color: var(--bg-dark-primary);
  4. --online-users-text-color: var(--content-primary);
  5. --online-users-overflow-button-background-color: var(--bg-light-secondary);
  6. }
  7. @include theme('light') {
  8. --toolbar-btn-color: var(--neutral-70);
  9. --online-users-border-color: var(--bg-light-primary);
  10. --online-users-text-color: var(--content-primary);
  11. --online-users-overflow-button-background-color: var(--bg-light-secondary);
  12. }
  13. .online-users {
  14. display: flex;
  15. align-items: center;
  16. .online-user {
  17. display: inline-block;
  18. width: 24px;
  19. height: 24px;
  20. line-height: 24px;
  21. margin-right: var(--spacing-04);
  22. text-align: center;
  23. color: white;
  24. text-transform: uppercase;
  25. border-radius: var(--border-radius-base);
  26. cursor: pointer;
  27. }
  28. .online-user-multi {
  29. @include reset-button;
  30. color: var(--toolbar-btn-color);
  31. width: auto;
  32. min-width: 24px;
  33. padding-left: var(--spacing-04);
  34. padding-right: var(--spacing-03);
  35. display: flex;
  36. align-items: center;
  37. }
  38. }
  39. .online-users-row {
  40. // Keep in sync with the MAX_USER_CIRCLES_DISPLAYED js constant
  41. $max-user-circles-displayed: 5;
  42. --online-users-circle-size: 24px;
  43. --online-users-border-size: 1px;
  44. --online-users-overlap: 8px;
  45. --online-users-circle-padding: var(--spacing-01);
  46. .online-user-overflow-dropdown {
  47. --online-users-border-color: transparent;
  48. }
  49. display: flex;
  50. align-items: center;
  51. color: var(--online-users-text-color);
  52. .online-users-row-button {
  53. padding: 0;
  54. margin: 0;
  55. background: none;
  56. border: none;
  57. color: var(--online-users-text-color);
  58. min-width: var(--online-users-circle-size);
  59. height: var(--online-users-circle-size);
  60. display: block;
  61. font-weight: var(--font-weight-regular);
  62. &.dropdown-toggle::after {
  63. display: none;
  64. }
  65. &:not(:last-child, .online-user-overflow-toggle) {
  66. margin-right: calc(
  67. var(--online-users-overlap) * -1 + var(--online-users-border-size)
  68. );
  69. }
  70. @for $i from 1 through $max-user-circles-displayed {
  71. &:nth-child(#{$i}):not(:hover):not(.online-user-overflow-toggle) {
  72. z-index: $i;
  73. }
  74. }
  75. &:hover {
  76. z-index: $max-user-circles-displayed + 2;
  77. }
  78. }
  79. .online-user-overflow-toggle {
  80. &:not(:hover) {
  81. z-index: $max-user-circles-displayed + 1;
  82. }
  83. &:hover,
  84. &:active,
  85. & {
  86. background: none;
  87. }
  88. .online-user-circle {
  89. background-color: var(--online-users-overflow-button-background-color);
  90. color: var(--online-users-text-color);
  91. }
  92. }
  93. .online-user-circle {
  94. padding: var(--online-users-circle-padding);
  95. border-radius: 50%;
  96. min-width: var(--online-users-circle-size);
  97. height: var(--online-users-circle-size);
  98. line-height: calc(
  99. var(--online-users-circle-size) - 2 * var(--online-users-border-size) -
  100. 2 * var(--online-users-circle-padding)
  101. );
  102. font-size: var(--font-size-01);
  103. text-align: center;
  104. border: var(--online-users-border-size) solid
  105. var(--online-users-border-color);
  106. box-sizing: border-box;
  107. display: inline-block;
  108. }
  109. }