Skip to content

Commit ed3da74

Browse files
authored
[Layout foundations] Rename spacing prop to gap (#7748)
### WHY are these changes introduced? Resolves #7738. Having the prop name align with the css property allows for more consistency. ### WHAT is this pull request doing? Renames `spacing` prop to `gap` on: `Columns`, `Inline`, `AlphaCard` Updates wording for `Tiles` examples to use the word `gap` instead of `spacing`. Updates storybook examples and documentation for all 4 components in the style guide. Runs `get-props` script in style guide to pick up on renamed prop. <!-- ℹ️ Delete the following for small / trivial changes --> ### How to 🎩 🖥 [Local development instructions](https://github.com/Shopify/polaris/blob/main/README.md#local-development) 🗒 [General tophatting guidelines](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md) 📄 [Changelog guidelines](https://github.com/Shopify/polaris/blob/main/.github/CONTRIBUTING.md#changelog) ### 🎩 checklist - [x] Tested on [mobile](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md#cross-browser-testing) - [x] Tested on [multiple browsers](https://help.shopify.com/en/manual/shopify-admin/supported-browsers) - [ ] Tested for [accessibility](https://github.com/Shopify/polaris/blob/main/documentation/Accessibility%20testing.md) - [ ] Updated the component's `README.md` with documentation changes - [x] [Tophatted documentation](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting%20documentation.md) changes in the style guide
1 parent 70ed313 commit ed3da74

30 files changed

+1338
-1342
lines changed

.changeset/thin-bobcats-kneel.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@shopify/polaris': patch
3+
'polaris.shopify.com': patch
4+
---
5+
6+
Renamed `spacing` prop to `gap` on `Inline`, `AlphaStack`, `Columns`, and `Tiles`

polaris-react/src/components/AlphaCard/AlphaCard.stories.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default {
99
export function Default() {
1010
return (
1111
<AlphaCard>
12-
<AlphaStack spacing="5">
12+
<AlphaStack gap="5">
1313
<Text as="h3" variant="headingMd">
1414
Online store dashboard
1515
</Text>
@@ -22,7 +22,7 @@ export function Default() {
2222
export function BackgroundSubdued() {
2323
return (
2424
<AlphaCard background="surface-subdued">
25-
<AlphaStack spacing="5">
25+
<AlphaStack gap="5">
2626
<Text as="h3" variant="headingMd">
2727
Online store dashboard
2828
</Text>
@@ -35,7 +35,7 @@ export function BackgroundSubdued() {
3535
export function BorderRadiusRoundedAbove() {
3636
return (
3737
<AlphaCard roundedAbove="sm">
38-
<AlphaStack spacing="5">
38+
<AlphaStack gap="5">
3939
<Text as="h3" variant="headingMd">
4040
Online store dashboard
4141
</Text>

polaris-react/src/components/AlphaStack/AlphaStack.scss

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
@import '../../styles/common';
22

33
.AlphaStack {
4-
--pc-stack-spacing-xs: var(--p-space-4);
5-
--pc-stack-spacing-sm: var(--pc-stack-spacing-xs);
6-
--pc-stack-spacing-md: var(--pc-stack-spacing-sm);
7-
--pc-stack-spacing-lg: var(--pc-stack-spacing-md);
8-
--pc-stack-spacing-xl: var(--pc-stack-spacing-lg);
4+
--pc-stack-gap-xs: var(--p-space-4);
5+
--pc-stack-gap-sm: var(--pc-stack-gap-xs);
6+
--pc-stack-gap-md: var(--pc-stack-gap-sm);
7+
--pc-stack-gap-lg: var(--pc-stack-gap-md);
8+
--pc-stack-gap-xl: var(--pc-stack-gap-lg);
99
display: flex;
1010
flex-direction: column;
1111
align-items: var(--pc-stack-align);
12-
gap: var(--pc-stack-spacing-xs);
12+
gap: var(--pc-stack-gap-xs);
1313

1414
@media #{$p-breakpoints-sm-up} {
15-
gap: var(--pc-stack-spacing-sm);
15+
gap: var(--pc-stack-gap-sm);
1616
}
1717

1818
@media #{$p-breakpoints-md-up} {
19-
gap: var(--pc-stack-spacing-md);
19+
gap: var(--pc-stack-gap-md);
2020
}
2121

2222
@media #{$p-breakpoints-lg-up} {
23-
gap: var(--pc-stack-spacing-lg);
23+
gap: var(--pc-stack-gap-lg);
2424
}
2525

2626
@media #{$p-breakpoints-xl-up} {
27-
gap: var(--pc-stack-spacing-xl);
27+
gap: var(--pc-stack-gap-xl);
2828
}
2929

3030
> * {

polaris-react/src/components/AlphaStack/AlphaStack.stories.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ export function Default() {
1717
);
1818
}
1919

20-
export function Spacing() {
20+
export function Gap() {
2121
return (
22-
<AlphaStack spacing="8">
22+
<AlphaStack gap="8">
2323
<Badge>Paid</Badge>
2424
<Badge>Processing</Badge>
2525
<Badge>Fulfilled</Badge>
@@ -61,9 +61,9 @@ export function FullWidthChildren() {
6161
);
6262
}
6363

64-
export function ResponsiveSpacing() {
64+
export function ResponsiveGap() {
6565
return (
66-
<AlphaStack spacing={{xs: '4', md: '10'}}>
66+
<AlphaStack gap={{xs: '4', md: '10'}}>
6767
<Badge>Paid</Badge>
6868
<Badge>Processing</Badge>
6969
<Badge>Fulfilled</Badge>

polaris-react/src/components/AlphaStack/AlphaStack.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type Align = 'start' | 'end' | 'center';
1414

1515
type Element = 'div' | 'ul' | 'ol' | 'fieldset';
1616

17-
type Spacing = ResponsiveProp<SpacingSpaceScale>;
17+
type Gap = ResponsiveProp<SpacingSpaceScale>;
1818

1919
export interface AlphaStackProps {
2020
/** HTML Element type
@@ -32,15 +32,15 @@ export interface AlphaStackProps {
3232
/** The spacing between elements
3333
* @default '4'
3434
*/
35-
spacing?: Spacing;
35+
gap?: Gap;
3636
}
3737

3838
export const AlphaStack = ({
3939
as = 'div',
4040
children,
4141
align = 'start',
4242
fullWidth,
43-
spacing = '4',
43+
gap = '4',
4444
}: AlphaStackProps) => {
4545
const className = classNames(
4646
styles.AlphaStack,
@@ -50,7 +50,7 @@ export const AlphaStack = ({
5050

5151
const style = {
5252
'--pc-stack-align': align ? `${align}` : '',
53-
...getResponsiveProps('stack', 'spacing', 'space', spacing),
53+
...getResponsiveProps('stack', 'gap', 'space', gap),
5454
} as React.CSSProperties;
5555

5656
return createElement(

polaris-react/src/components/AlphaStack/tests/AlphaStack.test.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,35 @@ describe('<AlphaStack />', () => {
1919
expect(stack).toContainReactComponent('div', {
2020
style: expect.objectContaining({
2121
'--pc-stack-align': 'start',
22-
'--pc-stack-spacing-xs': 'var(--p-space-4)',
22+
'--pc-stack-gap-xs': 'var(--p-space-4)',
2323
}) as React.CSSProperties,
2424
});
2525
});
2626

2727
it('overrides custom properties if they are passed in', () => {
2828
const stack = mountWithApp(
29-
<AlphaStack align="center" spacing="10">
29+
<AlphaStack align="center" gap="10">
3030
{children}
3131
</AlphaStack>,
3232
);
3333

3434
expect(stack).toContainReactComponent('div', {
3535
style: expect.objectContaining({
3636
'--pc-stack-align': 'center',
37-
'--pc-stack-spacing-xs': 'var(--p-space-10)',
37+
'--pc-stack-gap-xs': 'var(--p-space-10)',
3838
}) as React.CSSProperties,
3939
});
4040
});
4141

42-
it('accepts spacing based on breakpoints', () => {
42+
it('accepts gap based on breakpoints', () => {
4343
const stack = mountWithApp(
44-
<AlphaStack spacing={{xs: '2', md: '8'}}>{children}</AlphaStack>,
44+
<AlphaStack gap={{xs: '2', md: '8'}}>{children}</AlphaStack>,
4545
);
4646

4747
expect(stack).toContainReactComponent('div', {
4848
style: expect.objectContaining({
49-
'--pc-stack-spacing-md': 'var(--p-space-8)',
50-
'--pc-stack-spacing-xs': 'var(--p-space-2)',
49+
'--pc-stack-gap-md': 'var(--p-space-8)',
50+
'--pc-stack-gap-xs': 'var(--p-space-2)',
5151
}) as React.CSSProperties,
5252
});
5353
});

polaris-react/src/components/Columns/Columns.scss

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,32 @@
66
--pc-columns-md: var(--pc-columns-sm);
77
--pc-columns-lg: var(--pc-columns-md);
88
--pc-columns-xl: var(--pc-columns-lg);
9-
--pc-columns-space-xs: var(--p-space-4);
10-
--pc-columns-space-sm: var(--pc-columns-space-xs);
11-
--pc-columns-space-md: var(--pc-columns-space-sm);
12-
--pc-columns-space-lg: var(--pc-columns-space-md);
13-
--pc-columns-space-xl: var(--pc-columns-space-lg);
9+
--pc-columns-gap-xs: var(--p-space-4);
10+
--pc-columns-gap-sm: var(--pc-columns-gap-xs);
11+
--pc-columns-gap-md: var(--pc-columns-gap-sm);
12+
--pc-columns-gap-lg: var(--pc-columns-gap-md);
13+
--pc-columns-gap-xl: var(--pc-columns-gap-lg);
1414
display: grid;
15-
gap: var(--pc-columns-space-xs);
15+
gap: var(--pc-columns-gap-xs);
1616
grid-template-columns: var(--pc-columns-xs);
1717

1818
@media #{$p-breakpoints-sm-up} {
19-
gap: var(--pc-columns-space-sm);
19+
gap: var(--pc-columns-gap-sm);
2020
grid-template-columns: var(--pc-columns-sm);
2121
}
2222

2323
@media #{$p-breakpoints-md-up} {
24-
gap: var(--pc-columns-space-md);
24+
gap: var(--pc-columns-gap-md);
2525
grid-template-columns: var(--pc-columns-md);
2626
}
2727

2828
@media #{$p-breakpoints-lg-up} {
29-
gap: var(--pc-columns-space-lg);
29+
gap: var(--pc-columns-gap-lg);
3030
grid-template-columns: var(--pc-columns-lg);
3131
}
3232

3333
@media #{$p-breakpoints-xl-up} {
34-
gap: var(--pc-columns-space-xl);
34+
gap: var(--pc-columns-gap-xl);
3535
grid-template-columns: var(--pc-columns-xl);
3636
}
3737
}

polaris-react/src/components/Columns/Columns.stories.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function ColumnsWithTemplateColumns() {
3232
md: '1fr 3fr auto 1fr',
3333
lg: '1fr 4fr auto 2fr 3fr auto',
3434
}}
35-
spacing={{xs: '4'}}
35+
gap={{xs: '4'}}
3636
>
3737
<div style={{background: 'aquamarine'}}>Column one</div>
3838
<div style={{background: 'aquamarine'}}>Column two</div>
@@ -50,7 +50,7 @@ export function ColumnsWithMixedPropTypes() {
5050
<Page fullWidth>
5151
<Columns
5252
columns={{xs: 2, sm: '2fr 1fr', md: '2fr 1fr 1fr', lg: 6}}
53-
spacing={{xs: '2'}}
53+
gap={{xs: '2'}}
5454
>
5555
<div style={{background: 'aquamarine'}}>one</div>
5656
<div style={{background: 'aquamarine'}}>two</div>
@@ -68,7 +68,7 @@ export function ColumnsWithVaryingGap() {
6868
<Page fullWidth>
6969
<Columns
7070
columns={{xs: 3}}
71-
spacing={{xs: '025', sm: '05', md: '1', lg: '2', xl: '4'}}
71+
gap={{xs: '025', sm: '05', md: '1', lg: '2', xl: '4'}}
7272
>
7373
<div style={{background: 'aquamarine'}}>Column one</div>
7474
<div style={{background: 'aquamarine'}}>Column two</div>
@@ -81,7 +81,7 @@ export function ColumnsWithVaryingGap() {
8181
export function ColumnsWithFreeAndFixedWidths() {
8282
return (
8383
<Page fullWidth>
84-
<Columns columns={{xs: '1fr auto auto'}} spacing={{xs: '05'}}>
84+
<Columns columns={{xs: '1fr auto auto'}} gap={{xs: '05'}}>
8585
<div style={{background: 'aquamarine'}}>Column one</div>
8686
<div style={{background: 'aquamarine'}}>
8787
<Button icon={ChevronLeftMinor} accessibilityLabel="Previous" />

polaris-react/src/components/Columns/Columns.tsx

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ type Columns = {
1212
[Breakpoint in BreakpointsAlias]?: number | string;
1313
};
1414

15-
type Spacing = {
15+
type Gap = {
1616
[Breakpoint in BreakpointsAlias]?: SpacingSpaceScale;
1717
};
1818

1919
export interface ColumnsProps {
2020
/** The spacing between columns
2121
* @default '4'
2222
*/
23-
spacing?: Spacing;
23+
gap?: Gap;
2424
/** The number of columns to display
2525
* @default {xs: 6, sm: 6, md: 6, lg: 6, xl: 6}
2626
*/
@@ -29,28 +29,18 @@ export interface ColumnsProps {
2929
children?: React.ReactNode;
3030
}
3131

32-
export function Columns({columns, children, spacing}: ColumnsProps) {
32+
export function Columns({columns, children, gap}: ColumnsProps) {
3333
const style = {
3434
'--pc-columns-xs': formatColumns(columns?.xs || 6),
3535
'--pc-columns-sm': formatColumns(columns?.sm),
3636
'--pc-columns-md': formatColumns(columns?.md),
3737
'--pc-columns-lg': formatColumns(columns?.lg),
3838
'--pc-columns-xl': formatColumns(columns?.xl),
39-
'--pc-columns-space-xs': spacing?.xs
40-
? `var(--p-space-${spacing?.xs})`
41-
: undefined,
42-
'--pc-columns-space-sm': spacing?.sm
43-
? `var(--p-space-${spacing?.sm})`
44-
: undefined,
45-
'--pc-columns-space-md': spacing?.md
46-
? `var(--p-space-${spacing?.md})`
47-
: undefined,
48-
'--pc-columns-space-lg': spacing?.lg
49-
? `var(--p-space-${spacing?.lg})`
50-
: undefined,
51-
'--pc-columns-space-xl': spacing?.xl
52-
? `var(--p-space-${spacing?.xl})`
53-
: undefined,
39+
'--pc-columns-gap-xs': gap?.xs ? `var(--p-space-${gap?.xs})` : undefined,
40+
'--pc-columns-gap-sm': gap?.sm ? `var(--p-space-${gap?.sm})` : undefined,
41+
'--pc-columns-gap-md': gap?.md ? `var(--p-space-${gap?.md})` : undefined,
42+
'--pc-columns-gap-lg': gap?.lg ? `var(--p-space-${gap?.lg})` : undefined,
43+
'--pc-columns-gap-xl': gap?.xl ? `var(--p-space-${gap?.xl})` : undefined,
5444
} as React.CSSProperties;
5545

5646
return (

polaris-react/src/components/Columns/tests/Columns.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ describe('Columns', () => {
1515
});
1616

1717
it('only renders custom properties that match the properties passed in', () => {
18-
const columns = mountWithApp(<Columns spacing={{md: '1'}} />);
18+
const columns = mountWithApp(<Columns gap={{md: '1'}} />);
1919

2020
expect(columns).toContainReactComponent('div', {
2121
style: {
2222
'--pc-columns-xs': 'repeat(6, minmax(0, 1fr))',
23-
'--pc-columns-space-md': 'var(--p-space-1)',
23+
'--pc-columns-gap-md': 'var(--p-space-1)',
2424
} as React.CSSProperties,
2525
});
2626
});

0 commit comments

Comments
 (0)