gatsby-theme-carbon 2.1.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gatsby-config.js +2 -0
- package/gatsby-ssr.js +1 -1
- package/index.js +2 -0
- package/package.json +1 -1
- package/src/components/ArticleCard/ArticleCard.js +8 -5
- package/src/components/ArticleCard/article-card.scss +12 -5
- package/src/components/Code/Code.module.scss +1 -1
- package/src/components/DoDontExample/DoDontExample.js +17 -10
- package/src/components/DoDontExample/do-dont-example.scss +30 -4
- package/src/components/DoDontRow/DoDont.js +15 -1
- package/src/components/DoDontRow/DoDontRow.module.scss +26 -2
- package/src/components/ExpressiveList/ExpressiveList.js +55 -0
- package/src/components/ExpressiveList/ExpressiveList.module.scss +44 -0
- package/src/components/ExpressiveList/index.js +3 -0
- package/src/components/ExpressiveListContainer/ExpressiveListContainer.js +48 -0
- package/src/components/ExpressiveListContainer/ExpressiveListContainer.module.scss +35 -0
- package/src/components/ExpressiveListContainer/index.js +3 -0
- package/src/components/FeatureCard/feature-card.scss +0 -4
- package/src/components/FourOhFour/FourOhFour.module.scss +5 -5
- package/src/components/Homepage/Banner.js +1 -0
- package/src/components/Homepage/Callout.module.scss +1 -1
- package/src/components/Homepage/homepage.scss +3 -4
- package/src/components/MDXProvider/defaultComponents.js +4 -0
- package/src/components/MediumPosts/MediumPosts.module.scss +3 -20
- package/src/components/Switcher/Switcher.js +5 -5
- package/src/styles/internal/_page.scss +3 -7
- package/src/styles/internal/_plex.scss +18 -18
package/gatsby-config.js
CHANGED
|
@@ -34,6 +34,7 @@ module.exports = (themeOptions) => {
|
|
|
34
34
|
gatsbyPluginSharpOptions = {},
|
|
35
35
|
isServiceWorkerEnabled = false,
|
|
36
36
|
isSwitcherEnabled = true,
|
|
37
|
+
extraLayouts = {},
|
|
37
38
|
} = themeOptions;
|
|
38
39
|
|
|
39
40
|
const theme = { ...defaultTheme, ...themeOption };
|
|
@@ -121,6 +122,7 @@ module.exports = (themeOptions) => {
|
|
|
121
122
|
defaultLayouts: {
|
|
122
123
|
default: require.resolve('./src/templates/Default.js'),
|
|
123
124
|
home: require.resolve('./src/templates/Homepage.js'),
|
|
125
|
+
...extraLayouts,
|
|
124
126
|
},
|
|
125
127
|
},
|
|
126
128
|
},
|
package/gatsby-ssr.js
CHANGED
|
@@ -32,7 +32,7 @@ export const onRenderBody = ({ setHeadComponents, setBodyAttributes }) => {
|
|
|
32
32
|
<link
|
|
33
33
|
key="sans"
|
|
34
34
|
rel="preload"
|
|
35
|
-
href="https://gatsby
|
|
35
|
+
href="https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatin-VF.woff2"
|
|
36
36
|
as="font"
|
|
37
37
|
type="font/woff2"
|
|
38
38
|
crossOrigin=""
|
package/index.js
CHANGED
|
@@ -16,5 +16,7 @@ export { default as ImageCard } from './src/components/ImageCard';
|
|
|
16
16
|
export { default as SquareCard } from './src/components/SquareCard';
|
|
17
17
|
export { Tabs, Tab } from './src/components/Tabs';
|
|
18
18
|
export { default as InlineNotification } from './src/components/InlineNotification';
|
|
19
|
+
export { default as ExpressiveListContainer } from './src/components/ExpressiveListContainer';
|
|
20
|
+
export { default as ExpressiveList } from './src/components/ExpressiveList';
|
|
19
21
|
// Homepage Template Components
|
|
20
22
|
export { HomepageCallout, HomepageBanner } from './src/components/Homepage';
|
package/package.json
CHANGED
|
@@ -45,9 +45,10 @@ export default class ArticleCard extends React.Component {
|
|
|
45
45
|
[`${prefix}--aspect-ratio--2x1`]
|
|
46
46
|
);
|
|
47
47
|
|
|
48
|
-
const
|
|
48
|
+
const cardContentClassNames = cx(
|
|
49
49
|
[`${prefix}--tile`],
|
|
50
|
-
[`${prefix}--tile--clickable`]
|
|
50
|
+
[`${prefix}--tile--clickable`],
|
|
51
|
+
[`${prefix}--article-card_content`]
|
|
51
52
|
);
|
|
52
53
|
|
|
53
54
|
const cardContent = (
|
|
@@ -101,16 +102,18 @@ export default class ArticleCard extends React.Component {
|
|
|
101
102
|
|
|
102
103
|
let cardContainer;
|
|
103
104
|
if (disabled === true) {
|
|
104
|
-
cardContainer =
|
|
105
|
+
cardContainer = (
|
|
106
|
+
<div className={cardContentClassNames}>{cardContent}</div>
|
|
107
|
+
);
|
|
105
108
|
} else if (isLink === true) {
|
|
106
109
|
cardContainer = (
|
|
107
|
-
<Link to={href} className={
|
|
110
|
+
<Link to={href} className={cardContentClassNames} {...rest}>
|
|
108
111
|
{cardContent}
|
|
109
112
|
</Link>
|
|
110
113
|
);
|
|
111
114
|
} else {
|
|
112
115
|
cardContainer = (
|
|
113
|
-
<a href={href} className={
|
|
116
|
+
<a href={href} className={cardContentClassNames} {...rest}>
|
|
114
117
|
{cardContent}
|
|
115
118
|
</a>
|
|
116
119
|
);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.#{$prefix}--article-card:hover .#{$prefix}--
|
|
13
|
+
.#{$prefix}--article-card:hover .#{$prefix}--article-card__tile {
|
|
14
14
|
background: $hover-ui;
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -43,6 +43,13 @@
|
|
|
43
43
|
@include carbon--type-style('caption-01');
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// At the moment, we force 16:9 for medium posts, this
|
|
47
|
+
// is how we would force 16:9 for all article cards
|
|
48
|
+
//
|
|
49
|
+
// .#{$prefix}--article-card__img {
|
|
50
|
+
// aspect-ratio: 16 / 9;
|
|
51
|
+
// }
|
|
52
|
+
|
|
46
53
|
.#{$prefix}--article-card__img .gatsby-resp-image-wrapper {
|
|
47
54
|
margin-bottom: 0;
|
|
48
55
|
}
|
|
@@ -60,11 +67,11 @@
|
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
// Dark
|
|
63
|
-
.#{$prefix}--article-card--dark .#{$prefix}--
|
|
70
|
+
.#{$prefix}--article-card--dark .#{$prefix}--article-card__tile {
|
|
64
71
|
background: $carbon--gray-90; //$ui-background for gray 90 theme
|
|
65
72
|
}
|
|
66
73
|
|
|
67
|
-
.#{$prefix}--article-card--dark:hover .#{$prefix}--
|
|
74
|
+
.#{$prefix}--article-card--dark:hover .#{$prefix}--article-card__tile {
|
|
68
75
|
background: $carbon--gray-80; //$hover-ui for gray 90 theme
|
|
69
76
|
}
|
|
70
77
|
|
|
@@ -86,7 +93,7 @@
|
|
|
86
93
|
cursor: not-allowed;
|
|
87
94
|
}
|
|
88
95
|
|
|
89
|
-
.#{$prefix}--article-card--disabled .#{$prefix}--
|
|
96
|
+
.#{$prefix}--article-card--disabled .#{$prefix}--article-card__tile:hover {
|
|
90
97
|
background: $ui-01;
|
|
91
98
|
cursor: not-allowed;
|
|
92
99
|
}
|
|
@@ -105,7 +112,7 @@
|
|
|
105
112
|
|
|
106
113
|
// Disabled dark
|
|
107
114
|
.#{$prefix}--article-card--disabled.#{$prefix}--article-card--dark
|
|
108
|
-
.#{$prefix}--
|
|
115
|
+
.#{$prefix}--article-card__tile:hover {
|
|
109
116
|
background: $carbon--gray-90; //$ui-background for gray 90 theme
|
|
110
117
|
}
|
|
111
118
|
|
|
@@ -23,18 +23,25 @@ export default class DoDontExample extends React.Component {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
render() {
|
|
26
|
-
const {
|
|
27
|
-
|
|
28
|
-
caption,
|
|
29
|
-
captionTitle,
|
|
30
|
-
text,
|
|
31
|
-
aspectRatio,
|
|
32
|
-
color,
|
|
33
|
-
type,
|
|
34
|
-
} = this.props;
|
|
26
|
+
const { children, caption, captionTitle, text, aspectRatio, color, type } =
|
|
27
|
+
this.props;
|
|
35
28
|
|
|
36
29
|
const wrapperClassNames = cx(`${prefix}--example`, {
|
|
37
|
-
[`${prefix}--example--
|
|
30
|
+
[`${prefix}--example--ratio`]:
|
|
31
|
+
aspectRatio === '1:1' ||
|
|
32
|
+
aspectRatio === '2:1' ||
|
|
33
|
+
aspectRatio === '1:2' ||
|
|
34
|
+
aspectRatio === '4:3' ||
|
|
35
|
+
aspectRatio === '3:4' ||
|
|
36
|
+
aspectRatio === '9:16' ||
|
|
37
|
+
aspectRatio === '16:9',
|
|
38
|
+
[`${prefix}--example--1x1`]: aspectRatio === '1:1',
|
|
39
|
+
[`${prefix}--example--2x1`]: aspectRatio === '2:1',
|
|
40
|
+
[`${prefix}--example--1x2`]: aspectRatio === '1:2',
|
|
41
|
+
[`${prefix}--example--4x3`]: aspectRatio === '4:3',
|
|
42
|
+
[`${prefix}--example--3x4`]: aspectRatio === '3:4',
|
|
43
|
+
[`${prefix}--example--9x16`]: aspectRatio === '9:16',
|
|
44
|
+
[`${prefix}--example--16x9`]: aspectRatio === '16:9',
|
|
38
45
|
[`${prefix}--example--correct`]: type === 'do',
|
|
39
46
|
[`${prefix}--example--incorrect`]: type !== 'do',
|
|
40
47
|
[`${prefix}--example--dark`]: color === 'dark',
|
|
@@ -34,11 +34,37 @@
|
|
|
34
34
|
position: relative;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
// Aspect Ratio
|
|
38
|
+
|
|
39
|
+
.#{$prefix}--example--1x1 .#{$prefix}--example-card {
|
|
38
40
|
padding-top: 100%;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
.#{$prefix}--example--
|
|
43
|
+
.#{$prefix}--example--4x3 .#{$prefix}--example-card {
|
|
44
|
+
padding-top: 75%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.#{$prefix}--example--3x4 .#{$prefix}--example-card {
|
|
48
|
+
padding-top: 133.3333333333%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.#{$prefix}--example--2x1 .#{$prefix}--example-card {
|
|
52
|
+
padding-top: 50%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.#{$prefix}--example--1x2 .#{$prefix}--example-card {
|
|
56
|
+
padding-top: 150%;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.#{$prefix}--example--9x16 .#{$prefix}--example-card {
|
|
60
|
+
padding-top: 177.7777777778%;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.#{$prefix}--example--16x9 .#{$prefix}--example-card {
|
|
64
|
+
padding-top: 56.25%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.#{$prefix}--example--ratio .#{$prefix}--example-card__content {
|
|
42
68
|
position: absolute;
|
|
43
69
|
top: 0;
|
|
44
70
|
left: 0;
|
|
@@ -74,7 +100,7 @@
|
|
|
74
100
|
}
|
|
75
101
|
|
|
76
102
|
.#{$prefix}--example--correct .#{$prefix}--example-card::before {
|
|
77
|
-
background: $
|
|
103
|
+
background: $carbon--green-50;
|
|
78
104
|
}
|
|
79
105
|
|
|
80
106
|
.#{$prefix}--example--incorrect .#{$prefix}--example-card::before {
|
|
@@ -92,7 +118,7 @@
|
|
|
92
118
|
}
|
|
93
119
|
|
|
94
120
|
.#{$prefix}--example__icon--correct {
|
|
95
|
-
fill: $
|
|
121
|
+
fill: $carbon--green-50;
|
|
96
122
|
}
|
|
97
123
|
|
|
98
124
|
.#{$prefix}--example__icon--incorrect {
|
|
@@ -38,8 +38,22 @@ export default class DoDont extends React.Component {
|
|
|
38
38
|
const wrapperClassNames = cx(className, styles.example, {
|
|
39
39
|
[styles.correct]: type === 'do',
|
|
40
40
|
[styles.incorrect]: type === 'dont',
|
|
41
|
-
[styles.square]: aspectRatio === '1:1',
|
|
42
41
|
[styles.dark]: color === 'dark',
|
|
42
|
+
[styles.ratio]:
|
|
43
|
+
aspectRatio === '1:1' ||
|
|
44
|
+
aspectRatio === '2:1' ||
|
|
45
|
+
aspectRatio === '1:2' ||
|
|
46
|
+
aspectRatio === '4:3' ||
|
|
47
|
+
aspectRatio === '3:4' ||
|
|
48
|
+
aspectRatio === '9:16' ||
|
|
49
|
+
aspectRatio === '16:9',
|
|
50
|
+
[styles.ratio1x1]: aspectRatio === '1:1',
|
|
51
|
+
[styles.ratio2x1]: aspectRatio === '2:1',
|
|
52
|
+
[styles.ratio1x2]: aspectRatio === '1:2',
|
|
53
|
+
[styles.ratio4x3]: aspectRatio === '4:3',
|
|
54
|
+
[styles.ratio3x4]: aspectRatio === '3:4',
|
|
55
|
+
[styles.ratio9x16]: aspectRatio === '9:16',
|
|
56
|
+
[styles.ratio16x9]: aspectRatio === '16:9',
|
|
43
57
|
});
|
|
44
58
|
|
|
45
59
|
return (
|
|
@@ -103,10 +103,34 @@
|
|
|
103
103
|
color: $carbon--white-0;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.
|
|
106
|
+
.ratio1x1 .card {
|
|
107
107
|
padding-top: 100%;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
.ratio4x3 .card {
|
|
111
|
+
padding-top: 75%;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.ratio3x4 .card {
|
|
115
|
+
padding-top: 133.3333333333%;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.ratio2x1 .card {
|
|
119
|
+
padding-top: 50%;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ratio1x2 .card {
|
|
123
|
+
padding-top: 150%;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.ratio9x16 .card {
|
|
127
|
+
padding-top: 177.7777777778%;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.ratio16x9 .card {
|
|
131
|
+
padding-top: 56.25%;
|
|
132
|
+
}
|
|
133
|
+
|
|
110
134
|
.card::before {
|
|
111
135
|
content: '';
|
|
112
136
|
position: absolute;
|
|
@@ -145,7 +169,7 @@
|
|
|
145
169
|
position: relative;
|
|
146
170
|
}
|
|
147
171
|
|
|
148
|
-
.
|
|
172
|
+
.ratio .card-content {
|
|
149
173
|
position: absolute;
|
|
150
174
|
top: 0;
|
|
151
175
|
left: 0;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import propTypes from 'prop-types';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import { settings } from 'carbon-components';
|
|
5
|
+
import { Row, Column } from '../Grid';
|
|
6
|
+
import * as styles from './ExpressiveList.module.scss';
|
|
7
|
+
|
|
8
|
+
const { prefix } = settings;
|
|
9
|
+
|
|
10
|
+
const ExpressiveList = ({
|
|
11
|
+
children,
|
|
12
|
+
className,
|
|
13
|
+
pictogram,
|
|
14
|
+
title,
|
|
15
|
+
titleType,
|
|
16
|
+
}) => {
|
|
17
|
+
const ExpressiveListTitleClassNames = cx(styles.title, {
|
|
18
|
+
[styles.expressive_04]: titleType === 'expressive-04',
|
|
19
|
+
[styles.expressive_02]: titleType === 'expressive-02',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
if (!pictogram) {
|
|
23
|
+
return (
|
|
24
|
+
<Row className={(cx(className), styles.listRow)}>
|
|
25
|
+
<Column colMd={2} colLg={4} noGutterLgLeft>
|
|
26
|
+
<h3 className={ExpressiveListTitleClassNames}>{title}</h3>
|
|
27
|
+
</Column>
|
|
28
|
+
<Column colMd={6} colLg={8}>
|
|
29
|
+
<p className={styles.content}>{children}</p>
|
|
30
|
+
</Column>
|
|
31
|
+
</Row>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
return (
|
|
35
|
+
<Row className={(cx(className), styles.listRow)}>
|
|
36
|
+
<Column colMd={2} colLg={1} noGutterLgLeft>
|
|
37
|
+
{pictogram}
|
|
38
|
+
</Column>
|
|
39
|
+
<Column colMd={6} colLg={7} className={styles.pictogramContent}>
|
|
40
|
+
<h3 className={ExpressiveListTitleClassNames}>{title}</h3>
|
|
41
|
+
<p className={styles.content}>{children}</p>
|
|
42
|
+
</Column>
|
|
43
|
+
</Row>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
ExpressiveList.propTypes = {
|
|
48
|
+
children: propTypes.string,
|
|
49
|
+
className: propTypes.string,
|
|
50
|
+
pictogram: propTypes.node,
|
|
51
|
+
title: propTypes.string,
|
|
52
|
+
titleType: propTypes.string,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default ExpressiveList;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
.listRow {
|
|
2
|
+
background: $ui-01;
|
|
3
|
+
padding: 1rem;
|
|
4
|
+
padding-bottom: 4rem;
|
|
5
|
+
border-bottom: 1px solid $ui-03;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.listRow:not(:first-child) {
|
|
9
|
+
margin-top: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.listRow:last-child {
|
|
13
|
+
border-bottom: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.title {
|
|
17
|
+
@include carbon--type-style('expressive-heading-03', true);
|
|
18
|
+
|
|
19
|
+
padding-right: 2rem;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.expressive_04 {
|
|
23
|
+
@include carbon--type-style('expressive-heading-04', true);
|
|
24
|
+
|
|
25
|
+
@include carbon--breakpoint-down('lg') {
|
|
26
|
+
padding: 1rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@include carbon--breakpoint-down('md') {
|
|
30
|
+
@include carbon--type-style('expressive-heading-03', true);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.expressive_02 {
|
|
35
|
+
@include carbon--type-style('expressive-heading-02', true);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.content {
|
|
39
|
+
@include carbon--type-style('body-long-02');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.pictogramContent {
|
|
43
|
+
padding-right: 2rem;
|
|
44
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import propTypes from 'prop-types';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import { settings } from 'carbon-components';
|
|
5
|
+
import { Row, Column } from '../Grid';
|
|
6
|
+
import * as styles from './ExpressiveListContainer.module.scss';
|
|
7
|
+
|
|
8
|
+
const { prefix } = settings;
|
|
9
|
+
|
|
10
|
+
const ExpressiveListContainer = ({
|
|
11
|
+
contentClassName,
|
|
12
|
+
children,
|
|
13
|
+
className,
|
|
14
|
+
text,
|
|
15
|
+
title,
|
|
16
|
+
titleType,
|
|
17
|
+
}) => {
|
|
18
|
+
const ExpressiveContainerClassNames = cx(className, styles.container);
|
|
19
|
+
|
|
20
|
+
const TitleClassNames = cx(styles.title, {
|
|
21
|
+
[styles.expressive_04]: titleType === 'expressive-04',
|
|
22
|
+
[styles.expressive_02]: titleType === 'expressive-02',
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const ContentClassNames = cx(contentClassName, styles.content);
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<Row className={ExpressiveContainerClassNames}>
|
|
29
|
+
<Column colMd={2} colLg={4} noGutterLgLeft>
|
|
30
|
+
<h3 className={TitleClassNames}>{title}</h3>
|
|
31
|
+
</Column>
|
|
32
|
+
<Column colMd={6} colLg={8} noGutterLgRight className={ContentClassNames}>
|
|
33
|
+
<p className={styles.text}>{text}</p>
|
|
34
|
+
{children}
|
|
35
|
+
</Column>
|
|
36
|
+
</Row>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
ExpressiveListContainer.propTypes = {
|
|
41
|
+
contentClassName: propTypes.string,
|
|
42
|
+
children: propTypes.node,
|
|
43
|
+
className: propTypes.string,
|
|
44
|
+
title: propTypes.string,
|
|
45
|
+
titleType: propTypes.string,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default ExpressiveListContainer;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
border-top: 1px solid $ui-04;
|
|
3
|
+
margin-top: 3rem;
|
|
4
|
+
padding-top: 1.5rem;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.title {
|
|
8
|
+
@include carbon--type-style('expressive-heading-03', true);
|
|
9
|
+
|
|
10
|
+
padding-right: 2rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.expressive_04 {
|
|
14
|
+
@include carbon--type-style('expressive-heading-04', true);
|
|
15
|
+
|
|
16
|
+
@include carbon--breakpoint-down('lg') {
|
|
17
|
+
padding: 1rem;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@include carbon--breakpoint-down('md') {
|
|
21
|
+
@include carbon--type-style('expressive-heading-03', true);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.expressive_02 {
|
|
26
|
+
@include carbon--type-style('expressive-heading-02', true);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.content {
|
|
30
|
+
@include carbon--type-style('body-long-02');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.text {
|
|
34
|
+
padding-right: 2rem;
|
|
35
|
+
}
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
animation: gradient 2s ease infinite;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
:global(.container--dark) .link {
|
|
20
|
+
color: $carbon--gray-10;
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
.list .link {
|
|
20
24
|
@include carbon--type-style('body-short-02');
|
|
21
25
|
margin-bottom: $spacing-03;
|
|
@@ -43,10 +47,6 @@
|
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
|
|
46
|
-
:global(.container--dark) .link {
|
|
47
|
-
color: $carbon--gray-10;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
50
|
.paragraph {
|
|
51
51
|
@include carbon--type-style('body-long-01');
|
|
52
52
|
font-size: 1.25rem;
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
@include carbon--breakpoint('max') {
|
|
78
|
-
padding-left:
|
|
78
|
+
padding-left: 424px;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -72,13 +72,12 @@
|
|
|
72
72
|
margin: 0;
|
|
73
73
|
|
|
74
74
|
@include carbon--breakpoint('lg') {
|
|
75
|
-
padding-left: calc(
|
|
76
|
-
25% + 2rem
|
|
77
|
-
); //2rem to account for 2rem left padding default on grid
|
|
75
|
+
padding-left: calc(25% + 1.5rem);
|
|
78
76
|
}
|
|
79
77
|
|
|
80
78
|
@include carbon--breakpoint('max') {
|
|
81
|
-
padding-left:
|
|
79
|
+
padding-left: 424px;
|
|
80
|
+
padding-right: 0;
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
|
|
@@ -31,6 +31,8 @@ import { MiniCard, CardGroup } from '../MiniCard';
|
|
|
31
31
|
import Sup from '../markdown/Sup';
|
|
32
32
|
import Abbr from '../markdown/Abbr';
|
|
33
33
|
import SquareCard from '../SquareCard';
|
|
34
|
+
import ExpressiveListContainer from '../ExpressiveListContainer';
|
|
35
|
+
import ExpressiveList from '../ExpressiveList';
|
|
34
36
|
|
|
35
37
|
const components = {
|
|
36
38
|
wrapper: function Wrapper({ children, ...props }) {
|
|
@@ -83,6 +85,8 @@ const components = {
|
|
|
83
85
|
MiniCard,
|
|
84
86
|
CardGroup,
|
|
85
87
|
SquareCard,
|
|
88
|
+
ExpressiveListContainer,
|
|
89
|
+
ExpressiveList,
|
|
86
90
|
};
|
|
87
91
|
|
|
88
92
|
export default components;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
// Fixes the gutter of the article cards on the homepage
|
|
2
2
|
.card-container {
|
|
3
|
-
padding-right:
|
|
4
|
-
padding-left:
|
|
5
|
-
@include carbon--breakpoint('md') {
|
|
6
|
-
padding-right: 1rem;
|
|
7
|
-
padding-left: 1rem;
|
|
8
|
-
}
|
|
3
|
+
padding-right: 1rem;
|
|
4
|
+
padding-left: 1rem;
|
|
9
5
|
}
|
|
10
6
|
|
|
11
7
|
// Fixs the breaking type
|
|
@@ -40,18 +36,5 @@
|
|
|
40
36
|
|
|
41
37
|
.image {
|
|
42
38
|
object-fit: cover;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
@include carbon--breakpoint('sm') {
|
|
46
|
-
height: 315px;
|
|
47
|
-
}
|
|
48
|
-
@include carbon--breakpoint('md') {
|
|
49
|
-
height: 290px;
|
|
50
|
-
}
|
|
51
|
-
@include carbon--breakpoint('lg') {
|
|
52
|
-
height: 165px;
|
|
53
|
-
}
|
|
54
|
-
@include carbon--breakpoint('xlg') {
|
|
55
|
-
height: 215px;
|
|
56
|
-
}
|
|
39
|
+
aspect-ratio: 16 / 9;
|
|
57
40
|
}
|
|
@@ -96,6 +96,9 @@ const DefaultChildren = () => (
|
|
|
96
96
|
<SwitcherLink href="https://www.carbondesignsystem.com/">
|
|
97
97
|
Carbon Design System
|
|
98
98
|
</SwitcherLink>
|
|
99
|
+
<SwitcherLink href="http://ibm.biz/carbon4ibmproducts" isInternal>
|
|
100
|
+
Carbon for IBM Products
|
|
101
|
+
</SwitcherLink>
|
|
99
102
|
<SwitcherLink href="https://www.ibm.com/standards/carbon/">
|
|
100
103
|
Carbon for IBM.com
|
|
101
104
|
</SwitcherLink>
|
|
@@ -118,13 +121,10 @@ const DefaultChildren = () => (
|
|
|
118
121
|
<SwitcherLink href="https://www.ibm.com/design/research/">
|
|
119
122
|
IBM Design Research
|
|
120
123
|
</SwitcherLink>
|
|
121
|
-
<SwitcherLink href="https://www.ibm.com/services/ibmix/">
|
|
122
|
-
IBM iX
|
|
123
|
-
</SwitcherLink>
|
|
124
124
|
<SwitcherLink
|
|
125
125
|
isInternal
|
|
126
|
-
href="https://w3.ibm.com/design/
|
|
127
|
-
IBM
|
|
126
|
+
href="https://w3.ibm.com/design/experience-standards/">
|
|
127
|
+
IBM Experience Standards
|
|
128
128
|
</SwitcherLink>
|
|
129
129
|
<SwitcherDivider>Community</SwitcherDivider>
|
|
130
130
|
<SwitcherLink href="https://w3.ibm.com/design/" isInternal>
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
@include carbon--breakpoint('max') {
|
|
22
|
-
|
|
23
|
-
padding-
|
|
22
|
+
max-width: rem(1544px);
|
|
23
|
+
padding-left: 424px;
|
|
24
|
+
padding-right: 0;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
|
|
@@ -28,11 +29,6 @@
|
|
|
28
29
|
padding: 0;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
// Grids on the homepage should be full width
|
|
32
|
-
.container:not(.container--homepage) .#{$prefix}--grid {
|
|
33
|
-
max-width: rem(1584px);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
32
|
//---------------------------------------
|
|
37
33
|
// Header styles
|
|
38
34
|
//---------------------------------------
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
font-family: 'IBM Plex Sans VF';
|
|
8
8
|
unicode-range: U+0020-00FF;
|
|
9
9
|
font-display: swap;
|
|
10
|
-
src: url('https://gatsby
|
|
10
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatin-VF.woff2')
|
|
11
11
|
format('woff2-variations'),
|
|
12
|
-
url('https://gatsby
|
|
12
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatin-VF.woff2')
|
|
13
13
|
format('woff2');
|
|
14
14
|
font-weight: 100 900;
|
|
15
15
|
font-style: normal;
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
font-family: 'IBM Plex Sans VF';
|
|
20
20
|
unicode-range: U+0100-1EF9;
|
|
21
21
|
font-display: swap;
|
|
22
|
-
src: url('https://gatsby
|
|
22
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatinExt-VF.woff2')
|
|
23
23
|
format('woff2-variations'),
|
|
24
|
-
url('https://gatsby
|
|
24
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatinExt-VF.woff2')
|
|
25
25
|
format('woff2');
|
|
26
26
|
font-weight: 100 900;
|
|
27
27
|
font-style: normal;
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
font-family: 'IBM Plex Sans VF';
|
|
32
32
|
unicode-range: U+2000-FB02;
|
|
33
33
|
font-display: swap;
|
|
34
|
-
src: url('https://gatsby
|
|
34
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansOther-VF.woff2')
|
|
35
35
|
format('woff2-variations'),
|
|
36
|
-
url('https://gatsby
|
|
36
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansOther-VF.woff2')
|
|
37
37
|
format('woff2');
|
|
38
38
|
font-weight: 100 900;
|
|
39
39
|
font-style: normal;
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
font-family: 'IBM Plex Sans VF';
|
|
45
45
|
unicode-range: U+0020-00FF;
|
|
46
46
|
font-display: swap;
|
|
47
|
-
src: url('https://gatsby
|
|
47
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatin-Italic-VF.woff2')
|
|
48
48
|
format('woff2-variations'),
|
|
49
|
-
url('https://gatsby
|
|
49
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatin-Italic-VF.woff2')
|
|
50
50
|
format('woff2');
|
|
51
51
|
font-weight: 100 900;
|
|
52
52
|
font-style: italic;
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
font-family: 'IBM Plex Sans VF';
|
|
57
57
|
unicode-range: U+0100-1EF9;
|
|
58
58
|
font-display: swap;
|
|
59
|
-
src: url('https://gatsby
|
|
59
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatinExt-Italic-VF.woff2')
|
|
60
60
|
format('woff2-variations'),
|
|
61
|
-
url('https://gatsby
|
|
61
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansLatinExt-Italic-VF.woff2')
|
|
62
62
|
format('woff2');
|
|
63
63
|
font-weight: 100 900;
|
|
64
64
|
font-style: italic;
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
font-family: 'IBM Plex Sans VF';
|
|
69
69
|
unicode-range: U+2000-FB02;
|
|
70
70
|
font-display: swap;
|
|
71
|
-
src: url('https://gatsby
|
|
71
|
+
src: url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansOther-Italic-VF.woff2')
|
|
72
72
|
format('woff2-variations'),
|
|
73
|
-
url('https://gatsby
|
|
73
|
+
url('https://gatsby.carbondesignsystem.com/fonts/IBMPlexSansOther-Italic-VF.woff2')
|
|
74
74
|
format('woff2');
|
|
75
75
|
font-weight: 100 900;
|
|
76
76
|
font-style: italic;
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
font-style: normal;
|
|
83
83
|
font-weight: 400;
|
|
84
84
|
src: local('IBM Plex Mono'), local('IBMPlexMono'),
|
|
85
|
-
url('https://gatsby
|
|
85
|
+
url('https://gatsby.carbondesignsystem.com/fonts/mono/IBMPlexMono-Regular-Latin1.woff2')
|
|
86
86
|
format('woff2');
|
|
87
87
|
unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00A3, U+00A4-00FF, U+0131,
|
|
88
88
|
U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E,
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
font-style: normal;
|
|
96
96
|
font-weight: 400;
|
|
97
97
|
src: local('IBM Plex Mono'), local('IBMPlexMono'),
|
|
98
|
-
url('https://gatsby
|
|
98
|
+
url('https://gatsby.carbondesignsystem.com/fonts/mono/IBMPlexMono-Regular-Latin2.woff2')
|
|
99
99
|
format('woff2');
|
|
100
100
|
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF,
|
|
101
101
|
U+2C60-2C7F, U+A720-A7FF, U+FB01-FB02;
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
font-style: normal;
|
|
107
107
|
font-weight: 400;
|
|
108
108
|
src: local('IBM Plex Mono'), local('IBMPlexMono'),
|
|
109
|
-
url('https://gatsby
|
|
109
|
+
url('https://gatsby.carbondesignsystem.com/fonts/mono/IBMPlexMono-Regular-Latin3.woff2')
|
|
110
110
|
format('woff2');
|
|
111
111
|
unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
|
|
112
112
|
}
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
font-style: normal;
|
|
117
117
|
font-weight: 400;
|
|
118
118
|
src: local('IBM Plex Mono'), local('IBMPlexMono'),
|
|
119
|
-
url('https://gatsby
|
|
119
|
+
url('https://gatsby.carbondesignsystem.com/fonts/mono/IBMPlexMono-Regular-Pi.woff2')
|
|
120
120
|
format('woff2');
|
|
121
121
|
unicode-range: U+0E3F, U+2032-2033, U+2070, U+2075-2079, U+2080-2081, U+2083,
|
|
122
122
|
U+2085-2089, U+2113, U+2116, U+2126, U+212E, U+2150-2151, U+2153-215E,
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
font-style: normal;
|
|
132
132
|
font-weight: 400;
|
|
133
133
|
src: local('IBM Plex Mono'), local('IBMPlexMono'),
|
|
134
|
-
url('https://gatsby
|
|
134
|
+
url('https://gatsby.carbondesignsystem.com/fonts/mono/IBMPlexMono-Regular-Cyrillic.woff2')
|
|
135
135
|
format('woff2');
|
|
136
136
|
unicode-range: U+0400-045F, U+0472-0473, U+0490-049D, U+04A0-04A5, U+04AA-04AB,
|
|
137
137
|
U+04AE-04B3, U+04B6-04BB, U+04C0-04C2, U+04CF-04D9, U+04DC-04DF, U+04E2-04E9,
|
|
@@ -160,7 +160,7 @@ body {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
@supports (font-variation-settings: normal) {
|
|
163
|
-
// This rule includes both html and body to outgun the carbon--type-reset mixin
|
|
163
|
+
// This rule includes both html and body to outgun the carbon--type-reset mixin
|
|
164
164
|
// carbon--type-reset is being called inadvertantly when sites invoke the carbon--type-style mixin
|
|
165
165
|
// Without it both html and body, the font-family gets overridden with `IBM Plex Sans` (not the variable font)
|
|
166
166
|
html body {
|