Обзор
Стилизация AvatarStack намеренно минимальна. Корень только задаёт горизонтальную раскладку, а эффект перекрытия создают маска и внешние отступы AvatarStackItem.
Публичные CSS-переменные
AL
BK
CM
| Переменная | Значение | Влияет на |
|---|---|---|
| базовый размер для перекрытия и раздвигания при наведениирасчёт перекрытия элементов | В этом состоянии изменений не видно | |
| внутреннее смещение перекрытиярасчёт перекрытия элементов | В этом состоянии изменений не видно |
Переменные на уровне частей
Корень
Корень использует display: flex.
Элемент
Все элементы, кроме первого, вычисляют радиальную маску из --avatar-size и создают вырез перекрытия. При наведении маска временно снимается и добавляется горизонтальный отступ.
Взаимодействие состояний и вариантов
- размер берётся из общего контекста аватаров
- наведение меняет отступы перекрытия у элемента под курсором и его соседа
- вариант наследуется из контекста аватаров, а не из CSS стопки
Примеры
Размеры стека
small-overlapping-avatars.tsx · 27 строк
import { AvatarFallback, AvatarStack, AvatarStackItem, Text } from '@vega-ui/react';
const sizes = ['xs', 'sm', 'md', 'lg'];
const people = [
{ name: 'Maria Chen', initials: 'MC' },
{ name: 'Omar Haddad', initials: 'OH' },
{ name: 'Lena Fischer', initials: 'LF' },
];
export default function SmallOverlappingAvatars() {
return (
<div style={{ display: 'grid', gap: 'var(--spacing-6)' }}>Что не переопределять
- не смешивайте размеры аватаров в одной стопке
- не убирайте маску перекрытия, не пересмотрев поведение отступов