diff --git a/src/components/AvatarGroup/AvatarGroup.stories.tsx b/src/components/AvatarGroup/AvatarGroup.stories.tsx index 04da1d0..01befd7 100644 --- a/src/components/AvatarGroup/AvatarGroup.stories.tsx +++ b/src/components/AvatarGroup/AvatarGroup.stories.tsx @@ -20,7 +20,7 @@ type Story = StoryObj; export const Single: Story = { render: () => ( - + ), }; @@ -28,8 +28,8 @@ export const Single: Story = { export const Two: Story = { render: () => ( - - + + ), }; @@ -37,9 +37,9 @@ export const Two: Story = { export const Three: Story = { render: () => ( - - - + + + ), }; @@ -47,7 +47,7 @@ export const Three: Story = { export const WithPresenceIndicator: Story = { render: () => ( - + ), }; @@ -55,8 +55,8 @@ export const WithPresenceIndicator: Story = { export const TwoWithPresence: Story = { render: () => ( - - + + ), }; @@ -64,9 +64,9 @@ export const TwoWithPresence: Story = { export const SmallSize: Story = { render: () => ( - - - + + + ), }; @@ -74,9 +74,9 @@ export const SmallSize: Story = { export const LargeSize: Story = { render: () => ( - - - + + + ), }; @@ -84,10 +84,10 @@ export const LargeSize: Story = { export const TightSpacing: Story = { render: () => ( - - - - + + + + ), }; @@ -95,10 +95,10 @@ export const TightSpacing: Story = { export const LooseSpacing: Story = { render: () => ( - - - - + + + + ), }; @@ -110,19 +110,69 @@ export const WithImages: Story = { src="https://i.pravatar.cc/150?img=1" alt="User 1" fallback="L" - className="bg-orange-100" + fallbackClassName="bg-orange-100" /> + + ), +}; + +/** + * Demonstrates using fallbackClassName for custom colors with text contrast. + * Use fallbackClassName for background/text colors on the fallback initials. + */ +export const CustomColors: Story = { + render: () => ( + + + + + + ), +}; + +/** + * Demonstrates separating container styling (borders) from fallback styling (colors). + * className applies to Avatar container, fallbackClassName to the fallback initials. + */ +export const CustomBordersAndColors: Story = { + render: () => ( + + + + ), diff --git a/src/components/AvatarGroup/AvatarGroup.tsx b/src/components/AvatarGroup/AvatarGroup.tsx index 68f5abf..791eceb 100644 --- a/src/components/AvatarGroup/AvatarGroup.tsx +++ b/src/components/AvatarGroup/AvatarGroup.tsx @@ -75,15 +75,20 @@ export interface AvatarGroupItemProps * Whether to show a presence indicator (green dot) */ showPresence?: boolean; + /** + * Classes for the fallback background/text (e.g., bg-indigo-500 text-white) + * Defaults to bg-muted text-foreground if not provided + */ + fallbackClassName?: string; } const AvatarGroupItem = React.forwardRef( - ({ className, src, alt, fallback, showPresence, ...props }, ref) => { + ({ className, fallbackClassName, src, alt, fallback, showPresence, ...props }, ref) => { return (
{src && } - + {fallback}