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 ( - + <> + + + + + ) }