@coopdigital/styles 0.5.7 → 0.6.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/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  # Experience Kit for Styles
8
8
 
9
9
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
10
- [all_contributors_badge]: https://img.shields.io/badge/all_contributors-16-C08A00.svg ''
10
+ [all_contributors_badge]: https://img.shields.io/badge/all_contributors-17-C08A00.svg ''
11
11
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
12
12
 
13
13
  <a href="https://www.npmjs.com/package/@coopdigital/styles"><img src="https://img.shields.io/npm/v/%40coopdigital%2Fstyles?color=E85A00" alt="npm version" /></a>
@@ -113,19 +113,24 @@ Thanks goes to these wonderful people:
113
113
  <div><img src="https://secure.gravatar.com/avatar/faf90b70d749cf9460eb603fa1700add94fd7d3a32645b4be6fa12eb45c4ffa3?s=80&d=identicon" width="200px;" alt=""/></div>
114
114
  <small>Omid Kashan</small>
115
115
  <div><a href="#a11y-omid.kashan" title="Accessibility">️️️️♿️</a> <a href="#code-omid.kashan" title="Code">💻</a> <a href="#doc-omid.kashan" title="Documentation">📖</a> <a href="#test-omid.kashan" title="Tests">⚠️</a></div>
116
+ </a></td>
117
+ <td align="center" valign="top" width="14.28%"><a href="https://gitlab.com/phil.wolstenholme">
118
+ <div><img src="https://gitlab.com/uploads/-/system/user/avatar/25900363/avatar.png" width="200px;" alt=""/></div>
119
+ <small>Phil Wolstenholme</small>
120
+ <div><a href="#a11y-phil.wolstenholme" title="Accessibility">️️️️♿️</a></div>
116
121
  </a></td>
117
122
  <td align="center" valign="top" width="14.28%"><a href="https://gitlab.com/romain.chen">
118
123
  <div><img src="https://s3.eu-west-1.amazonaws.com/assets.digital.coop.co.uk/oneweb/blank.jpg" width="200px;" alt=""/></div>
119
124
  <small>Romain Chen</small>
120
125
  <div><a href="#design-romain.chen" title="Design">🎨</a></div>
121
126
  </a></td>
127
+ </tr><br />
128
+ <tr>
122
129
  <td align="center" valign="top" width="14.28%"><a href="https://gitlab.com/sam.harden">
123
130
  <div><img src="https://ca.slack-edge.com/T0C9E3ZF0-U03NT7D39L6-2fc82e7f7c6e-150" width="200px;" alt=""/></div>
124
131
  <small>Sam Harden</small>
125
132
  <div><a href="#a11y-sam.harden" title="Accessibility">️️️️♿️</a> <a href="#code-sam.harden" title="Code">💻</a> <a href="#doc-sam.harden" title="Documentation">📖</a> <a href="#test-sam.harden" title="Tests">⚠️</a></div>
126
133
  </a></td>
127
- </tr><br />
128
- <tr>
129
134
  <td align="center" valign="top" width="14.28%"><a href="">
130
135
  <div><img src="https://s3.eu-west-1.amazonaws.com/assets.digital.coop.co.uk/oneweb/blank.jpg" width="200px;" alt=""/></div>
131
136
  <small>Shweta Jaju</small>
@@ -15,7 +15,7 @@
15
15
  color: var(--text-color);
16
16
  background-color: var(--bg-color);
17
17
  }
18
- .coop-alert-banner--inner h3,
18
+ .coop-alert-banner--inner h2,
19
19
  .coop-alert-banner--inner p {
20
20
  margin: 0 0 var(--spacing-8) 0;
21
21
  }
@@ -26,7 +26,7 @@
26
26
  color: inherit;
27
27
  text-decoration: none;
28
28
  }
