Build the stacked-avatar row you see on GitHub PRs and Google Docs: a handful of overlapping circular avatars, and when there are more people than fit, a trailing +K badge that stands in for the rest. It is a mostly presentational React component — the only real logic is slice the list to max, then count what is left over.
The starter App.tsx has the data (users, max, a palette, and an initials helper) and an empty .avatars row. Fill the row in:
max. Take users.slice(0, max) and render each as a circular .avatar showing that person's initials.style={{ background: palette[i] }} so the row reads as distinct people.overflow = users.length - max and, only when it is positive, render a trailing .more circle showing +{overflow}.max = 4 renders four avatars (AL, AT, GH, LT) then a +2 badge.-1, not positive).visible and overflow are computed from users and max; there is no separate state to keep in sync..avatar uses margin-left: -10px, and .avatars > :first-child resets it — you only render the circles in order.+K circle at all.styles.css; focus on the render.