Mui Avatar

import : 
import Avatar from '@mui/material/Avatar';
component : Avatar Image

Remy Sharp
Travis Howard
Cindy Baker

<Stack direction="row">
      <Avatar alt="Remy Sharp " src="https://mui.com/static/images/avatar/1.jpg" />
      <Avatar alt="Travis Howard " src="https://mui.com/static/images/avatar/2.jpg" />
      <Avatar alt="Cindy Baker " src="https://mui.com/static/images/avatar/3.jpg" />
</Stack>
component : Avatar Letter

H
N
OP

<Stack direction="row" spacing={2} >
      <Avatar>H</Avatar>
      <Avatar sx={{ bgcolor: '#f00'}}>N</Avatar>
      <Avatar sx={{ bgcolor: 'var(--color-success,'}}>OP</Avatar>
</Stack>
component : Avatar Generates color 

KD
JW
TN

function stringToColor(string: string) {
     let hash = 0;
     let i;
     /* eslint-disable no-bitwise */
      for (i = 0;i < string.length; i +=1) {
           hash = string.charCodeAt(i) + ((hash << 5) - hash);
      }
     let color = '#';
     for (i = 0;i < 3;i += 1) {
           const value = (hash >> (i * 8)) & 0xff;
                    color += `00${value.toString(16)}`.slice(-2);
      }
     /* eslint-enable no-bitwise */
     return color;
}
function stringAvatar(name: string) {
     return {
            sx: { bgcolor: stringToColor(name), },
            children: `${name.split(' ')[0][0] }${name.split(' ')[1][0]}`,
      };
}
<Stack direction="row" spacing=2>
      <Avatar {...stringAvatar('Kent Dodds')} />
      <Avatar {...stringAvatar('Jed Watson')} />
      <Avatar {...stringAvatar('Tim Neutkens')} />
</Stack>
component : Avatar Size

Remy Sharp
Remy Sharp
Remy Sharp

<Stack direction="row" spacing={2} >
      <Avatar
            alt="Remy Sharp"
            src="https://mui.com/static/images/avatar/1.jpg"
           sx={{ width: 24, height: 24 }}
      />
      <Avatar
            alt="Remy Sharp"
            src="https://mui.com/static/images/avatar/1.jpg"
      />
      <Avatar
            alt="Remy Sharp"
            src="https://mui.com/static/images/avatar/1.jpg"
           sx={{ width: 56, height: 56 }}
      />
</Stack>
component : Avatar Icon


import FolderIcon from '@mui/icons-material/Folder';
import PageviewIcon from '@mui/icons-material/Pageview';
import AssignmentIcon from '@mui/icons-material/Assignment';

<Stack direction="row" spacing={2} >
      <Avatar>
           <FolderIcon />
      </Avatar>
      <Avatar sx={{ bgcolor: '#ff00c6' }} >
           <PageviewIcon />
      </Avatar>
      <Avatar sx={{ bgcolor: '#03a9f4' }} >
           <AssignmentIcon />
      </Avatar>
</Stack>
component : Avatar Variants

Z
Q

import FolderIcon from '@mui/icons-material/Folder';
import PageviewIcon from '@mui/icons-material/Pageview';
import AssignmentIcon from '@mui/icons-material/Assignment';

<Stack direction="row" spacing={2} >
      <Avatarsx={{ bgcolor: '#ff00c6' }} variant="square">
           Z
      </Avatar>
      <Avatarsx={{ bgcolor: '#03a9f4' }} variant="rounded">
           Q
      </Avatar>
</Stack>
component : Avatar Fallbacks

Remy Sharp
Remy Sharp

<Stack direction="row" spacing={2} >
      <Avatar sx={{ bgcolor: '#ff00c6' }} alt="Remy Sharp" src="/broken-image.jpg" >
           Z
      </Avatar>
      <Avatar
           sx={{ bgcolor: '#03a9f4' }}
            alt="Remy Sharp"
            src="/broken-image.jpg"
      />
      <Avatar
           sx={{ bgcolor: '#ff9800' }}
            src="/broken-image.jpg"
      />
</Stack>
component : Avatar With badge

Remy Sharp

