diff --git a/.changeset/avatar-min-width.md b/.changeset/avatar-min-width.md
new file mode 100644
index 00000000000..8cddab61cdd
--- /dev/null
+++ b/.changeset/avatar-min-width.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': patch
+---
+
+Avatar: Prevent the image from collapsing when rendered inside a `min-content` sized container, such as the Button `leadingVisual` slot
diff --git a/packages/react/src/Avatar/Avatar.module.css b/packages/react/src/Avatar/Avatar.module.css
index fc67531b9a7..d34dad774a9 100644
--- a/packages/react/src/Avatar/Avatar.module.css
+++ b/packages/react/src/Avatar/Avatar.module.css
@@ -1,6 +1,7 @@
:where(.Avatar) {
display: inline-block;
width: var(--avatarSize-regular);
+ min-width: var(--avatarSize-regular);
height: var(--avatarSize-regular);
overflow: hidden; /* Ensure page layout in Firefox should images fail to load */
/* stylelint-disable-next-line primer/typography */
@@ -18,16 +19,19 @@
&:where([data-responsive]) {
@media screen and (--viewportRange-narrow) {
width: var(--avatarSize-narrow);
+ min-width: var(--avatarSize-narrow);
height: var(--avatarSize-narrow);
}
@media screen and (--viewportRange-regular) {
width: var(--avatarSize-regular);
+ min-width: var(--avatarSize-regular);
height: var(--avatarSize-regular);
}
@media screen and (--viewportRange-wide) {
width: var(--avatarSize-wide);
+ min-width: var(--avatarSize-wide);
height: var(--avatarSize-wide);
}
}
diff --git a/packages/react/src/Button/Button.dev.stories.tsx b/packages/react/src/Button/Button.dev.stories.tsx
index 8d23de9c81f..6dd1d53fb70 100644
--- a/packages/react/src/Button/Button.dev.stories.tsx
+++ b/packages/react/src/Button/Button.dev.stories.tsx
@@ -1,6 +1,7 @@
import {SearchIcon, TriangleDownIcon, EyeIcon, HeartFillIcon} from '@primer/octicons-react'
import {Button, IconButton} from '.'
import {Stack} from '../Stack'
+import Avatar from '../Avatar'
export default {
title: 'Components/Button/Dev',
@@ -86,6 +87,27 @@ export const DisabledButtonVariants = () => {
)
}
+export const LeadingVisualAvatar = () => {
+ const avatarSrc = 'https://avatars.githubusercontent.com/u/7143434?v=4'
+ return (
+
+ }>Default
+ }>
+ Primary
+
+ }>
+ Invisible
+
+ }>
+ Small
+
+ }>
+ Large
+
+
+ )
+}
+
export const LinkVariantWithUnderlinePreference = () => {
return (