@amsterdam/design-system-css 1.0.1 → 2.0.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/CHANGELOG.md +46 -0
- package/dist/accordion/accordion.css +1 -1
- package/dist/accordion/accordion.css.map +1 -1
- package/dist/alert/alert.css +1 -1
- package/dist/alert/alert.css.map +1 -1
- package/dist/breakout/breakout.css +1 -1
- package/dist/breakout/breakout.css.map +1 -1
- package/dist/button/button.css +1 -1
- package/dist/button/button.css.map +1 -1
- package/dist/call-to-action-link/call-to-action-link.css +1 -0
- package/dist/call-to-action-link/call-to-action-link.css.map +1 -0
- package/dist/checkbox/checkbox.css +1 -1
- package/dist/checkbox/checkbox.css.map +1 -1
- package/dist/date-input/date-input.css +1 -1
- package/dist/date-input/date-input.css.map +1 -1
- package/dist/description-list/description-list.css +1 -1
- package/dist/description-list/description-list.css.map +1 -1
- package/dist/dialog/dialog.css +1 -1
- package/dist/dialog/dialog.css.map +1 -1
- package/dist/file-input/file-input.css +1 -1
- package/dist/file-input/file-input.css.map +1 -1
- package/dist/grid/grid.css +1 -1
- package/dist/grid/grid.css.map +1 -1
- package/dist/icon/icon.css +1 -1
- package/dist/icon/icon.css.map +1 -1
- package/dist/icon/icon.deprecated.css +1 -0
- package/dist/icon/icon.deprecated.css.map +1 -0
- package/dist/image-slider/image-slider.css +1 -1
- package/dist/image-slider/image-slider.css.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/invalid-form-alert/invalid-form-alert.css +1 -1
- package/dist/invalid-form-alert/invalid-form-alert.css.map +1 -1
- package/dist/menu/menu.css +1 -0
- package/dist/menu/menu.css.map +1 -0
- package/dist/ordered-list/ordered-list.css +1 -1
- package/dist/ordered-list/ordered-list.css.map +1 -1
- package/dist/page-footer/page-footer.css +1 -1
- package/dist/page-footer/page-footer.css.map +1 -1
- package/dist/page-header/page-header.css +1 -1
- package/dist/page-header/page-header.css.map +1 -1
- package/dist/page-heading/{page-heading.css → page-heading.deprecated.css} +1 -1
- package/dist/page-heading/page-heading.deprecated.css.map +1 -0
- package/dist/password-input/password-input.css +1 -1
- package/dist/password-input/password-input.css.map +1 -1
- package/dist/search-field/search-field.css +1 -1
- package/dist/search-field/search-field.css.map +1 -1
- package/dist/select/select.css +1 -1
- package/dist/select/select.css.map +1 -1
- package/dist/standalone-link/standalone-link.css +1 -1
- package/dist/standalone-link/standalone-link.css.map +1 -1
- package/dist/switch/switch.css +1 -1
- package/dist/switch/switch.css.map +1 -1
- package/dist/text-area/text-area.css +1 -1
- package/dist/text-area/text-area.css.map +1 -1
- package/dist/text-input/text-input.css +1 -1
- package/dist/text-input/text-input.css.map +1 -1
- package/dist/time-input/time-input.css +1 -1
- package/dist/time-input/time-input.css.map +1 -1
- package/dist/unordered-list/unordered-list.css +1 -1
- package/dist/unordered-list/unordered-list.css.map +1 -1
- package/documentation/coding-conventions.md +27 -0
- package/package.json +4 -4
- package/src/common/breakpoint.scss +5 -5
- package/src/components/accordion/accordion.scss +5 -10
- package/src/components/alert/alert.scss +1 -0
- package/src/components/button/README.md +5 -2
- package/src/components/button/button.scss +3 -0
- package/src/components/call-to-action-link/README.md +19 -0
- package/src/components/call-to-action-link/call-to-action-link.scss +32 -0
- package/src/components/card/README.md +1 -1
- package/src/components/checkbox/checkbox.scss +112 -207
- package/src/components/date-input/date-input.scss +22 -7
- package/src/components/file-input/file-input.scss +1 -0
- package/src/components/grid/README.md +1 -1
- package/src/components/heading/README.md +13 -6
- package/src/components/icon/README.md +2 -0
- package/src/components/icon/icon.deprecated.scss +12 -0
- package/src/components/icon/icon.scss +15 -1
- package/src/components/index.scss +4 -1
- package/src/components/invalid-form-alert/invalid-form-alert.scss +0 -11
- package/src/components/link/README.md +1 -0
- package/src/components/logo/README.md +1 -1
- package/src/components/menu/README.md +8 -0
- package/src/components/menu/menu.scss +82 -0
- package/src/components/ordered-list/ordered-list.scss +13 -8
- package/src/components/page/README.md +1 -1
- package/src/components/page-footer/README.md +11 -10
- package/src/components/page-header/README.md +1 -0
- package/src/components/page-heading/README.md +0 -16
- package/src/components/page-heading/{page-heading.scss → page-heading.deprecated.scss} +1 -0
- package/src/components/password-input/password-input.scss +14 -8
- package/src/components/radio/README.md +4 -2
- package/src/components/search-field/search-field.scss +17 -13
- package/src/components/select/select.scss +14 -15
- package/src/components/skip-link/README.md +5 -4
- package/src/components/standalone-link/README.md +7 -3
- package/src/components/standalone-link/standalone-link.scss +4 -7
- package/src/components/switch/switch.scss +1 -0
- package/src/components/table/README.md +3 -4
- package/src/components/text-area/text-area.scss +14 -8
- package/src/components/text-input/text-input.scss +14 -8
- package/src/components/time-input/time-input.scss +18 -7
- package/src/components/unordered-list/unordered-list.scss +13 -8
- package/dist/page-heading/page-heading.css.map +0 -1
|
@@ -8,11 +8,6 @@
|
|
|
8
8
|
@use "../../common/hyphenation" as *;
|
|
9
9
|
@use "../../common/text-rendering" as *;
|
|
10
10
|
|
|
11
|
-
.ams-checkbox__input {
|
|
12
|
-
@include hide-input;
|
|
13
|
-
@include input-label-focus;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
11
|
// Default
|
|
17
12
|
.ams-checkbox__label {
|
|
18
13
|
color: var(--ams-checkbox-color);
|
|
@@ -24,6 +19,8 @@
|
|
|
24
19
|
gap: var(--ams-checkbox-gap);
|
|
25
20
|
line-height: var(--ams-checkbox-line-height);
|
|
26
21
|
outline-offset: var(--ams-checkbox-outline-offset);
|
|
22
|
+
text-decoration-thickness: var(--ams-checkbox-text-decoration-thickness);
|
|
23
|
+
text-underline-offset: var(--ams-checkbox-text-underline-offset);
|
|
27
24
|
|
|
28
25
|
@include hyphenation;
|
|
29
26
|
@include text-rendering;
|
|
@@ -39,6 +36,11 @@
|
|
|
39
36
|
.ams-checkbox__rectangle {
|
|
40
37
|
fill: var(--ams-checkbox-rectangle-fill);
|
|
41
38
|
stroke: var(--ams-checkbox-rectangle-stroke);
|
|
39
|
+
|
|
40
|
+
@media (forced-colors: active) {
|
|
41
|
+
fill: Canvas;
|
|
42
|
+
stroke: FieldText;
|
|
43
|
+
}
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
.ams-checkbox__hover-indicator {
|
|
@@ -48,269 +50,172 @@
|
|
|
48
50
|
.ams-checkbox__checked-indicator {
|
|
49
51
|
display: none;
|
|
50
52
|
stroke: var(--ams-checkbox-checked-indicator-stroke);
|
|
53
|
+
|
|
54
|
+
@media (forced-colors: active) {
|
|
55
|
+
stroke: Canvas;
|
|
56
|
+
}
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
.ams-checkbox__indeterminate-indicator {
|
|
54
60
|
display: none;
|
|
55
61
|
stroke: var(--ams-checkbox-indeterminate-indicator-stroke);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Default hover
|
|
59
|
-
.ams-checkbox__label:hover {
|
|
60
|
-
color: var(--ams-checkbox-hover-color);
|
|
61
|
-
text-decoration-line: underline;
|
|
62
|
-
text-decoration-thickness: var(--ams-checkbox-hover-text-decoration-thickness);
|
|
63
|
-
text-underline-offset: 0.375rem;
|
|
64
|
-
|
|
65
|
-
.ams-checkbox__rectangle {
|
|
66
|
-
stroke: var(--ams-checkbox-rectangle-hover-stroke);
|
|
67
|
-
}
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
stroke:
|
|
63
|
+
@media (forced-colors: active) {
|
|
64
|
+
stroke: Canvas;
|
|
71
65
|
}
|
|
72
66
|
}
|
|
73
67
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
stroke:
|
|
68
|
+
@mixin forced-colors-selected {
|
|
69
|
+
@media (forced-colors: active) {
|
|
70
|
+
fill: ActiveText;
|
|
71
|
+
stroke: ActiveText;
|
|
78
72
|
}
|
|
79
73
|
}
|
|
80
74
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.ams-checkbox__indeterminate-indicator {
|
|
88
|
-
display: block;
|
|
75
|
+
@mixin forced-colors-disabled {
|
|
76
|
+
@media (forced-colors: active) {
|
|
77
|
+
fill: GrayText;
|
|
78
|
+
stroke: GrayText;
|
|
89
79
|
}
|
|
90
80
|
}
|
|
91
81
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
cursor: var(--ams-checkbox-disabled-cursor);
|
|
96
|
-
|
|
97
|
-
.ams-checkbox__rectangle {
|
|
98
|
-
stroke: var(--ams-checkbox-rectangle-disabled-stroke);
|
|
99
|
-
}
|
|
82
|
+
.ams-checkbox__input {
|
|
83
|
+
@include hide-input;
|
|
84
|
+
@include input-label-focus;
|
|
100
85
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
86
|
+
// Disabled
|
|
87
|
+
&:disabled + * {
|
|
88
|
+
color: var(--ams-checkbox-disabled-color);
|
|
89
|
+
cursor: var(--ams-checkbox-disabled-cursor);
|
|
105
90
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
.ams-checkbox__rectangle {
|
|
109
|
-
fill: var(--ams-checkbox-rectangle-checked-fill);
|
|
110
|
-
}
|
|
91
|
+
.ams-checkbox__rectangle {
|
|
92
|
+
stroke: var(--ams-checkbox-rectangle-disabled-stroke);
|
|
111
93
|
|
|
112
|
-
|
|
113
|
-
|
|
94
|
+
@media (forced-colors: active) {
|
|
95
|
+
stroke: GrayText;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
114
98
|
}
|
|
115
|
-
}
|
|
116
99
|
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
}
|
|
100
|
+
// Indeterminate
|
|
101
|
+
&:indeterminate + * {
|
|
102
|
+
.ams-checkbox__rectangle {
|
|
103
|
+
fill: var(--ams-checkbox-rectangle-indeterminate-fill);
|
|
123
104
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
.ams-checkbox__rectangle {
|
|
127
|
-
fill: var(--ams-checkbox-rectangle-indeterminate-invalid-fill);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
105
|
+
@include forced-colors-selected;
|
|
106
|
+
}
|
|
130
107
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
fill: var(--ams-checkbox-rectangle-checked-disabled-fill);
|
|
108
|
+
.ams-checkbox__indeterminate-indicator {
|
|
109
|
+
display: block;
|
|
110
|
+
}
|
|
135
111
|
}
|
|
136
|
-
}
|
|
137
112
|
|
|
138
|
-
//
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
}
|
|
113
|
+
// Checked
|
|
114
|
+
&:checked:not(:indeterminate) + * {
|
|
115
|
+
.ams-checkbox__rectangle {
|
|
116
|
+
fill: var(--ams-checkbox-rectangle-checked-fill);
|
|
144
117
|
|
|
145
|
-
|
|
118
|
+
@include forced-colors-selected;
|
|
119
|
+
}
|
|
146
120
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
fill: var(--ams-checkbox-rectangle-checked-hover-fill);
|
|
121
|
+
.ams-checkbox__checked-indicator {
|
|
122
|
+
display: block;
|
|
123
|
+
}
|
|
151
124
|
}
|
|
152
|
-
}
|
|
153
125
|
|
|
154
|
-
//
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
}
|
|
126
|
+
// Default hover
|
|
127
|
+
&:hover:not(:disabled) + * {
|
|
128
|
+
color: var(--ams-checkbox-hover-color);
|
|
129
|
+
text-decoration-line: var(--ams-checkbox-hover-text-decoration-line);
|
|
160
130
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
131
|
+
.ams-checkbox__rectangle {
|
|
132
|
+
@media (forced-colors: none) {
|
|
133
|
+
stroke: var(--ams-checkbox-rectangle-hover-stroke);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
166
136
|
|
|
167
|
-
|
|
168
|
-
|
|
137
|
+
.ams-checkbox__hover-indicator {
|
|
138
|
+
@media (forced-colors: none) {
|
|
139
|
+
stroke: var(--ams-checkbox-hover-indicator-hover-stroke);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
169
142
|
}
|
|
170
|
-
}
|
|
171
143
|
|
|
172
|
-
// Disabled
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
stroke: var(--ams-checkbox-rectangle-hover-disabled-invalid-stroke);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
144
|
+
// Disabled indeterminate
|
|
145
|
+
&:disabled:indeterminate + * .ams-checkbox__rectangle {
|
|
146
|
+
fill: var(--ams-checkbox-rectangle-indeterminate-disabled-fill);
|
|
178
147
|
|
|
179
|
-
|
|
180
|
-
.ams-checkbox__input:disabled:checked + .ams-checkbox__label:hover {
|
|
181
|
-
.ams-checkbox__rectangle {
|
|
182
|
-
fill: var(--ams-checkbox-rectangle-checked-disabled-hover-fill);
|
|
148
|
+
@include forced-colors-disabled;
|
|
183
149
|
}
|
|
184
|
-
}
|
|
185
150
|
|
|
186
|
-
// Disabled
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
151
|
+
// Disabled checked
|
|
152
|
+
&:disabled:checked + * .ams-checkbox__rectangle {
|
|
153
|
+
fill: var(--ams-checkbox-rectangle-checked-disabled-fill);
|
|
154
|
+
|
|
155
|
+
@include forced-colors-disabled;
|
|
190
156
|
}
|
|
191
|
-
}
|
|
192
157
|
|
|
193
|
-
//
|
|
194
|
-
|
|
195
|
-
|
|
158
|
+
// Invalid
|
|
159
|
+
:is(&:invalid, &[aria-invalid="true"]):not(:disabled) + * .ams-checkbox__rectangle {
|
|
160
|
+
stroke: var(--ams-checkbox-rectangle-invalid-stroke);
|
|
196
161
|
|
|
197
|
-
|
|
198
|
-
stroke: none;
|
|
162
|
+
@include forced-colors-selected;
|
|
199
163
|
}
|
|
200
|
-
}
|
|
201
164
|
|
|
202
|
-
// Invalid
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
fill: var(--ams-checkbox-rectangle-checked-invalid-hover-fill);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
165
|
+
// Invalid indeterminate
|
|
166
|
+
:is(&:invalid, &[aria-invalid="true"]):indeterminate:not(:disabled) + * .ams-checkbox__rectangle {
|
|
167
|
+
fill: var(--ams-checkbox-rectangle-indeterminate-invalid-fill);
|
|
208
168
|
|
|
209
|
-
|
|
210
|
-
.ams-checkbox__input[aria-invalid="true"]:indeterminate + .ams-checkbox__label:hover {
|
|
211
|
-
.ams-checkbox__rectangle {
|
|
212
|
-
fill: var(--ams-checkbox-rectangle-indeterminate-invalid-hover-fill);
|
|
169
|
+
@include forced-colors-selected;
|
|
213
170
|
}
|
|
214
|
-
}
|
|
215
171
|
|
|
216
|
-
//
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
fill: var(--ams-checkbox-rectangle-checked-hover-disabled-invalid-fill);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
172
|
+
// Invalid checked
|
|
173
|
+
:is(&:invalid, &[aria-invalid="true"]):checked:not(:disabled) + * .ams-checkbox__rectangle {
|
|
174
|
+
fill: var(--ams-checkbox-rectangle-checked-invalid-fill);
|
|
222
175
|
|
|
223
|
-
|
|
224
|
-
.ams-checkbox__input[aria-invalid="true"]:disabled:indeterminate + .ams-checkbox__label:hover {
|
|
225
|
-
.ams-checkbox__rectangle {
|
|
226
|
-
fill: var(--ams-checkbox-rectangle-indeterminate-hover-disabled-invalid-fill);
|
|
176
|
+
@include forced-colors-selected;
|
|
227
177
|
}
|
|
228
|
-
}
|
|
229
178
|
|
|
230
|
-
//
|
|
179
|
+
// HOVER
|
|
231
180
|
|
|
232
|
-
//
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
.ams-checkbox__label:hover,
|
|
236
|
-
.ams-checkbox__input[aria-invalid="true"] + .ams-checkbox__label,
|
|
237
|
-
.ams-checkbox__input[aria-invalid="true"] + .ams-checkbox__label:hover {
|
|
238
|
-
.ams-checkbox__rectangle {
|
|
239
|
-
fill: Canvas;
|
|
240
|
-
stroke: FieldText;
|
|
241
|
-
}
|
|
181
|
+
// Indeterminate hover
|
|
182
|
+
&:indeterminate:not(:disabled) + *:hover .ams-checkbox__rectangle {
|
|
183
|
+
fill: var(--ams-checkbox-rectangle-indeterminate-hover-fill);
|
|
242
184
|
|
|
243
|
-
|
|
244
|
-
stroke: none;
|
|
245
|
-
}
|
|
185
|
+
@include forced-colors-selected;
|
|
246
186
|
}
|
|
247
|
-
}
|
|
248
187
|
|
|
249
|
-
// Checked
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
.ams-checkbox__input:checked + .ams-checkbox__label:hover,
|
|
253
|
-
.ams-checkbox__input[aria-invalid="true"]:checked + .ams-checkbox__label,
|
|
254
|
-
.ams-checkbox__input[aria-invalid="true"]:checked + .ams-checkbox__label:hover {
|
|
255
|
-
.ams-checkbox__rectangle {
|
|
256
|
-
fill: ActiveText;
|
|
257
|
-
stroke: ActiveText;
|
|
258
|
-
}
|
|
188
|
+
// Checked hover
|
|
189
|
+
&:checked:not(:disabled, :indeterminate) + *:hover .ams-checkbox__rectangle {
|
|
190
|
+
fill: var(--ams-checkbox-rectangle-checked-hover-fill);
|
|
259
191
|
|
|
260
|
-
|
|
261
|
-
stroke: Canvas;
|
|
262
|
-
}
|
|
192
|
+
@include forced-colors-selected;
|
|
263
193
|
}
|
|
264
|
-
}
|
|
265
194
|
|
|
266
|
-
//
|
|
267
|
-
|
|
268
|
-
.ams-checkbox__input:indeterminate + .ams-checkbox__label,
|
|
269
|
-
.ams-checkbox__input:indeterminate + .ams-checkbox__label:hover,
|
|
270
|
-
.ams-checkbox__input[aria-invalid="true"]:indeterminate + .ams-checkbox__label,
|
|
271
|
-
.ams-checkbox__input[aria-invalid="true"]:indeterminate + .ams-checkbox__label:hover {
|
|
195
|
+
// Invalid hover
|
|
196
|
+
:is(&:invalid, &[aria-invalid="true"]):not(:disabled) + *:hover {
|
|
272
197
|
.ams-checkbox__rectangle {
|
|
273
|
-
|
|
274
|
-
stroke: ActiveText;
|
|
198
|
+
stroke: var(--ams-checkbox-rectangle-invalid-hover-stroke);
|
|
275
199
|
}
|
|
276
200
|
|
|
277
|
-
.ams-
|
|
278
|
-
|
|
201
|
+
.ams-checkbox__hover-indicator {
|
|
202
|
+
@media (forced-colors: none) {
|
|
203
|
+
stroke: var(--ams-checkbox-hover-indicator-invalid-hover-stroke);
|
|
204
|
+
}
|
|
279
205
|
}
|
|
280
206
|
}
|
|
281
|
-
}
|
|
282
207
|
|
|
283
|
-
//
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
.ams-checkbox__input:disabled + .ams-checkbox__label:hover,
|
|
287
|
-
.ams-checkbox__input[aria-invalid="true"]:disabled + .ams-checkbox__label,
|
|
288
|
-
.ams-checkbox__input[aria-invalid="true"]:disabled + .ams-checkbox__label:hover {
|
|
289
|
-
.ams-checkbox__rectangle {
|
|
290
|
-
stroke: GrayText;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
208
|
+
// Invalid indeterminate hover
|
|
209
|
+
:is(&:invalid, &[aria-invalid="true"]):indeterminate:not(:disabled) + *:hover .ams-checkbox__rectangle {
|
|
210
|
+
fill: var(--ams-checkbox-rectangle-indeterminate-invalid-hover-fill);
|
|
294
211
|
|
|
295
|
-
|
|
296
|
-
@media (forced-colors: active) {
|
|
297
|
-
.ams-checkbox__input:disabled:checked + .ams-checkbox__label,
|
|
298
|
-
.ams-checkbox__input:disabled:checked + .ams-checkbox__label:hover,
|
|
299
|
-
.ams-checkbox__input[aria-invalid="true"]:disabled:checked + .ams-checkbox__label:hover {
|
|
300
|
-
.ams-checkbox__rectangle {
|
|
301
|
-
fill: GrayText;
|
|
302
|
-
stroke: GrayText;
|
|
303
|
-
}
|
|
212
|
+
@include forced-colors-selected;
|
|
304
213
|
}
|
|
305
|
-
}
|
|
306
214
|
|
|
307
|
-
//
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
.ams-checkbox__rectangle {
|
|
313
|
-
fill: GrayText;
|
|
314
|
-
}
|
|
215
|
+
// Invalid checked hover
|
|
216
|
+
:is(&:invalid, &[aria-invalid="true"]):checked:not(:disabled) + *:hover .ams-checkbox__rectangle {
|
|
217
|
+
fill: var(--ams-checkbox-rectangle-checked-invalid-hover-fill);
|
|
218
|
+
|
|
219
|
+
@include forced-colors-selected;
|
|
315
220
|
}
|
|
316
221
|
}
|
|
@@ -10,6 +10,20 @@
|
|
|
10
10
|
appearance: none; // Reset native appearance, this causes issues on iOS and Android devices
|
|
11
11
|
border-radius: 0; // Reset rounded borders on iOS devices
|
|
12
12
|
margin-block: 0;
|
|
13
|
+
|
|
14
|
+
&::-webkit-datetime-edit,
|
|
15
|
+
&::-webkit-datetime-edit-ampm-field,
|
|
16
|
+
&::-webkit-datetime-edit-day-field,
|
|
17
|
+
&::-webkit-datetime-edit-fields-wrapper,
|
|
18
|
+
&::-webkit-datetime-edit-hour-field,
|
|
19
|
+
&::-webkit-datetime-edit-millisecond-field,
|
|
20
|
+
&::-webkit-datetime-edit-minute-field,
|
|
21
|
+
&::-webkit-datetime-edit-month-field,
|
|
22
|
+
&::-webkit-datetime-edit-second-field,
|
|
23
|
+
&::-webkit-datetime-edit-week-field,
|
|
24
|
+
&::-webkit-datetime-edit-year-field {
|
|
25
|
+
padding-block: 0; // Override value of 1px in UA stylesheet
|
|
26
|
+
}
|
|
13
27
|
}
|
|
14
28
|
|
|
15
29
|
.ams-date-input {
|
|
@@ -61,16 +75,17 @@
|
|
|
61
75
|
visibility: visible;
|
|
62
76
|
}
|
|
63
77
|
|
|
64
|
-
.ams-date-input:invalid,
|
|
65
|
-
.ams-date-input[aria-invalid="true"] {
|
|
78
|
+
.ams-date-input:not(:disabled):invalid,
|
|
79
|
+
.ams-date-input:not(:disabled)[aria-invalid="true"] {
|
|
66
80
|
border-color: var(--ams-date-input-invalid-border-color);
|
|
67
|
-
|
|
68
|
-
&:hover {
|
|
69
|
-
border-color: var(--ams-date-input-invalid-hover-border-color);
|
|
70
|
-
box-shadow: var(--ams-date-input-invalid-hover-box-shadow);
|
|
71
|
-
}
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
.ams-date-input:not(:disabled):hover {
|
|
75
84
|
box-shadow: var(--ams-date-input-hover-box-shadow);
|
|
76
85
|
}
|
|
86
|
+
|
|
87
|
+
.ams-date-input:not(:disabled):invalid:hover,
|
|
88
|
+
.ams-date-input:not(:disabled)[aria-invalid="true"]:hover {
|
|
89
|
+
border-color: var(--ams-date-input-invalid-hover-border-color);
|
|
90
|
+
box-shadow: var(--ams-date-input-invalid-hover-box-shadow);
|
|
91
|
+
}
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
font-family: inherit;
|
|
49
49
|
font-size: inherit; // iOS specific fix
|
|
50
50
|
font-weight: inherit;
|
|
51
|
+
line-height: var(--ams-file-input-file-selector-button-line-height);
|
|
51
52
|
margin-inline-end: var(--ams-file-input-file-selector-button-margin-inline-end);
|
|
52
53
|
padding-block: var(--ams-file-input-file-selector-button-padding-block);
|
|
53
54
|
padding-inline: var(--ams-file-input-file-selector-button-padding-inline);
|
|
@@ -19,4 +19,4 @@ Divides the screen into columns to align the elements of a page.
|
|
|
19
19
|
|
|
20
20
|
## Design
|
|
21
21
|
|
|
22
|
-
The [design choices](/docs/
|
|
22
|
+
The [design choices](/docs/docs-developer-guide-grid--docs) are described in the Developer Guide.
|
|
@@ -6,12 +6,19 @@ Introduces a page section and describes the following content.
|
|
|
6
6
|
|
|
7
7
|
## Guidelines
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
9
|
+
- Headings help the user scan the structure of a page.
|
|
10
|
+
They also introduce the content that follows them.
|
|
11
|
+
- Users of screen readers often depend on headings to navigate a page.
|
|
12
|
+
If the hierarchy is wrong, it can confuse them.
|
|
13
|
+
That’s why it’s crucial to arrange headings properly.
|
|
14
|
+
- The `level` prop doesn’t have a default value; determine the correct level for each instance.
|
|
15
|
+
- Every page should contain one heading with level 1.
|
|
16
|
+
- Do not skip levels. For example, a level 2 Heading must be followed by one with level 3.
|
|
17
|
+
- Use the `size` prop to make a Heading visually larger or smaller, but sparingly and consistently.
|
|
18
|
+
- Content pages, e.g. for articles, products, events etc. must not use the size prop on their Headings.
|
|
19
|
+
- Most Headings on overview pages, e.g. Card, Table of Content, and ‘Link Blocks’, use a size of ‘level-3’.
|
|
20
|
+
- The same applies to large sections – e.g. Accordion, Alert, Dialog and the caption of a Table.
|
|
21
|
+
Most of them can be given a different size if appropriate.
|
|
15
22
|
|
|
16
23
|
## Relevant WCAG requirements
|
|
17
24
|
|
|
@@ -6,6 +6,8 @@ Icons are visual symbols used to represent ideas, themes, or actions.
|
|
|
6
6
|
They communicate the message at a glance and draw attention to important (interactive) information.
|
|
7
7
|
Always use an `Icon` component to encapsulate an SVG icon for proper styling and sizing.
|
|
8
8
|
|
|
9
|
+
Our icons can only be used on websites and applications where the City of Amsterdam is the main communicator.
|
|
10
|
+
|
|
9
11
|
## Interactive elements
|
|
10
12
|
|
|
11
13
|
Use an icon to support textual interactive elements like buttons and links.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Deprecated. Use ‘heading 1’ instead.
|
|
7
|
+
.ams-icon--heading-0 {
|
|
8
|
+
--ams-line-height: var(--ams-icon-heading-0-line-height);
|
|
9
|
+
|
|
10
|
+
font-size: var(--ams-icon-heading-0-font-size);
|
|
11
|
+
line-height: var(--ams-icon-heading-0-line-height);
|
|
12
|
+
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
align-items: center;
|
|
10
10
|
align-self: baseline; // Aligns the icon with text in flex or grid context
|
|
11
|
-
display: inline-flex;
|
|
11
|
+
display: inline-flex; // Center align the icon vertically, and override the default 'hidden' attribute
|
|
12
12
|
font-size: var(--ams-icon-font-size);
|
|
13
13
|
line-height: var(--ams-line-height);
|
|
14
14
|
|
|
@@ -43,6 +43,20 @@
|
|
|
43
43
|
font-size: var(--ams-icon-large-font-size);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
.ams-icon--heading-1 {
|
|
47
|
+
--ams-line-height: var(--ams-icon-heading-1-line-height);
|
|
48
|
+
|
|
49
|
+
font-size: var(--ams-icon-heading-1-font-size);
|
|
50
|
+
line-height: var(--ams-icon-heading-1-line-height);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ams-icon--heading-2 {
|
|
54
|
+
--ams-line-height: var(--ams-icon-heading-2-line-height);
|
|
55
|
+
|
|
56
|
+
font-size: var(--ams-icon-heading-2-font-size);
|
|
57
|
+
line-height: var(--ams-icon-heading-2-line-height);
|
|
58
|
+
}
|
|
59
|
+
|
|
46
60
|
.ams-icon--heading-3 {
|
|
47
61
|
--ams-line-height: var(--ams-icon-heading-3-line-height);
|
|
48
62
|
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
@use "breadcrumb/breadcrumb";
|
|
15
15
|
@use "breakout/breakout";
|
|
16
16
|
@use "button/button";
|
|
17
|
+
@use "call-to-action-link/call-to-action-link";
|
|
17
18
|
@use "card/card";
|
|
18
19
|
@use "character-count/character-count";
|
|
19
20
|
@use "checkbox/checkbox";
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
@use "hint/hint";
|
|
35
36
|
@use "icon-button/icon-button";
|
|
36
37
|
@use "icon/icon";
|
|
38
|
+
@use "icon/icon.deprecated" as *;
|
|
37
39
|
@use "image-slider/image-slider";
|
|
38
40
|
@use "image/image";
|
|
39
41
|
@use "invalid-form-alert/invalid-form-alert";
|
|
@@ -43,12 +45,13 @@
|
|
|
43
45
|
@use "logo/logo";
|
|
44
46
|
@use "margin/margin";
|
|
45
47
|
@use "mark/mark";
|
|
48
|
+
@use "menu/menu";
|
|
46
49
|
@use "ordered-list/ordered-list";
|
|
47
50
|
@use "overlap/overlap";
|
|
48
51
|
@use "page/page";
|
|
49
52
|
@use "page-footer/page-footer";
|
|
50
53
|
@use "page-header/page-header";
|
|
51
|
-
@use "page-heading/page-heading"
|
|
54
|
+
@use "page-heading/page-heading.deprecated" as *;
|
|
52
55
|
@use "pagination/pagination";
|
|
53
56
|
@use "paragraph/paragraph";
|
|
54
57
|
@use "password-input/password-input";
|
|
@@ -5,15 +5,4 @@
|
|
|
5
5
|
|
|
6
6
|
.ams-invalid-form-alert {
|
|
7
7
|
outline-offset: var(--ams-invalid-form-alert-outline-offset);
|
|
8
|
-
|
|
9
|
-
// In Chromium browsers, the outline overlaps with the border in this component.
|
|
10
|
-
// We're not sure why, but to fix this we double the offset for Chromium browsers here.
|
|
11
|
-
@supports (contain: paint) and (not (-moz-appearance: none)) {
|
|
12
|
-
outline-offset: calc(var(--ams-invalid-form-alert-outline-offset) * 2);
|
|
13
|
-
|
|
14
|
-
// Reset for Safari
|
|
15
|
-
@supports (font: -apple-system-body) {
|
|
16
|
-
outline-offset: var(--ams-invalid-form-alert-outline-offset);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
8
|
}
|
|
@@ -16,6 +16,7 @@ It is the lightweight variant for navigation.
|
|
|
16
16
|
Use a button instead of a link when an action is desired.
|
|
17
17
|
- An icon can be added to links, positioned after the link.
|
|
18
18
|
- Too many links on the same page may confuse the user.
|
|
19
|
+
- For a link on its own line of text, use the [Standalone Link](/docs/components-navigation-standalone-link--docs).
|
|
19
20
|
|
|
20
21
|
### External links
|
|
21
22
|
|
|
@@ -34,7 +34,7 @@ The sub-brands are:
|
|
|
34
34
|
- The logo links to the homepage of the website or application.
|
|
35
35
|
- If the application is a form, application, or tool without a homepage, the logo links to the page where the form, application, or tool is referred to.
|
|
36
36
|
|
|
37
|
-
The logo is 40 pixels tall at its minimum, growing to
|
|
37
|
+
The logo is 40 pixels tall at its minimum, growing to 60 pixels in wider windows.
|
|
38
38
|
This also applies to sub-brand logos.
|
|
39
39
|
|
|
40
40
|
## Download
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<!-- @license CC0-1.0 -->
|
|
2
|
+
|
|
3
|
+
# Menu
|
|
4
|
+
|
|
5
|
+
A primary navigation leading to key areas of an application or website.
|
|
6
|
+
|
|
7
|
+
The Menu component works well in the sidebar of applications, usually on a blue background.
|
|
8
|
+
This first iteration is a simple vertical menu with 1 level of navigation.
|