Skip to content

Commit c14f468

Browse files
Merge release/1.29.1 into main branch (#578)
* remove margin from Card (#572) * rename CardList to CardContainer (#574) Co-authored-by: Jason Basuil <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 9200396 commit c14f468

File tree

9 files changed

+169
-6
lines changed

9 files changed

+169
-6
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@user-interviews/ui-design-system",
3-
"version": "1.29.0",
3+
"version": "1.29.1",
44
"dependencies": {
55
"react-bootstrap": "^2.0.2",
66
"react-router-dom": "^5.2.0",

spec/__snapshots__/Storyshots.test.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2739,7 +2739,7 @@ exports[`Storyshots Components/Card Default 1`] = `
27392739
</div>
27402740
`;
27412741

2742-
exports[`Storyshots Components/CardList Default 1`] = `
2742+
exports[`Storyshots Components/CardContainer Default 1`] = `
27432743
<div
27442744
style={
27452745
Object {
@@ -2748,7 +2748,7 @@ exports[`Storyshots Components/CardList Default 1`] = `
27482748
}
27492749
>
27502750
<div
2751-
className="CardList CardList__alignItems--center"
2751+
className="CardContainer CardContainer__alignItems--center"
27522752
>
27532753
<section
27542754
className="Card Card--sm"

src/Card/Card.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ $card-width-xs: 15rem;
1313
border: none;
1414
border-radius: 0.25rem;
1515
box-shadow: $ux-elevations-20;
16-
margin: $card-spacing auto;
1716
outline-color: $ux-green-500;
1817
padding: $card-spacing;
1918

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import React from 'react';
2+
import classNames from 'classnames';
3+
import PropTypes from 'prop-types';
4+
5+
import './CardContainer.scss';
6+
7+
export const CardContainerAlignItemsOptions = ['center', 'flex-start', 'flex-end'];
8+
9+
const CardContainer = ({
10+
alignItems,
11+
className,
12+
children,
13+
...props
14+
}) => (
15+
<div
16+
className={classNames(
17+
'CardContainer',
18+
className,
19+
{
20+
[`CardContainer__alignItems--${alignItems}`]: !!alignItems,
21+
},
22+
)}
23+
{...props}
24+
>
25+
{children}
26+
</div>
27+
);
28+
29+
CardContainer.propTypes = {
30+
alignItems: PropTypes.oneOf(CardContainerAlignItemsOptions),
31+
className: PropTypes.string,
32+
};
33+
34+
CardContainer.defaultProps = {
35+
alignItems: 'center',
36+
className: undefined,
37+
};
38+
39+
export default CardContainer;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { ArgsTable, Story, Canvas } from '@storybook/addon-docs/blocks';
2+
import CardContainer from './CardContainer';
3+
4+
# CardContainer
5+
6+
##
7+
8+
<h4>
9+
A simple layout container for positioning Cards.
10+
</h4>
11+
12+
<Canvas>
13+
<Story id="components-cardcontainer--default" />
14+
</Canvas>
15+
16+
### When to use
17+
- Use `CardContainer` to wrap one or more `Card` components.
18+
- `CardContainer` centers `Card` components by default and should handle the most common page layouts that use `Card`.
19+
20+
## Props
21+
22+
<ArgsTable of={CardContainer} />
23+
24+
## Stories
25+
26+
### Default
27+
28+
<Canvas>
29+
<Story id="components-cardcontainer--default" />
30+
</Canvas>
31+
32+
## Formatting
33+
34+
### Alignment
35+
- `Card`s within `CardContainer` are centered by default
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
@import '../../scss/theme';
2+
3+
$card-container-spacing: 1.5rem;
4+
$card-container-child-card-spacing: 0.75rem;
5+
6+
.CardContainer {
7+
display: flex;
8+
flex-direction: column;
9+
10+
margin: $card-container-spacing 0;
11+
12+
.Card {
13+
margin: $card-container-child-card-spacing;
14+
}
15+
16+
&__alignItems {
17+
&--center {
18+
align-items: center;
19+
}
20+
21+
&--flex-start {
22+
align-items: flex-start;
23+
}
24+
25+
&--flex-end {
26+
align-items: flex-end;
27+
}
28+
}
29+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import React from 'react';
2+
3+
import Card, { CardSizes } from 'src/Card';
4+
import CardContainer, { CardContainerAlignItemsOptions } from 'src/CardContainer';
5+
import { withKnobs, select } from '@storybook/addon-knobs';
6+
import mdx from './CardContainer.mdx';
7+
8+
export default {
9+
title: 'Components/CardContainer',
10+
decorators: [withKnobs],
11+
component: CardContainer,
12+
parameters: {
13+
docs: {
14+
page: mdx,
15+
},
16+
},
17+
};
18+
19+
export const Default = () => (
20+
<CardContainer alignItems={select('alignItems', CardContainerAlignItemsOptions, 'center')}>
21+
<Card
22+
size={select('Card Size', Object.values(CardSizes), CardSizes.SMALL)}
23+
subTitle="The fastest way to recruit research participants.
24+
Source from a pool of more than 850,000 participants to reach nearly any target audience."
25+
title="Card 1"
26+
>
27+
<ul>
28+
<li>500,000+ sessions completed</li>
29+
<li>$19 million+ incentives distributed</li>
30+
<li>3 hours median time to 1st matched participant</li>
31+
</ul>
32+
</Card>
33+
<Card
34+
size={select('Card Size', Object.values(CardSizes), CardSizes.SMALL)}
35+
subTitle="The fastest way to recruit research participants.
36+
Source from a pool of more than 850,000 participants to reach nearly any target audience."
37+
title="Card 2"
38+
>
39+
<ul>
40+
<li>500,000+ sessions completed</li>
41+
<li>$19 million+ incentives distributed</li>
42+
<li>3 hours median time to 1st matched participant</li>
43+
</ul>
44+
</Card>
45+
<Card
46+
size={select('Card Size', Object.values(CardSizes), CardSizes.SMALL)}
47+
subTitle="The fastest way to recruit research participants.
48+
Source from a pool of more than 850,000 participants to reach nearly any target audience."
49+
title="Card 3"
50+
>
51+
<ul>
52+
<li>500,000+ sessions completed</li>
53+
<li>$19 million+ incentives distributed</li>
54+
<li>3 hours median time to 1st matched participant</li>
55+
</ul>
56+
</Card>
57+
</CardContainer>
58+
);

src/CardContainer/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import CardContainer, { CardContainerAlignItemsOptions } from './CardContainer';
2+
3+
export { CardContainer as default, CardContainerAlignItemsOptions };

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Alert, MessageTypes } from 'src/Alert';
22
import Button from 'src/Button';
33
import Avatar from 'src/Avatar';
44
import Card, { CardSizes } from 'src/Card';
5-
import CardList from 'src/CardList';
5+
import CardContainer from 'src/CardContainer';
66
import CheckboxButton, { CHECKED_STATES } from 'src/CheckboxButton';
77
import CheckboxButtonGroup from 'src/CheckboxButtonGroup';
88
import { ORIENTATIONS as BUTTON_GROUP_ORIENTATIONS } from 'src/ControlButtonGroup';
@@ -75,7 +75,7 @@ export {
7575
Button,
7676
BUTTON_GROUP_ORIENTATIONS,
7777
Card,
78-
CardList,
78+
CardContainer,
7979
CardSizes,
8080
CheckboxButton,
8181
CheckboxButtonGroup,

0 commit comments

Comments
 (0)