29
- .coop-alert-banner--inner h3 {
29
+ .coop-alert-banner--inner h2 {
30
30
  font-size: var(--type-size-22);
31
31
  font-weight: 500;
32
32
  }
@@ -1,58 +1,121 @@
1
+ @keyframes spin {
2
+ 0% {
3
+ transform: rotate(0deg);
4
+ }
5
+ 100% {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
1
9
  .coop-button {
10
+ --bg-color: var(--color-button-blue);
11
+ --text-color: var(--color-white);
12
+ --padding-x: var(--spacing-20);
13
+ --padding-y: var(--spacing-12);
14
+ --type-size: var(--type-size-16);
2
15
  cursor: pointer;
3
- display: inline-block;
4
16
  display: inline-flex;
5
17
  align-items: center;
6
18
  justify-content: center;
7
- min-height: 3.25rem;
8
- padding: 1rem 1.25rem;
19
+ margin-bottom: var(--spacing-8);
20
+ padding: var(--padding-y) var(--padding-x);
9
21
  border: 0;
10
- border-radius: 8px;
11
- font-family: Avenir-Next, "Helvetica Neue", Helvetica, Arial, sans-serif;
12
- font-size: 1.125rem;
13
- font-weight: 400;
14
- line-height: 1.2;
15
- color: white;
22
+ border-radius: var(--ui-border-radius-m);
23
+ font-size: var(--type-size);
24
+ font-weight: 500;
25
+ line-height: var(--type-line-height-default);
26
+ color: var(--text-color);
16
27
  text-align: center;
17
- text-decoration: none;
18
- background: #005878;
28
+ text-decoration: underline;
29
+ text-decoration-color: transparent;
30
+ text-underline-offset: 3px;
31
+ background: var(--bg-color);
19
32
  outline: none;
20
33
  transition: 0.15s ease-in-out;
21
- transition-property: background-color, color;
34
+ transition-property: background-color, color, text-decoration-color;
35
+ /* SIZES */
36
+ /* FULL WIDTH */
37
+ /* GROUP RULES */
38
+ /* LOADING */
39
+ /* MEDIA QUERIES */
40
+ /* VARIANTS */
22
41
  }
23
- @media (--mq-medium) {
24
- .coop-button {
25
- min-height: 3.75rem;
26
- padding: 1rem 2.5rem;
27
- font-size: 1.25rem;
28
- }
42
+ .coop-button[data-size=sm] {
43
+ --padding-y: var(--spacing-8);
44
+ --padding-x: var(--spacing-24);
29
45
  }
30
-
31
- .coop-button:hover,
32
- .coop-button:focus {
33
- border: 0;
34
- color: #fff;
35
- text-decoration: underline;
36
- background: #003e55;
46
+ .coop-button[data-size=lg] {
47
+ --type-size: var(--type-size-18);
48
+ }
49
+ .coop-button[data-size=xl] {
50
+ --type-size: var(--type-size-20);
51
+ }
52
+ .coop-button:not([data-loading]):focus, .coop-button:not([data-loading]):hover {
53
+ --bg-color: var(--color-button-blue-hover);
54
+ text-decoration-color: var(--text-color);
37
55
  }
38
-
39
- .coop-button:focus {
40
- outline: 2px solid #8d44d8;
41
- outline-offset: 4px;
56
+ .coop-button:not([data-loading]):focus {
57
+ outline: 2px solid var(--color-focus-ring);
58
+ outline-offset: 3px;
42
59
  transition: none;
43
60
  }
44
-
45
- .coop-button:active {
46
- color: #fff;
47
- background: #001f2b;
48
- outline: 0;
61
+ .coop-button:not([data-loading]):active {
62
+ --bg-color: var(--color-button-blue-active);
49
63
  }
50
-
51
- .coop-button--full-width {
64
+ .coop-button[data-width=full] {
52
65
  width: 100%;
53
66
  }
54
-
55
- .coop-button--primary {
56
- color: #fff;
57
- background: #0f8482;
67
+ .coop-button[data-loading] {
68
+ cursor: auto;
69
+ position: relative;
70
+ }
71
+ .coop-button[data-loading]::after {
72
+ content: "";
73
+ display: inline-block;
74
+ width: var(--spacing-20);
75
+ height: var(--spacing-20);
76
+ margin-left: var(--spacing-10);
77
+ border: 2px solid;
78
+ border-right-color: transparent !important;
79
+ border-radius: 50%;
80
+ animation: spin 1.25s linear infinite;
81
+ }
82
+ @media (min-width: 48em) {
83
+ .coop-button[data-loading]::after {
84
+ right: var(--spacing-32);
85
+ }
86
+ }
87
+ @media (min-width: 48em) {
88
+ .coop-button {
89
+ --padding-x: var(--spacing-40);
90
+ }
91
+ }
92
+ .coop-button[data-variant=primary] {
93
+ --bg-color: var(--color-button-primary);
94
+ --text-color: var(--color-white);
95
+ }
96
+ .coop-button[data-variant=primary]:not([data-loading]):focus, .coop-button[data-variant=primary]:not([data-loading]):hover {
97
+ --bg-color: var(--color-button-primary-hover);
98
+ }
99
+ .coop-button[data-variant=primary]:not([data-loading]):active {
100
+ --bg-color: var(--color-button-primary-active);
101
+ }
102
+ .coop-button[data-variant=white] {
103
+ --bg-color: var(--color-white);
104
+ --text-color: var(--color-black);
105
+ }
106
+ .coop-button[data-variant=white]:not([data-loading]):focus, .coop-button[data-variant=white]:not([data-loading]):hover {
107
+ --bg-color: var(--color-button-white-hover);
108
+ }
109
+ .coop-button[data-variant=white]:not([data-loading]):active {
110
+ --bg-color: var(--color-button-white-active);
111
+ }
112
+ .coop-button[data-variant=grey] {
113
+ --bg-color: var(--color-button-grey);
114
+ --text-color: var(--color-black);
115
+ }
116
+ .coop-button[data-variant=grey]:not([data-loading]):focus, .coop-button[data-variant=grey]:not([data-loading]):hover {
117
+ --bg-color: var(--color-button-grey-hover);
118
+ }
119
+ .coop-button[data-variant=grey]:not([data-loading]):active {
120
+ --bg-color: var(--color-button-grey-active);
58
121
  }
@@ -1,51 +1,69 @@
1
1
  .coop-editorial-card {
2
2
  --flex-direction: column;
3
3
  --image-max-width: 100%;
4
+ --image-border-radius: var(--ui-border-radius-m) var(--ui-border-radius-m) 0 0;
5
+ display: flex;
6
+ position: relative;
7
+ flex-direction: var(--flex-direction);
4
8
  border-radius: var(--ui-border-radius-m);
5
9
  box-shadow: var(--ui-shadow);
6
10
  transition: box-shadow var(--ui-transition-hover);
7
11
  }
8
- .coop-editorial-card[data-layout=horizontal] {
9
- --flex-direction: row;
10
- --image-max-width: calc(100% / 3);
12
+ @media (min-width: 48em) {
13
+ .coop-editorial-card[data-layout=horizontal] {
14
+ --flex-direction: row;
15
+ --image-max-width: calc(100% / 3);
16
+ --image-border-radius: var(--ui-border-radius-m) 0 0 var(--ui-border-radius-m);
17
+ }
11
18
  }
12
19
  .coop-editorial-card:hover, .coop-editorial-card:focus {
13
20
  box-shadow: var(--ui-shadow-hover);
14
21
  }
15
- .coop-editorial-card h3 {
16
- font-weight: var(--type-weight-demibold);
17
- font-size: var(--type-size-20);
22
+ .coop-editorial-card h2,
23
+ .coop-editorial-card h3,
24
+ .coop-editorial-card h4,
25
+ .coop-editorial-card h5,
26
+ .coop-editorial-card h6 {
18
27
  margin: 0;
28
+ font-size: var(--type-size-20);
29
+ font-weight: var(--type-weight-demibold);
19
30
  }
20
31
  .coop-editorial-card picture {
21
- margin: 0;
22
- max-width: var(--image-max-width);
23
32
  overflow: hidden;
33
+ max-width: var(--image-max-width);
34
+ margin: 0;
35
+ border-radius: var(--image-border-radius);
24
36
  }
25
37
  .coop-editorial-card img {
38
+ width: 100%;
26
39
  height: 100%;
27
40
  }
28
41
  .coop-editorial-card p {
29
42
  margin: 0;
30
43
  }
31
44
  .coop-editorial-card a {
32
- display: block;
33
- text-decoration: none;
34
45
  color: inherit;
46
+ text-decoration: none;
47
+ outline: 0;
48
+ }
49
+ .coop-editorial-card a::before {
50
+ content: "";
51
+ position: absolute;
52
+ inset: 0 0 0 0;
53
+ border-radius: var(--ui-border-radius-m);
54
+ }
55
+ .coop-editorial-card a:focus-within::before {
56
+ outline: 2px solid var(--color-focus-ring);
57
+ outline-offset: 3px;
35
58
  }
36
59
  .coop-editorial-card a:hover h3, .coop-editorial-card a:focus h3 {
37
60
  text-decoration: underline;
38
61
  }
39
- .coop-editorial-card--inner {
40
- display: flex;
41
- flex-direction: var(--flex-direction);
42
- overflow: hidden;
43
- border-radius: var(--ui-border-radius-m);
44
- }
45
62
  .coop-editorial-card--content {
46
63
  display: flex;
47
64
  flex-direction: column;
48
65
  gap: var(--spacing-12);
49
66
  padding: var(--spacing-20);
67
+ border-radius: var(--ui-border-radius-m);
50
68
  background: var(--color-white);
51
69
  }
@@ -5,9 +5,11 @@
5
5
  padding: var(--spacing-12) var(--spacing-20);
6
6
  border-radius: var(--ui-border-radius-xl);
7
7
  font-size: var(--type-size-pill);
8
+ line-height: var(--type-line-height-default);
8
9
  color: var(--color-text);
9
10
  text-decoration: none;
10
11
  background-color: var(--color-blue-light-10);
12
+ /* GROUP RULES */
11
13
  }
12
14
  .coop-pill[data-badge] {
13
15
  position: relative;
@@ -56,6 +58,10 @@
56
58
  .coop-pill[data-pill-color=pink] {
57
59
  background-color: var(--color-alt-light-pink);
58
60
  }
61
+ .coop-pill + .coop-pill {
62
+ margin-bottom: var(--spacing-16);
63
+ margin-left: var(--spacing-16);
64
+ }
59
65
 
60
66
  a.coop-pill:focus, a.coop-pill:hover {
61
67
  color: var(--color-text);
@@ -63,8 +69,5 @@ a.coop-pill:focus, a.coop-pill:hover {
63
69
  }
64
70
 
65
71
  .coop-pill-group {
66
- margin-bottom: var(--spacing-32);
67
- }
68
- .coop-pill-group .coop-pill {
69
- margin-right: var(--spacing-16);
72
+ margin-bottom: var(--spacing-16);
70
73
  }
@@ -0,0 +1,8 @@
1
+ @keyframes spin {
2
+ 0% {
3
+ transform: rotate(0deg);
4
+ }
5
+ 100% {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
package/dist/main.css CHANGED
@@ -81,12 +81,12 @@
81
81
  --color-button-dark-active: var(--color-button-blue-active);
82
82
  /* Grey button */
83
83
  --color-button-grey: #efefef;
84
- --color-button-grey-hover: var(--color-grey-mid-light);
85
- --color-button-grey-active: var(--color-grey-mid);
84
+ --color-button-grey-hover: #d8d8d8;
85
+ --color-button-grey-active: #c4c4c4;
86
86
  /* White button */
87
87
  --color-button-white: var(--color-white);
88
88
  --color-button-white-hover: var(--color-button-grey);
89
- --color-button-white-active: var(--color-grey-mid-light);
89
+ --color-button-white-active: #d8d8d8;
90
90
  /* default button */
91
91
  --color-button: var(--color-button-blue);
92
92
  --color-button-hover: var(--color-button-blue-hover);
@@ -121,7 +121,10 @@
121
121
  :root {
122
122
  /* Spacing */
123
123
  --spacing-64: 4rem;
124
+ --spacing-58: 3.625rem;
125
+ --spacing-52: 3.25rem;
124
126
  --spacing-48: 3rem;
127
+ --spacing-40: 2.5rem;
125
128
  --spacing-32: 2rem;
126
129
  --spacing-24: 1.5rem;
127
130
  --spacing-20: 1.25rem;
@@ -288,17 +291,17 @@ picture[data-crop=wide] {
288
291
  font-display: swap;
289
292
  src: url("https://coop-fonts.s3.eu-west-1.amazonaws.com/Co-opHeadline/Co-opHeadline-Bold.woff2") format("woff2"), url("https://coop-fonts.s3.eu-west-1.amazonaws.com/Co-opHeadline/Co-opHeadline-Bold.woff") format("woff");
290
293
  }
291
- a,
294
+ a:not(.coop-button),
292
295
  .coop-link {
293
296
  color: var(--color-link);
294
297
  text-decoration: underline;
295
- text-underline-offset: 2px;
298
+ text-underline-offset: 3px;
296
299
  }
297
- a:hover,
300
+ a:not(.coop-button):hover,
298
301
  .coop-link:hover {
299
302
  color: var(--color-link-hover);
300
303
  }
301
- a:active, a:focus,
304
+ a:not(.coop-button):active, a:not(.coop-button):focus,
302
305
  .coop-link:active,
303
306
  .coop-link:focus {
304
307
  outline: 2px solid var(--color-focus-ring);
@@ -23,17 +23,17 @@
23
23
  font-display: swap;
24
24
  src: url("https://coop-fonts.s3.eu-west-1.amazonaws.com/Co-opHeadline/Co-opHeadline-Bold.woff2") format("woff2"), url("https://coop-fonts.s3.eu-west-1.amazonaws.com/Co-opHeadline/Co-opHeadline-Bold.woff") format("woff");
25
25
  }
26
- a,
26
+ a:not(.coop-button),
27
27
  .coop-link {
28
28
  color: var(--color-link);
29
29
  text-decoration: underline;
30
- text-underline-offset: 2px;
30
+ text-underline-offset: 3px;
31
31
  }
32
- a:hover,
32
+ a:not(.coop-button):hover,
33
33
  .coop-link:hover {
34
34
  color: var(--color-link-hover);
35
35
  }
36
- a:active, a:focus,
36
+ a:not(.coop-button):active, a:not(.coop-button):focus,
37
37
  .coop-link:active,
38
38
  .coop-link:focus {
39
39
  outline: 2px solid var(--color-focus-ring);
package/dist/vars.css CHANGED
@@ -80,12 +80,12 @@
80
80
  --color-button-dark-active: var(--color-button-blue-active);
81
81
  /* Grey button */
82
82
  --color-button-grey: #efefef;
83
- --color-button-grey-hover: var(--color-grey-mid-light);
84
- --color-button-grey-active: var(--color-grey-mid);
83
+ --color-button-grey-hover: #d8d8d8;
84
+ --color-button-grey-active: #c4c4c4;
85
85
  /* White button */
86
86
  --color-button-white: var(--color-white);
87
87
  --color-button-white-hover: var(--color-button-grey);
88
- --color-button-white-active: var(--color-grey-mid-light);
88
+ --color-button-white-active: #d8d8d8;
89
89
  /* default button */
90
90
  --color-button: var(--color-button-blue);
91
91
  --color-button-hover: var(--color-button-blue-hover);
@@ -120,7 +120,10 @@
120
120
  :root {
121
121
  /* Spacing */
122
122
  --spacing-64: 4rem;
123
+ --spacing-58: 3.625rem;
124
+ --spacing-52: 3.25rem;
123
125
  --spacing-48: 3rem;
126
+ --spacing-40: 2.5rem;
124
127
  --spacing-32: 2rem;
125
128
  --spacing-24: 1.5rem;
126
129
  --spacing-20: 1.25rem;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coopdigital/styles",
3
3
  "type": "module",
4
- "version": "0.5.7",
4
+ "version": "0.6.0",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -31,5 +31,5 @@
31
31
  "glob": "^11.0.1",
32
32
  "sass-embedded": "^1.86.0"
33
33
  },
34
- "gitHead": "618022f347d8099ec9aed4413057ed91cce96778"
34
+ "gitHead": "45ad9af4a4579ff76f39806c7ae11cdbbc0e508f"
35
35
  }
@@ -18,7 +18,7 @@
18
18
  color: var(--text-color);
19
19
  background-color: var(--bg-color);
20
20
 
21
- h3,
21
+ h2,
22
22
  p {
23
23
  margin: 0 0 var(--spacing-8) 0;
24
24
  }
@@ -32,7 +32,7 @@
32
32
  }
33
33
  }
34
34
 
35
- h3 {
35
+ h2 {
36
36
  font-size: var(--type-size-22);
37
37
  font-weight: 500;
38
38
  }
@@ -1,62 +1,147 @@
1
+ @use "sass:map";
2
+ @use "../breakpoints.scss" as *;
3
+ @use "../keyframes/spinner";
4
+
5
+ $button-variants: (
6
+ "primary": (
7
+ bg-color: var(--color-button-primary),
8
+ text-color: var(--color-white),
9
+ hover-color: var(--color-button-primary-hover),
10
+ active-color: var(--color-button-primary-active),
11
+ ),
12
+ "white": (
13
+ bg-color: var(--color-white),
14
+ text-color: var(--color-black),
15
+ hover-color: var(--color-button-white-hover),
16
+ active-color: var(--color-button-white-active),
17
+ ),
18
+ "grey": (
19
+ bg-color: var(--color-button-grey),
20
+ text-color: var(--color-black),
21
+ hover-color: var(--color-button-grey-hover),
22
+ active-color: var(--color-button-grey-active),
23
+ ),
24
+ );
25
+
1
26
  .coop-button {
27
+ --bg-color: var(--color-button-blue);
28
+ --text-color: var(--color-white);
29
+ --padding-x: var(--spacing-20);
30
+ --padding-y: var(--spacing-12);
31
+ --type-size: var(--type-size-16);
32
+
2
33
  cursor: pointer;
3
34
 
4
- display: inline-block;
5
35
  display: inline-flex;
6
36
  align-items: center;
7
37
  justify-content: center;
8
38
 
9
- min-height: 3.25rem;
10
- padding: 1rem 1.25rem;
39
+ margin-bottom: var(--spacing-8);
40
+ padding: var(--padding-y) var(--padding-x);
11
41
  border: 0;
12
- border-radius: 8px;
42
+ border-radius: var(--ui-border-radius-m);
13
43
 
14
- font-family: Avenir-Next, "Helvetica Neue", Helvetica, Arial, sans-serif;
15
- font-size: 1.125rem;
16
- font-weight: 400;
17
- line-height: 1.2;
18
- color: white;
44
+ font-size: var(--type-size);
45
+ font-weight: 500;
46
+ line-height: var(--type-line-height-default);
47
+ color: var(--text-color);
19
48
  text-align: center;
20
- text-decoration: none;
49
+ text-decoration: underline;
50
+ text-decoration-color: transparent;
51
+ text-underline-offset: 3px;
21
52
 
22
- background: #005878;
53
+ background: var(--bg-color);
23
54
  outline: none;
24
55
 
25
56
  transition: 0.15s ease-in-out;
26
- transition-property: background-color, color;
57
+ transition-property: background-color, color, text-decoration-color;
27
58
 
28
- @media (--mq-medium) {
29
- min-height: 3.75rem;
30
- padding: 1rem 2.5rem;
31
- font-size: 1.25rem;
59
+ /* SIZES */
60
+ &[data-size="sm"] {
61
+ --padding-y: var(--spacing-8);
62
+ --padding-x: var(--spacing-24);
32
63
  }
33
- }
34
64
 
35
- .coop-button:hover,
36
- .coop-button:focus {
37
- border: 0;
38
- color: #fff;
39
- text-decoration: underline;
40
- background: #003e55;
41
- }
65
+ &[data-size="lg"] {
66
+ --type-size: var(--type-size-18);
67
+ }
42
68
 
43
- .coop-button:focus {
44
- outline: 2px solid #8d44d8;
45
- outline-offset: 4px;
46
- transition: none;
47
- }
69
+ &[data-size="xl"] {
70
+ --type-size: var(--type-size-20);
71
+ }
48
72
 
49
- .coop-button:active {
50
- color: #fff;
51
- background: #001f2b;
52
- outline: 0;
53
- }
73
+ &:not([data-loading]):focus,
74
+ &:not([data-loading]):hover {
75
+ --bg-color: var(--color-button-blue-hover);
54
76
 
55
- .coop-button--full-width {
56
- width: 100%;
57
- }
77
+ text-decoration-color: var(--text-color);
78
+ }
79
+
80
+ &:not([data-loading]):focus {
81
+ outline: 2px solid var(--color-focus-ring);
82
+ outline-offset: 3px;
83
+ transition: none;
84
+ }
58
85
 
59
- .coop-button--primary {
60
- color: #fff;
61
- background: #0f8482;
86
+ &:not([data-loading]):active {
87
+ --bg-color: var(--color-button-blue-active);
88
+ }
89
+
90
+ /* FULL WIDTH */
91
+ &[data-width="full"] {
92
+ width: 100%;
93
+ }
94
+
95
+ /* GROUP RULES */
96
+ // & + .coop-button {
97
+ // margin-bottom: var(--spacing-8);
98
+ // margin-left: var(--spacing-8);
99
+ // }
100
+
101
+ /* LOADING */
102
+ &[data-loading] {
103
+ cursor: auto;
104
+ position: relative;
105
+
106
+ &::after {
107
+ content: "";
108
+
109
+ display: inline-block;
110
+
111
+ width: var(--spacing-20);
112
+ height: var(--spacing-20);
113
+ margin-left: var(--spacing-10);
114
+ border: 2px solid;
115
+ border-right-color: transparent !important;
116
+ border-radius: 50%;
117
+
118
+ animation: spin 1.25s linear infinite;
119
+
120
+ @media (min-width: $mq-medium) {
121
+ right: var(--spacing-32);
122
+ }
123
+ }
124
+ }
125
+
126
+ /* MEDIA QUERIES */
127
+ @media (min-width: $mq-medium) {
128
+ --padding-x: var(--spacing-40);
129
+ }
130
+
131
+ /* VARIANTS */
132
+ @each $variant, $colors in $button-variants {
133
+ &[data-variant="#{$variant}"] {
134
+ --bg-color: #{map.get($colors, "bg-color")};
135
+ --text-color: #{map.get($colors, "text-color")};
136
+
137
+ &:not([data-loading]):focus,
138
+ &:not([data-loading]):hover {
139
+ --bg-color: #{map.get($colors, "hover-color")};
140
+ }
141
+
142
+ &:not([data-loading]):active {
143
+ --bg-color: #{map.get($colors, "active-color")};
144
+ }
145
+ }
146
+ }
62
147
  }
@@ -1,13 +1,23 @@
1
+ @use "../breakpoints.scss" as *;
2
+
1
3
  .coop-editorial-card {
2
4
  --flex-direction: column;
3
5
  --image-max-width: 100%;
6
+ --image-border-radius: var(--ui-border-radius-m) var(--ui-border-radius-m) 0 0;
7
+
8
+ display: flex;
9
+ position: relative;
10
+ flex-direction: var(--flex-direction);
4
11
  border-radius: var(--ui-border-radius-m);
5
12
  box-shadow: var(--ui-shadow);
6
13
  transition: box-shadow var(--ui-transition-hover);
7
14
 
8
15
  &[data-layout="horizontal"] {
9
- --flex-direction: row;
10
- --image-max-width: calc(100% / 3);
16
+ @media (min-width: $mq-medium) {
17
+ --flex-direction: row;
18
+ --image-max-width: calc(100% / 3);
19
+ --image-border-radius: var(--ui-border-radius-m) 0 0 var(--ui-border-radius-m);
20
+ }
11
21
  }
12
22
 
13
23
  &:hover,
@@ -15,19 +25,25 @@
15
25
  box-shadow: var(--ui-shadow-hover);
16
26
  }
17
27
 
18
- h3 {
19
- font-weight: var(--type-weight-demibold);
20
- font-size: var(--type-size-20);
28
+ h2,
29
+ h3,
30
+ h4,
31
+ h5,
32
+ h6 {
21
33
  margin: 0;
34
+ font-size: var(--type-size-20);
35
+ font-weight: var(--type-weight-demibold);
22
36
  }
23
37
 
24
38
  picture {
25
- margin: 0;
26
- max-width: var(--image-max-width);
27
39
  overflow: hidden;
40
+ max-width: var(--image-max-width);
41
+ margin: 0;
42
+ border-radius: var(--image-border-radius);
28
43
  }
29
44
 
30
45
  img {
46
+ width: 100%;
31
47
  height: 100%;
32
48
  }
33
49
 
@@ -36,9 +52,23 @@
36
52
  }
37
53
 
38
54
  a {
39
- display: block;
40
- text-decoration: none;
41
55
  color: inherit;
56
+ text-decoration: none;
57
+ outline: 0;
58
+
59
+ &::before {
60
+ content: "";
61
+
62
+ position: absolute;
63
+ inset: 0 0 0 0;
64
+
65
+ border-radius: var(--ui-border-radius-m);
66
+ }
67
+
68
+ &:focus-within::before {
69
+ outline: 2px solid var(--color-focus-ring);
70
+ outline-offset: 3px;
71
+ }
42
72
 
43
73
  &:hover,
44
74
  &:focus {
@@ -48,18 +78,14 @@
48
78
  }
49
79
  }
50
80
 
51
- &--inner {
52
- display: flex;
53
- flex-direction: var(--flex-direction);
54
- overflow: hidden;
55
- border-radius: var(--ui-border-radius-m);
56
- }
57
-
58
81
  &--content {
59
82
  display: flex;
60
83
  flex-direction: column;
61
84
  gap: var(--spacing-12);
85
+
62
86
  padding: var(--spacing-20);
87
+ border-radius: var(--ui-border-radius-m);
88
+
63
89
  background: var(--color-white);
64
90
  }
65
91
  }
@@ -19,6 +19,7 @@
19
19
  border-radius: var(--ui-border-radius-xl);
20
20
 
21
21
  font-size: var(--type-size-pill); // [data-pill-size="md"]
22
+ line-height: var(--type-line-height-default);
22
23
  color: var(--color-text);
23
24
  text-decoration: none;
24
25
 
@@ -73,6 +74,12 @@
73
74
  background-color: $pill-color;
74
75
  }
75
76
  }
77
+
78
+ /* GROUP RULES */
79
+ & + & {
80
+ margin-bottom: var(--spacing-16);
81
+ margin-left: var(--spacing-16);
82
+ }
76
83
  }
77
84
 
78
85
  a.coop-pill {
@@ -84,9 +91,5 @@ a.coop-pill {
84
91
  }
85
92
 
86
93
  .coop-pill-group {
87
- margin-bottom: var(--spacing-32);
88
-
89
- .coop-pill {
90
- margin-right: var(--spacing-16);
91
- }
94
+ margin-bottom: var(--spacing-16);
92
95
  }
@@ -0,0 +1,9 @@
1
+ @keyframes spin {
2
+ 0% {
3
+ transform: rotate(0deg);
4
+ }
5
+
6
+ 100% {
7
+ transform: rotate(360deg);
8
+ }
9
+ }
@@ -1,12 +1,11 @@
1
- a,
1
+ a:not(.coop-button),
2
2
  .coop-link {
3
3
  color: var(--color-link);
4
4
  text-decoration: underline;
5
- text-underline-offset: 2px;
5
+ text-underline-offset: 3px;
6
6
 
7
7
  &:hover {
8
8
  color: var(--color-link-hover);
9
- // text-decoration: none;
10
9
  }
11
10
 
12
11
  &:active,
@@ -17,13 +17,13 @@
17
17
 
18
18
  /* Grey button */
19
19
  --color-button-grey: #efefef;
20
- --color-button-grey-hover: var(--color-grey-mid-light);
21
- --color-button-grey-active: var(--color-grey-mid);
20
+ --color-button-grey-hover: #d8d8d8;
21
+ --color-button-grey-active: #c4c4c4;
22
22
 
23
23
  /* White button */
24
24
  --color-button-white: var(--color-white);
25
25
  --color-button-white-hover: var(--color-button-grey);
26
- --color-button-white-active: var(--color-grey-mid-light);
26
+ --color-button-white-active: #d8d8d8;
27
27
 
28
28
  /* default button */
29
29
  --color-button: var(--color-button-blue);
@@ -1,7 +1,10 @@
1
1
  :root {
2
2
  /* Spacing */
3
3
  --spacing-64: 4rem;
4
+ --spacing-58: 3.625rem;
5
+ --spacing-52: 3.25rem;
4
6
  --spacing-48: 3rem;
7
+ --spacing-40: 2.5rem;
5
8
  --spacing-32: 2rem;
6
9
  --spacing-24: 1.5rem;
7
10
  --spacing-20: 1.25rem;