@gravity-ui/uikit
Version:
Gravity UI base styling and components
50 lines (39 loc) • 3.22 kB
Markdown
# AvatarStack
This component is used for a stack of images with overlap over one another and, optionally, a control. It usually refers to user avatars.
```ts
import {AvatarStack} from '@gravity-ui/uikit';
```
## Usage
Basically, `AvatarStack` does not have any limitations in terms of what components to render. See an example of its common usage below:
```tsx
<AvatarStack>
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login1`} />
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login2`} />
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login3`} />
</AvatarStack>
```
## Properties
| Name | Description | Type | Default |
| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------: | :-------: | --- |
| max | Determines how many avatars are visible before the `More` button. If avatar count is only 1 short from `max`, the `More` button will be replaced with an avatar. | `number` | 3 |
| overlapSize | Determines how much each item should overlap the next one. You may want to use `s` for `xs` to `m`-sized `Avatar`s , `m` for `l`-sized, and `l`, for `xl`-sized. | `s`, `m`, `l` | `s` |
| size | Size for the control displaying extra avatars. Its value is the same as the `Avatar` size. | `AvatarSize` | |
| className | Class name of the root DOM node | `string` | |
| children | List of avatars that may also have extra wrappers | `Object[]` | |
| renderMore | Custom render for the control displaying extra avatars | `function(options: {count: number}): ReactElement` | |
| moreVariant | Variant of default control displaying extra 'counter' | `counter`,`dots` | `counter` | |
### AvatarStack.MoreButton
Component for overriding the `More` button
```tsx
<AvatarStack
renderMore={({count}) => (
<Tooltip content={'More users'}>
<AvatarStack.MoreButton count={count} />
</Tooltip>
)}
>
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login1`} />
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login2`} />
<Avatar imgUrl={`https://i.pravatar.cc/150?u=login3`} />
</AvatarStack>
```