@amsterdam/design-system-css 0.1.7 → 0.1.8
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/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/aspect-ratio/aspect-ratio.css +1 -1
- package/dist/aspect-ratio/aspect-ratio.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/card/card.css +1 -0
- package/dist/card/card.css.map +1 -0
- package/dist/checkbox/checkbox.css +1 -1
- package/dist/checkbox/checkbox.css.map +1 -1
- package/dist/footer/footer.css +1 -1
- package/dist/footer/footer.css.map +1 -1
- package/dist/form-label/form-label.css +1 -1
- package/dist/form-label/form-label.css.map +1 -1
- package/dist/grid/grid-cell.css +1 -1
- package/dist/grid/grid-cell.css.map +1 -1
- package/dist/grid/grid.css +1 -0
- package/dist/grid/grid.css.map +1 -0
- package/dist/heading/heading.css +1 -1
- package/dist/heading/heading.css.map +1 -1
- package/dist/highlight/highlight.css +1 -0
- package/dist/highlight/highlight.css.map +1 -0
- package/dist/icon/icon.css +1 -1
- package/dist/icon/icon.css.map +1 -1
- package/dist/image/image.css +1 -0
- package/dist/image/image.css.map +1 -0
- 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/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 -0
- package/dist/pagination/pagination.css.map +1 -0
- package/dist/paragraph/paragraph.css +1 -1
- package/dist/paragraph/paragraph.css.map +1 -1
- package/dist/screen/screen.css +1 -0
- package/dist/screen/screen.css.map +1 -0
- package/dist/switch/switch.css +1 -0
- package/dist/switch/switch.css.map +1 -0
- 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/documentation/coding-conventions.md +35 -0
- package/package.json +5 -5
- package/src/accordion/README.md +1 -1
- package/src/accordion/accordion.scss +1 -1
- package/src/alert/alert.scss +1 -1
- package/src/aspect-ratio/README.md +8 -7
- package/src/aspect-ratio/aspect-ratio.scss +8 -4
- package/src/blockquote/blockquote.scss +1 -1
- package/src/breadcrumb/breadcrumb.scss +3 -4
- package/src/button/button.scss +4 -13
- package/src/card/README.md +12 -0
- package/src/card/card.scss +56 -0
- package/src/checkbox/README.md +1 -1
- package/src/checkbox/checkbox.scss +2 -2
- package/src/footer/footer.scss +0 -19
- package/src/form-label/form-label.scss +1 -1
- package/src/grid/README.grid-cell.md +14 -0
- package/src/grid/README.grid.md +17 -0
- package/src/grid/grid-cell.scss +31 -3
- package/src/grid/grid.scss +65 -0
- package/src/heading/heading.scss +4 -4
- package/src/highlight/README.md +15 -0
- package/src/highlight/highlight.scss +36 -0
- package/src/icon/icon.scss +10 -10
- package/src/image/README.md +18 -0
- package/src/image/image.scss +16 -0
- package/src/index.scss +7 -1
- package/src/link/link.scss +22 -36
- package/src/ordered-list/ordered-list.scss +1 -1
- package/src/page-heading/page-heading.scss +1 -1
- package/src/page-menu/page-menu.scss +2 -2
- package/src/pagination/README.md +16 -0
- package/src/pagination/pagination.scss +75 -0
- package/src/paragraph/paragraph.scss +3 -3
- package/src/screen/README.md +20 -0
- package/src/screen/screen.scss +22 -0
- package/src/switch/README.md +20 -0
- package/src/switch/switch.scss +59 -0
- package/src/top-task-link/README.md +12 -7
- package/src/top-task-link/top-task-link.scss +2 -2
- package/src/unordered-list/unordered-list.scss +1 -1
- package/utils/breakpoint.scss +14 -3
- package/dist/grid/page-grid.css +0 -1
- package/dist/grid/page-grid.css.map +0 -1
- package/src/grid/README.md +0 -11
- package/src/grid/page-grid.scss +0 -19
package/src/accordion/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Het accordion component is een klikbare (verticaal gestapelde) lijst van koppen
|
|
|
14
14
|
Je kunt door een accordion navigeren met je toetsenbord:
|
|
15
15
|
|
|
16
16
|
| key | element |
|
|
17
|
-
|
|
|
17
|
+
| :------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
|
|
18
18
|
| Enter of Space | Open of sluit de accordionsectie die de focus heeft |
|
|
19
19
|
| Tab | Ga naar het volgende element dat focus kan hebben |
|
|
20
20
|
| Shift + Tab | Ga naar het volgende element dat focus kan hebben |
|
package/src/alert/alert.scss
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
font-weight: var(--amsterdam-alert-title-font-weight);
|
|
35
35
|
line-height: var(--amsterdam-alert-title-line-height);
|
|
36
36
|
|
|
37
|
-
@media screen and (width
|
|
37
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
38
38
|
font-size: var(--amsterdam-alert-title-wide-font-size);
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -4,13 +4,14 @@ Aspect Ratio (in het Nederlands: beeldverhouding) koppelt de hoogte van een elem
|
|
|
4
4
|
|
|
5
5
|
Om de vormgeving consistent te houden gebruiken we een vaste set verhoudingen (breedte:hoogte):
|
|
6
6
|
|
|
7
|
-
| _keyword_
|
|
8
|
-
|
|
|
9
|
-
| `
|
|
10
|
-
| `wide`
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
7
|
+
| _keyword_ | verhouding |
|
|
8
|
+
| :-------- | ---------: |
|
|
9
|
+
| `2x-wide` | 32:9 |
|
|
10
|
+
| `x-wide` | 16:9 |
|
|
11
|
+
| `wide` | 5:4 |
|
|
12
|
+
| `square` | 1:1 |
|
|
13
|
+
| `tall` | 4:5 |
|
|
14
|
+
| `x-tall` | 9:16 |
|
|
14
15
|
|
|
15
16
|
## Richtlijnen
|
|
16
17
|
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
position: relative;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.amsterdam-aspect-ratio--
|
|
12
|
-
aspect-ratio: var(--amsterdam-aspect-ratio-
|
|
11
|
+
.amsterdam-aspect-ratio--x-tall {
|
|
12
|
+
aspect-ratio: var(--amsterdam-aspect-ratio-x-tall);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.amsterdam-aspect-ratio--tall {
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
aspect-ratio: var(--amsterdam-aspect-ratio-wide);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
.amsterdam-aspect-ratio--
|
|
28
|
-
aspect-ratio: var(--amsterdam-aspect-ratio-
|
|
27
|
+
.amsterdam-aspect-ratio--x-wide {
|
|
28
|
+
aspect-ratio: var(--amsterdam-aspect-ratio-x-wide);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.amsterdam-aspect-ratio--2x-wide {
|
|
32
|
+
aspect-ratio: var(--amsterdam-aspect-ratio-2x-wide);
|
|
29
33
|
}
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
.amsterdam-breadcrumb {
|
|
16
16
|
font-family: var(--amsterdam-breadcrumb-font-family, inherit);
|
|
17
17
|
font-size: var(--amsterdam-breadcrumb-narrow-font-size);
|
|
18
|
+
font-weight: var(--amsterdam-breadcrumb-font-weight);
|
|
18
19
|
line-height: var(--amsterdam-breadcrumb-line-height);
|
|
19
20
|
|
|
20
|
-
@media screen and (width
|
|
21
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
21
22
|
font-size: var(--amsterdam-breadcrumb-wide-font-size);
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -58,9 +59,7 @@
|
|
|
58
59
|
text-transform: capitalize;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
&:
|
|
62
|
-
&:hover,
|
|
63
|
-
&:active {
|
|
62
|
+
&:hover {
|
|
64
63
|
color: var(--amsterdam-breadcrumb-item-link-hover-color);
|
|
65
64
|
text-decoration: underline;
|
|
66
65
|
text-decoration-thickness: 2px;
|
package/src/button/button.scss
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
.amsterdam-button {
|
|
14
14
|
font-size: var(--amsterdam-button-narrow-font-size);
|
|
15
15
|
|
|
16
|
-
@media screen and (width
|
|
16
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
17
17
|
font-size: var(--amsterdam-button-wide-font-size);
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -33,16 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
// This isn't currently possible with the Utrecht component
|
|
38
|
-
// We should really pull this component in our own repo...
|
|
39
|
-
.amsterdam-button--secondary.amsterdam-button--secondary {
|
|
40
|
-
&:focus {
|
|
41
|
-
color: var(--amsterdam-button-secondary-focus-color);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.amsterdam-button--secondary:focus:not(:disabled, [aria-disabled="true"]) {
|
|
36
|
+
.amsterdam-button--secondary:focus:not(:hover, [aria-disabled="true"]) {
|
|
46
37
|
box-shadow: var(--amsterdam-button-secondary-focus-box-shadow);
|
|
47
38
|
}
|
|
48
39
|
|
|
@@ -52,6 +43,6 @@
|
|
|
52
43
|
}
|
|
53
44
|
}
|
|
54
45
|
|
|
55
|
-
.amsterdam-button--tertiary:focus:not(:
|
|
56
|
-
box-shadow:
|
|
46
|
+
.amsterdam-button--tertiary:focus:not(:hover, [aria-disabled="true"]) {
|
|
47
|
+
box-shadow: none;
|
|
57
48
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Card
|
|
2
|
+
|
|
3
|
+
Gebruik een card op een overzichtspagina om te verwijzen naar een detailpagina, zoals een nieuwsbericht, een vacature of een zoekresultaat. De card bevat meestal de titel, introductie en afbeelding van de content. De link is verplicht.
|
|
4
|
+
|
|
5
|
+
## Schermlezers
|
|
6
|
+
|
|
7
|
+
Met een schermlezer kun je onder andere navigeren via headings en links in een document. De titel van een card is een link in een heading, zodat je van beide navigatiemanieren gebruik kunt maken. Een schermlezer leest eerst de titel op, daarna de rest van de inhoud.
|
|
8
|
+
|
|
9
|
+
## Richtlijnen
|
|
10
|
+
|
|
11
|
+
- De titel van een card is een link in een heading. Hier gelden dezelfde richtlijnen voor als voor reguliere [links](https://amsterdam.github.io/design-system/?path=/docs/react_navigation-link--docs) en [headings](https://amsterdam.github.io/design-system/?path=/docs/react_text-heading--docs).
|
|
12
|
+
- Een card heeft meer inhoud nodig dan alleen een titel. Vul dit aan met tekstuele en/of visuele inhoud. Als dit lastig is, kijk dan of een [top task link](https://amsterdam.github.io/design-system/?path=/docs/react_navigation-top-task-link--docs) of [reguliere link](https://amsterdam.github.io/design-system/?path=/docs/react_navigation-link--docs) beter past.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.amsterdam-card {
|
|
7
|
+
display: grid;
|
|
8
|
+
gap: 0.5rem;
|
|
9
|
+
outline-offset: var(--amsterdam-card-outline-offset);
|
|
10
|
+
position: relative;
|
|
11
|
+
touch-action: manipulation;
|
|
12
|
+
|
|
13
|
+
/* Set native outline on card if card has focus visible within */
|
|
14
|
+
&:has(:focus-visible) {
|
|
15
|
+
outline-color: -webkit-focus-ring-color;
|
|
16
|
+
outline-style: auto;
|
|
17
|
+
outline-width: 1px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
Remove link focus outline only if :has is supported,
|
|
22
|
+
which means the outline on the whole card is set
|
|
23
|
+
*/
|
|
24
|
+
&:has(:focus-visible) a:focus {
|
|
25
|
+
outline: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/*
|
|
29
|
+
This trick, together with position: relative on the outer wrapper, makes the whole card clickable.
|
|
30
|
+
Taken from https://inclusive-components.design/cards/
|
|
31
|
+
*/
|
|
32
|
+
a::after {
|
|
33
|
+
content: "";
|
|
34
|
+
display: block;
|
|
35
|
+
inset: 0;
|
|
36
|
+
position: absolute;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.amsterdam-card__heading-group {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column-reverse;
|
|
43
|
+
gap: 0.5rem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.amsterdam-card__link {
|
|
47
|
+
color: var(--amsterdam-card-link-color);
|
|
48
|
+
text-decoration: none;
|
|
49
|
+
text-decoration-thickness: 2px;
|
|
50
|
+
text-underline-offset: 3px;
|
|
51
|
+
|
|
52
|
+
&:hover {
|
|
53
|
+
color: var(--amsterdam-card-link-hover-color);
|
|
54
|
+
text-decoration: underline;
|
|
55
|
+
}
|
|
56
|
+
}
|
package/src/checkbox/README.md
CHANGED
|
@@ -24,4 +24,4 @@ Een label:
|
|
|
24
24
|
|
|
25
25
|
- [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html): het is zowel voor een gebruiker als programmatisch duidelijk wat het doel van een formulierveld is.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Checkbox is een interactief element, hier gelden [de algemene eisen en richtlijnen voor interactieve elementen](https://amsterdam.github.io/design-system/?path=/docs/docs-designrichtlijnen-interactieve-elementen--docs) voor.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
width: 100%;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
@media screen and (width
|
|
37
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
38
38
|
height: calc(var(--amsterdam-checkbox-checkmark-wide-size) * var(--amsterdam-checkbox-checkmark-multiplier));
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
@media screen and (width
|
|
68
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
69
69
|
font-size: var(--amsterdam-checkbox-wide-font-size);
|
|
70
70
|
}
|
|
71
71
|
|
package/src/footer/footer.scss
CHANGED
|
@@ -7,23 +7,4 @@
|
|
|
7
7
|
|
|
8
8
|
.amsterdam-footer__top {
|
|
9
9
|
background-color: var(--amsterdam-footer-top-background-color);
|
|
10
|
-
padding-block: 2.5rem;
|
|
11
|
-
padding-inline: 2rem; /* TODO: For now I've set a padding here, this should eventually be handled by PageGrid */
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@media screen and (width > $amsterdam-breakpoint) {
|
|
15
|
-
.amsterdam-footer__top {
|
|
16
|
-
grid-template-columns: repeat(var(--amsterdam-page-grid-column-count-wide), 1fr);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.amsterdam-footer__column {
|
|
21
|
-
display: flex;
|
|
22
|
-
flex-direction: column;
|
|
23
|
-
gap: 2.5rem;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.amsterdam-footer__bottom {
|
|
27
|
-
padding-block: 0.5rem;
|
|
28
|
-
padding-inline: 2rem; /* TODO: For now I've set a padding here, this should eventually be handled by PageGrid */
|
|
29
10
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
font-weight: var(--amsterdam-form-label-font-weight);
|
|
17
17
|
line-height: var(--amsterdam-form-label-line-height);
|
|
18
18
|
|
|
19
|
-
@media screen and (width
|
|
19
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
20
20
|
font-size: var(--amsterdam-form-label-wide-font-size);
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Grid cell
|
|
2
|
+
|
|
3
|
+
Beslaat een aantal kolommen in een [Grid](?path=/docs/react_layout-grid--docs).
|
|
4
|
+
|
|
5
|
+
## Gebruik
|
|
6
|
+
|
|
7
|
+
Verdeel hiermee een grid in cellen.
|
|
8
|
+
Geef aan hoeveel kolommen van het grid de cel beslaat.
|
|
9
|
+
Dat aantal kan variëren voor smalle, middelbrede of brede schermen.
|
|
10
|
+
In elke cel plaats je vervolgens de gewenste inhoud.
|
|
11
|
+
|
|
12
|
+
## Ontwerp
|
|
13
|
+
|
|
14
|
+
De [ontwerpkeuzes](?path=/docs/docs-designrichtlijnen-grid--docs) staan beschreven onder de designrichtlijnen.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Grid
|
|
2
|
+
|
|
3
|
+
Levert een tweedimensionaal raster waarop alle elementen van een pagina uitgelijnd worden.
|
|
4
|
+
|
|
5
|
+
## Gebruik
|
|
6
|
+
|
|
7
|
+
Elke pagina moet het grid gebruiken als basis voor de layout, dus direct binnen [Screen](?path=/docs/layout-screen--docs).
|
|
8
|
+
|
|
9
|
+
Een [Footer](?path=/docs/react_containers-footer--docs) en een [Highlight](?path=/docs/react_containers-highlight--docs) zijn iets breder dan het grid.
|
|
10
|
+
Daarom wordt in HTML vóór deze componenten een instantie van Grid afgesloten en erbinnen een nieuwe geopend.
|
|
11
|
+
|
|
12
|
+
Meerdere instanties van dit component zijn dus mogelijk op een pagina.
|
|
13
|
+
Visueel moeten ze wel allemaal op elkaar aansluiten.
|
|
14
|
+
|
|
15
|
+
## Ontwerp
|
|
16
|
+
|
|
17
|
+
De [ontwerpkeuzes](?path=/docs/docs-designrichtlijnen-grid--docs) staan beschreven onder de designrichtlijnen.
|
package/src/grid/grid-cell.scss
CHANGED
|
@@ -5,14 +5,42 @@
|
|
|
5
5
|
|
|
6
6
|
@import "../../utils/breakpoint";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
.amsterdam-grid-cell--full-width {
|
|
9
|
+
grid-column: 1 / -1;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// The order of the following declaration blocks ensures the intended specificity.
|
|
13
|
+
|
|
14
|
+
@for $i from 1 through 12 {
|
|
15
|
+
.amsterdam-grid-cell--span-#{$i} {
|
|
16
|
+
grid-column-end: span $i;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.amsterdam-grid-cell--start-#{$i} {
|
|
20
|
+
grid-column-start: $i;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@media screen and (min-width: $amsterdam-breakpoint-medium) {
|
|
9
25
|
@for $i from 1 through 12 {
|
|
10
|
-
.amsterdam-grid-
|
|
26
|
+
.amsterdam-grid-cell--span-#{$i}-medium {
|
|
27
|
+
grid-column-end: span $i;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.amsterdam-grid-cell--start-#{$i}-medium {
|
|
11
31
|
grid-column-start: $i;
|
|
12
32
|
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
13
35
|
|
|
14
|
-
|
|
36
|
+
@media screen and (min-width: $amsterdam-breakpoint-wide) {
|
|
37
|
+
@for $i from 1 through 12 {
|
|
38
|
+
.amsterdam-grid-cell--span-#{$i}-wide {
|
|
15
39
|
grid-column-end: span $i;
|
|
16
40
|
}
|
|
41
|
+
|
|
42
|
+
.amsterdam-grid-cell--start-#{$i}-wide {
|
|
43
|
+
grid-column-start: $i;
|
|
44
|
+
}
|
|
17
45
|
}
|
|
18
46
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "../../utils/breakpoint";
|
|
7
|
+
|
|
8
|
+
.amsterdam-grid {
|
|
9
|
+
--amsterdam-grid-gap: var(--amsterdam-grid-density-low-gap);
|
|
10
|
+
--amsterdam-grid-padding-inline: var(--amsterdam-grid-density-low-padding-inline);
|
|
11
|
+
|
|
12
|
+
display: grid;
|
|
13
|
+
gap: var(--amsterdam-grid-gap);
|
|
14
|
+
grid-template-columns: repeat(var(--amsterdam-grid-column-count), 1fr);
|
|
15
|
+
padding-inline: var(--amsterdam-grid-padding-inline);
|
|
16
|
+
|
|
17
|
+
@media screen and (min-width: $amsterdam-breakpoint-medium) {
|
|
18
|
+
grid-template-columns: repeat(var(--amsterdam-grid-medium-column-count), 1fr);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media screen and (min-width: $amsterdam-breakpoint-wide) {
|
|
22
|
+
grid-template-columns: repeat(var(--amsterdam-grid-wide-column-count), 1fr);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.amsterdam-grid--density-high {
|
|
27
|
+
--amsterdam-grid-gap: var(--amsterdam-grid-density-high-gap);
|
|
28
|
+
--amsterdam-grid-padding-inline: var(--amsterdam-grid-density-high-padding-inline);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.amsterdam-grid--padding-bottom--small {
|
|
32
|
+
padding-block-end: calc(var(--amsterdam-grid-gap) / 2);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.amsterdam-grid--padding-bottom--medium {
|
|
36
|
+
padding-block-end: var(--amsterdam-grid-gap);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.amsterdam-grid--padding-bottom--large {
|
|
40
|
+
padding-block-end: calc(var(--amsterdam-grid-gap) * 2);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.amsterdam-grid--padding-top--small {
|
|
44
|
+
padding-block-start: calc(var(--amsterdam-grid-gap) / 2);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.amsterdam-grid--padding-top--medium {
|
|
48
|
+
padding-block-start: var(--amsterdam-grid-gap);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.amsterdam-grid--padding-top--large {
|
|
52
|
+
padding-block-start: calc(var(--amsterdam-grid-gap) * 2);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.amsterdam-grid--padding-vertical--small {
|
|
56
|
+
padding-block: calc(var(--amsterdam-grid-gap) / 2);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.amsterdam-grid--padding-vertical--medium {
|
|
60
|
+
padding-block: var(--amsterdam-grid-gap);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.amsterdam-grid--padding-vertical--large {
|
|
64
|
+
padding-block: calc(var(--amsterdam-grid-gap) * 2);
|
|
65
|
+
}
|
package/src/heading/heading.scss
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
font-size: var(--amsterdam-heading-1-narrow-font-size);
|
|
26
26
|
line-height: var(--amsterdam-heading-1-line-height);
|
|
27
27
|
|
|
28
|
-
@media screen and (width
|
|
28
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
29
29
|
font-size: var(--amsterdam-heading-1-wide-font-size);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
font-size: var(--amsterdam-heading-2-narrow-font-size);
|
|
35
35
|
line-height: var(--amsterdam-heading-2-line-height);
|
|
36
36
|
|
|
37
|
-
@media screen and (width
|
|
37
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
38
38
|
font-size: var(--amsterdam-heading-2-wide-font-size);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
font-size: var(--amsterdam-heading-3-narrow-font-size);
|
|
44
44
|
line-height: var(--amsterdam-heading-3-line-height);
|
|
45
45
|
|
|
46
|
-
@media screen and (width
|
|
46
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
47
47
|
font-size: var(--amsterdam-heading-3-wide-font-size);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
font-size: var(--amsterdam-heading-4-narrow-font-size);
|
|
53
53
|
line-height: var(--amsterdam-heading-4-line-height);
|
|
54
54
|
|
|
55
|
-
@media screen and (width
|
|
55
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
56
56
|
font-size: var(--amsterdam-heading-4-wide-font-size);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Highlight
|
|
2
|
+
|
|
3
|
+
Benadrukt een sectie op een pagina middels een opvallende achtergrondkleur.
|
|
4
|
+
|
|
5
|
+
## Richtlijnen
|
|
6
|
+
|
|
7
|
+
Raadpleeg [dit overzicht op Stijlweb](https://amsterdam.nl/stijlweb/basiselementen/kleuren/#PagCls_15671872) om na te gaan of je zwarte of witte tekst kunt gebruiken op de achtergrondkleur van je keuze.
|
|
8
|
+
|
|
9
|
+
## Relevante WCAG eisen
|
|
10
|
+
|
|
11
|
+
- [WCAG 1.4.3](https://www.w3.org/TR/WCAG21/#contrast-minimum): Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;
|
|
12
|
+
|
|
13
|
+
## Referenties
|
|
14
|
+
|
|
15
|
+
- [Color and contrast accessibility](https://web.dev/articles/color-and-contrast-accessibility)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.amsterdam-highlight--blue {
|
|
7
|
+
background-color: var(--amsterdam-highlight-blue-background-color);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.amsterdam-highlight--dark-green {
|
|
11
|
+
background-color: var(--amsterdam-highlight-dark-green-background-color);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.amsterdam-highlight--green {
|
|
15
|
+
background-color: var(--amsterdam-highlight-green-background-color);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.amsterdam-highlight--light-blue {
|
|
19
|
+
background-color: var(--amsterdam-highlight-light-blue-background-color);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.amsterdam-highlight--magenta {
|
|
23
|
+
background-color: var(--amsterdam-highlight-magenta-background-color);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.amsterdam-highlight--orange {
|
|
27
|
+
background-color: var(--amsterdam-highlight-orange-background-color);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.amsterdam-highlight--purple {
|
|
31
|
+
background-color: var(--amsterdam-highlight-purple-background-color);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.amsterdam-highlight--yellow {
|
|
35
|
+
background-color: var(--amsterdam-highlight-yellow-background-color);
|
|
36
|
+
}
|
package/src/icon/icon.scss
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
.amsterdam-icon--size-3 {
|
|
18
18
|
height: calc(var(--amsterdam-icon-size-3-icon-size-narrow) * var(--amsterdam-icon-size-3-container-multiplier));
|
|
19
19
|
|
|
20
|
-
@media screen and (width
|
|
20
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
21
21
|
height: calc(var(--amsterdam-icon-size-3-icon-size-wide) * var(--amsterdam-icon-size-3-container-multiplier));
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
height: var(--amsterdam-icon-size-3-icon-size-narrow);
|
|
27
27
|
width: var(--amsterdam-icon-size-3-icon-size-narrow);
|
|
28
28
|
|
|
29
|
-
@media screen and (width
|
|
29
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
30
30
|
height: var(--amsterdam-icon-size-3-icon-size-wide);
|
|
31
31
|
width: var(--amsterdam-icon-size-3-icon-size-wide);
|
|
32
32
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
.amsterdam-icon--size-4 {
|
|
35
35
|
height: calc(var(--amsterdam-icon-size-4-icon-size-narrow) * var(--amsterdam-icon-size-4-container-multiplier));
|
|
36
36
|
|
|
37
|
-
@media screen and (width
|
|
37
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
38
38
|
height: calc(var(--amsterdam-icon-size-4-icon-size-wide) * var(--amsterdam-icon-size-4-container-multiplier));
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
height: var(--amsterdam-icon-size-4-icon-size-narrow);
|
|
44
44
|
width: var(--amsterdam-icon-size-4-icon-size-narrow);
|
|
45
45
|
|
|
46
|
-
@media screen and (width
|
|
46
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
47
47
|
height: var(--amsterdam-icon-size-4-icon-size-wide);
|
|
48
48
|
width: var(--amsterdam-icon-size-4-icon-size-wide);
|
|
49
49
|
}
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
.amsterdam-icon--size-5 {
|
|
53
53
|
height: calc(var(--amsterdam-icon-size-5-icon-size-narrow) * var(--amsterdam-icon-size-5-container-multiplier));
|
|
54
54
|
|
|
55
|
-
@media screen and (width
|
|
55
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
56
56
|
height: calc(var(--amsterdam-icon-size-5-icon-size-wide) * var(--amsterdam-icon-size-5-container-multiplier));
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
height: var(--amsterdam-icon-size-5-icon-size-narrow);
|
|
62
62
|
width: var(--amsterdam-icon-size-5-icon-size-narrow);
|
|
63
63
|
|
|
64
|
-
@media screen and (width
|
|
64
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
65
65
|
height: var(--amsterdam-icon-size-5-icon-size-wide);
|
|
66
66
|
width: var(--amsterdam-icon-size-5-icon-size-wide);
|
|
67
67
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
.amsterdam-icon--size-6 {
|
|
71
71
|
height: calc(var(--amsterdam-icon-size-6-icon-size-narrow) * var(--amsterdam-icon-size-6-container-multiplier));
|
|
72
72
|
|
|
73
|
-
@media screen and (width
|
|
73
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
74
74
|
height: calc(var(--amsterdam-icon-size-6-icon-size-wide) * var(--amsterdam-icon-size-6-container-multiplier));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
height: var(--amsterdam-icon-size-6-icon-size-narrow);
|
|
80
80
|
width: var(--amsterdam-icon-size-6-icon-size-narrow);
|
|
81
81
|
|
|
82
|
-
@media screen and (width
|
|
82
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
83
83
|
height: var(--amsterdam-icon-size-6-icon-size-wide);
|
|
84
84
|
width: var(--amsterdam-icon-size-6-icon-size-wide);
|
|
85
85
|
}
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
.amsterdam-icon--size-7 {
|
|
89
89
|
height: calc(var(--amsterdam-icon-size-7-icon-size-narrow) * var(--amsterdam-icon-size-7-container-multiplier));
|
|
90
90
|
|
|
91
|
-
@media screen and (width
|
|
91
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
92
92
|
height: calc(var(--amsterdam-icon-size-7-icon-size-wide) * var(--amsterdam-icon-size-7-container-multiplier));
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
height: var(--amsterdam-icon-size-7-icon-size-narrow);
|
|
98
98
|
width: var(--amsterdam-icon-size-7-icon-size-narrow);
|
|
99
99
|
|
|
100
|
-
@media screen and (width
|
|
100
|
+
@media screen and (min-width: $amsterdam-breakpoint-typography) {
|
|
101
101
|
height: var(--amsterdam-icon-size-7-icon-size-wide);
|
|
102
102
|
width: var(--amsterdam-icon-size-7-icon-size-wide);
|
|
103
103
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Image
|
|
2
|
+
|
|
3
|
+
Toont een afbeelding.
|
|
4
|
+
|
|
5
|
+
## Richtlijnen
|
|
6
|
+
|
|
7
|
+
- Vergeet niet om een beschrijving van de afbeelding op te nemen in het `alt`-attribuut.
|
|
8
|
+
Dit zorgt ervoor dat gebruikers van schermlezers deze informatie ook tot zich kunnen nemen.
|
|
9
|
+
Daarnaast kan het helpen bij zoekmachineoptimalisatie.
|
|
10
|
+
- Alleen voor decoratieve afbeeldingen is zo’n beschrijving niet nodig. Gebruik in dit geval `alt=""`.
|
|
11
|
+
Denk aan afbeeldingen die weinig toevoegen aan de nabije tekst of afbeeldingen die louter bijdragen aan het ontwerp of de sfeer van de pagina (bron: [W3C Web Accessibility Initiative](https://www.w3.org/WAI/tutorials/images/decorative/)).
|
|
12
|
+
- Zorg ervoor dat de afbeelding een beeldverhouding heeft die ondersteund wordt door het [Aspect Ratio](?path=/docs/layout-aspect-ratio--docs) component.
|
|
13
|
+
|
|
14
|
+
## Relevante WCAG-eisen
|
|
15
|
+
|
|
16
|
+
- [WCAG 1.1.1](https://www.w3.org/TR/WCAG22/#non-text-content): niet-tekstuele content heeft een tekstueel alternatief
|
|
17
|
+
- [WCAG 1.4.5](https://www.w3.org/TR/WCAG22/#images-of-text): gebruik tekst in plaats van afbeeldingen van tekst
|
|
18
|
+
- [WCAG 1.4.9](https://www.w3.org/TR/WCAG22/#images-of-text-no-exception): gebruik afbeeldingen van tekst alleen als er geen alternatief is
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license EUPL-1.2+
|
|
3
|
+
* Copyright (c) 2023 Gemeente Amsterdam
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.amsterdam-image {
|
|
7
|
+
font-style: italic; /* [3] */
|
|
8
|
+
height: auto; /* [1] */
|
|
9
|
+
max-width: 100%; /* [1] */
|
|
10
|
+
vertical-align: middle; /* [2] */
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// [1] Allow for fluid image sizing while maintaining aspect ratio governed by width/height attributes
|
|
14
|
+
// [2] Remove ‘phantom’ whitespace
|
|
15
|
+
// [3] Italicise alt text to visually offset it from surrounding copy
|
|
16
|
+
// Source: https://x.com/csswizardry/status/1717841334462005661
|