@amsterdam/design-system-css 0.1.2 → 0.1.4

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.
Files changed (50) hide show
  1. package/dist/accordion/accordion.css +69 -0
  2. package/dist/accordion/accordion.css.map +1 -0
  3. package/dist/button/button.css +706 -0
  4. package/dist/button/button.css.map +1 -0
  5. package/dist/form-label/form-label.css +26 -0
  6. package/dist/form-label/form-label.css.map +1 -0
  7. package/dist/heading/heading.css +45 -95
  8. package/dist/heading/heading.css.map +1 -1
  9. package/dist/icon/icon.css +106 -21
  10. package/dist/icon/icon.css.map +1 -1
  11. package/dist/link/link.css +83 -55
  12. package/dist/link/link.css.map +1 -1
  13. package/dist/list/list.css +5 -0
  14. package/dist/list/list.css.map +1 -1
  15. package/dist/paragraph/paragraph.css +40 -44
  16. package/dist/paragraph/paragraph.css.map +1 -1
  17. package/dist/unordered-list/unordered-list.css +47 -0
  18. package/dist/unordered-list/unordered-list.css.map +1 -0
  19. package/package.json +7 -6
  20. package/src/accordion/README.md +19 -0
  21. package/src/accordion/accordion.scss +63 -0
  22. package/src/button/README.md +24 -0
  23. package/src/button/button-css.md +12 -0
  24. package/src/button/button.scss +19 -0
  25. package/src/form-label/README.md +3 -0
  26. package/src/form-label/form-label.scss +18 -0
  27. package/src/heading/README.md +23 -0
  28. package/src/heading/heading-css.md +3 -0
  29. package/src/heading/heading.scss +41 -25
  30. package/src/icon/README.md +19 -0
  31. package/src/icon/icon.scss +88 -18
  32. package/src/link/README.md +26 -0
  33. package/src/link/link.scss +88 -32
  34. package/src/list/list.scss +11 -0
  35. package/src/paragraph/README.md +24 -0
  36. package/src/paragraph/paragraph-css.md +3 -0
  37. package/src/paragraph/paragraph.scss +36 -9
  38. package/src/unordered-list/README.md +15 -0
  39. package/src/unordered-list/unordered-list.scss +44 -0
  40. package/utils/breakpoint.scss +7 -2
  41. package/utils/calculate-fluid-style.scss +6 -1
  42. package/dist/document/document.css +0 -22
  43. package/dist/document/document.css.map +0 -1
  44. package/dist/grid/grid.css +0 -340
  45. package/dist/grid/grid.css.map +0 -1
  46. package/dist/spacing/spacing.css +0 -249
  47. package/dist/spacing/spacing.css.map +0 -1
  48. package/src/document/document.scss +0 -16
  49. package/src/grid/grid.scss +0 -83
  50. package/src/spacing/spacing.scss +0 -60
@@ -0,0 +1,47 @@
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 */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/unordered-list/unordered-list.scss","../../utils/breakpoint.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;ADQA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAdA;EACA;EACA;;AAcA;EAXF;IAYI;;;;AAMJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE","file":"unordered-list.css"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.2",
2
+ "version": "0.1.4",
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",
@@ -17,11 +17,12 @@
17
17
  "build": "sass src/:dist/",
18
18
  "clean": "rimraf dist/"
19
19
  },
20
- "dependencies": {
21
- "normalize.css": "8.0.1"
22
- },
23
20
  "devDependencies": {
24
- "sass": "1.58.0"
21
+ "@amsterdam/design-system-tokens": "0.1.3",
22
+ "sass": "1.63.6"
23
+ },
24
+ "dependencies": {
25
+ "@utrecht/components": "1.0.0-alpha.492"
25
26
  },
26
- "gitHead": "89f67a928d30a512e8fa7f31b8dae925846fc411"
27
+ "gitHead": "43a949072edf58e9f8d198a2eca9b5457f01ccc8"
27
28
  }
