+ );
+};
diff --git a/packages/react/src/components/avatar-stack/avatar-stack.tsx b/packages/react/src/components/avatar-stack/avatar-stack.tsx
new file mode 100644
index 0000000000..4ccf90a4a7
--- /dev/null
+++ b/packages/react/src/components/avatar-stack/avatar-stack.tsx
@@ -0,0 +1,92 @@
+import cl from 'clsx/lite';
+import type { HTMLAttributes } from 'react';
+import { Children, forwardRef } from 'react';
+
+/* @TODO:
+ * a11y
+ * rightAligned?
+ * vertical??
+ * support Badge?
+ * design for +n indicator
+ */
+
+export type AvatarStackProps = {
+ /**
+ * Adjusts gap-mask between avatars in the stack. Must be a valid css length value (px, em, rem, var(--ds-size-1) etc.)
+ * @default 2px
+ */
+ gap?: string;
+ /**
+ * Control the size of the avatars. Must be a valid css length value (px, em, rem, var(--ds-size-12) etc.)
+ * @default 'var(--ds-size-12)'
+ */
+ avatarSize?: string;
+ /**
+ * A number which represents the percentage value of how much avatars should overlap.
+ * @default 50
+ */
+ overlap?: number;
+ /**
+ * Text to the right of the avatars to show a number representing additional avatars not shown such as '+5'".
+ */
+ suffix?: string;
+ /**
+ * Expand on hover to show full avatars.
+ * 'fixed': AvatarStack physical width does not change when avatars are expanded.
+ * @default false
+ */
+ expandable?: 'fixed' | boolean;
+} & HTMLAttributes