@coopdigital/styles 0.46.0 → 0.47.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,7 +1,7 @@
1
- $mq-xxsmall: 20em; // 320/16
2
- $mq-xsmall: 25.875em; // 414/16
3
- $mq-small: 37.5em; // 600/16
4
- $mq-medium: 48em; // 768/16
5
- $mq-large: 64em; // 1024/16
6
- $mq-xlarge: 82em; // 1312/16
7
- $mq-xxlarge: 96em; // 1536/16
1
+ $mq-2xs: 20em; // 320/16
2
+ $mq-xs: 25.875em; // 414/16
3
+ $mq-sm: 37.5em; // 600/16
4
+ $mq-md: 48em; // 768/16
5
+ $mq-lg: 64em; // 1024/16
6
+ $mq-xl: 82em; // 1312/16
7
+ $mq-2xl: 96em; // 1536/16
@@ -17,7 +17,7 @@
17
17
  transition: box-shadow var(--ui-transition-hover);
18
18
 
19
19
  &[data-orientation="horizontal"] {
20
- @media (min-width: $mq-medium) {
20
+ @media (min-width: $mq-md) {
21
21
  --card-direction: row;
22
22
  --card-image-max-width: calc(100% / 3);
23
23
  --card-image-border-radius: var(--ui-border-radius-lg) 0 0 var(--ui-border-radius-lg);
@@ -25,7 +25,7 @@
25
25
  }
26
26
 
27
27
  &[data-orientation="horizontal"][data-image-pos="right"] {
28
- @media (min-width: $mq-medium) {
28
+ @media (min-width: $mq-md) {
29
29
  --card-direction: row-reverse;
30
30
  --card-image-border-radius: 0 var(--ui-border-radius-lg) var(--ui-border-radius-lg) 0;
31
31
  }
@@ -6,10 +6,10 @@ input[type="checkbox"] {
6
6
  display: inline;
7
7
  align-self: flex-start;
8
8
 
9
- width: var(--field-size);
10
- min-width: var(--field-size);
11
- height: var(--field-size);
12
- min-height: var(--field-size);
9
+ width: var(--form-field-size);
10
+ min-width: var(--form-field-size);
11
+ height: var(--form-field-size);
12
+ min-height: var(--form-field-size);
13
13
  margin: 0;
14
14
 
15
15
  appearance: none;
@@ -18,7 +18,7 @@ input[type="checkbox"] {
18
18
  }
19
19
 
20
20
  input[type="checkbox"] + div label {
21
- min-height: var(--field-size);
21
+ min-height: var(--form-field-size);
22
22
 
23
23
  &::before {
24
24
  content: "";
@@ -29,11 +29,11 @@ input[type="checkbox"] + div label {
29
29
 
30
30
  display: block;
31
31
 
32
- width: var(--field-size);
33
- height: var(--field-size);
32
+ width: var(--form-field-size);
33
+ height: var(--form-field-size);
34
34
  padding: 4px;
35
35
  border: 2px solid;
36
- border-color: var(--field-border);
36
+ border-color: var(--form-field-border);
37
37
  border-radius: var(--ui-border-radius-sm);
38
38
  }
39
39
 
@@ -41,14 +41,14 @@ input[type="checkbox"] + div label {
41
41
  content: "";
42
42
 
43
43
  position: absolute;
44
- top: calc(var(--field-size) / 5);
44
+ top: calc(var(--form-field-size) / 5);
45
45
  left: 0;
46
46
  transform: scale(0.6) rotate(-45deg);
47
47
 
48
- width: var(--field-size);
49
- height: calc(var(--field-size) / 2);
48
+ width: var(--form-field-size);
49
+ height: calc(var(--form-field-size) / 2);
50
50
  border: solid;
51
- border-width: 0 0 calc(var(--field-size) / 4) calc(var(--field-size) / 4);
51
+ border-width: 0 0 calc(var(--form-field-size) / 4) calc(var(--form-field-size) / 4);
52
52
  border-top-color: transparent;
53
53
 
54
54
  opacity: 0;
@@ -61,10 +61,10 @@ input[type="checkbox"]:checked + div label::after {
61
61
  }
62
62
 
63
63
  input[type="checkbox"]:indeterminate + div label::after {
64
- top: calc(var(--field-size) / 4);
64
+ top: calc(var(--form-field-size) / 4);
65
65
  transform: scale(0.5);
66
66
 
67
- height: calc(var(--field-size) / 2);
67
+ height: calc(var(--form-field-size) / 2);
68
68
  border: 0;
69
69
  border-radius: var(--ui-border-radius-sm);
70
70
 
@@ -15,6 +15,10 @@
15
15
  padding-right: 0;
16
16
  padding-left: 1px;
17
17
  }
18
+
19
+ &[data-disabled="true"] .coop-datepicker-trigger {
20
+ cursor: not-allowed;
21
+ }
18
22
  }
19
23
 
20
24
  .coop-datepicker-trigger {
@@ -79,6 +83,7 @@
79
83
 
80
84
  width: 2.5rem;
81
85
  height: 2.5rem;
86
+ padding: 1px 6px; // as original but protects code from 3rd party reset code
82
87
  border: 0;
83
88
 
84
89
  appearance: none;
@@ -137,15 +142,16 @@
137
142
  pointer-events: none;
138
143
  }
139
144
 
140
- @media (min-width: $mq-xsmall) {
145
+ @media (min-width: $mq-xs) {
141
146
  font-size: var(--text-size-18);
142
147
  }
143
148
  }
144
149
 
145
150
  /* Calendar grid */
146
151
 
147
- .rdp-month_grid {
152
+ table.rdp-month_grid {
148
153
  border-spacing: 0 4px;
154
+ border-collapse: separate; // as original but protects code from 3rd party reset code
149
155
  grid-column: span 3 / span 3;
150
156
  margin-top: var(--spacing-16);
151
157
  }
@@ -167,11 +173,13 @@
167
173
 
168
174
  aspect-ratio: 1/1;
169
175
  width: 100%;
176
+ padding: 1px 6px; // as original but protects code from 3rd party reset code
170
177
  border: 0;
171
178
  border-radius: 100%;
172
179
 
173
180
  font-size: var(--text-size-16);
174
181
  font-weight: 500;
182
+ line-height: 1.1; // as original but protects code from 3rd party reset code
175
183
 
176
184
  appearance: none;
177
185
  background: white;
@@ -1,6 +1,6 @@
1
1
  .coop-flourish {
2
2
  position: absolute;
3
- z-index: -1;
3
+ z-index: 0;
4
4
  top: calc(105% + 2px - 0.25em);
5
5
  right: 0;
6
6
 
@@ -6,10 +6,10 @@ input[type="radio"] {
6
6
  display: inline;
7
7
  align-self: flex-start;
8
8
 
9
- width: var(--field-size);
10
- min-width: var(--field-size);
11
- height: var(--field-size);
12
- min-height: var(--field-size);
9
+ width: var(--form-field-size);
10
+ min-width: var(--form-field-size);
11
+ height: var(--form-field-size);
12
+ min-height: var(--form-field-size);
13
13
  margin: 0;
14
14
 
15
15
  appearance: none;
@@ -18,7 +18,7 @@ input[type="radio"] {
18
18
  }
19
19
 
20
20
  input[type="radio"] + div label {
21
- min-height: var(--field-size);
21
+ min-height: var(--form-field-size);
22
22
 
23
23
  &::before {
24
24
  content: "";
@@ -29,11 +29,11 @@ input[type="radio"] + div label {
29
29
 
30
30
  display: block;
31
31
 
32
- width: var(--field-size);
33
- height: var(--field-size);
32
+ width: var(--form-field-size);
33
+ height: var(--form-field-size);
34
34
  padding: 4px;
35
35
  border: 2px solid;
36
- border-color: var(--field-border);
36
+ border-color: var(--form-field-border);
37
37
  border-radius: 50%;
38
38
  }
39
39
 
@@ -41,11 +41,11 @@ input[type="radio"] + div label {
41
41
  content: "";
42
42
 
43
43
  position: absolute;
44
- top: calc(var(--field-size) / 4);
45
- left: calc(var(--field-size) / 4);
44
+ top: calc(var(--form-field-size) / 4);
45
+ left: calc(var(--form-field-size) / 4);
46
46
 
47
- width: calc(var(--field-size) / 2);
48
- height: calc(var(--field-size) / 2);
47
+ width: calc(var(--form-field-size) / 2);
48
+ height: calc(var(--form-field-size) / 2);
49
49
  border-radius: 50%;
50
50
 
51
51
  opacity: 0;
@@ -1,7 +1,7 @@
1
1
  .coop-select,
2
2
  select {
3
- --padding: 0 var(--field-size) 0 calc(var(--field-size) / 2 - 4px);
4
- --height: calc(var(--field-size) + var(--spacing-16));
3
+ --padding: 0 var(--form-field-size) 0 calc(var(--form-field-size) / 2 - 4px);
4
+ --height: calc(var(--form-field-size) + var(--spacing-16));
5
5
 
6
6
  cursor: pointer;
7
7
 
@@ -13,7 +13,7 @@ select {
13
13
  min-width: fit-content;
14
14
  min-height: var(--height);
15
15
  padding: var(--padding);
16
- border-color: var(--field-border);
16
+ border-color: var(--form-field-border);
17
17
  border-style: solid;
18
18
  border-width: 2px;
19
19
  border-radius: var(--ui-border-radius-sm);
@@ -25,7 +25,7 @@ select {
25
25
  background: white;
26
26
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20strokeWidth%3D%222%22%20stroke%3D%22black%22%3E%0A%20%20%3Cpath%20d%3D%22M31%2C9a1%2C1%2C0%2C0%2C0-.29-.71%2C1%2C1%2C0%2C0%2C0-1.42%2C0L16%2C21.59%2C2.71%2C8.3a1%2C1%2C0%2C0%2C0-1.42%2C0%2C1%2C1%2C0%2C0%2C0%2C0%2C1.41l14%2C14a1%2C1%2C0%2C0%2C0%2C1.41%2C0l14-14A1%2C1%2C0%2C0%2C0%2C31%2C9Z%22%20%2F%3E%0A%3C%2Fsvg%3E");
27
27
  background-repeat: no-repeat;
28
- background-position: calc(100% - calc(var(--field-size) / 2)) center;
28
+ background-position: calc(100% - calc(var(--form-field-size) / 2)) center;
29
29
  background-size: 16px;
30
30
  outline: 0;
31
31
 
@@ -104,7 +104,7 @@
104
104
  }
105
105
  }
106
106
 
107
- @media (min-width: $mq-medium) {
107
+ @media (min-width: $mq-md) {
108
108
  --signpost-image-max-width: 100%;
109
109
  --signpost-image-border-radius: var(--ui-border-radius-lg) var(--ui-border-radius-lg) 0 0;
110
110
 
@@ -45,7 +45,7 @@
45
45
  left: var(--offscreen-position);
46
46
  }
47
47
 
48
- @media (min-width: $mq-medium) {
48
+ @media (min-width: $mq-md) {
49
49
  font-size: var(--text-size-20);
50
50
  }
51
51
  }
@@ -11,8 +11,8 @@ input[type="tel"],
11
11
  display: block;
12
12
 
13
13
  width: 100%;
14
- min-height: var(--height);
15
- padding: var(--padding);
14
+ min-height: var(--text-input-height);
15
+ padding: var(--text-input-padding);
16
16
  border-radius: var(--ui-border-radius-sm);
17
17
 
18
18
  line-height: 1;
@@ -41,7 +41,7 @@ input[type="tel"],
41
41
  display: flex;
42
42
  align-items: center;
43
43
 
44
- padding: var(--padding);
44
+ padding: var(--text-input-padding);
45
45
  border-color: inherit;
46
46
  border-style: solid;
47
47
  border-width: 2px;
@@ -81,16 +81,16 @@ input[type="tel"],
81
81
  }
82
82
 
83
83
  .coop-text-input-wrapper {
84
- --padding: 0 calc(var(--field-size) / 2 - 4px);
85
- --height: calc(var(--field-size) + var(--spacing-16));
84
+ --text-input-padding: 0 calc(var(--form-field-size) / 2 - 4px);
85
+ --text-input-height: calc(var(--form-field-size) + var(--spacing-16));
86
86
 
87
87
  display: flex;
88
88
 
89
89
  width: 100%;
90
- height: var(--height);
91
- border-color: var(--field-border);
90
+ height: var(--text-input-height);
91
+ border-color: var(--form-field-border);
92
92
 
93
- font-size: var(--font-size);
93
+ font-size: var(--form-font-size);
94
94
 
95
95
  &:has(:disabled) {
96
96
  border-color: var(--color-grey-500);
@@ -1,7 +1,7 @@
1
1
  .coop-textarea,
2
2
  textarea {
3
- --textarea-padding: calc(var(--field-size) / 2 - 4px) calc(var(--field-size) / 2);
4
- --textarea-height: calc(var(--field-size) + var(--spacing-16));
3
+ --textarea-padding: calc(var(--form-field-size) / 2 - 4px) calc(var(--form-field-size) / 2);
4
+ --textarea-height: calc(var(--form-field-size) + var(--spacing-16));
5
5
 
6
6
  position: relative;
7
7
 
@@ -11,10 +11,10 @@ textarea {
11
11
  min-height: var(--textarea-height);
12
12
  padding: var(--textarea-padding);
13
13
  border: 2px solid;
14
- border-color: var(--field-border);
14
+ border-color: var(--form-field-border);
15
15
  border-radius: var(--ui-border-radius-sm);
16
16
 
17
- font-size: var(--font-size); // [data-size="md"]
17
+ font-size: var(--form-font-size); // [data-size="md"]
18
18
  line-height: var(--type-line-height-default);
19
19
  color: var(--color-text-default);
20
20
 
@@ -50,6 +50,8 @@ textarea {
50
50
  }
51
51
 
52
52
  .coop-textarea-counter {
53
+ font-size: var(--text-size-14);
54
+
53
55
  &[data-error="true"] {
54
56
  font-weight: 500;
55
57
  color: var(--color-error);
package/src/form.scss CHANGED
@@ -7,34 +7,34 @@
7
7
  /* Single fields */
8
8
 
9
9
  .coop-field {
10
- --font-size: var(--text-size-18);
11
- --field-border: var(--color-grey-700);
12
- --field-size: var(--spacing-32);
13
- --field-gap: var(--spacing-8);
14
- --field-hint-offset: -2px;
10
+ --form-font-size: var(--text-size-18);
11
+ --form-field-border: var(--color-grey-700);
12
+ --form-field-size: var(--spacing-32);
13
+ --form-field-gap: var(--spacing-8);
14
+ --form-field-hint-offset: -2px;
15
15
 
16
16
  position: relative;
17
17
  display: flex;
18
18
  flex-direction: column;
19
- gap: var(--field-gap);
19
+ gap: var(--form-field-gap);
20
20
  }
21
21
 
22
22
  .coop-field:has(input:checked) {
23
- --field-border: var(--color-text-black);
23
+ --form-field-border: var(--color-text-black);
24
24
  }
25
25
 
26
26
  .coop-field:has(.coop-field-element[data-size="sm"]),
27
27
  .coop-fieldset[data-size="sm"] .coop-field {
28
- --field-size: var(--spacing-24);
29
- --font-size: var(--text-size-16);
30
- --field-hint-offset: 0px;
28
+ --form-field-size: var(--spacing-24);
29
+ --form-font-size: var(--text-size-16);
30
+ --form-field-hint-offset: 0px;
31
31
  }
32
32
 
33
33
  .coop-field:has(.coop-field-element[data-size="lg"]),
34
34
  .coop-fieldset[data-size="lg"] .coop-field {
35
- --field-size: var(--spacing-40);
36
- --font-size: var(--text-size-20);
37
- --field-hint-offset: -4px;
35
+ --form-field-size: var(--spacing-40);
36
+ --form-font-size: var(--text-size-20);
37
+ --form-field-hint-offset: -4px;
38
38
  }
39
39
 
40
40
  .coop-field-control {
@@ -85,29 +85,27 @@
85
85
 
86
86
  .coop-field-label + .coop-field-hint,
87
87
  .coop-field-label + .coop-field-error {
88
- margin-top: var(--field-hint-offset);
88
+ margin-top: var(--form-field-hint-offset);
89
89
  }
90
90
  }
91
91
 
92
92
  .coop-fieldset-fields[data-boxed="true"] .coop-field,
93
93
  .coop-field[data-boxed="true"] {
94
- --field-min-width: 160px;
95
- --field-border: var(--color-grey-700);
96
- --field-border-width: 2px;
94
+ --form-field-border: var(--color-grey-700);
95
+ --form-field-border-width: 2px;
97
96
 
98
97
  padding: 1rem;
99
98
  border-radius: var(--ui-border-radius-sm);
100
- box-shadow: inset 0 0 0 var(--field-border-width) var(--field-border);
99
+ box-shadow: inset 0 0 0 var(--form-field-border-width) var(--form-field-border);
101
100
  transition: box-shadow 0.1s ease-out;
102
101
 
103
102
  &:has(input:checked),
104
103
  &:not(:has(:disabled)):hover {
105
- --field-border: var(--color-text-black);
106
- --field-border-width: 4px;
104
+ --form-field-border: var(--color-text-black);
105
+ --form-field-border-width: 4px;
107
106
  }
108
- /* stylelint-disable-next-line no-descending-specificity */
107
+
109
108
  .coop-field-label,
110
- /* stylelint-disable-next-line no-descending-specificity */
111
109
  .coop-field-label > span {
112
110
  width: 100%;
113
111
  }
@@ -115,7 +113,6 @@
115
113
 
116
114
  .coop-fieldset-fields[data-boxed="true"] .coop-field.coop-field-inline,
117
115
  .coop-field.coop-field-inline[data-boxed="true"] {
118
- /* stylelint-disable-next-line no-descending-specificity */
119
116
  label > span::after {
120
117
  content: "";
121
118
 
@@ -163,13 +160,11 @@
163
160
  padding-left: var(--spacing-16);
164
161
  border-left: 4px solid var(--color-error);
165
162
  }
166
- /* stylelint-disable-next-line no-descending-specificity */
163
+
167
164
  .coop-field:not(.coop-field-inline):is([data-error="true"]),
168
- /* stylelint-disable-next-line no-descending-specificity */
169
165
  .coop-field:not(.coop-field-inline):has(:user-invalid),
170
- /* stylelint-disable-next-line no-descending-specificity */
171
166
  .coop-fieldset[data-error="true"] .coop-field:not(.coop-field-inline) {
172
- --field-border: var(--color-error);
167
+ --form-field-border: var(--color-error);
173
168
  }
174
169
 
175
170
  // If the below behaviour is not desirable, and we want to keep labels black,
@@ -183,17 +178,13 @@
183
178
  // }
184
179
 
185
180
  /* Disabled states */
186
-
187
- /* stylelint-disable-next-line no-descending-specificity */
188
181
  .coop-field:has(.coop-field-element:disabled),
189
- /* stylelint-disable-next-line no-descending-specificity */
190
182
  .coop-fieldset:disabled,
191
- /* stylelint-disable-next-line no-descending-specificity */
192
183
  .coop-fieldset:disabled .coop-field,
193
184
  .coop-fieldset-fields[data-boxed] .coop-field:has(.coop-field-element:disabled) {
194
- --field-border: var(--color-grey-500);
195
- --field-border-width: 2px;
196
- /* stylelint-disable no-descending-specificity */
185
+ --form-field-border: var(--color-grey-500);
186
+ --form-field-border-width: 2px;
187
+
197
188
  input,
198
189
  select,
199
190
  textarea,
@@ -208,6 +199,4 @@
208
199
  .coop-field-hint {
209
200
  color: var(--color-grey-600);
210
201
  }
211
-
212
- /* stylelint-enable no-descending-specificity */
213
202
  }
package/src/layout.scss CHANGED
@@ -8,17 +8,17 @@ $coop-wrap-default-width: 79rem;
8
8
  margin-right: auto;
9
9
  margin-left: auto;
10
10
 
11
- @media (min-width: $mq-medium) {
11
+ @media (min-width: $mq-md) {
12
12
  width: calc(100% - 3rem);
13
13
  }
14
- @media (min-width: $mq-xlarge) {
14
+ @media (min-width: $mq-xl) {
15
15
  width: calc(100% - 4rem);
16
16
  }
17
17
  }
18
18
 
19
19
  .padding-responsive {
20
20
  padding: 1rem;
21
- @media (min-width: $mq-medium) {
21
+ @media (min-width: $mq-md) {
22
22
  padding: 2rem;
23
23
  }
24
24
  }