@@ -0,0 +1,19 @@
1
+ # Accordion
2
+
3
+ Het accordion component is een klikbare (verticaal gestapelde) lijst van koppen om bijbehorende inhoud te verbergen of te vertonen. Met een accordion toon je inhoud op een progressieve manier aan gebruikers.
4
+
5
+ Een accordion bestaat uit meerdere accordionsecties. Gebruik minimaal 3 en maximaal 10 secties onder elkaar. Je kunt door een accordion navigeren met je toetsenbord:
6
+
7
+ | key | element |
8
+ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
9
+ | Enter of Space | Open of sluit de accordionsectie die de focus heeft |
10
+ | Tab | Ga naar het volgende element dat focus kan hebben |
11
+ | Shift + Tab | Ga naar het volgende element dat focus kan hebben |
12
+ | Pijltje naar beneden | Als een accordionsectie focus heeft: ga naar de volgende sectie. Als de laatste sectie focus heeft, ga naar de eerste sectie |
13
+ | Pijltje omhoog | Als een accordionsectie focus heeft: ga naar de vorige sectie. Als de eerste sectie focus heeft, ga naar de laatste sectie |
14
+ | Home | Als een accordionsectie focus heeft: ga naar de eerste sectie |
15
+ | End | Als een accordionsectie focus heeft: ga naar de laatste sectie |
16
+
17
+ ## Referenties
18
+
19
+ - [W3C - Accordion Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/)
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../utils/breakpoint";
7
+
8
+ .amsterdam-accordion__header {
9
+ display: flex;
10
+ margin-block: 0;
11
+ margin-inline: 0;
12
+ }
13
+
14
+ .amsterdam-accordion__button {
15
+ background-color: transparent;
16
+ border: 0;
17
+ color: var(--amsterdam-accordion-button-color);
18
+ cursor: pointer;
19
+ display: flex;
20
+ font-family: var(--amsterdam-accordion-button-font-family);
21
+ font-size: var(--amsterdam-accordion-button-font-size-narrow);
22
+ font-weight: var(--amsterdam-accordion-button-font-weight);
23
+ justify-content: space-between;
24
+ line-height: var(--amsterdam-accordion-button-line-height);
25
+ padding-block: 0.75rem;
26
+ padding-inline: 1rem;
27
+ width: 100%;
28
+
29
+ @media screen and (width > $amsterdam-breakpoint) {
30
+ font-size: var(--amsterdam-accordion-button-font-size-wide);
31
+ }
32
+
33
+ &:focus {
34
+ outline-offset: var(--amsterdam-accordion-button-focus-outline-offset);
35
+ }
36
+
37
+ &:hover {
38
+ box-shadow: var(--amsterdam-accordion-button-hover-box-shadow);
39
+ }
40
+
41
+ svg {
42
+ transform: rotate(0deg);
43
+ transition: transform 0.3s ease;
44
+
45
+ @media (prefers-reduced-motion) {
46
+ transition: none;
47
+ }
48
+ }
49
+ }
50
+
51
+ .amsterdam-accordion__button[aria-expanded="true"] svg {
52
+ transform: rotate(180deg);
53
+ }
54
+
55
+ .amsterdam-accordion__panel {
56
+ display: none;
57
+ padding-block: 1rem;
58
+ padding-inline: 1rem;
59
+ }
60
+
61
+ .amsterdam-accordion__panel--expanded {
62
+ display: block;
63
+ }
@@ -0,0 +1,24 @@
1
+ # Button
2
+
3
+ De button gebruik je zodat de gebruiker acties kan uit te voeren en de user interface kan bedienen.
4
+
5
+ ## Richtlijnen
6
+
7
+ - Een label tekst die beschrijft wat de functie van de button is.
8
+ - Een duidelijke constrasterende kleurstelling zodat deze goed te herkennen is en snel te lokaliseren valt.
9
+ - Gebruik het juiste type button voor de daarbijhorende toepassing. Bijvoorbeeld een button binnen een formulier moet altijd het het type `submit` zijn.
10
+ - Zorg dat een button ook met een keyboard te bedienen is.
11
+
12
+ ## Relevante WCAG eisen
13
+
14
+ - [WCAG eis 2.1.3](https://www.w3.org/TR/WCAG21/#keyboard-no-exception): je kan de button activeren met `Enter` of `Space`, en het is mogelijk met `Tab` de button te focussen. `Space` gebruiken heeft dan niet het effect dat de pagina scrollt.
15
+ - [WCAG eis 2.4.6](https://www.w3.org/TR/WCAG21/#headings-and-labels): de label van de button moet duidelijk zijn
16
+ - [WCAG eis 2.5.2](https://www.w3.org/TR/WCAG21/#pointer-cancellation):
17
+ - gebruik niet de `mousedown` event om de button te activeren, gebruik liever de `click` event
18
+ - `mousedown` mag alleen gebruikt worden als `mouseup` het effect weer ongedaan maakt, bijvoorbeeld een "_fast foward_" button om audio of video door te spoelen.
19
+ - [WCAG eis 2.5.5](https://www.w3.org/TR/WCAG21/#target-size): de button moet groot genoeg zijn om aan te klikken, en kleine buttons moeten niet te dicht op een andere button staan.
20
+
21
+ ## Referenties
22
+
23
+ - [W3C - Focus Visible](https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html)
24
+ - [W3C - Headings & labels](https://www.w3.org/TR/WCAG21/#headings-and-labels)
@@ -0,0 +1,12 @@
1
+ # CSS Button
2
+
3
+ Het button component maakt gebruik van de CSS library van de gemeente Utrecht. Daarop is het Amsterdam Design toegepast. Concreet betekent dit dat de Utrecht class names worden gebruikt met de Amsterdamse css attribuut waarden.
4
+ Een voorbeeld van een HTML button met de Amsterdamse styling is:
5
+
6
+ ```html
7
+ <button class="utrecht-button">Amsterdam Button</button>
8
+ ```
9
+
10
+ Deze button wordt getoond met de Amsterdamse button styling.
11
+
12
+ Vedere documentatie van de Utrecht button is terug te vinden in hun [github](https://github.com/nl-design-system/utrecht/tree/main/components/button) repository.
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../node_modules/@utrecht/components/button/css";
7
+ @import "../../utils/breakpoint";
8
+
9
+ .amsterdam-button {
10
+ font-size: var(--amsterdam-button-font-size-narrow);
11
+
12
+ @media screen and (width > $amsterdam-breakpoint) {
13
+ font-size: var(--amsterdam-button-font-size-wide);
14
+ }
15
+ }
16
+
17
+ .amsterdam-button--secondary:hover {
18
+ box-shadow: var(--amsterdam-button-secondary-hover-box-shadow);
19
+ }
@@ -0,0 +1,3 @@
1
+ # Form label
2
+
3
+ Een label element gebruik je om een formulierelement te beschrijven. Koppel een formulierelement (zoals een `input` of `textarea`) altijd aan een label.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../utils/breakpoint";
7
+
8
+ .amsterdam-form-label {
9
+ color: var(--amsterdam-form-label-color);
10
+ font-family: var(--amsterdam-form-label-font-family);
11
+ font-size: var(--amsterdam-form-label-font-size-narrow);
12
+ font-weight: var(--amsterdam-form-label-font-weight);
13
+ line-height: var(--amsterdam-form-label-line-height);
14
+
15
+ @media screen and (width > $amsterdam-breakpoint) {
16
+ font-size: var(--amsterdam-form-label-font-size-wide);
17
+ }
18
+ }
@@ -0,0 +1,23 @@
1
+ # Heading
2
+
3
+ Een heading zegt iets over de onderstaande content. Met behulp van headings kan de gebruiker snel een overzicht krijgen van de structuur van de webpagina.
4
+
5
+ ## Richtlijnen
6
+
7
+ - Een heading omschrijft de content eronder.
8
+ - Gebruik een heading niet voor opmaak en styling, maar om de structuur van de pagina weer te geven.
9
+ - Gebruik headings hierarchisch en sla geen heading niveaus over. Dus na een `h1` volgt een `h2` en dus niet een `h3`.
10
+
11
+ ## Relevante WCAG eisen
12
+
13
+ - [WCAG 1.3.1](https://www.w3.org/WAI/WCAG21/quickref/#qr-content-structure-separation-programmatic):
14
+ Tekst die er uit ziet als een heading wordt ook door een computer herkend als een heading. Door gebruik te maken van het juiste heading niveau is voor alle gebruikers duidelijk hoe de pagina is gestructeerd.
15
+ - [WCAG 2.4.1](https://www.w3.org/WAI/WCAG21/quickref/#qr-navigation-mechanisms-skip): Headings kunnen gebruikt worden om naar een volgende sectie te navigeren met het toetsenbord
16
+ - [WCAG 2.4.6](https://www.w3.org/WAI/WCAG21/quickref/#headings-and-labels): Beschrijf met headings het doel of het onderwerp van de onderliggende content
17
+ - [WCAG 2.4.10](https://www.w3.org/WAI/WCAG21/quickref/#qr-navigation-mechanisms-headings): Gebruik headings om de content te structureren
18
+
19
+ ## Referenties
20
+
21
+ - [W3C - Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/)
22
+ - [W3C - Headings & labels](https://www.w3.org/TR/WCAG21/#headings-and-labels)
23
+ - [A11Y project - Heading structure](https://www.a11yproject.com/posts/how-to-accessible-heading-structure/)
@@ -0,0 +1,3 @@
1
+ # CSS Heading
2
+
3
+ Gebruik de juiste heading HTML-elementen als je van deze classes gebruik maakt. De beschikbare elementen zijn: `h1`, `h2`, `h3`, `h4`, `h5` en `h6`. Let bij het kiezen van een heading niveau op de structuur van de pagina. Heading niveaus worden gebruikt om informatie te groeperen. De titel van de pagina krijgt een `h1`. De eerste subtitel een `h2`. De daarna volgende titels van secties die horen bij die subtitel krijgen een `h3`, enzovoort. Als je een nieuwe sectie begint, gebruik je weer een `h2`. Het is toegestaan om stijl en semantiek los van elkaar te trekken. Een `h1` kan bijvoorbeeld de class `amsterdam-heading-2` krijgen.
@@ -1,42 +1,58 @@
1
- @import "../../utils/calculate-fluid-style";
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
2
5
 
3
- .amsterdam-heading {
6
+ @import "../../utils/breakpoint";
7
+
8
+ @mixin reset {
9
+ box-sizing: border-box;
4
10
  break-after: avoid;
5
11
  break-inside: avoid;
6
- color: black;
7
- font-weight: 800;
8
- margin-block-end: 0;
9
- margin-block-start: 0;
10
- margin-inline-end: 0;
11
- margin-inline-start: 0;
12
+ margin-block: 0;
13
+ margin-inline: 0;
14
+ }
15
+
16
+ .amsterdam-heading {
17
+ color: var(--amsterdam-heading-color);
18
+ font-family: var(--amsterdam-heading-font-family);
19
+ font-weight: var(--amsterdam-heading-font-weight);
20
+
21
+ @include reset;
12
22
  }
13
23
 
14
24
  .amsterdam-heading-1 {
15
- font-size: calculate-fluid-style(32, 80);
16
- line-height: calculate-fluid-style(35, 80);
25
+ font-size: var(--amsterdam-heading-1-font-size-narrow);
26
+ line-height: var(--amsterdam-heading-1-line-height);
27
+
28
+ @media screen and (width > $amsterdam-breakpoint) {
29
+ font-size: var(--amsterdam-heading-1-font-size-wide);
30
+ }
17
31
  }
18
32
 
19
33
  .amsterdam-heading-2 {
20
- font-size: calculate-fluid-style(28, 56);
21
- line-height: calculate-fluid-style(34, 62);
34
+ font-size: var(--amsterdam-heading-2-font-size-narrow);
35
+ line-height: var(--amsterdam-heading-2-line-height);
36
+
37
+ @media screen and (width > $amsterdam-breakpoint) {
38
+ font-size: var(--amsterdam-heading-2-font-size-wide);
39
+ }
22
40
  }
23
41
 
24
42
  .amsterdam-heading-3 {
25
- font-size: calculate-fluid-style(24, 40);
26
- line-height: calculate-fluid-style(32, 48);
27
- }
43
+ font-size: var(--amsterdam-heading-3-font-size-narrow);
44
+ line-height: var(--amsterdam-heading-3-line-height);
28
45
 
29
- .amsterdam-heading-4 {
30
- font-size: calculate-fluid-style(22, 32);
31
- line-height: calculate-fluid-style(31, 38);
46
+ @media screen and (width > $amsterdam-breakpoint) {
47
+ font-size: var(--amsterdam-heading-3-font-size-wide);
48
+ }
32
49
  }
33
50
 
34
- .amsterdam-heading-5 {
35
- font-size: calculate-fluid-style(18, 24);
36
- line-height: calculate-fluid-style(25, 31);
37
- }
51
+ .amsterdam-heading-4 {
52
+ font-size: var(--amsterdam-heading-4-font-size-narrow);
53
+ line-height: var(--amsterdam-heading-4-line-height);
38
54
 
39
- .amsterdam-heading-6 {
40
- font-size: calculate-fluid-style(16, 18);
41
- line-height: calculate-fluid-style(22, 23);
55
+ @media screen and (width > $amsterdam-breakpoint) {
56
+ font-size: var(--amsterdam-heading-4-font-size-wide);
57
+ }
42
58
  }
@@ -0,0 +1,19 @@
1
+ # Icon
2
+
3
+ Iconen zijn visuele symbolen die worden gebruikt om ideeën, thema’s of acties weer te geven. Ze communiceren in één oogopslag de boodschap en vestigen de aandacht op belangrijke (interactieve) informatie. Gebruik altijd een `Icon` component om een SVG icoon heen voor de juiste vormgeving en maatvoering.
4
+
5
+ ## Interactieve elementen
6
+
7
+ Ter ondersteuning van tekstuele interactie-elementen, zoals knoppen en links, kunnen iconen gebruikt worden. Probeer altijd een icoon te voorzien van begeleidende tekst. Iconen zonder begeleidende tekst mogen alleen gebruikt worden als ze aan internationale standaarden voldoen, zoals menu (hamburger icoon), zoek (vergrootglas), volgende, vorige, play, pauze, enz.
8
+
9
+ ## Kleur
10
+
11
+ Iconen zijn zwart of wit. Bij interactie zijn ze donkerblauw. Uitgeschakeld zijn ze grijs. En ze moeten voldoen aan dezelfde contrastverhouding voor toegankelijkheid als typografie bij een achtergrondkleur. Het icoon neemt standaard de kleur van de _container_ waar deze in zit over.
12
+
13
+ ## Uitlijning
14
+
15
+ Iconen staan standaard links van de tekst en zijn verticaal in het midden van de eerste regel tekst uitgelijnd.
16
+
17
+ ## Grootte
18
+
19
+ De iconen gebruiken dezelfde tekstniveaus als alle typografische componenten om hun grootte te bepalen. Hierdoor zijn icoon en tekst makkelijk op elkaar af te stemmen. [Bekijk de documentatie over typografie voor meer informatie](/docs/docs-designrichtlijnen-typografie--docs#tekstniveaus).
@@ -1,34 +1,104 @@
1
- @import "../../utils/calculate-fluid-style";
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright (c) 2023 Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../utils/breakpoint";
2
7
 
3
8
  .amsterdam-icon {
4
9
  align-items: center;
5
10
  display: inline-flex;
11
+ }
6
12
 
7
- /* TODO: this height should be provided by the text element its part of? */
8
- height: calculate-fluid-style(24, 26);
13
+ .amsterdam-icon svg {
14
+ fill: currentColor;
15
+ }
9
16
 
10
- /* TODO: 12px is not part of the design system, what should this be? */
11
- margin-inline-end: 12px;
17
+ .amsterdam-icon-size-3 {
18
+ height: calc(var(--amsterdam-icon-size-3-icon-size-narrow) * var(--amsterdam-icon-size-3-container-multiplier));
12
19
 
13
- /* Offset icon by 3px, because Amsterdam Sans vertical alignment is off */
14
- padding-block-end: 3px;
20
+ @media screen and (width > $amsterdam-breakpoint) {
21
+ height: calc(var(--amsterdam-icon-size-3-icon-size-wide) * var(--amsterdam-icon-size-3-container-multiplier));
22
+ }
15
23
  }
16
24
 
17
- .amsterdam-icon svg {
18
- fill: currentColor;
25
+ .amsterdam-icon-size-3 svg {
26
+ height: var(--amsterdam-icon-size-3-icon-size-narrow);
27
+ width: var(--amsterdam-icon-size-3-icon-size-narrow);
28
+
29
+ @media screen and (width > $amsterdam-breakpoint) {
30
+ height: var(--amsterdam-icon-size-3-icon-size-wide);
31
+ width: var(--amsterdam-icon-size-3-icon-size-wide);
32
+ }
33
+ }
34
+ .amsterdam-icon-size-4 {
35
+ height: calc(var(--amsterdam-icon-size-4-icon-size-narrow) * var(--amsterdam-icon-size-4-container-multiplier));
36
+
37
+ @media screen and (width > $amsterdam-breakpoint) {
38
+ height: calc(var(--amsterdam-icon-size-4-icon-size-wide) * var(--amsterdam-icon-size-4-container-multiplier));
39
+ }
19
40
  }
20
41
 
21
- .amsterdam-icon-small svg {
22
- height: 1rem;
23
- width: 1rem;
42
+ .amsterdam-icon-size-4 svg {
43
+ height: var(--amsterdam-icon-size-4-icon-size-narrow);
44
+ width: var(--amsterdam-icon-size-4-icon-size-narrow);
45
+
46
+ @media screen and (width > $amsterdam-breakpoint) {
47
+ height: var(--amsterdam-icon-size-4-icon-size-wide);
48
+ width: var(--amsterdam-icon-size-4-icon-size-wide);
49
+ }
24
50
  }
25
51
 
26
- .amsterdam-icon-medium svg {
27
- height: 1.5rem;
28
- width: 1.5rem;
52
+ .amsterdam-icon-size-5 {
53
+ height: calc(var(--amsterdam-icon-size-5-icon-size-narrow) * var(--amsterdam-icon-size-5-container-multiplier));
54
+
55
+ @media screen and (width > $amsterdam-breakpoint) {
56
+ height: calc(var(--amsterdam-icon-size-5-icon-size-wide) * var(--amsterdam-icon-size-5-container-multiplier));
57
+ }
29
58
  }
30
59
 
31
- .amsterdam-icon-large svg {
32
- height: 2rem;
33
- width: 2rem;
60
+ .amsterdam-icon-size-5 svg {
61
+ height: var(--amsterdam-icon-size-5-icon-size-narrow);
62
+ width: var(--amsterdam-icon-size-5-icon-size-narrow);
63
+
64
+ @media screen and (width > $amsterdam-breakpoint) {
65
+ height: var(--amsterdam-icon-size-5-icon-size-wide);
66
+ width: var(--amsterdam-icon-size-5-icon-size-wide);
67
+ }
68
+ }
69
+
70
+ .amsterdam-icon-size-6 {
71
+ height: calc(var(--amsterdam-icon-size-6-icon-size-narrow) * var(--amsterdam-icon-size-6-container-multiplier));
72
+
73
+ @media screen and (width > $amsterdam-breakpoint) {
74
+ height: calc(var(--amsterdam-icon-size-6-icon-size-wide) * var(--amsterdam-icon-size-6-container-multiplier));
75
+ }
76
+ }
77
+
78
+ .amsterdam-icon-size-6 svg {
79
+ height: var(--amsterdam-icon-size-6-icon-size-narrow);
80
+ width: var(--amsterdam-icon-size-6-icon-size-narrow);
81
+
82
+ @media screen and (width > $amsterdam-breakpoint) {
83
+ height: var(--amsterdam-icon-size-6-icon-size-wide);
84
+ width: var(--amsterdam-icon-size-6-icon-size-wide);
85
+ }
86
+ }
87
+
88
+ .amsterdam-icon-size-7 {
89
+ height: calc(var(--amsterdam-icon-size-7-icon-size-narrow) * var(--amsterdam-icon-size-7-container-multiplier));
90
+
91
+ @media screen and (width > $amsterdam-breakpoint) {
92
+ height: calc(var(--amsterdam-icon-size-7-icon-size-wide) * var(--amsterdam-icon-size-7-container-multiplier));
93
+ }
94
+ }
95
+
96
+ .amsterdam-icon-size-7 svg {
97
+ height: var(--amsterdam-icon-size-7-icon-size-narrow);
98
+ width: var(--amsterdam-icon-size-7-icon-size-narrow);
99
+
100
+ @media screen and (width > $amsterdam-breakpoint) {
101
+ height: var(--amsterdam-icon-size-7-icon-size-wide);
102
+ width: var(--amsterdam-icon-size-7-icon-size-wide);
103
+ }
34
104
  }
@@ -0,0 +1,26 @@
1
+ # Link
2
+
3
+ ## Introductie
4
+
5
+ Nederlandse term: koppeling
6
+
7
+ Links worden gebruikt als navigatie-elementen en kunnen op zichzelf of inline met tekst worden gebruikt. Het is de lichtgewicht variant voor navigatie.
8
+
9
+ ## Bezochte stijl
10
+
11
+ Bezochte koppelingen geven aan dat een gebruiker de koppeling al heeft geopend. Gebruikte stijlen raden we af bij koppelingen, omdat ze de pagina vaak onoverzichtelijk maken. Het maakt navigeren door een pagina moeilijker. De inline koppeling heeft wel een bezochte stijl. Het vormt geen onderdeel van navigatie elementen die veel gescand worden.
12
+
13
+ ## Referenties
14
+
15
+ - [Links to cross-origin destinations are unsafe](https://developer.chrome.com/docs/lighthouse/best-practices/external-anchors-use-rel-noopener/): Vermijd `target="_blank"` of gebruik `rel="noopener"` als het moet.
16
+ - [_A comprehensive guide to designing perfect links in UX_, op Prototypr](https://blog.prototypr.io/a-guide-to-designing-perfect-links-in-ux-414558f35730): best practices rondom links.
17
+ - [_Writing Hyperlinks: Salient, Descriptive, Start with Keyword_ door Norman Nielsen Group](https://www.nngroup.com/articles/writing-links/): hoe schrijf je goede links? Een uitgebreid artikel over links.
18
+ - [_Hover, focus, active_, door Wunder](https://wunder.io/wunderpedia/accessibility/accessible-uis/hover-focus-active/): goede uitleg over de states die elementen zoals de link en button hebben in browsers.
19
+ - [MDN: `<a>`: The Anchor element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a): uitgebreid overzicht van alle mogelijkheden van links in HTML.
20
+
21
+ ### Relevante WCAG-regels
22
+
23
+ - [WCAG 1.4.3](https://www.w3.org/TR/WCAG21/#contrast-minimum)
24
+ - [WCAG 2.4.4](https://www.w3.org/TR/WCAG21/#link-purpose-in-context)
25
+ - [WCAG 2.5.3](https://www.w3.org/TR/WCAG21/#label-in-name)
26
+ - [WCAG 3.1.2](https://www.w3.org/TR/WCAG21/#language-of-parts)