diff --git a/.changeset/button2-block-position.md b/.changeset/button2-block-position.md
new file mode 100644
index 00000000000..4918901d693
--- /dev/null
+++ b/.changeset/button2-block-position.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': patch
+---
+
+Button 2: Fix icon positions for block buttons
diff --git a/src/NewButton/styles.ts b/src/NewButton/styles.ts
index 6c203e617aa..d3da3713d43 100644
--- a/src/NewButton/styles.ts
+++ b/src/NewButton/styles.ts
@@ -217,6 +217,7 @@ export const getButtonStyles = (theme?: Theme) => {
...getBaseStyles(theme),
display: 'grid',
gridTemplateAreas: '"leadingIcon text trailingIcon"',
+ gridTemplateColumns: 'min-content 1fr min-content',
'& > :not(:last-child)': {
mr: '2'
},
@@ -228,6 +229,9 @@ export const getButtonStyles = (theme?: Theme) => {
},
'[data-component="trailingIcon"]': {
gridArea: 'trailingIcon'
+ },
+ '[data-component="leadingIcon"] + [data-component="text"]': {
+ textAlign: 'left'
}
}
return styles
diff --git a/src/__tests__/__snapshots__/NewButton.test.tsx.snap b/src/__tests__/__snapshots__/NewButton.test.tsx.snap
index 2da340577e5..99ea8561eff 100644
--- a/src/__tests__/__snapshots__/NewButton.test.tsx.snap
+++ b/src/__tests__/__snapshots__/NewButton.test.tsx.snap
@@ -23,6 +23,7 @@ exports[`Button renders consistently 1`] = `
text-align: center;
display: grid;
grid-template-areas: "leadingIcon text trailingIcon";
+ grid-template-columns: min-content 1fr min-content;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 16px;
@@ -63,6 +64,10 @@ exports[`Button renders consistently 1`] = `
grid-area: trailingIcon;
}
+.c0 [data-component="leadingIcon"] + [data-component="text"] {
+ text-align: left;
+}
+
.c0 [data-component="ButtonCounter"] {
font-size: 14px;
}
@@ -111,6 +116,7 @@ exports[`Button styles danger button appropriately 1`] = `
text-align: center;
display: grid;
grid-template-areas: "leadingIcon text trailingIcon";
+ grid-template-columns: min-content 1fr min-content;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 16px;
@@ -156,6 +162,10 @@ exports[`Button styles danger button appropriately 1`] = `
grid-area: trailingIcon;
}
+.c0 [data-component="leadingIcon"] + [data-component="text"] {
+ text-align: left;
+}
+
.c0 [data-component="ButtonCounter"] {
font-size: 14px;
color: btn.danger.text;
@@ -219,6 +229,7 @@ exports[`Button styles invisible button appropriately 1`] = `
text-align: center;
display: grid;
grid-template-areas: "leadingIcon text trailingIcon";
+ grid-template-columns: min-content 1fr min-content;
padding-top: 6px;
padding-bottom: 6px;
padding-left: 16px;
@@ -258,6 +269,10 @@ exports[`Button styles invisible button appropriately 1`] = `
grid-area: trailingIcon;
}
+.c0 [data-component="leadingIcon"] + [data-component="text"] {
+ text-align: left;
+}
+
.c0 [data-component="ButtonCounter"] {
font-size: 14px;
}
@@ -307,6 +322,7 @@ exports[`Button styles outline button appropriately 1`] = `
text-align: center;
display: grid;
grid-template-areas: "leadingIcon text trailingIcon";
+ grid-template-columns: min-content 1fr min-content;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 16px;
@@ -351,6 +367,10 @@ exports[`Button styles outline button appropriately 1`] = `
grid-area: trailingIcon;
}
+.c0 [data-component="leadingIcon"] + [data-component="text"] {
+ text-align: left;
+}
+
.c0 [data-component="ButtonCounter"] {
font-size: 14px;
background-color: btn.outline.counterBg;
@@ -415,6 +435,7 @@ exports[`Button styles primary button appropriately 1`] = `
text-align: center;
display: grid;
grid-template-areas: "leadingIcon text trailingIcon";
+ grid-template-columns: min-content 1fr min-content;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 16px;
@@ -455,6 +476,10 @@ exports[`Button styles primary button appropriately 1`] = `
grid-area: trailingIcon;
}
+.c0 [data-component="leadingIcon"] + [data-component="text"] {
+ text-align: left;
+}
+
.c0 [data-component="ButtonCounter"] {
font-size: 14px;
background-color: btn.primary.counterBg;
diff --git a/src/stories/NewButton.stories.tsx b/src/stories/NewButton.stories.tsx
index 9784e16a7f2..a7be4af2417 100644
--- a/src/stories/NewButton.stories.tsx
+++ b/src/stories/NewButton.stories.tsx
@@ -145,9 +145,20 @@ export const caretButton = ({...args}: ButtonProps) => {
export const blockButton = ({...args}: ButtonProps) => {
return (
-
+ <>
+
+
+
+
+ >
)
}