@coopdigital/styles 0.5.8 → 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.
@@ -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
  }
@@ -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.8",
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": "60cbbc73c648be7d728d36a700bcf2761579548f"
34
+ "gitHead": "45ad9af4a4579ff76f39806c7ae11cdbbc0e508f"
35
35
  }
@@ -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
  }
@@ -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;