import { styled } from '@mui/material/styles';
const StyledBadge = styled(Badge)(({ theme }) => ({
     '& .MuiBadge-badge' : {
            backgroundColor : '#44b700',
            color : '#44b700',
            boxShadow : '0 0 0 2px ${theme.palette.background.paper}',
            &::after' : {
                  position : 'absolute',
                  top : '0',
                  left : '0',
                  width : '100%',
                  height : '100%',
                  borderRadius : '50%',
                  animation : 'ripple 1.2s infinite ease-in-out',
                  border : '1px solid currentColor',
                  content : '""',
            },
      }
     '@keyframes ripple' : {
           '0%' : {
                  transform : 'scale(.8)',
                  opacity : 1,
           '100%' : {
                  transform : 'scale(2.4)',
                  opacity : 0,
            },
      }
});
<Stack direction="row" spacing={2}>
      <StyledBadge
            overlap="circular"
            anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
            variant="dot"
      >
            <Avatar alt="Remy Sharp" src="https://mui.com/static/images/avatar/1.jpg" />
      </StyledBadge>
</Stack>

Travis Howard
Remy Sharp

import Badge from '@mui/material/Badge';
const SmallAvatar = styled(Avatar)(({ theme }) => ({
      width : '22',
      height : '22',
      border : ' 2px solid ${theme.palette.background.paper} ',
}));
<Stack direction="row" spacing={2}>
      <Badge
            overlap="circular"
            anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
            badgeContent={<SmallAvatar alt="Remy Sharp" src="https://mui.com/static/images/avatar/1.jpg"/> }
      >
            <Avatar alt="Travis Howard" src="https://mui.com/static/images/avatar/2.jpg" />
      </Badge>
</Stack>

Mui AvatarGroup

import : 
import AvatarGroup from '@mui/material/AvatarGroup';
component : Avatar Grouped

+2
Cindy Baker
Travis Howard
Remy Sharp

<AvatarGroup max="4" sx={{justifyContent: "flex-end",}} >
      <Avatar alt="Remy Sharp" src="https://mui.com/static/images/avatar/1.jpg" />
      <Avatar alt="Travis Howard" src="https://mui.com/static/images/avatar/2.jpg" />
      <Avatar alt="Cindy Baker" src="https://mui.com/static/images/avatar/3.jpg" />
      <Avatar alt="Agnes Walker" src="https://mui.com/static/images/avatar/4.jpg" />
      <Avatar alt="Trevor Henderson" src="https://mui.com/static/images/avatar/5.jpg" />
</AvatarGroup>
component : Avatar Total

+20
Agnes Walker
Cindy Baker
Travis Howard
Remy Sharp

<AvatarGroup total="24" sx={{justifyContent: "flex-end",}} >
      <Avatar alt="Remy Sharp" src="https://mui.com/static/images/avatar/1.jpg" />
      <Avatar alt="Travis Howard" src="https://mui.com/static/images/avatar/2.jpg" />
      <Avatar alt="Cindy Baker" src="https://mui.com/static/images/avatar/3.jpg" />
      <Avatar alt="Agnes Walker" src="https://mui.com/static/images/avatar/4.jpg" />
      <Avatar alt="Trevor Henderson" src="https://mui.com/static/images/avatar/5.jpg" />
</AvatarGroup>
component : Avatar Total

+4k
Agnes Walker
Cindy Baker
Travis Howard
Remy Sharp

<AvatarGroup renderSurplus={(surplus: number) => <span>+{surplus.toString() [0]}k</span>} total={4251} sx={{justifyContent: "flex-end",}} >
      <Avatar alt="Remy Sharp" src="https://mui.com/static/images/avatar/1.jpg" />
      <Avatar alt="Travis Howard" src="https://mui.com/static/images/avatar/2.jpg" />
      <Avatar alt="Cindy Baker" src="https://mui.com/static/images/avatar/3.jpg" />
      <Avatar alt="Agnes Walker" src="https://mui.com/static/images/avatar/4.jpg" />
      <Avatar alt="Trevor Henderson" src="https://mui.com/static/images/avatar/5.jpg" />
</AvatarGroup>