@amsterdam/design-system-css 1.0.0 → 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 +53 -0
- package/README.md +2 -2
- 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 +5 -1
- 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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@use "../../common/breakpoint" as *;
|
|
7
|
+
@use "../../common/hyphenation" as *;
|
|
8
|
+
@use "../../common/text-rendering" as *;
|
|
9
|
+
|
|
10
|
+
@mixin reset-ul {
|
|
11
|
+
list-style: none;
|
|
12
|
+
margin-block: 0;
|
|
13
|
+
padding-inline-start: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ams-menu {
|
|
17
|
+
font-family: var(--ams-menu-font-family);
|
|
18
|
+
font-size: var(--ams-menu-font-size);
|
|
19
|
+
font-weight: var(--ams-menu-font-weight);
|
|
20
|
+
line-height: var(--ams-menu-line-height);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ams-menu__list {
|
|
24
|
+
display: grid;
|
|
25
|
+
|
|
26
|
+
@include hyphenation;
|
|
27
|
+
@include text-rendering;
|
|
28
|
+
@include reset-ul;
|
|
29
|
+
|
|
30
|
+
@media screen and (min-width: $ams-breakpoint-wide) {
|
|
31
|
+
gap: var(--ams-menu-list-gap);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.ams-menu__link {
|
|
36
|
+
align-items: flex-start;
|
|
37
|
+
color: var(--ams-menu-link-color);
|
|
38
|
+
display: flex;
|
|
39
|
+
gap: var(--ams-menu-link-gap);
|
|
40
|
+
outline-offset: var(--ams-menu-link-outline-offset);
|
|
41
|
+
padding-block: var(--ams-menu-link-padding-block);
|
|
42
|
+
padding-inline: var(--ams-menu-link-padding-inline);
|
|
43
|
+
text-decoration-line: var(--ams-menu-link-text-decoration-line);
|
|
44
|
+
text-decoration-thickness: var(--ams-menu-link-text-decoration-thickness);
|
|
45
|
+
text-underline-offset: var(--ams-menu-link-text-underline-offset);
|
|
46
|
+
|
|
47
|
+
&:hover {
|
|
48
|
+
color: var(--ams-menu-link-hover-color);
|
|
49
|
+
text-decoration-line: var(--ams-menu-link-hover-text-decoration-line);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.ams-menu__icon {
|
|
53
|
+
align-self: initial;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@media screen and (min-width: $ams-breakpoint-wide) {
|
|
57
|
+
align-items: center;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
gap: 0;
|
|
60
|
+
|
|
61
|
+
.ams-menu__icon {
|
|
62
|
+
--ams-icon-font-size: var(--ams-icon-heading-3-font-size);
|
|
63
|
+
--ams-icon-line-height: var(--ams-icon-heading-3-line-height);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ams-menu__link--contrast {
|
|
69
|
+
color: var(--ams-menu-link-contrast-color);
|
|
70
|
+
|
|
71
|
+
&:hover {
|
|
72
|
+
color: var(--ams-menu-link-contrast-hover-color);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.ams-menu__link--inverse {
|
|
77
|
+
color: var(--ams-menu-link-inverse-color);
|
|
78
|
+
|
|
79
|
+
&:hover {
|
|
80
|
+
color: var(--ams-menu-link-inverse-hover-color);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -45,14 +45,19 @@
|
|
|
45
45
|
line-height: var(--ams-ordered-list-small-line-height);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
:is(.ams-ordered-list, .ams-unordered-list)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
:is(.ams-ordered-list, .ams-unordered-list) {
|
|
49
|
+
.ams-ordered-list {
|
|
50
|
+
gap: var(--ams-ordered-list-ordered-list-gap);
|
|
51
|
+
list-style-type: var(--ams-ordered-list-ordered-list-list-style-type);
|
|
52
|
+
padding-block-start: var(--ams-ordered-list-ordered-list-padding-block-start);
|
|
53
|
+
|
|
54
|
+
.ams-ordered-list__item {
|
|
55
|
+
margin-inline-start: var(--ams-ordered-list-ordered-list-item-margin-inline-start);
|
|
56
|
+
padding-inline-start: var(--ams-ordered-list-ordered-list-item-padding-inline-start);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
53
59
|
|
|
54
|
-
.ams-ordered-
|
|
55
|
-
|
|
56
|
-
padding-inline-start: var(--ams-ordered-list-ordered-list-item-padding-inline-start);
|
|
60
|
+
> :not(:last-child) > .ams-ordered-list {
|
|
61
|
+
padding-block-end: var(--ams-ordered-list-ordered-list-padding-block-end);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
@@ -19,5 +19,5 @@ Sets the background colour and its maximum width, and is horizontally centered.
|
|
|
19
19
|
|
|
20
20
|
## Design
|
|
21
21
|
|
|
22
|
-
The Page container sets the maximum width for a website of the City of Amsterdam, which is
|
|
22
|
+
The Page container sets the maximum width for a website of the City of Amsterdam, which is 1440 pixels.
|
|
23
23
|
It horizontally centres both itself and its content and sets a white background.
|
|
@@ -7,19 +7,20 @@ Provides service information at the bottom of every page.
|
|
|
7
7
|
## Guidelines
|
|
8
8
|
|
|
9
9
|
- The Page Footer must be used on all websites and applications for the City of Amsterdam.
|
|
10
|
+
- It must be the same on every page.
|
|
10
11
|
- It usually consists of two sections: a full-width blue `PageFooter.Spotlight` and a `PageFooter.Menu` below it.
|
|
11
|
-
- `Footer.Menu` is preceded by a visually hidden `Heading` for accessibility.
|
|
12
12
|
- A Page Footer containing only a `PageFooter.Menu` can be sufficient for applications.
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
|
|
13
|
+
- Set [the inverse colour](?path=/docs/brand-design-tokens-colour--docs#pairing-foreground-with-background-colours) on all text and links in the Spotlight area.
|
|
14
|
+
- If the Page Footer contains [Headings](https://designsystem.amsterdam/?path=/docs/components-text-heading--docs), give them level 2 and a size of ‘level-3’.
|
|
15
|
+
A visually hidden heading to group them is not necessary – the footer’s landmark provides enough guidance.
|
|
16
|
+
|
|
17
|
+
## Content
|
|
16
18
|
|
|
17
19
|
The top section offers space for various practical links:
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
1. The first column focuses on contact information.
|
|
22
|
+
The information is as specific as possible and tailored to the respective website or page (e.g., including a chat option if available).
|
|
23
|
+
1. The second column contains links to relevant (online) sites or sources.
|
|
24
|
+
1. The third column refers to newsletters, events, social media, etc.
|
|
23
25
|
|
|
24
|
-
The menu
|
|
25
|
-
Contact details should not go here.
|
|
26
|
+
The menu is for links to privacy policies, cookie statements, and other information about the website itself.
|
|
@@ -19,6 +19,7 @@ Includes the name of the application if it is not the general website.
|
|
|
19
19
|
- Labels should be short to help the inline menu fit on a single line whenever possible.
|
|
20
20
|
- An icon can be added to the end of a link to make its destination easier to guess.
|
|
21
21
|
- For websites with a brand name that feature the standard Amsterdam logo, only the emblem is shown on narrow screens.
|
|
22
|
+
- If the collapsible menu contains [Headings](https://designsystem.amsterdam/?path=/docs/components-text-heading--docs), give them level 2 and a size of ‘level-3’.
|
|
22
23
|
|
|
23
24
|
## References
|
|
24
25
|
|
|
@@ -1,19 +1,3 @@
|
|
|
1
1
|
<!-- @license CC0-1.0 -->
|
|
2
2
|
|
|
3
3
|
# Page Heading
|
|
4
|
-
|
|
5
|
-
The page heading component is a prominent text at the beginning of a page, immediately after the Page Header.
|
|
6
|
-
Use this component for a name, title, or motto.
|
|
7
|
-
|
|
8
|
-
## Guidelines
|
|
9
|
-
|
|
10
|
-
- Use this component to capture the user’s attention.
|
|
11
|
-
- Only use this component once per page, typically only on the homepage.
|
|
12
|
-
- Avoid using it if you need to display long pieces of text; the text should be short and precise.
|
|
13
|
-
|
|
14
|
-
## Relevant WCAG requirements
|
|
15
|
-
|
|
16
|
-
The page heading component is a variant of a heading level 1 with a distinct style.
|
|
17
|
-
When using this component, ensure that the heading hierarchy of the page remains logical.
|
|
18
|
-
|
|
19
|
-
For this component, the same WCAG requirements apply as for [the heading component](/docs/components-text-heading--docs).
|
|
@@ -37,9 +37,14 @@
|
|
|
37
37
|
inline-size: 100%;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
@mixin reset-placeholder {
|
|
41
|
+
opacity: 100%; // Reset lower opacity set by Firefox
|
|
42
|
+
}
|
|
43
|
+
|
|
40
44
|
.ams-password-input::placeholder {
|
|
41
45
|
color: var(--ams-password-input-placeholder-color);
|
|
42
|
-
|
|
46
|
+
|
|
47
|
+
@include reset-placeholder;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
.ams-password-input:disabled {
|
|
@@ -47,16 +52,17 @@
|
|
|
47
52
|
cursor: var(--ams-password-input-disabled-cursor);
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
.ams-password-input:invalid,
|
|
51
|
-
.ams-password-input[aria-invalid="true"] {
|
|
55
|
+
.ams-password-input:not(:disabled):invalid,
|
|
56
|
+
.ams-password-input:not(:disabled)[aria-invalid="true"] {
|
|
52
57
|
border-color: var(--ams-password-input-invalid-border-color);
|
|
53
|
-
|
|
54
|
-
&:hover {
|
|
55
|
-
border-color: var(--ams-password-input-invalid-hover-border-color);
|
|
56
|
-
box-shadow: var(--ams-password-input-invalid-hover-box-shadow);
|
|
57
|
-
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.ams-password-input:not(:disabled):hover {
|
|
61
61
|
box-shadow: var(--ams-password-input-hover-box-shadow);
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
.ams-password-input:not(:disabled):invalid:hover,
|
|
65
|
+
.ams-password-input:not(:disabled)[aria-invalid="true"]:hover {
|
|
66
|
+
border-color: var(--ams-password-input-invalid-hover-border-color);
|
|
67
|
+
box-shadow: var(--ams-password-input-invalid-hover-box-shadow);
|
|
68
|
+
}
|
|
@@ -14,5 +14,7 @@ Allows users to select one option from a list.
|
|
|
14
14
|
However you should do this with extreme caution as it can reinforce bias.
|
|
15
15
|
If in doubt, order alphabetically.
|
|
16
16
|
- Labels should be concise. Try to keep labels shorter than 4 words.
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
- Do not check a radio button initially.
|
|
18
|
+
This prevents users from leaving the question unanswered.
|
|
19
|
+
It also increases the chance of submitting a wrong answer.
|
|
20
|
+
- Use a [Checkbox](/docs/components-forms-checkbox--docs) when a user can select more than 1 option from a list.
|
|
@@ -37,28 +37,32 @@
|
|
|
37
37
|
@include text-rendering;
|
|
38
38
|
@include reset-input;
|
|
39
39
|
|
|
40
|
-
&:hover {
|
|
41
|
-
box-shadow: var(--ams-search-field-input-hover-box-shadow);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
40
|
&:focus {
|
|
45
41
|
z-index: 1; // Make sure the focus outline isn’t cut off by the adjacent button
|
|
46
42
|
}
|
|
47
43
|
}
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
border-color: var(--ams-search-field-input-invalid-border-color);
|
|
52
|
-
|
|
53
|
-
&:hover {
|
|
54
|
-
border-color: var(--ams-search-field-input-invalid-hover-border-color);
|
|
55
|
-
box-shadow: var(--ams-search-field-input-invalid-hover-box-shadow);
|
|
56
|
-
}
|
|
45
|
+
@mixin reset-placeholder {
|
|
46
|
+
opacity: 100%; // Reset lower opacity set by Firefox
|
|
57
47
|
}
|
|
58
48
|
|
|
59
49
|
.ams-search-field__input::placeholder {
|
|
60
50
|
color: var(--ams-search-field-input-placeholder-color);
|
|
61
|
-
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ams-search-field__input:not(:disabled):invalid,
|
|
54
|
+
.ams-search-field__input:not(:disabled)[aria-invalid="true"] {
|
|
55
|
+
border-color: var(--ams-search-field-input-invalid-border-color);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ams-search-field__input:not(:disabled):hover {
|
|
59
|
+
box-shadow: var(--ams-search-field-input-hover-box-shadow);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.ams-search-field__input:not(:disabled):invalid:hover,
|
|
63
|
+
.ams-search-field__input:not(:disabled)[aria-invalid="true"]:hover {
|
|
64
|
+
border-color: var(--ams-search-field-input-invalid-hover-border-color);
|
|
65
|
+
box-shadow: var(--ams-search-field-input-invalid-hover-box-shadow);
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
.ams-search-field__input::-webkit-search-cancel-button {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
font-family: var(--ams-select-font-family);
|
|
18
18
|
font-size: var(--ams-select-font-size);
|
|
19
19
|
font-weight: var(--ams-select-font-weight);
|
|
20
|
-
inline-size: 100%;
|
|
21
20
|
line-height: var(--ams-select-line-height);
|
|
21
|
+
max-inline-size: 100%;
|
|
22
22
|
outline-offset: var(--ams-select-outline-offset);
|
|
23
23
|
padding-block: var(--ams-select-padding-block);
|
|
24
24
|
padding-inline: var(--ams-select-padding-inline);
|
|
@@ -34,33 +34,32 @@
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
.ams-select:invalid,
|
|
38
|
-
.ams-select[aria-invalid="true"] {
|
|
39
|
-
border-color: var(--ams-select-invalid-border-color);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
37
|
.ams-select:disabled {
|
|
43
38
|
color: var(--ams-select-disabled-color);
|
|
44
39
|
cursor: var(--ams-select-disabled-cursor);
|
|
45
40
|
|
|
46
41
|
&:not([multiple]) {
|
|
47
42
|
background-image: var(--ams-select-disabled-background-image);
|
|
48
|
-
|
|
49
|
-
/* stylelint-disable no-descending-specificity */
|
|
50
|
-
&:hover {
|
|
51
|
-
background-image: var(--ams-select-hover-background-image);
|
|
52
|
-
}
|
|
53
43
|
}
|
|
54
44
|
}
|
|
55
45
|
|
|
56
|
-
.ams-select:invalid
|
|
57
|
-
.ams-select[aria-invalid="true"]
|
|
58
|
-
border-color: var(--ams-select-invalid-
|
|
59
|
-
box-shadow: var(--ams-select-invalid-hover-box-shadow);
|
|
46
|
+
.ams-select:not(:disabled):invalid,
|
|
47
|
+
.ams-select:not(:disabled)[aria-invalid="true"] {
|
|
48
|
+
border-color: var(--ams-select-invalid-border-color);
|
|
60
49
|
}
|
|
61
50
|
|
|
62
51
|
.ams-select:not(:disabled):hover {
|
|
63
52
|
box-shadow: var(--ams-select-hover-box-shadow);
|
|
53
|
+
|
|
54
|
+
&:not([multiple]) {
|
|
55
|
+
background-image: var(--ams-select-hover-background-image);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ams-select:not(:disabled):invalid:hover,
|
|
60
|
+
.ams-select:not(:disabled)[aria-invalid="true"]:hover {
|
|
61
|
+
border-color: var(--ams-select-invalid-hover-border-color);
|
|
62
|
+
box-shadow: var(--ams-select-invalid-hover-box-shadow);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
.ams-select__option:disabled {
|
|
@@ -13,9 +13,10 @@ After appearing, it pushes the rest of the page down.
|
|
|
13
13
|
## Guidelines
|
|
14
14
|
|
|
15
15
|
- Place the Skip Link as the first element in the [Page](/docs/components-containers-page--docs) container.
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Set `id="
|
|
16
|
+
- Direct the Skip Link to the main content area on the Page.
|
|
17
|
+
Typically, this is the `main` HTML element.
|
|
18
|
+
Repeated navigation blocks such as Breadcrumbs and back Links do not belong to the main content area.
|
|
19
|
+
- Set `id="inhoud"` on the `main` HTML element and then use `href="#inhoud"` on the Skip Link.
|
|
20
20
|
- Complex pages with multiple sections may benefit from more than one Skip Link.
|
|
21
|
+
If you need multiple words to describe a Skip Link target, use kebab case (`id="op-deze-manier"`).
|
|
21
22
|
- Skip Links are unnecessary on a simple page with only text and minimal navigation.
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
# Standalone Link
|
|
4
4
|
|
|
5
|
-
A navigation element that is
|
|
5
|
+
A navigation element that is separated from the text around it.
|
|
6
|
+
|
|
7
|
+
The Standalone Link has a chevron icon at the start to signify that it is a link.
|
|
8
|
+
This also makes it visually identical to a single link in a [Link List](/docs/components-navigation-link--docs).
|
|
9
|
+
As a result, pages can have sections with either one or several links used interchangeably; they look alike, and their semantics are correct.
|
|
6
10
|
|
|
7
11
|
## Guidelines
|
|
8
12
|
|
|
9
|
-
- Use a Standalone Link for
|
|
10
|
-
-
|
|
13
|
+
- Use a Standalone Link for a single link on its own line of text.
|
|
14
|
+
- Within running body text, use a regular Link instead.
|
|
11
15
|
- For additional guidelines, refer to the [Link](/docs/components-navigation-link--docs) component.
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
font-weight: var(--ams-standalone-link-font-weight);
|
|
16
16
|
line-height: var(--ams-standalone-link-line-height);
|
|
17
17
|
outline-offset: var(--ams-standalone-link-outline-offset);
|
|
18
|
+
text-decoration-line: var(--ams-standalone-link-text-decoration-line);
|
|
18
19
|
text-decoration-thickness: var(--ams-standalone-link-text-decoration-thickness);
|
|
19
20
|
text-underline-offset: var(--ams-standalone-link-text-underline-offset);
|
|
20
21
|
|
|
@@ -23,8 +24,7 @@
|
|
|
23
24
|
|
|
24
25
|
&:hover {
|
|
25
26
|
color: var(--ams-standalone-link-hover-color);
|
|
26
|
-
text-decoration-
|
|
27
|
-
text-underline-offset: var(--ams-standalone-link-hover-text-underline-offset);
|
|
27
|
+
text-decoration-line: var(--ams-standalone-link-hover-text-decoration-line);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -44,10 +44,7 @@
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/* stylelint-disable-next-line block-no-empty */
|
|
47
48
|
.ams-standalone-link--with-icon {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
&:hover {
|
|
51
|
-
text-decoration-line: var(--ams-standalone-link-with-icon-hover-text-decoration-line);
|
|
52
|
-
}
|
|
49
|
+
/* This class name is deprecated. */
|
|
53
50
|
}
|
|
@@ -7,7 +7,6 @@ Table is used to display simple information that does not need to be filtered or
|
|
|
7
7
|
|
|
8
8
|
## Guidelines
|
|
9
9
|
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Instead, use [Grid](/docs/components-layout-grid--docs).
|
|
10
|
+
- Add a caption to help users find, navigate and understand the table.
|
|
11
|
+
- Include a [Heading](https://designsystem.amsterdam/?path=/docs/components-text-heading--docs) in the Table Caption,
|
|
12
|
+
unless the table is in a [Figure](http://designsystem.amsterdam/?path=/docs/components-media-figure--docs) which has a Figure Caption.
|
|
@@ -35,9 +35,14 @@
|
|
|
35
35
|
@include reset-textarea;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
@mixin reset-placeholder {
|
|
39
|
+
opacity: 100%; // Reset lower opacity set by Firefox
|
|
40
|
+
}
|
|
41
|
+
|
|
38
42
|
.ams-text-area::placeholder {
|
|
39
43
|
color: var(--ams-text-area-placeholder-color);
|
|
40
|
-
|
|
44
|
+
|
|
45
|
+
@include reset-placeholder;
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
.ams-text-area:disabled {
|
|
@@ -45,20 +50,21 @@
|
|
|
45
50
|
cursor: var(--ams-text-area-disabled-cursor);
|
|
46
51
|
}
|
|
47
52
|
|
|
48
|
-
.ams-text-area:invalid,
|
|
49
|
-
.ams-text-area[aria-invalid="true"] {
|
|
53
|
+
.ams-text-area:not(:disabled):invalid,
|
|
54
|
+
.ams-text-area:not(:disabled)[aria-invalid="true"] {
|
|
50
55
|
border-color: var(--ams-text-area-invalid-border-color);
|
|
51
|
-
|
|
52
|
-
&:hover {
|
|
53
|
-
border-color: var(--ams-text-area-invalid-hover-border-color);
|
|
54
|
-
box-shadow: var(--ams-text-area-invalid-hover-box-shadow);
|
|
55
|
-
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
.ams-text-area:not(:disabled):hover {
|
|
59
59
|
box-shadow: var(--ams-text-area-hover-box-shadow);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
.ams-text-area:not(:disabled):invalid:hover,
|
|
63
|
+
.ams-text-area:not(:disabled)[aria-invalid="true"]:hover {
|
|
64
|
+
border-color: var(--ams-text-area-invalid-hover-border-color);
|
|
65
|
+
box-shadow: var(--ams-text-area-invalid-hover-box-shadow);
|
|
66
|
+
}
|
|
67
|
+
|
|
62
68
|
.ams-text-area--resize-none {
|
|
63
69
|
resize: none;
|
|
64
70
|
}
|
|
@@ -37,9 +37,14 @@
|
|
|
37
37
|
inline-size: 100%;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
@mixin reset-placeholder {
|
|
41
|
+
opacity: 100%; // Reset lower opacity set by Firefox
|
|
42
|
+
}
|
|
43
|
+
|
|
40
44
|
.ams-text-input::placeholder {
|
|
41
45
|
color: var(--ams-text-input-placeholder-color);
|
|
42
|
-
|
|
46
|
+
|
|
47
|
+
@include reset-placeholder;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
.ams-text-input:disabled {
|
|
@@ -47,16 +52,17 @@
|
|
|
47
52
|
cursor: var(--ams-text-input-disabled-cursor);
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
.ams-text-input:invalid,
|
|
51
|
-
.ams-text-input[aria-invalid="true"] {
|
|
55
|
+
.ams-text-input:not(:disabled):invalid,
|
|
56
|
+
.ams-text-input:not(:disabled)[aria-invalid="true"] {
|
|
52
57
|
border-color: var(--ams-text-input-invalid-border-color);
|
|
53
|
-
|
|
54
|
-
&:hover {
|
|
55
|
-
border-color: var(--ams-text-input-invalid-hover-border-color);
|
|
56
|
-
box-shadow: var(--ams-text-input-invalid-hover-box-shadow);
|
|
57
|
-
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.ams-text-input:not(:disabled):hover {
|
|
61
61
|
box-shadow: var(--ams-text-input-hover-box-shadow);
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
.ams-text-input:not(:disabled):invalid:hover,
|
|
65
|
+
.ams-text-input:not(:disabled)[aria-invalid="true"]:hover {
|
|
66
|
+
border-color: var(--ams-text-input-invalid-hover-border-color);
|
|
67
|
+
box-shadow: var(--ams-text-input-invalid-hover-box-shadow);
|
|
68
|
+
}
|
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
border-radius: 0; // Reset rounded borders on iOS devices
|
|
12
12
|
inline-size: auto; // Reset inline size of 10em set by Android devices
|
|
13
13
|
margin-block: 0;
|
|
14
|
+
|
|
15
|
+
&::-webkit-datetime-edit,
|
|
16
|
+
&::-webkit-datetime-edit-ampm-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-second-field {
|
|
22
|
+
padding-block: 0; // Override value of 1px in UA stylesheet
|
|
23
|
+
}
|
|
14
24
|
}
|
|
15
25
|
|
|
16
26
|
.ams-time-input {
|
|
@@ -62,16 +72,17 @@
|
|
|
62
72
|
visibility: visible;
|
|
63
73
|
}
|
|
64
74
|
|
|
65
|
-
.ams-time-input:invalid,
|
|
66
|
-
.ams-time-input[aria-invalid="true"] {
|
|
75
|
+
.ams-time-input:not(:disabled):invalid,
|
|
76
|
+
.ams-time-input:not(:disabled)[aria-invalid="true"] {
|
|
67
77
|
border-color: var(--ams-time-input-invalid-border-color);
|
|
68
|
-
|
|
69
|
-
&:hover {
|
|
70
|
-
border-color: var(--ams-time-input-invalid-hover-border-color);
|
|
71
|
-
box-shadow: var(--ams-time-input-invalid-hover-box-shadow);
|
|
72
|
-
}
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
.ams-time-input:not(:disabled):hover {
|
|
76
81
|
box-shadow: var(--ams-time-input-hover-box-shadow);
|
|
77
82
|
}
|
|
83
|
+
|
|
84
|
+
.ams-time-input:not(:disabled):invalid:hover,
|
|
85
|
+
.ams-time-input:not(:disabled)[aria-invalid="true"]:hover {
|
|
86
|
+
border-color: var(--ams-time-input-invalid-hover-border-color);
|
|
87
|
+
box-shadow: var(--ams-time-input-invalid-hover-box-shadow);
|
|
88
|
+
}
|
|
@@ -45,14 +45,19 @@
|
|
|
45
45
|
line-height: var(--ams-unordered-list-small-line-height);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
:is(.ams-ordered-list, .ams-unordered-list)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
:is(.ams-ordered-list, .ams-unordered-list) {
|
|
49
|
+
.ams-unordered-list {
|
|
50
|
+
gap: var(--ams-unordered-list-unordered-list-gap);
|
|
51
|
+
list-style-type: var(--ams-unordered-list-unordered-list-list-style-type);
|
|
52
|
+
padding-block-start: var(--ams-unordered-list-unordered-list-padding-block-start);
|
|
53
|
+
|
|
54
|
+
.ams-unordered-list__item {
|
|
55
|
+
margin-inline-start: var(--ams-unordered-list-unordered-list-item-margin-inline-start);
|
|
56
|
+
padding-inline-start: var(--ams-unordered-list-unordered-list-item-padding-inline-start);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
53
59
|
|
|
54
|
-
.ams-unordered-
|
|
55
|
-
|
|
56
|
-
padding-inline-start: var(--ams-unordered-list-unordered-list-item-padding-inline-start);
|
|
60
|
+
> :not(:last-child) > .ams-unordered-list {
|
|
61
|
+
padding-block-end: var(--ams-unordered-list-unordered-list-padding-block-end);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/components/page-heading/page-heading.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAYA,kBACE,sBACA,kBACA,mBACA,oCACA,gDACA,4CACA,gDACA,gDACA,4CCfA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBFJA,eAmBF,2BACE","file":"page-heading.css"}
|