@amsterdam/design-system-css 0.4.0 → 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/CHANGELOG.md +51 -2
- package/LICENSE.txt +287 -0
- package/README.md +11 -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/badge/badge.css +1 -1
- package/dist/badge/badge.css.map +1 -1
- package/dist/blockquote/blockquote.css +1 -1
- package/dist/blockquote/blockquote.css.map +1 -1
- package/dist/breadcrumb/breadcrumb.css +1 -1
- package/dist/breadcrumb/breadcrumb.css.map +1 -1
- package/dist/button/button.css +1 -1
- package/dist/button/button.css.map +1 -1
- package/dist/checkbox/checkbox.css +1 -1
- package/dist/checkbox/checkbox.css.map +1 -1
- package/dist/column/column.css +1 -0
- package/dist/column/column.css.map +1 -0
- package/dist/dialog/dialog.css +1 -1
- package/dist/dialog/dialog.css.map +1 -1
- package/dist/fieldset/fieldset.css +1 -0
- package/dist/fieldset/fieldset.css.map +1 -0
- package/dist/form-label/form-label.css +1 -1
- package/dist/form-label/form-label.css.map +1 -1
- package/dist/gap/gap.css +1 -0
- package/dist/gap/gap.css.map +1 -0
- package/dist/grid/grid.css +1 -1
- package/dist/grid/grid.css.map +1 -1
- package/dist/header/header.css +1 -1
- package/dist/header/header.css.map +1 -1
- package/dist/heading/heading.css +1 -1
- package/dist/heading/heading.css.map +1 -1
- package/dist/icon/icon.css +1 -1
- package/dist/icon/icon.css.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/link/link.css +1 -1
- package/dist/link/link.css.map +1 -1
- package/dist/link-list/link-list.css +1 -1
- package/dist/link-list/link-list.css.map +1 -1
- package/dist/margin/margin.css +1 -0
- package/dist/margin/margin.css.map +1 -0
- package/dist/mega-menu/mega-menu.css.map +1 -1
- package/dist/ordered-list/ordered-list.css +1 -1
- package/dist/ordered-list/ordered-list.css.map +1 -1
- package/dist/page-heading/page-heading.css +1 -1
- package/dist/page-heading/page-heading.css.map +1 -1
- package/dist/page-menu/page-menu.css +1 -1
- package/dist/page-menu/page-menu.css.map +1 -1
- package/dist/pagination/pagination.css +1 -1
- package/dist/pagination/pagination.css.map +1 -1
- package/dist/paragraph/paragraph.css +1 -1
- package/dist/paragraph/paragraph.css.map +1 -1
- package/dist/radio/radio.css +1 -0
- package/dist/radio/radio.css.map +1 -0
- package/dist/row/row.css +1 -0
- package/dist/row/row.css.map +1 -0
- package/dist/search-field/search-field.css +1 -1
- package/dist/search-field/search-field.css.map +1 -1
- package/dist/skip-link/skip-link.css +1 -1
- package/dist/skip-link/skip-link.css.map +1 -1
- package/dist/switch/switch.css +1 -1
- package/dist/switch/switch.css.map +1 -1
- package/dist/table/table.css +1 -1
- package/dist/table/table.css.map +1 -1
- package/dist/tabs/tabs.css +1 -0
- package/dist/tabs/tabs.css.map +1 -0
- package/dist/text-area/text-area.css +1 -0
- package/dist/text-area/text-area.css.map +1 -0
- package/dist/text-input/text-input.css +1 -1
- package/dist/text-input/text-input.css.map +1 -1
- package/dist/top-task-link/top-task-link.css +1 -1
- package/dist/top-task-link/top-task-link.css.map +1 -1
- package/dist/unordered-list/unordered-list.css +1 -1
- package/dist/unordered-list/unordered-list.css.map +1 -1
- package/package.json +9 -10
- package/src/common/breakpoint.scss +1 -1
- package/src/common/calculate-fluid-style.scss +1 -1
- package/src/common/hide-input.scss +11 -0
- package/src/common/hyphenation.scss +10 -0
- package/src/common/input-label-focus.scss +21 -0
- package/src/common/size.scss +13 -0
- package/src/components/accordion/README.md +2 -0
- package/src/components/accordion/accordion.scss +7 -12
- package/src/components/alert/README.md +4 -2
- package/src/components/alert/alert.scss +3 -5
- package/src/components/aspect-ratio/README.md +2 -0
- package/src/components/aspect-ratio/aspect-ratio.scss +1 -1
- package/src/components/badge/README.md +2 -0
- package/src/components/badge/badge.scss +3 -8
- package/src/components/blockquote/README.md +2 -0
- package/src/components/blockquote/blockquote.scss +6 -8
- package/src/components/breadcrumb/README.md +2 -0
- package/src/components/breadcrumb/breadcrumb.scss +3 -8
- package/src/components/button/README.md +3 -1
- package/src/components/button/button.scss +60 -15
- package/src/components/card/README.md +5 -3
- package/src/components/card/card.scss +1 -1
- package/src/components/checkbox/README.md +3 -1
- package/src/components/checkbox/checkbox.scss +19 -31
- package/src/components/column/README.md +5 -0
- package/src/components/column/column.scss +16 -0
- package/src/components/dialog/README.md +2 -0
- package/src/components/dialog/dialog.scss +7 -9
- package/src/components/fieldset/README.md +18 -0
- package/src/components/fieldset/fieldset.scss +34 -0
- package/src/components/footer/README.md +2 -0
- package/src/components/form-label/README.md +2 -0
- package/src/components/form-label/form-label.scss +6 -8
- package/src/components/gap/README.md +5 -0
- package/src/components/gap/gap.scss +16 -0
- package/src/components/grid/README.md +5 -3
- package/src/components/grid/grid.scss +14 -21
- package/src/components/header/README.md +2 -0
- package/src/components/header/header.scss +7 -7
- package/src/components/heading/README.md +2 -0
- package/src/components/heading/heading.scss +16 -43
- package/src/components/icon/README.md +3 -1
- package/src/components/icon/icon.scss +13 -51
- package/src/components/icon-button/README.md +3 -1
- package/src/components/icon-button/icon-button.scss +1 -1
- package/src/components/image/README.md +3 -1
- package/src/components/image/image.scss +2 -2
- package/src/components/index.scss +9 -1
- package/src/components/link/README.md +2 -0
- package/src/components/link/link.scss +3 -36
- package/src/components/link-list/README.md +3 -1
- package/src/components/link-list/link-list.scss +10 -21
- package/src/components/logo/README.md +4 -1
- package/src/components/logo/logo.scss +1 -1
- package/src/components/margin/README.md +5 -0
- package/src/components/margin/margin.scss +12 -0
- package/src/components/mark/README.md +2 -0
- package/src/components/mark/mark.scss +1 -1
- package/src/components/mega-menu/README.md +2 -0
- package/src/components/mega-menu/mega-menu.scss +3 -1
- package/src/components/ordered-list/README.md +2 -0
- package/src/components/ordered-list/ordered-list.scss +8 -9
- package/src/components/overlap/README.md +2 -0
- package/src/components/overlap/overlap.scss +1 -1
- package/src/components/page-heading/README.md +3 -1
- package/src/components/page-heading/page-heading.scss +6 -8
- package/src/components/page-menu/README.md +3 -1
- package/src/components/page-menu/page-menu.scss +3 -8
- package/src/components/pagination/README.md +3 -1
- package/src/components/pagination/pagination.scss +4 -9
- package/src/components/paragraph/README.md +2 -0
- package/src/components/paragraph/paragraph.scss +7 -22
- package/src/components/radio/README.md +18 -0
- package/src/components/radio/radio.scss +157 -0
- package/src/components/row/README.md +3 -0
- package/src/components/row/row.scss +17 -0
- package/src/components/screen/README.md +6 -4
- package/src/components/screen/screen.scss +1 -1
- package/src/components/search-field/README.md +3 -1
- package/src/components/search-field/search-field.scss +9 -12
- package/src/components/skip-link/README.md +2 -0
- package/src/components/skip-link/skip-link.scss +3 -8
- package/src/components/spotlight/README.md +2 -0
- package/src/components/spotlight/spotlight.scss +1 -1
- package/src/components/switch/README.md +3 -1
- package/src/components/switch/switch.scss +11 -10
- package/src/components/table/README.md +3 -1
- package/src/components/table/table.scss +3 -3
- package/src/components/tabs/README.md +32 -0
- package/src/components/tabs/tabs.scss +41 -0
- package/src/components/text-area/README.md +17 -0
- package/src/components/text-area/text-area.scss +70 -0
- package/src/components/text-input/README.md +2 -0
- package/src/components/text-input/text-input.scss +5 -10
- package/src/components/top-task-link/README.md +5 -3
- package/src/components/top-task-link/top-task-link.scss +7 -14
- package/src/components/unordered-list/README.md +2 -0
- package/src/components/unordered-list/unordered-list.scss +8 -9
- package/src/components/visually-hidden/README.md +2 -0
- package/src/components/visually-hidden/visually-hidden.scss +1 -1
|
@@ -1,49 +1,94 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
@import "../../../node_modules/@utrecht/components/button/css";
|
|
7
|
-
|
|
8
6
|
@mixin reset {
|
|
9
7
|
-webkit-text-size-adjust: 100%;
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
.amsterdam-button {
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
border: none;
|
|
12
|
+
cursor: var(--amsterdam-button-cursor);
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
font-family: var(--amsterdam-button-font-family);
|
|
15
|
+
font-size: var(--amsterdam-button-font-size);
|
|
16
|
+
gap: var(--amsterdam-button-gap);
|
|
17
|
+
line-height: var(--amsterdam-button-line-height);
|
|
18
|
+
outline-offset: var(--amsterdam-button-outline-offset);
|
|
19
|
+
padding-block: var(--amsterdam-button-padding-block);
|
|
20
|
+
padding-inline: var(--amsterdam-button-padding-inline);
|
|
21
|
+
touch-action: manipulation;
|
|
22
|
+
|
|
23
|
+
&:disabled,
|
|
24
|
+
&[aria-disabled="true"] {
|
|
25
|
+
cursor: var(--amsterdam-button-disabled-cursor);
|
|
26
|
+
}
|
|
15
27
|
|
|
16
28
|
@include reset;
|
|
29
|
+
}
|
|
17
30
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
@mixin amsterdam-button-forced-color-mode {
|
|
32
|
+
@media screen and (-ms-high-contrast: active), screen and (forced-colors: active) {
|
|
33
|
+
border: 2px solid ButtonBorder; // add border because forced colors changes box-shadow to none
|
|
21
34
|
}
|
|
22
35
|
}
|
|
23
36
|
|
|
37
|
+
.amsterdam-button--busy {
|
|
38
|
+
cursor: var(--amsterdam-button-busy-cursor);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.amsterdam-button--primary {
|
|
42
|
+
background-color: var(--amsterdam-button-primary-background-color);
|
|
43
|
+
box-shadow: var(--amsterdam-button-primary-box-shadow);
|
|
44
|
+
color: var(--amsterdam-button-primary-color);
|
|
45
|
+
|
|
46
|
+
&:disabled,
|
|
47
|
+
[aria-disabled="true"] {
|
|
48
|
+
background-color: var(--amsterdam-button-primary-disabled-background-color);
|
|
49
|
+
box-shadow: var(--amsterdam-button-primary-disabled-box-shadow);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
53
|
+
background-color: var(--amsterdam-button-primary-hover-background-color);
|
|
54
|
+
box-shadow: var(--amsterdam-button-primary-hover-box-shadow);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@include amsterdam-button-forced-color-mode;
|
|
58
|
+
}
|
|
59
|
+
|
|
24
60
|
.amsterdam-button--secondary {
|
|
61
|
+
background-color: var(--amsterdam-button-secondary-background-color);
|
|
25
62
|
box-shadow: var(--amsterdam-button-secondary-box-shadow);
|
|
63
|
+
color: var(--amsterdam-button-secondary-color);
|
|
26
64
|
|
|
27
65
|
&:disabled,
|
|
28
66
|
[aria-disabled="true"] {
|
|
67
|
+
background-color: var(--amsterdam-button-secondary-disabled-background-color);
|
|
29
68
|
box-shadow: var(--amsterdam-button-secondary-disabled-box-shadow);
|
|
69
|
+
color: var(--amsterdam-button-secondary-disabled-color);
|
|
30
70
|
}
|
|
31
71
|
|
|
32
72
|
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
33
73
|
box-shadow: var(--amsterdam-button-secondary-hover-box-shadow);
|
|
74
|
+
color: var(--amsterdam-button-secondary-hover-color);
|
|
34
75
|
}
|
|
35
|
-
}
|
|
36
76
|
|
|
37
|
-
|
|
38
|
-
box-shadow: var(--amsterdam-button-secondary-focus-box-shadow);
|
|
77
|
+
@include amsterdam-button-forced-color-mode;
|
|
39
78
|
}
|
|
40
79
|
|
|
41
80
|
.amsterdam-button--tertiary {
|
|
81
|
+
background-color: var(--amsterdam-button-tertiary-background-color);
|
|
82
|
+
color: var(--amsterdam-button-tertiary-color);
|
|
83
|
+
|
|
84
|
+
&:disabled,
|
|
85
|
+
[aria-disabled="true"] {
|
|
86
|
+
background-color: var(--amsterdam-button-tertiary-disabled-background-color);
|
|
87
|
+
color: var(--amsterdam-button-tertiary-disabled-color);
|
|
88
|
+
}
|
|
89
|
+
|
|
42
90
|
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
43
91
|
box-shadow: var(--amsterdam-button-tertiary-hover-box-shadow);
|
|
92
|
+
color: var(--amsterdam-button-tertiary-hover-color);
|
|
44
93
|
}
|
|
45
94
|
}
|
|
46
|
-
|
|
47
|
-
.amsterdam-button--tertiary:focus:not(:hover, [aria-disabled="true"]) {
|
|
48
|
-
box-shadow: none;
|
|
49
|
-
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- @license CC0-1.0 -->
|
|
2
|
+
|
|
1
3
|
# Card
|
|
2
4
|
|
|
3
5
|
Use a card on an overview page to link to an article page, such as a news article, a job vacancy, or a search result.
|
|
@@ -7,15 +9,15 @@ The link is mandatory.
|
|
|
7
9
|
## Guidelines
|
|
8
10
|
|
|
9
11
|
- The title of a card is a link within a heading.
|
|
10
|
-
The same guidelines as for regular [links](
|
|
12
|
+
The same guidelines as for regular [links](/docs/components-navigation-link--docs) and [headings](/docs/components-text-heading--docs) apply here.
|
|
11
13
|
The link is active across the entire area of the card.
|
|
12
14
|
- A card needs more content than just a title.
|
|
13
15
|
Supplement this with textual and/or visual content.
|
|
14
16
|
- Place the text in a regular paragraph.
|
|
15
17
|
Only use the smallest text size for a tagline or date.
|
|
16
18
|
- This component may not be the best option if the content does not represent a detailed page.
|
|
17
|
-
For referencing a thematic page, use a [top task link](
|
|
18
|
-
You can also use a [regular link](
|
|
19
|
+
For referencing a thematic page, use a [top task link](/docs/components-navigation-top-task-link--docs).
|
|
20
|
+
You can also use a [regular link](/docs/components-navigation-link--docs).
|
|
19
21
|
|
|
20
22
|
## Screen Readers
|
|
21
23
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- @license CC0-1.0 -->
|
|
2
|
+
|
|
1
3
|
# Checkbox
|
|
2
4
|
|
|
3
5
|
Allows users to make a selection or agree to terms.
|
|
@@ -25,4 +27,4 @@ It is written in the first person when asking the user to agree to the terms and
|
|
|
25
27
|
|
|
26
28
|
- [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html): It is clear for both users and programmatically what the purpose of a form field is.
|
|
27
29
|
|
|
28
|
-
Checkbox is an interactive element; therefore, [the general requirements and guidelines for interactive elements](
|
|
30
|
+
Checkbox is an interactive element; therefore, [the general requirements and guidelines for interactive elements](/docs/docs-design-guidelines-interactive-elements--docs) apply.
|
|
@@ -1,40 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
@import "../../common/input-label-focus";
|
|
7
|
+
@import "../../common/hide-input";
|
|
8
|
+
|
|
6
9
|
.amsterdam-checkbox__input {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
margin-inline: 0;
|
|
10
|
-
opacity: 0%; /* to hide native input field in older iOS */
|
|
11
|
-
|
|
12
|
-
&:focus-visible + label {
|
|
13
|
-
outline: auto;
|
|
14
|
-
outline-offset: var(--amsterdam-checkbox-outline-offset);
|
|
15
|
-
}
|
|
10
|
+
@include hide-input;
|
|
11
|
+
@include input-label-focus;
|
|
16
12
|
}
|
|
17
13
|
|
|
18
14
|
.amsterdam-checkbox__checkmark {
|
|
19
15
|
align-items: center;
|
|
20
16
|
display: flex;
|
|
21
17
|
flex-shrink: 0;
|
|
22
|
-
height: calc(var(--amsterdam-checkbox-
|
|
18
|
+
height: calc(var(--amsterdam-checkbox-font-size) * var(--amsterdam-checkbox-line-height));
|
|
23
19
|
width: 1.5rem;
|
|
24
20
|
|
|
25
21
|
&::after {
|
|
22
|
+
background-position: center;
|
|
23
|
+
background-repeat: no-repeat;
|
|
24
|
+
background-size: 1rem;
|
|
26
25
|
border-color: var(--amsterdam-checkbox-checkmark-border-color);
|
|
27
26
|
border-style: solid;
|
|
28
|
-
border-width:
|
|
27
|
+
border-width: 0.125rem;
|
|
29
28
|
box-sizing: border-box;
|
|
30
29
|
content: "";
|
|
31
30
|
height: 1.5rem;
|
|
32
31
|
width: 100%;
|
|
33
32
|
}
|
|
34
|
-
|
|
35
|
-
.amsterdam-theme--compact & {
|
|
36
|
-
height: calc(var(--amsterdam-checkbox-compact-font-size) * var(--amsterdam-checkbox-compact-line-height));
|
|
37
|
-
}
|
|
38
33
|
}
|
|
39
34
|
|
|
40
35
|
@mixin reset {
|
|
@@ -46,10 +41,11 @@
|
|
|
46
41
|
cursor: pointer;
|
|
47
42
|
display: inline-flex;
|
|
48
43
|
font-family: var(--amsterdam-checkbox-font-family);
|
|
49
|
-
font-size: var(--amsterdam-checkbox-
|
|
50
|
-
font-weight:
|
|
44
|
+
font-size: var(--amsterdam-checkbox-font-size);
|
|
45
|
+
font-weight: var(--amsterdam-checkbox-font-weight);
|
|
51
46
|
gap: 0.5rem;
|
|
52
|
-
line-height: var(--amsterdam-checkbox-
|
|
47
|
+
line-height: var(--amsterdam-checkbox-line-height);
|
|
48
|
+
outline-offset: var(--amsterdam-checkbox-outline-offset);
|
|
53
49
|
|
|
54
50
|
&:hover {
|
|
55
51
|
color: var(--amsterdam-checkbox-hover-color);
|
|
@@ -59,15 +55,10 @@
|
|
|
59
55
|
|
|
60
56
|
.amsterdam-checkbox__checkmark::after {
|
|
61
57
|
border-color: var(--amsterdam-checkbox-checkmark-hover-border-color);
|
|
62
|
-
border-width:
|
|
58
|
+
border-width: 0.1875rem;
|
|
63
59
|
}
|
|
64
60
|
}
|
|
65
61
|
|
|
66
|
-
.amsterdam-theme--compact & {
|
|
67
|
-
font-size: var(--amsterdam-checkbox-compact-font-size);
|
|
68
|
-
line-height: var(--amsterdam-checkbox-compact-line-height);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
62
|
@include reset;
|
|
72
63
|
}
|
|
73
64
|
|
|
@@ -75,10 +66,7 @@
|
|
|
75
66
|
.amsterdam-checkbox__input:checked {
|
|
76
67
|
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
77
68
|
background-color: var(--amsterdam-checkbox-checkmark-checked-background-color);
|
|
78
|
-
background-image:
|
|
79
|
-
background-position: center;
|
|
80
|
-
background-repeat: no-repeat;
|
|
81
|
-
background-size: 1rem;
|
|
69
|
+
background-image: var(--amsterdam-checkbox-checkmark-checked-background-image);
|
|
82
70
|
border: none;
|
|
83
71
|
}
|
|
84
72
|
}
|
|
@@ -87,7 +75,7 @@
|
|
|
87
75
|
.amsterdam-checkbox__input:indeterminate {
|
|
88
76
|
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
89
77
|
background-color: var(--amsterdam-checkbox-checkmark-indeterminate-background-color);
|
|
90
|
-
background-image:
|
|
78
|
+
background-image: var(--amsterdam-checkbox-checkmark-indeterminate-background-image);
|
|
91
79
|
background-position: center;
|
|
92
80
|
background-repeat: no-repeat;
|
|
93
81
|
background-size: 1rem;
|
|
@@ -111,7 +99,7 @@
|
|
|
111
99
|
|
|
112
100
|
.amsterdam-checkbox__checkmark::after {
|
|
113
101
|
border-color: var(--amsterdam-checkbox-checkmark-disabled-border-color);
|
|
114
|
-
border-width:
|
|
102
|
+
border-width: 0.125rem;
|
|
115
103
|
}
|
|
116
104
|
}
|
|
117
105
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../common/size";
|
|
7
|
+
|
|
8
|
+
.amsterdam-column {
|
|
9
|
+
display: grid;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@each $size, $label in $amsterdam-sizes {
|
|
13
|
+
.amsterdam-column--#{$label} {
|
|
14
|
+
gap: var(--amsterdam-column-gap-#{$size});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import "../../common/breakpoint";
|
|
7
|
+
@import "../../common/hyphenation";
|
|
7
8
|
|
|
8
9
|
.amsterdam-dialog {
|
|
9
10
|
background-color: var(--amsterdam-dialog-background-color);
|
|
@@ -25,6 +26,8 @@
|
|
|
25
26
|
gap: var(--amsterdam-dialog-form-gap);
|
|
26
27
|
grid-template-rows: auto 1fr auto;
|
|
27
28
|
max-block-size: var(--amsterdam-dialog-form-max-block-size);
|
|
29
|
+
|
|
30
|
+
// TODO Decide on these widths
|
|
28
31
|
padding-block: var(--amsterdam-dialog-form-padding-block);
|
|
29
32
|
padding-inline: var(--amsterdam-dialog-form-padding-inline);
|
|
30
33
|
}
|
|
@@ -35,7 +38,6 @@
|
|
|
35
38
|
max-block-size: 100%; /* safari */
|
|
36
39
|
overflow-y: auto;
|
|
37
40
|
overscroll-behavior-y: contain;
|
|
38
|
-
padding-inline-end: var(--amsterdam-dialog-article-padding-inline-end);
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
.amsterdam-dialog__header {
|
|
@@ -52,15 +54,11 @@
|
|
|
52
54
|
color: var(--amsterdam-dialog-title-color);
|
|
53
55
|
flex: auto;
|
|
54
56
|
font-family: var(--amsterdam-dialog-title-font-family);
|
|
55
|
-
font-size: var(--amsterdam-dialog-title-
|
|
57
|
+
font-size: var(--amsterdam-dialog-title-font-size);
|
|
56
58
|
font-weight: var(--amsterdam-dialog-title-font-weight);
|
|
57
|
-
line-height: var(--amsterdam-dialog-title-
|
|
58
|
-
|
|
59
|
-
.amsterdam-theme--compact & {
|
|
60
|
-
font-size: var(--amsterdam-dialog-title-compact-font-size);
|
|
61
|
-
line-height: var(--amsterdam-dialog-title-compact-line-height);
|
|
62
|
-
}
|
|
59
|
+
line-height: var(--amsterdam-dialog-title-line-height);
|
|
63
60
|
|
|
61
|
+
@include hyphenation;
|
|
64
62
|
@include reset;
|
|
65
63
|
}
|
|
66
64
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- @license CC0-1.0 -->
|
|
2
|
+
|
|
3
|
+
# Fieldset
|
|
4
|
+
|
|
5
|
+
A component to group related form inputs.
|
|
6
|
+
|
|
7
|
+
## Guidelines
|
|
8
|
+
|
|
9
|
+
- Use Fieldset when you need to show a relationship between multiple form inputs. For example, you may need to group a set of text inputs into a single fieldset when asking for an address.
|
|
10
|
+
- When grouping radio inputs, use `role="radiogroup"` on Fieldset to have this grouping explicitly announced as a radio group. Fieldset has a default role of `group`.
|
|
11
|
+
|
|
12
|
+
## Relevant WCAG Requirements
|
|
13
|
+
|
|
14
|
+
- [WCAG 1.3.5](https://www.w3.org/WAI/WCAG22/Understanding/identify-input-purpose.html): Fieldset labels the purpose of a group of inputs.
|
|
15
|
+
|
|
16
|
+
## References
|
|
17
|
+
|
|
18
|
+
- [Providing a description for groups of form controls using fieldset and legend elements](https://www.w3.org/WAI/WCAG22/Techniques/html/H71)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../common/hyphenation";
|
|
7
|
+
|
|
8
|
+
@mixin reset {
|
|
9
|
+
border: none;
|
|
10
|
+
margin-inline: 0;
|
|
11
|
+
padding-block: 0;
|
|
12
|
+
padding-inline: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.amsterdam-fieldset {
|
|
16
|
+
@include reset;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@mixin legend-reset {
|
|
20
|
+
padding-inline: 0;
|
|
21
|
+
-webkit-text-size-adjust: 100%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.amsterdam-fieldset__legend {
|
|
25
|
+
color: var(--amsterdam-fieldset-legend-color);
|
|
26
|
+
font-family: var(--amsterdam-fieldset-legend-font-family);
|
|
27
|
+
font-size: var(--amsterdam-fieldset-legend-font-size);
|
|
28
|
+
font-weight: var(--amsterdam-fieldset-legend-font-weight);
|
|
29
|
+
line-height: var(--amsterdam-fieldset-legend-line-height);
|
|
30
|
+
margin-block-end: 1rem; /* Because of a bug in Chrome we can’t use display grid or flex for this gap */
|
|
31
|
+
|
|
32
|
+
@include hyphenation;
|
|
33
|
+
@include legend-reset;
|
|
34
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
@import "../../common/hyphenation";
|
|
7
|
+
|
|
6
8
|
@mixin reset {
|
|
7
9
|
-webkit-text-size-adjust: 100%;
|
|
8
10
|
}
|
|
@@ -10,14 +12,10 @@
|
|
|
10
12
|
.amsterdam-form-label {
|
|
11
13
|
color: var(--amsterdam-form-label-color);
|
|
12
14
|
font-family: var(--amsterdam-form-label-font-family);
|
|
13
|
-
font-size: var(--amsterdam-form-label-
|
|
15
|
+
font-size: var(--amsterdam-form-label-font-size);
|
|
14
16
|
font-weight: var(--amsterdam-form-label-font-weight);
|
|
15
|
-
line-height: var(--amsterdam-form-label-
|
|
17
|
+
line-height: var(--amsterdam-form-label-line-height);
|
|
16
18
|
|
|
19
|
+
@include hyphenation;
|
|
17
20
|
@include reset;
|
|
18
|
-
|
|
19
|
-
.amsterdam-theme--compact & {
|
|
20
|
-
font-size: var(--amsterdam-form-label-compact-font-size);
|
|
21
|
-
line-height: var(--amsterdam-form-label-compact-line-height);
|
|
22
|
-
}
|
|
23
21
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../common/size";
|
|
7
|
+
|
|
8
|
+
[class|="amsterdam-gap-"] {
|
|
9
|
+
display: grid !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@each $size in map-keys($amsterdam-sizes) {
|
|
13
|
+
.amsterdam-gap--#{$size} {
|
|
14
|
+
gap: var(--amsterdam-gap-#{$size}) !important;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- @license CC0-1.0 -->
|
|
2
|
+
|
|
1
3
|
# Grid
|
|
2
4
|
|
|
3
5
|
Divides the screen into columns to align the elements of a page.
|
|
@@ -5,9 +7,9 @@ Divides the screen into columns to align the elements of a page.
|
|
|
5
7
|
## Usage
|
|
6
8
|
|
|
7
9
|
Every page should use the grid as the foundation for its layout.
|
|
8
|
-
It is placed directly within the [Screen](
|
|
10
|
+
It is placed directly within the [Screen](/docs/components-layout-screen--docs).
|
|
9
11
|
|
|
10
|
-
A [Footer](
|
|
12
|
+
A [Footer](/docs/components-containers-footer--docs) and a [Spotlight](/docs/components-containers-spotlight--docs) are slightly wider than the grid.
|
|
11
13
|
You close one instance of the grid before these components.
|
|
12
14
|
Inside and optionally after them, you start a new one.
|
|
13
15
|
Multiple instances of the grid component are possible on a page, but the columns of all grids must align precisely.
|
|
@@ -17,4 +19,4 @@ A cell often spans multiple columns of the grid.
|
|
|
17
19
|
|
|
18
20
|
## Design
|
|
19
21
|
|
|
20
|
-
The [design choices](
|
|
22
|
+
The [design choices](/docs/docs-design-guidelines-grid--docs) are described in the design guidelines.
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import "../../common/breakpoint";
|
|
7
7
|
|
|
8
8
|
.amsterdam-grid {
|
|
9
|
-
|
|
10
|
-
--amsterdam-grid-padding-inline: var(--amsterdam-grid-spacious-padding-inline);
|
|
11
|
-
|
|
9
|
+
column-gap: var(--amsterdam-grid-column-gap);
|
|
12
10
|
display: grid;
|
|
13
|
-
gap: var(--amsterdam-grid-gap);
|
|
14
11
|
grid-template-columns: repeat(var(--amsterdam-grid-column-count), 1fr);
|
|
15
12
|
padding-inline: var(--amsterdam-grid-padding-inline);
|
|
13
|
+
row-gap: var(--amsterdam-grid-row-gap-md);
|
|
16
14
|
|
|
17
15
|
@media screen and (min-width: $amsterdam-breakpoint-medium) {
|
|
18
16
|
grid-template-columns: repeat(var(--amsterdam-grid-medium-column-count), 1fr);
|
|
@@ -23,57 +21,52 @@
|
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
.amsterdam-grid--compact {
|
|
27
|
-
--amsterdam-grid-gap: var(--amsterdam-grid-compact-gap);
|
|
28
|
-
--amsterdam-grid-padding-inline: var(--amsterdam-grid-compact-padding-inline);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
24
|
.amsterdam-grid--gap-vertical--none {
|
|
32
25
|
row-gap: initial;
|
|
33
26
|
}
|
|
34
27
|
|
|
35
28
|
.amsterdam-grid--gap-vertical--small {
|
|
36
|
-
row-gap:
|
|
29
|
+
row-gap: var(--amsterdam-grid-row-gap-sm);
|
|
37
30
|
}
|
|
38
31
|
|
|
39
32
|
.amsterdam-grid--gap-vertical--large {
|
|
40
|
-
row-gap:
|
|
33
|
+
row-gap: var(--amsterdam-grid-row-gap-lg);
|
|
41
34
|
}
|
|
42
35
|
|
|
43
36
|
.amsterdam-grid--padding-bottom--small {
|
|
44
|
-
padding-block-end:
|
|
37
|
+
padding-block-end: var(--amsterdam-grid-padding-block-sm);
|
|
45
38
|
}
|
|
46
39
|
|
|
47
40
|
.amsterdam-grid--padding-bottom--medium {
|
|
48
|
-
padding-block-end: var(--amsterdam-grid-
|
|
41
|
+
padding-block-end: var(--amsterdam-grid-padding-block-md);
|
|
49
42
|
}
|
|
50
43
|
|
|
51
44
|
.amsterdam-grid--padding-bottom--large {
|
|
52
|
-
padding-block-end:
|
|
45
|
+
padding-block-end: var(--amsterdam-grid-padding-block-lg);
|
|
53
46
|
}
|
|
54
47
|
|
|
55
48
|
.amsterdam-grid--padding-top--small {
|
|
56
|
-
padding-block-start:
|
|
49
|
+
padding-block-start: var(--amsterdam-grid-padding-block-sm);
|
|
57
50
|
}
|
|
58
51
|
|
|
59
52
|
.amsterdam-grid--padding-top--medium {
|
|
60
|
-
padding-block-start: var(--amsterdam-grid-
|
|
53
|
+
padding-block-start: var(--amsterdam-grid-padding-block-md);
|
|
61
54
|
}
|
|
62
55
|
|
|
63
56
|
.amsterdam-grid--padding-top--large {
|
|
64
|
-
padding-block-start:
|
|
57
|
+
padding-block-start: var(--amsterdam-grid-padding-block-lg);
|
|
65
58
|
}
|
|
66
59
|
|
|
67
60
|
.amsterdam-grid--padding-vertical--small {
|
|
68
|
-
padding-block:
|
|
61
|
+
padding-block: var(--amsterdam-grid-padding-block-sm);
|
|
69
62
|
}
|
|
70
63
|
|
|
71
64
|
.amsterdam-grid--padding-vertical--medium {
|
|
72
|
-
padding-block: var(--amsterdam-grid-
|
|
65
|
+
padding-block: var(--amsterdam-grid-padding-block-md);
|
|
73
66
|
}
|
|
74
67
|
|
|
75
68
|
.amsterdam-grid--padding-vertical--large {
|
|
76
|
-
padding-block:
|
|
69
|
+
padding-block: var(--amsterdam-grid-padding-block-lg);
|
|
77
70
|
}
|
|
78
71
|
|
|
79
72
|
.amsterdam-grid__cell--span-all {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license EUPL-1.2+
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import "../../common/breakpoint";
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
align-items: center;
|
|
10
10
|
display: flex;
|
|
11
11
|
flex-wrap: wrap;
|
|
12
|
-
padding-block:
|
|
12
|
+
padding-block: var(--amsterdam-header-padding-block);
|
|
13
13
|
row-gap: 1.5rem;
|
|
14
14
|
|
|
15
15
|
@media screen and (min-width: $amsterdam-breakpoint-wide) {
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.amsterdam-header__logo {
|
|
21
|
+
.amsterdam-header__logo-link {
|
|
22
22
|
flex: none;
|
|
23
|
-
outline-offset: var(--amsterdam-link-outline-offset);
|
|
23
|
+
outline-offset: var(--amsterdam-header-logo-link-outline-offset);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.amsterdam-header__links {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
.amsterdam-header__menu {
|
|
40
40
|
flex: 1;
|
|
41
|
-
padding-inline-start: var(--amsterdam-page-menu-column-gap);
|
|
41
|
+
padding-inline-start: var(--amsterdam-page-menu-column-gap); // TODO Don’t use tokens of another component
|
|
42
42
|
text-align: end;
|
|
43
43
|
|
|
44
44
|
@media screen and (min-width: $amsterdam-breakpoint-wide) {
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
border: 0;
|
|
76
76
|
color: var(--amsterdam-page-menu-item-color);
|
|
77
77
|
font-family: var(--amsterdam-page-menu-item-font-family);
|
|
78
|
-
font-size: var(--amsterdam-page-menu-item-
|
|
78
|
+
font-size: var(--amsterdam-page-menu-item-font-size);
|
|
79
79
|
font-weight: var(--amsterdam-page-menu-item-font-weight);
|
|
80
|
-
line-height: var(--amsterdam-page-menu-item-
|
|
80
|
+
line-height: var(--amsterdam-page-menu-item-line-height);
|
|
81
81
|
margin-block: 0;
|
|
82
82
|
padding-inline: 0 30px;
|
|
83
83
|
text-align: center;
|