@amsterdam/design-system-css 0.1.4 → 0.1.5
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/README.md +1 -1
- package/dist/accordion/accordion.css +1 -69
- package/dist/accordion/accordion.css.map +1 -1
- package/dist/blockquote/blockquote.css +1 -0
- package/dist/blockquote/blockquote.css.map +1 -0
- package/dist/breadcrumb/breadcrumb.css +1 -0
- package/dist/breadcrumb/breadcrumb.css.map +1 -0
- package/dist/button/button.css +1 -706
- package/dist/button/button.css.map +1 -1
- package/dist/checkbox/checkbox.css +1 -0
- package/dist/checkbox/checkbox.css.map +1 -0
- package/dist/footer/footer.css +1 -0
- package/dist/footer/footer.css.map +1 -0
- package/dist/form-label/form-label.css +1 -26
- package/dist/form-label/form-label.css.map +1 -1
- package/dist/grid/grid-cell.css +1 -0
- package/dist/grid/grid-cell.css.map +1 -0
- package/dist/grid/page-grid.css +1 -0
- package/dist/grid/page-grid.css.map +1 -0
- package/dist/heading/heading.css +1 -64
- package/dist/heading/heading.css.map +1 -1
- package/dist/icon/icon.css +1 -122
- package/dist/icon/icon.css.map +1 -1
- package/dist/index.css +1 -0
- package/dist/index.css.map +1 -0
- package/dist/link/link.css +1 -97
- package/dist/link/link.css.map +1 -1
- package/dist/ordered-list/ordered-list.css +1 -0
- package/dist/ordered-list/ordered-list.css.map +1 -0
- package/dist/page-heading/page-heading.css +1 -0
- package/dist/page-heading/page-heading.css.map +1 -0
- package/dist/page-menu/page-menu.css +1 -0
- package/dist/page-menu/page-menu.css.map +1 -0
- package/dist/paragraph/paragraph.css +1 -49
- package/dist/paragraph/paragraph.css.map +1 -1
- package/dist/testula/testula.css +9 -0
- package/dist/testula/testula.css.map +1 -0
- package/dist/top-task-link/top-task-link.css +1 -0
- package/dist/top-task-link/top-task-link.css.map +1 -0
- package/dist/unordered-list/unordered-list.css +1 -47
- package/dist/unordered-list/unordered-list.css.map +1 -1
- package/dist/visually-hidden/visually-hidden.css +1 -0
- package/dist/visually-hidden/visually-hidden.css.map +1 -0
- package/package.json +7 -6
- package/src/accordion/README.md +25 -2
- package/src/accordion/accordion.scss +2 -2
- package/src/blockquote/README.md +14 -0
- package/src/blockquote/blockquote.scss +41 -0
- package/src/breadcrumb/README.md +15 -0
- package/src/breadcrumb/breadcrumb.scss +68 -0
- package/src/button/button.scss +36 -4
- package/src/checkbox/README.md +1 -0
- package/src/checkbox/checkbox.scss +225 -0
- package/src/footer/README.md +11 -0
- package/src/footer/footer-css.md +11 -0
- package/src/footer/footer.scss +29 -0
- package/src/form-label/form-label.scss +2 -2
- package/src/grid/README.md +11 -0
- package/src/grid/grid-cell.scss +18 -0
- package/src/grid/page-grid.scss +19 -0
- package/src/heading/heading.scss +18 -15
- package/src/icon/icon.scss +10 -10
- package/src/index.scss +19 -0
- package/src/link/README.md +28 -12
- package/src/link/link.scss +61 -36
- package/src/ordered-list/README.md +7 -0
- package/src/ordered-list/ordered-list.scss +53 -0
- package/src/page-heading/README.md +16 -0
- package/src/page-heading/page-heading.scss +31 -0
- package/src/page-menu/README.md +15 -0
- package/src/page-menu/page-menu.scss +77 -0
- package/src/paragraph/paragraph.scss +12 -8
- package/src/top-task-link/README.md +13 -0
- package/src/top-task-link/top-task-link.scss +55 -0
- package/src/unordered-list/README.md +5 -13
- package/src/unordered-list/unordered-list.scss +26 -17
- package/src/visually-hidden/README.md +5 -0
- package/src/visually-hidden/visually-hidden.scss +17 -0
- package/dist/list/list.css +0 -12
- package/dist/list/list.css.map +0 -1
- package/src/list/list.scss +0 -16
|
@@ -1,49 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* @license EUPL-1.2+
|
|
3
|
-
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @license EUPL-1.2+
|
|
7
|
-
* Copyright (c) 2023 Gemeente Amsterdam
|
|
8
|
-
*/
|
|
9
|
-
/*
|
|
10
|
-
The breakpoint is 854px / 16 = 53.375rems
|
|
11
|
-
https://developer.mozilla.org/en-US/docs/Web/CSS/@media#accessibility_concerns
|
|
12
|
-
*/
|
|
13
|
-
.amsterdam-paragraph {
|
|
14
|
-
color: var(--amsterdam-paragraph-color);
|
|
15
|
-
font-family: var(--amsterdam-paragraph-font-family);
|
|
16
|
-
font-size: var(--amsterdam-paragraph-font-size-narrow);
|
|
17
|
-
font-weight: var(--amsterdam-paragraph-font-weight);
|
|
18
|
-
line-height: var(--amsterdam-paragraph-line-height);
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
margin-block: 0;
|
|
21
|
-
-webkit-text-size-adjust: 100%;
|
|
22
|
-
}
|
|
23
|
-
@media screen and (width > 53.375rem) {
|
|
24
|
-
.amsterdam-paragraph {
|
|
25
|
-
font-size: var(--amsterdam-paragraph-font-size-wide);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.amsterdam-paragraph-small {
|
|
30
|
-
font-size: var(--amsterdam-paragraph-small-font-size-narrow);
|
|
31
|
-
line-height: var(--amsterdam-paragraph-small-line-height);
|
|
32
|
-
}
|
|
33
|
-
@media screen and (width > 53.375rem) {
|
|
34
|
-
.amsterdam-paragraph-small {
|
|
35
|
-
font-size: var(--amsterdam-paragraph-small-font-size-wide);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.amsterdam-paragraph-large {
|
|
40
|
-
font-size: var(--amsterdam-paragraph-large-font-size-narrow);
|
|
41
|
-
line-height: var(--amsterdam-paragraph-large-line-height);
|
|
42
|
-
}
|
|
43
|
-
@media screen and (width > 53.375rem) {
|
|
44
|
-
.amsterdam-paragraph-large {
|
|
45
|
-
font-size: var(--amsterdam-paragraph-large-font-size-wide);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/*# sourceMappingURL=paragraph.css.map */
|
|
1
|
+
.amsterdam-paragraph{color:var(--amsterdam-paragraph-color);font-family:var(--amsterdam-paragraph-font-family);font-size:var(--amsterdam-paragraph-narrow-font-size);font-weight:var(--amsterdam-paragraph-font-weight);line-height:var(--amsterdam-paragraph-line-height);box-sizing:border-box;margin-block:0;-webkit-text-size-adjust:100%}@media screen and (width > 53.375rem){.amsterdam-paragraph{font-size:var(--amsterdam-paragraph-wide-font-size)}}.amsterdam-paragraph--small{font-size:var(--amsterdam-paragraph-small-narrow-font-size);line-height:var(--amsterdam-paragraph-small-line-height)}@media screen and (width > 53.375rem){.amsterdam-paragraph--small{font-size:var(--amsterdam-paragraph-small-wide-font-size)}}.amsterdam-paragraph--large{font-size:var(--amsterdam-paragraph-large-narrow-font-size);line-height:var(--amsterdam-paragraph-large-line-height)}@media screen and (width > 53.375rem){.amsterdam-paragraph--large{font-size:var(--amsterdam-paragraph-large-wide-font-size)}}.amsterdam-paragraph--inverse-color{color:var(--amsterdam-paragraph-inverse-color)}/*# sourceMappingURL=paragraph.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/paragraph/paragraph.scss"
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/paragraph/paragraph.scss"],"names":[],"mappings":"AAaA,qBACE,uCACA,mDACA,sDACA,mDACA,mDAVA,sBACA,eACA,8BAUA,sCAPF,qBAQI,qDAMJ,4BACE,4DACA,yDAEA,sCAJF,4BAKI,2DAIJ,4BACE,4DACA,yDAEA,sCAJF,4BAKI,2DAIJ,oCACE","file":"paragraph.css"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/testula/testula.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAKA;AACE","file":"testula.css"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.amsterdam-top-task-link{break-inside:avoid;display:flex;flex-direction:column;gap:.5rem;outline-offset:var(--amsterdam-top-task-link-outline-offset);text-decoration:none}.amsterdam-top-task-link__label{color:var(--amsterdam-top-task-link-label-color);font-family:var(--amsterdam-top-task-link-label-font-family);font-size:var(--amsterdam-top-task-link-label-narrow-font-size);font-weight:var(--amsterdam-top-task-link-label-font-weight);line-height:var(--amsterdam-top-task-link-label-line-height);box-sizing:border-box;-webkit-text-size-adjust:100%}@media screen and (width > 53.375rem){.amsterdam-top-task-link__label{font-size:var(--amsterdam-top-task-link-label-wide-font-size)}}.amsterdam-top-task-link:hover .amsterdam-top-task-link__label{color:var(--amsterdam-top-task-link-label-hover-color);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.5rem}.amsterdam-top-task-link__description{color:var(--amsterdam-top-task-link-description-color);font-family:var(--amsterdam-top-task-link-description-font-family);font-size:var(--amsterdam-top-task-link-description-narrow-font-size);font-weight:var(--amsterdam-top-task-link-description-font-weight);line-height:var(--amsterdam-top-task-link-description-line-height);box-sizing:border-box;-webkit-text-size-adjust:100%}@media screen and (width > 53.375rem){.amsterdam-top-task-link__description{font-size:var(--amsterdam-top-task-link-description-wide-font-size)}}/*# sourceMappingURL=top-task-link.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/top-task-link/top-task-link.scss"],"names":[],"mappings":"AAOA,yBACE,mBACA,aACA,sBACA,UACA,6DACA,qBAQF,gCACE,iDACA,6DACA,gEACA,6DACA,6DATA,sBACA,8BAUA,sCAPF,gCAQI,+DAMJ,+DACE,uDACA,0BACA,8BACA,4BAGF,sCACE,uDACA,mEACA,sEACA,mEACA,mEA9BA,sBACA,8BA+BA,sCAPF,sCAQI","file":"top-task-link.css"}
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* @license EUPL-1.2+
|
|
3
|
-
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @license EUPL-1.2+
|
|
7
|
-
* Copyright (c) 2023 Gemeente Amsterdam
|
|
8
|
-
*/
|
|
9
|
-
/*
|
|
10
|
-
The breakpoint is 854px / 16 = 53.375rems
|
|
11
|
-
https://developer.mozilla.org/en-US/docs/Web/CSS/@media#accessibility_concerns
|
|
12
|
-
*/
|
|
13
|
-
.amsterdam-unordered-list {
|
|
14
|
-
color: var(--amsterdam-unordered-list-color);
|
|
15
|
-
display: flex;
|
|
16
|
-
flex-direction: column;
|
|
17
|
-
font-family: var(--amsterdam-unordered-list-font-family);
|
|
18
|
-
font-size: var(--amsterdam-unordered-list-font-size-narrow);
|
|
19
|
-
font-weight: var(--amsterdam-unordered-list-font-weight);
|
|
20
|
-
gap: var(--amsterdam-unordered-list-gap);
|
|
21
|
-
line-height: var(--amsterdam-unordered-list-line-height);
|
|
22
|
-
list-style: var(--amsterdam-unordered-list-list-style);
|
|
23
|
-
box-sizing: border-box;
|
|
24
|
-
margin-block: 0;
|
|
25
|
-
-webkit-text-size-adjust: 100%;
|
|
26
|
-
}
|
|
27
|
-
@media screen and (width > 53.375rem) {
|
|
28
|
-
.amsterdam-unordered-list {
|
|
29
|
-
font-size: var(--amsterdam-unordered-list-font-size-wide);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.amsterdam-unordered-list__item {
|
|
34
|
-
padding-inline: var(--amsterdam-unordered-list-item-padding-inline);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.amsterdam-unordered-list .amsterdam-unordered-list {
|
|
38
|
-
list-style-type: var(--amsterdam-unordered-list-unordered-list-list-style-type);
|
|
39
|
-
padding-block: var(--amsterdam-unordered-list-unordered-list-padding-block);
|
|
40
|
-
padding-inline: var(--amsterdam-unordered-list-unordered-list-padding-inline);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.amsterdam-unordered-list .amsterdam-unordered-list .amsterdam-unordered-list__item {
|
|
44
|
-
padding-inline: var(--amsterdam-unordered-list-unordered-list-item-padding-inline);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/*# sourceMappingURL=unordered-list.css.map */
|
|
1
|
+
.amsterdam-unordered-list{box-sizing:border-box;list-style:none;margin-block:0;padding-inline-start:0;-webkit-text-size-adjust:100%;display:grid;gap:var(--amsterdam-unordered-list-gap)}.amsterdam-unordered-list:not(.amsterdam-unordered-list--no-markers){color:var(--amsterdam-unordered-list-color);font-family:var(--amsterdam-unordered-list-font-family);font-size:var(--amsterdam-unordered-list-narrow-font-size);font-weight:var(--amsterdam-unordered-list-font-weight);line-height:var(--amsterdam-unordered-list-line-height);list-style-type:var(--amsterdam-unordered-list-list-style-type)}@media screen and (width > 53.375rem){.amsterdam-unordered-list:not(.amsterdam-unordered-list--no-markers){font-size:var(--amsterdam-unordered-list-wide-font-size)}}.amsterdam-unordered-list:not(.amsterdam-unordered-list--no-markers) .amsterdam-unordered-list__item{margin-inline-start:var(--amsterdam-unordered-list-item-margin-inline-start);padding-inline-start:var(--amsterdam-unordered-list-item-padding-inline-start)}:is(.amsterdam-ordered-list,.amsterdam-unordered-list) .amsterdam-unordered-list{list-style-type:var(--amsterdam-unordered-list-unordered-list-list-style-type)}:is(.amsterdam-ordered-list,.amsterdam-unordered-list) .amsterdam-unordered-list .amsterdam-unordered-list__item{margin-inline-start:var(--amsterdam-unordered-list-unordered-list-item-margin-inline-start);padding-inline-start:var(--amsterdam-unordered-list-unordered-list-item-padding-inline-start)}/*# sourceMappingURL=unordered-list.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/unordered-list/unordered-list.scss"
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/unordered-list/unordered-list.scss"],"names":[],"mappings":"AAiBA,0BARE,sBACA,gBACA,eACA,uBACA,8BAOA,aACA,wCAIF,qEACE,4CACA,wDACA,2DACA,wDACA,wDACA,gEAEA,sCARF,qEASI,0DAIF,qGACE,6EACA,+EAKJ,iFACE,+EAEA,iHACE,4FACA","file":"unordered-list.css"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.amsterdam-visually-hidden{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);height:1px;margin-block:-1px;margin-inline:-1px;overflow:hidden;padding-block:0;padding-inline:0;position:absolute;width:1px}/*# sourceMappingURL=visually-hidden.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/visually-hidden/visually-hidden.scss"],"names":[],"mappings":"AAKA,2BACE,8BACA,qBACA,WACA,kBACA,mBACA,gBACA,gBACA,iBACA,kBACA","file":"visually-hidden.css"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.5",
|
|
3
3
|
"author": "Community for NL Design System",
|
|
4
4
|
"description": "CSS files for components for the City of Amsterdam based on the NL Design System architecture",
|
|
5
5
|
"license": "EUPL-1.2",
|
|
@@ -14,15 +14,16 @@
|
|
|
14
14
|
"directory": "packages/css"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "sass src/:dist/",
|
|
17
|
+
"build": "sass src/:dist/ --style=compressed",
|
|
18
|
+
"build:watch": "sass src/:dist/ --watch",
|
|
18
19
|
"clean": "rimraf dist/"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
21
|
-
"@amsterdam/design-system-tokens": "0.1.
|
|
22
|
-
"sass": "1.
|
|
22
|
+
"@amsterdam/design-system-tokens": "0.1.4",
|
|
23
|
+
"sass": "1.64.0"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"@utrecht/components": "1.0.0-alpha.
|
|
26
|
+
"@utrecht/components": "1.0.0-alpha.493"
|
|
26
27
|
},
|
|
27
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "50bfbf67c103288ed6ba6713a6537252f0c25246"
|
|
28
29
|
}
|
package/src/accordion/README.md
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
# Accordion
|
|
2
2
|
|
|
3
|
-
Het accordion component is een klikbare (verticaal gestapelde) lijst van koppen om bijbehorende inhoud te verbergen of te
|
|
3
|
+
Het accordion component is een klikbare (verticaal gestapelde) lijst van koppen om bijbehorende inhoud te verbergen of te tonen. Met een accordion toon je inhoud op een progressieve manier aan gebruikers.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Richtlijnen
|
|
6
|
+
|
|
7
|
+
- Gebruik een accordion op een volle pagina met zowel essentiële als niet-essentiële inhoud. Door niet-essentiële inhoud te verbergen, komen gebruikers sneller bij de essentiële inhoud.
|
|
8
|
+
- Gebruik een accordion niet om te veel essentiële inhoud op 1 pagina te voorkomen. Herschrijf de pagina compacter, verdeel de inhoud over meerdere pagina's of gebruik het (nog te maken) inhoudsopgave-component in plaats van een accordion voor dat doel. Verberg essentiële informatie niet in een accordion.
|
|
9
|
+
- Een accordion bestaat uit meerdere accordionsecties. Gebruik minimaal 3 en maximaal 10 secties onder elkaar.
|
|
10
|
+
- Het is belangrijk dat accordionsecties duidelijke koppen hebben, omdat de gebruiker de verborgen inhoud niet kan "scannen" om relevante informatie te vinden.
|
|
11
|
+
- De inhoud verbergen heeft als nadeel dat "zoeken in pagina" geen resultaten oplevert voor de inhoud die verborgen is. Als je weet op welke zoekterm de gebruiker heeft gezocht om op de pagina met accordion te komen, dan kun je de secties die de zoekterm bevatten automatisch uitklappen.
|
|
12
|
+
- De inhoud van de accordeon kan opmaak bevatten (bijvoorbeeld headings, lijsten, links en knoppen).
|
|
13
|
+
|
|
14
|
+
Je kunt door een accordion navigeren met je toetsenbord:
|
|
6
15
|
|
|
7
16
|
| key | element |
|
|
8
17
|
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -14,6 +23,20 @@ Een accordion bestaat uit meerdere accordionsecties. Gebruik minimaal 3 en maxim
|
|
|
14
23
|
| Home | Als een accordionsectie focus heeft: ga naar de eerste sectie |
|
|
15
24
|
| End | Als een accordionsectie focus heeft: ga naar de laatste sectie |
|
|
16
25
|
|
|
26
|
+
## Relevante WCAG eisen
|
|
27
|
+
|
|
28
|
+
De WCAG eisen voor het Button component en het Heading component gelden ook voor de accordion header.
|
|
29
|
+
|
|
30
|
+
Let extra op voor deze onderdelen:
|
|
31
|
+
|
|
32
|
+
- [WCAG eis 1.3.1](https://www.w3.org/TR/WCAG21/#info-and-relationships): de _heading level_ van de accordionsecties is afhankelijk van waar in de pagina de accordion is geplaatst, dit kan per pagina verschillen.
|
|
33
|
+
- [WCAG eis 1.3.6](https://www.w3.org/TR/WCAG21/#identify-purpose): gebruik `aria-controls` voor de button, en gebruik een `region` landmark voor de _expandable region_ (gebruik daarvoor het HTML-element `<section>`)
|
|
34
|
+
- [WCAG eis 1.4.3](https://www.w3.org/TR/WCAG21/#contrast-minimum): contrast tussen tekst en achtergrond en tussen icoon en achtergrond is voldoende in alle varianten, alle interactieve statussen en alle mogelijke combinaties.
|
|
35
|
+
- [WCAG eis 3.2.1](https://www.w3.org/TR/WCAG21/#on-focus): maak de accordion niet automatisch _expanded_ als de button focus krijgt.
|
|
36
|
+
- [WCAG eis 2.1.3](https://www.w3.org/TR/WCAG21/#keyboard-no-exception): ondersteun ook de optionele toetsen: `Down Arrow`, `Up Arrow`, `Home` en `End`. `Space` moet de button activeren, niet de pagina scrollen (gebruik `keypressEvt.preventDefault()`).
|
|
37
|
+
- [WCAG eis 2.4.6](https://www.w3.org/TR/WCAG21/#headings-and-labels): de tekst die zowel wordt gebruikt als heading en als label voor de button moet duidelijk zijn, omdat de inhoud niet altijd zichtbaar is.
|
|
38
|
+
- [WCAG eis 2.4.10](https://www.w3.org/TR/WCAG21/#section-headings): accordions die onderdeel vormen van de lopende tekst moeten section headings gebruiken.
|
|
39
|
+
|
|
17
40
|
## Referenties
|
|
18
41
|
|
|
19
42
|
- [W3C - Accordion Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/)
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
cursor: pointer;
|
|
19
19
|
display: flex;
|
|
20
20
|
font-family: var(--amsterdam-accordion-button-font-family);
|
|
21
|
-
font-size: var(--amsterdam-accordion-button-font-size
|
|
21
|
+
font-size: var(--amsterdam-accordion-button-narrow-font-size);
|
|
22
22
|
font-weight: var(--amsterdam-accordion-button-font-weight);
|
|
23
23
|
justify-content: space-between;
|
|
24
24
|
line-height: var(--amsterdam-accordion-button-line-height);
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
width: 100%;
|
|
28
28
|
|
|
29
29
|
@media screen and (width > $amsterdam-breakpoint) {
|
|
30
|
-
font-size: var(--amsterdam-accordion-button-font-size
|
|
30
|
+
font-size: var(--amsterdam-accordion-button-wide-font-size);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
&:focus {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Blockquote
|
|
2
|
+
|
|
3
|
+
De blockquote (in het Nederlands: citaat) is wordt gebruikt om uitspraken te accentueren. Een citaat is anders vormgegeven dan de broodtekst, zodat deze opvalt.
|
|
4
|
+
|
|
5
|
+
Let op: dit component voegt automatisch aanhalingstekens aan de tekst toe, dat hoef je niet zelf te doen.
|
|
6
|
+
|
|
7
|
+
## Richtlijnen
|
|
8
|
+
|
|
9
|
+
- Bij een citaat haal je letterlijk een schriftelijke of mondelinge tekst van iemand aan.
|
|
10
|
+
- Een citaat heeft een breedte van een halve of hele tekstkolom.
|
|
11
|
+
|
|
12
|
+
## Relevante WCAG eisen
|
|
13
|
+
|
|
14
|
+
- [WCAG 3.1.2](https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts.html): wanneer het citaat in een andere taal is geschreven dan de pagina, dan moet het `lang` attribuut gebruikt worden om de taal duidelijk te maken.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../utils/breakpoint";
|
|
7
|
+
|
|
8
|
+
@mixin reset {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
break-after: avoid;
|
|
11
|
+
break-inside: avoid;
|
|
12
|
+
margin-block: 0;
|
|
13
|
+
margin-inline: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.amsterdam-blockquote {
|
|
17
|
+
color: var(--amsterdam-blockquote-color);
|
|
18
|
+
font-family: var(--amsterdam-blockquote-font-family);
|
|
19
|
+
font-size: var(--amsterdam-blockquote-narrow-font-size);
|
|
20
|
+
font-weight: var(--amsterdam-blockquote-font-weight);
|
|
21
|
+
line-height: var(--amsterdam-blockquote-line-height);
|
|
22
|
+
quotes: "“" "”";
|
|
23
|
+
|
|
24
|
+
&::before {
|
|
25
|
+
content: open-quote;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&::after {
|
|
29
|
+
content: close-quote;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@media screen and (width > $amsterdam-breakpoint) {
|
|
33
|
+
font-size: var(--amsterdam-blockquote-wide-font-size);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@include reset;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.amsterdam-blockquote--inverse-color {
|
|
40
|
+
color: var(--amsterdam-blockquote-inverse-color);
|
|
41
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Breadcrumb
|
|
2
|
+
|
|
3
|
+
De breadcrumb (in het Nederlands: kruimelpad) is een secundair navigatiepatroon dat een gebruiker helpt de structuur tussen niveaus in de website tot de huidige pagina te begrijpen. Gebruikers kunnen het gebruiken om door de structuur te navigeren.
|
|
4
|
+
|
|
5
|
+
## Richtlijnen
|
|
6
|
+
|
|
7
|
+
### Zo gebruiken
|
|
8
|
+
|
|
9
|
+
Gebruik het kruimelpad alleen als het functioneel iets toevoegt voor de gebruiker en als de structuur ‘statisch’ is.
|
|
10
|
+
|
|
11
|
+
### Dit vermijden
|
|
12
|
+
|
|
13
|
+
Het kruimelpad wordt niet ingezet op een formulierpagina. Het leidt af van de taak van de gebruiker of kan per ongeluk als Progress Indicator gezien worden.
|
|
14
|
+
|
|
15
|
+
Het is een secundair navigatiepatroon. Het mag nooit de hoofdnavigatie vervangen.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../utils/breakpoint";
|
|
7
|
+
|
|
8
|
+
@mixin reset {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
margin-block: 0;
|
|
11
|
+
padding-inline: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.amsterdam-breadcrumb {
|
|
15
|
+
font-family: var(--amsterdam-breadcrumb-font-family, inherit);
|
|
16
|
+
font-size: var(--amsterdam-breadcrumb-narrow-font-size);
|
|
17
|
+
line-height: var(--amsterdam-breadcrumb-line-height);
|
|
18
|
+
|
|
19
|
+
@media screen and (width > $amsterdam-breakpoint) {
|
|
20
|
+
font-size: var(--amsterdam-breadcrumb-wide-font-size);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.amsterdam-breadcrumb__list {
|
|
25
|
+
break-after: avoid;
|
|
26
|
+
break-inside: avoid;
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-wrap: wrap;
|
|
29
|
+
gap: 0.5rem;
|
|
30
|
+
list-style: none;
|
|
31
|
+
|
|
32
|
+
@include reset;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.amsterdam-breadcrumb-item {
|
|
36
|
+
align-items: center;
|
|
37
|
+
display: flex;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.amsterdam-breadcrumb-item:not(:last-child)::after {
|
|
41
|
+
background-color: var(--amsterdam-breadcrumb-color);
|
|
42
|
+
clip-path: path("M 4.725,16 3.275,14.545 9.815,8 3.275,1.455 4.725,0 l 8,8 z");
|
|
43
|
+
content: "";
|
|
44
|
+
display: inline-block;
|
|
45
|
+
height: 16px;
|
|
46
|
+
margin-inline-start: 1rem;
|
|
47
|
+
width: 16px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.amsterdam-breadcrumb-item__link {
|
|
51
|
+
color: var(--amsterdam-breadcrumb-color);
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
outline-offset: var(--amsterdam-breadcrumb-item-link-outline-offset);
|
|
54
|
+
text-decoration: none;
|
|
55
|
+
|
|
56
|
+
&::first-letter {
|
|
57
|
+
text-transform: capitalize;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&:focus,
|
|
61
|
+
&:hover,
|
|
62
|
+
&:active {
|
|
63
|
+
color: var(--amsterdam-breadcrumb-item-link-hover-color);
|
|
64
|
+
text-decoration: underline;
|
|
65
|
+
text-decoration-thickness: 2px;
|
|
66
|
+
text-underline-offset: 3px;
|
|
67
|
+
}
|
|
68
|
+
}
|
package/src/button/button.scss
CHANGED
|
@@ -7,13 +7,45 @@
|
|
|
7
7
|
@import "../../utils/breakpoint";
|
|
8
8
|
|
|
9
9
|
.amsterdam-button {
|
|
10
|
-
font-size: var(--amsterdam-button-font-size
|
|
10
|
+
font-size: var(--amsterdam-button-narrow-font-size);
|
|
11
11
|
|
|
12
12
|
@media screen and (width > $amsterdam-breakpoint) {
|
|
13
|
-
font-size: var(--amsterdam-button-font-size
|
|
13
|
+
font-size: var(--amsterdam-button-wide-font-size);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
.amsterdam-button--secondary
|
|
18
|
-
box-shadow: var(--amsterdam-button-secondary-
|
|
17
|
+
.amsterdam-button--secondary {
|
|
18
|
+
box-shadow: var(--amsterdam-button-secondary-box-shadow);
|
|
19
|
+
|
|
20
|
+
&:disabled,
|
|
21
|
+
[aria-disabled="true"] {
|
|
22
|
+
box-shadow: var(--amsterdam-button-secondary-disabled-box-shadow);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
26
|
+
box-shadow: var(--amsterdam-button-secondary-hover-box-shadow);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Specificity hack to be able to style secondary button focus state
|
|
31
|
+
// This isn't currently possible with the Utrecht component
|
|
32
|
+
// We should really pull this component in our own repo...
|
|
33
|
+
.amsterdam-button--secondary.amsterdam-button--secondary {
|
|
34
|
+
&:focus {
|
|
35
|
+
color: var(--amsterdam-button-secondary-focus-color);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.amsterdam-button--secondary:focus:not(:disabled, [aria-disabled="true"]) {
|
|
40
|
+
box-shadow: var(--amsterdam-button-secondary-focus-box-shadow);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.amsterdam-button--tertiary {
|
|
44
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
45
|
+
box-shadow: var(--amsterdam-button-tertiary-hover-box-shadow);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.amsterdam-button--tertiary:focus:not(:disabled, [aria-disabled="true"]) {
|
|
50
|
+
box-shadow: var(--amsterdam-button-tertiary-focus-box-shadow);
|
|
19
51
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Checkbox
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../utils/breakpoint";
|
|
7
|
+
|
|
8
|
+
.amsterdam-checkbox__input {
|
|
9
|
+
appearance: none;
|
|
10
|
+
margin-block: 0;
|
|
11
|
+
margin-inline: 0;
|
|
12
|
+
opacity: 0%; /* to hide native input field in older iOS */
|
|
13
|
+
|
|
14
|
+
&:focus-visible + label {
|
|
15
|
+
outline: auto;
|
|
16
|
+
outline-offset: var(--amsterdam-checkbox-outline-offset);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.amsterdam-checkbox__checkmark {
|
|
21
|
+
align-items: center;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-shrink: 0;
|
|
24
|
+
height: calc(var(--amsterdam-checkbox-checkmark-narrow-size) * var(--amsterdam-checkbox-checkmark-multiplier));
|
|
25
|
+
width: 1.5rem;
|
|
26
|
+
|
|
27
|
+
&::after {
|
|
28
|
+
border-color: var(--amsterdam-checkbox-checkmark-border-color);
|
|
29
|
+
border-style: solid;
|
|
30
|
+
border-width: 2px;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
content: "";
|
|
33
|
+
height: 1.5rem;
|
|
34
|
+
width: 100%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@media screen and (width > $amsterdam-breakpoint) {
|
|
38
|
+
height: calc(var(--amsterdam-checkbox-checkmark-wide-size) * var(--amsterdam-checkbox-checkmark-multiplier));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.amsterdam-checkbox__label {
|
|
43
|
+
color: var(--amsterdam-checkbox-color);
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
display: inline-flex;
|
|
46
|
+
font-family: var(--amsterdam-checkbox-font-family);
|
|
47
|
+
font-size: var(--amsterdam-checkbox-narrow-font-size);
|
|
48
|
+
font-weight: 400;
|
|
49
|
+
gap: 0.5rem;
|
|
50
|
+
line-height: var(--amsterdam-checkbox-line-height);
|
|
51
|
+
|
|
52
|
+
&:hover {
|
|
53
|
+
color: var(--amsterdam-checkbox-hover-color);
|
|
54
|
+
text-decoration: underline;
|
|
55
|
+
text-decoration-thickness: 2px;
|
|
56
|
+
text-underline-offset: 3px;
|
|
57
|
+
|
|
58
|
+
.amsterdam-checkbox__checkmark::after {
|
|
59
|
+
border-color: var(--amsterdam-checkbox-checkmark-hover-border-color);
|
|
60
|
+
border-width: 3px;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@media screen and (width > $amsterdam-breakpoint) {
|
|
65
|
+
font-size: var(--amsterdam-checkbox-wide-font-size);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Default checked
|
|
70
|
+
.amsterdam-checkbox__input:checked {
|
|
71
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
72
|
+
background-color: var(--amsterdam-checkbox-checkmark-checked-background-color);
|
|
73
|
+
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%20fill%3D%22%23ffffff%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M12.216%2027.016%200%2014.168l2.91-2.77%209.346%209.837L29.129%204%2032%206.8z%22%2F%3E%3C%2Fsvg%3E");
|
|
74
|
+
background-position: center;
|
|
75
|
+
background-repeat: no-repeat;
|
|
76
|
+
background-size: 1rem;
|
|
77
|
+
border: none;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Default indeterminate
|
|
82
|
+
.amsterdam-checkbox__input:indeterminate {
|
|
83
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
84
|
+
background-color: var(--amsterdam-checkbox-checkmark-indeterminate-background-color);
|
|
85
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0id2hpdGUiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMTMuNzE0aDMydjRIMHoiLz48L3N2Zz4=");
|
|
86
|
+
background-position: center;
|
|
87
|
+
background-repeat: no-repeat;
|
|
88
|
+
background-size: 1rem;
|
|
89
|
+
border: none;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Invalid unchecked
|
|
94
|
+
.amsterdam-checkbox__input:invalid,
|
|
95
|
+
.amsterdam-checkbox__input[aria-invalid="true"] {
|
|
96
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
97
|
+
border-color: var(--amsterdam-checkbox-checkmark-invalid-border-color);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Disabled unchecked
|
|
102
|
+
.amsterdam-checkbox__input:disabled {
|
|
103
|
+
+ .amsterdam-checkbox__label {
|
|
104
|
+
color: var(--amsterdam-checkbox-disabled-color);
|
|
105
|
+
cursor: not-allowed;
|
|
106
|
+
|
|
107
|
+
.amsterdam-checkbox__checkmark::after {
|
|
108
|
+
border-color: var(--amsterdam-checkbox-checkmark-disabled-border-color);
|
|
109
|
+
border-width: 2px;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Invalid checked
|
|
115
|
+
.amsterdam-checkbox__input:invalid:checked,
|
|
116
|
+
.amsterdam-checkbox__input[aria-invalid="true"]:checked {
|
|
117
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
118
|
+
background-color: var(--amsterdam-checkbox-checkmark-invalid-checked-background-color);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Invalid indeterminate
|
|
123
|
+
.amsterdam-checkbox__input:invalid:indeterminate,
|
|
124
|
+
.amsterdam-checkbox__input[aria-invalid="true"]:indeterminate {
|
|
125
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
126
|
+
background-color: var(--amsterdam-checkbox-checkmark-invalid-indeterminate-background-color);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Disabled label
|
|
131
|
+
.amsterdam-checkbox__input:disabled + .amsterdam-checkbox__label:hover {
|
|
132
|
+
text-decoration: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Disabled checked
|
|
136
|
+
.amsterdam-checkbox__input:disabled:checked {
|
|
137
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
138
|
+
background-color: var(--amsterdam-checkbox-checkmark-disabled-checked-background-color);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Disabled indeterminate
|
|
143
|
+
.amsterdam-checkbox__input:disabled:indeterminate {
|
|
144
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
145
|
+
background-color: var(--amsterdam-checkbox-checkmark-disabled-indeterminate-background-color);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Disabled invalid unchecked
|
|
150
|
+
.amsterdam-checkbox__input:invalid:disabled,
|
|
151
|
+
.amsterdam-checkbox__input[aria-invalid="true"]:disabled {
|
|
152
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
153
|
+
// TODO: currently disabled invalid gets the same styling as disabled. This should get its own styling.
|
|
154
|
+
border-color: var(--amsterdam-checkbox-checkmark-disabled-border-color);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// HOVER STATES
|
|
159
|
+
|
|
160
|
+
// Invalid unchecked hover
|
|
161
|
+
:is(.amsterdam-checkbox__input:invalid, .amsterdam-checkbox__input[aria-invalid="true"])
|
|
162
|
+
+ .amsterdam-checkbox__label:hover
|
|
163
|
+
.amsterdam-checkbox__checkmark::after {
|
|
164
|
+
// TODO: this should be the (currently non-existent) dark red hover color
|
|
165
|
+
border-color: var(--amsterdam-checkbox-checkmark-invalid-hover-border-color);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Default checked hover
|
|
169
|
+
.amsterdam-checkbox__input:checked + .amsterdam-checkbox__label:hover .amsterdam-checkbox__checkmark::after {
|
|
170
|
+
background-color: var(--amsterdam-checkbox-checkmark-checked-hover-background-color);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Default indeterminate hover
|
|
174
|
+
.amsterdam-checkbox__input:indeterminate + .amsterdam-checkbox__label:hover .amsterdam-checkbox__checkmark::after {
|
|
175
|
+
background-color: var(--amsterdam-checkbox-checkmark-indeterminate-hover-background-color);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Invalid checked hover
|
|
179
|
+
:is(.amsterdam-checkbox__input:invalid:checked, .amsterdam-checkbox__input[aria-invalid="true"]:checked)
|
|
180
|
+
+ .amsterdam-checkbox__label:hover
|
|
181
|
+
.amsterdam-checkbox__checkmark::after {
|
|
182
|
+
// TODO: this should be the (currently non-existent) dark red hover color
|
|
183
|
+
background-color: var(--amsterdam-checkbox-checkmark-invalid-checked-hover-background-color);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Invalid indeterminate hover
|
|
187
|
+
:is(.amsterdam-checkbox__input:invalid:indeterminate, .amsterdam-checkbox__input[aria-invalid="true"]:indeterminate)
|
|
188
|
+
+ .amsterdam-checkbox__label:hover
|
|
189
|
+
.amsterdam-checkbox__checkmark::after {
|
|
190
|
+
// TODO: this should be the (currently non-existent) dark red hover color
|
|
191
|
+
background-color: var(--amsterdam-checkbox-checkmark-invalid-indeterminate-hover-background-color);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Disabled checked hover
|
|
195
|
+
.amsterdam-checkbox__input:disabled:checked + .amsterdam-checkbox__label:hover .amsterdam-checkbox__checkmark::after {
|
|
196
|
+
background-color: var(--amsterdam-checkbox-checkmark-disabled-checked-hover-background-color);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Disabled indeterminate hover
|
|
200
|
+
.amsterdam-checkbox__input:disabled:indeterminate
|
|
201
|
+
+ .amsterdam-checkbox__label:hover
|
|
202
|
+
.amsterdam-checkbox__checkmark::after {
|
|
203
|
+
background-color: var(--amsterdam-checkbox-checkmark-disabled-indeterminate-hover-background-color);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Disabled invalid unchecked hover
|
|
207
|
+
:is(.amsterdam-checkbox__input:invalid:disabled, .amsterdam-checkbox__input[aria-invalid="true"]:disabled)
|
|
208
|
+
+ .amsterdam-checkbox__label:hover
|
|
209
|
+
.amsterdam-checkbox__checkmark::after {
|
|
210
|
+
// TODO: currently disabled invalid gets the same styling as disabled. This should get its own styling.
|
|
211
|
+
border-color: var(--amsterdam-checkbox-checkmark-disabled-border-color);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// DISABLED INVALID STATES
|
|
215
|
+
|
|
216
|
+
// Disabled invalid checked & indeterminate
|
|
217
|
+
.amsterdam-checkbox__input:invalid:disabled:checked,
|
|
218
|
+
.amsterdam-checkbox__input:invalid:disabled:indeterminate,
|
|
219
|
+
.amsterdam-checkbox__input[aria-invalid="true"]:disabled:checked,
|
|
220
|
+
.amsterdam-checkbox__input[aria-invalid="true"]:disabled:indeterminate {
|
|
221
|
+
+ .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
|
|
222
|
+
// TODO: currently disabled invalid gets the same styling as disabled. This should get its own styling.
|
|
223
|
+
background-color: var(--amsterdam-checkbox-checkmark-disabled-checked-background-color);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Footer
|
|
2
|
+
|
|
3
|
+
De footer (in het Nederlands: voettekst) sluit iedere webpagina af. De inhoud is service-informatie. Een gedeelte is voorgeschreven en een deel wordt ingevuld vanuit de doelstelling van de website.
|
|
4
|
+
|
|
5
|
+
## Richtlijnen
|
|
6
|
+
|
|
7
|
+
- De voettekst is verplicht, er staat er 1 op elke pagina.
|
|
8
|
+
- De eerste kolom richt zich op contactinformatie. De informatie is zo specifiek mogelijk gebonden aan de betreffende website of pagina (bijvoorbeeld een chatmogelijkheid indien aanwezig).
|
|
9
|
+
- De tweede kolom bevat links naar relevante (online) sites of bronnen.
|
|
10
|
+
- De derde kolom verwijst naar nieuwsbrieven, socials enz.
|
|
11
|
+
- Het laatste deel van de voettekst is bedoeld voor koppelingen naar privacy, cookieverklaring, uitleg over de website e.d. Het is niet bedoeld voor koppelingen naar bijvoorbeeld contactinformatie.
|