// Stacked avatars can be used to show who is participating in thread when // there is limited space available. // // No styleguide references .avatar-stack { display: inline-block; white-space: nowrap; .avatar { position: relative; z-index: 2; display: inline-block; width: 20px; height: 20px; box-sizing: content-box; margin-right: -15px; background-color: $bg-white; border-right: 1px solid $white; border-radius: 2px; transition: margin 0.1s ease-in-out; &:only-child { background-color: transparent; } &:first-child { z-index: 3; } &:last-child { z-index: 1; margin-right: 0; border-right: 0; } } // When more than one avatar, margin-left will animate from -15 to 2, and reveal the stack &:hover .avatar { margin-right: 3px; &:last-child { margin-right: 0; } } } // Refactored, new avatar stack: .AvatarStack { position: relative; min-width: 26px; height: 20px; .AvatarStack-body { position: absolute; } &.AvatarStack--two { min-width: 36px; } &.AvatarStack--three-plus { min-width: 46px; } } .AvatarStack-body { display: flex; background: $bg-white; .avatar { position: relative; z-index: 2; display: flex; width: 20px; height: 20px; box-sizing: content-box; margin-right: -11px; background-color: $bg-white; border-right: $border-width $border-style $white; border-radius: 2px; transition: margin 0.1s ease-in-out; &:first-child { z-index: 3; } &:last-child { z-index: 1; } // stylelint-disable selector-max-type img { border-radius: 2px; } // stylelint-enable selector-max-type // Account for 4+ avatars &:nth-child(n+4) { display: none; opacity: 0; } } &:hover { .avatar { margin-right: 3px; } .avatar:nth-child(n+4) { display: flex; opacity: 1; } .avatar-more { display: none !important; } } } .avatar.avatar-more { z-index: 1; margin-right: 0; background: $gray-100; &::before, &::after { position: absolute; display: block; height: 20px; content: ""; border-radius: 2px; outline: $border-width $border-style $white; } &::before { width: 17px; background: $gray-200; } &::after { width: 14px; background: $gray-300; } } // Right aligned variation .AvatarStack--right { .AvatarStack-body { right: 0; flex-direction: row-reverse; &:hover .avatar { margin-right: 0; margin-left: 3px; } } .avatar.avatar-more { background: $gray-300; &::before { width: 5px; } &::after { width: 2px; background: $gray-100; } } .avatar { margin-right: 0; margin-left: -11px; border-right: 0; border-left: $border-width $border-style $white; } }