@amsterdam/design-system-css 0.5.0 → 0.6.1

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 (157) hide show
  1. package/CHANGELOG.md +45 -4
  2. package/dist/accordion/accordion.css +1 -1
  3. package/dist/accordion/accordion.css.map +1 -1
  4. package/dist/alert/alert.css +1 -1
  5. package/dist/alert/alert.css.map +1 -1
  6. package/dist/blockquote/blockquote.css.map +1 -1
  7. package/dist/button/button.css +1 -1
  8. package/dist/button/button.css.map +1 -1
  9. package/dist/checkbox/checkbox.css +1 -1
  10. package/dist/checkbox/checkbox.css.map +1 -1
  11. package/dist/column/column.css +1 -0
  12. package/dist/column/column.css.map +1 -0
  13. package/dist/dialog/dialog.css +1 -1
  14. package/dist/dialog/dialog.css.map +1 -1
  15. package/dist/fieldset/fieldset.css +1 -0
  16. package/dist/fieldset/fieldset.css.map +1 -0
  17. package/dist/form-label/form-label.css.map +1 -1
  18. package/dist/gap/gap.css +1 -0
  19. package/dist/gap/gap.css.map +1 -0
  20. package/dist/grid/grid.css +1 -1
  21. package/dist/grid/grid.css.map +1 -1
  22. package/dist/header/header.css +1 -1
  23. package/dist/header/header.css.map +1 -1
  24. package/dist/heading/heading.css.map +1 -1
  25. package/dist/index.css +1 -1
  26. package/dist/index.css.map +1 -1
  27. package/dist/link-list/link-list.css.map +1 -1
  28. package/dist/margin/margin.css +1 -0
  29. package/dist/margin/margin.css.map +1 -0
  30. package/dist/mega-menu/mega-menu.css.map +1 -1
  31. package/dist/ordered-list/ordered-list.css +1 -1
  32. package/dist/ordered-list/ordered-list.css.map +1 -1
  33. package/dist/page-heading/page-heading.css.map +1 -1
  34. package/dist/pagination/pagination.css +1 -1
  35. package/dist/pagination/pagination.css.map +1 -1
  36. package/dist/radio/radio.css +1 -0
  37. package/dist/radio/radio.css.map +1 -0
  38. package/dist/row/row.css +1 -0
  39. package/dist/row/row.css.map +1 -0
  40. package/dist/search-field/search-field.css +1 -1
  41. package/dist/search-field/search-field.css.map +1 -1
  42. package/dist/skip-link/skip-link.css +1 -1
  43. package/dist/skip-link/skip-link.css.map +1 -1
  44. package/dist/switch/switch.css +1 -1
  45. package/dist/switch/switch.css.map +1 -1
  46. package/dist/table/table.css +1 -1
  47. package/dist/table/table.css.map +1 -1
  48. package/dist/tabs/tabs.css +1 -0
  49. package/dist/tabs/tabs.css.map +1 -0
  50. package/dist/text-area/text-area.css +1 -0
  51. package/dist/text-area/text-area.css.map +1 -0
  52. package/dist/text-input/text-input.css +1 -1
  53. package/dist/text-input/text-input.css.map +1 -1
  54. package/dist/top-task-link/top-task-link.css.map +1 -1
  55. package/dist/unordered-list/unordered-list.css +1 -1
  56. package/dist/unordered-list/unordered-list.css.map +1 -1
  57. package/package.json +3 -3
  58. package/src/common/breakpoint.scss +1 -1
  59. package/src/common/calculate-fluid-style.scss +1 -1
  60. package/src/common/hide-input.scss +11 -0
  61. package/src/common/hyphenation.scss +5 -0
  62. package/src/common/input-label-focus.scss +21 -0
  63. package/src/common/size.scss +13 -0
  64. package/src/components/accordion/README.md +2 -0
  65. package/src/components/accordion/accordion.scss +5 -5
  66. package/src/components/alert/README.md +4 -2
  67. package/src/components/alert/alert.scss +3 -5
  68. package/src/components/aspect-ratio/README.md +2 -0
  69. package/src/components/aspect-ratio/aspect-ratio.scss +1 -1
  70. package/src/components/badge/README.md +2 -0
  71. package/src/components/badge/badge.scss +1 -1
  72. package/src/components/blockquote/README.md +2 -0
  73. package/src/components/blockquote/blockquote.scss +1 -1
  74. package/src/components/breadcrumb/README.md +2 -0
  75. package/src/components/breadcrumb/breadcrumb.scss +1 -1
  76. package/src/components/button/README.md +3 -1
  77. package/src/components/button/button.scss +56 -10
  78. package/src/components/card/README.md +5 -3
  79. package/src/components/card/card.scss +1 -1
  80. package/src/components/checkbox/README.md +3 -1
  81. package/src/components/checkbox/checkbox.scss +16 -19
  82. package/src/components/column/README.md +5 -0
  83. package/src/components/column/column.scss +16 -0
  84. package/src/components/dialog/README.md +2 -0
  85. package/src/components/dialog/dialog.scss +3 -2
  86. package/src/components/fieldset/README.md +18 -0
  87. package/src/components/fieldset/fieldset.scss +34 -0
  88. package/src/components/footer/README.md +2 -0
  89. package/src/components/form-label/README.md +2 -0
  90. package/src/components/form-label/form-label.scss +1 -1
  91. package/src/components/gap/README.md +5 -0
  92. package/src/components/gap/gap.scss +16 -0
  93. package/src/components/grid/README.md +5 -3
  94. package/src/components/grid/grid.scss +14 -13
  95. package/src/components/header/README.md +2 -0
  96. package/src/components/header/header.scss +5 -5
  97. package/src/components/heading/README.md +2 -0
  98. package/src/components/heading/heading.scss +1 -1
  99. package/src/components/icon/README.md +3 -1
  100. package/src/components/icon/icon.scss +1 -1
  101. package/src/components/icon-button/README.md +3 -1
  102. package/src/components/icon-button/icon-button.scss +1 -1
  103. package/src/components/image/README.md +3 -1
  104. package/src/components/image/image.scss +2 -2
  105. package/src/components/index.scss +9 -1
  106. package/src/components/link/README.md +2 -0
  107. package/src/components/link/link.scss +1 -1
  108. package/src/components/link-list/README.md +3 -1
  109. package/src/components/link-list/link-list.scss +1 -1
  110. package/src/components/logo/README.md +4 -1
  111. package/src/components/logo/logo.scss +1 -1
  112. package/src/components/margin/README.md +5 -0
  113. package/src/components/margin/margin.scss +12 -0
  114. package/src/components/mark/README.md +2 -0
  115. package/src/components/mark/mark.scss +1 -1
  116. package/src/components/mega-menu/README.md +2 -0
  117. package/src/components/mega-menu/mega-menu.scss +3 -1
  118. package/src/components/ordered-list/README.md +2 -0
  119. package/src/components/ordered-list/ordered-list.scss +6 -2
  120. package/src/components/overlap/README.md +2 -0
  121. package/src/components/overlap/overlap.scss +1 -1
  122. package/src/components/page-heading/README.md +3 -1
  123. package/src/components/page-heading/page-heading.scss +1 -1
  124. package/src/components/page-menu/README.md +3 -1
  125. package/src/components/page-menu/page-menu.scss +1 -1
  126. package/src/components/pagination/README.md +3 -1
  127. package/src/components/pagination/pagination.scss +2 -2
  128. package/src/components/paragraph/README.md +2 -0
  129. package/src/components/paragraph/paragraph.scss +1 -1
  130. package/src/components/radio/README.md +18 -0
  131. package/src/components/radio/radio.scss +157 -0
  132. package/src/components/row/README.md +3 -0
  133. package/src/components/row/row.scss +17 -0
  134. package/src/components/screen/README.md +6 -4
  135. package/src/components/screen/screen.scss +1 -1
  136. package/src/components/search-field/README.md +3 -1
  137. package/src/components/search-field/search-field.scss +7 -5
  138. package/src/components/skip-link/README.md +2 -0
  139. package/src/components/skip-link/skip-link.scss +3 -3
  140. package/src/components/spotlight/README.md +2 -0
  141. package/src/components/spotlight/spotlight.scss +1 -1
  142. package/src/components/switch/README.md +3 -1
  143. package/src/components/switch/switch.scss +11 -10
  144. package/src/components/table/README.md +3 -1
  145. package/src/components/table/table.scss +3 -3
  146. package/src/components/tabs/README.md +32 -0
  147. package/src/components/tabs/tabs.scss +41 -0
  148. package/src/components/text-area/README.md +17 -0
  149. package/src/components/text-area/text-area.scss +70 -0
  150. package/src/components/text-input/README.md +2 -0
  151. package/src/components/text-input/text-input.scss +3 -3
  152. package/src/components/top-task-link/README.md +5 -3
  153. package/src/components/top-task-link/top-task-link.scss +1 -1
  154. package/src/components/unordered-list/README.md +2 -0
  155. package/src/components/unordered-list/unordered-list.scss +6 -2
  156. package/src/components/visually-hidden/README.md +2 -0
  157. package/src/components/visually-hidden/visually-hidden.scss +1 -1
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/components/unordered-list/unordered-list.scss"],"names":[],"mappings":"AAeA,0BARE,sBACA,gBACA,eACA,uBACA,8BAOA,aACA,wCAIF,qEACE,4CACA,wDACA,oDACA,wDACA,wDACA,gEAGA,qGACE,6EACA,+EAKJ,iFACE,+EAEA,iHACE,4FACA","file":"unordered-list.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/unordered-list/unordered-list.scss"],"names":[],"mappings":"AAeA,0BARE,sBACA,gBACA,eACA,uBACA,8BAOA,aACA,wCAIF,qEACE,4CACA,wDACA,oDACA,wDACA,wDACA,gEAGA,qGACE,6EACA,+EAIJ,oFACE,oDAIF,iFACE,+EAEA,iHACE,4FACA","file":"unordered-list.css"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.5.0",
2
+ "version": "0.6.1",
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,8 +14,8 @@
14
14
  "directory": "packages/css"
15
15
  },
16
16
  "devDependencies": {
17
- "sass": "1.70.0",
18
- "@amsterdam/design-system-tokens": "0.5.0"
17
+ "sass": "1.71.1",
18
+ "@amsterdam/design-system-tokens": "0.6.1"
19
19
  },
20
20
  "dependencies": {
21
21
  "@utrecht/components": "3.0.0"
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  /*
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  @use "sass:math";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @mixin hide-input {
7
+ appearance: none;
8
+ margin-block: 0;
9
+ margin-inline: 0;
10
+ opacity: 0%; /* to hide native input field in older iOS */
11
+ }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
1
6
  @mixin hyphenation {
2
7
  hyphenate-limit-chars: var(--amsterdam-hyphenation-hyphenate-limit-chars);
3
8
  hyphens: var(--amsterdam-hyphenation-hyphens);
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ /**
7
+ * Focus is first set on the label next to a focussed input, and then
8
+ * hidden when the focussed input doesn't have focus-visible.
9
+ * This progressive enhancement means you get the benefits of focus-visible
10
+ * while still showing a focus ring on browsers that don't support focus-visible (like older Safari).
11
+ */
12
+
13
+ @mixin input-label-focus {
14
+ &:focus + label {
15
+ outline: auto;
16
+ }
17
+
18
+ &:focus:not(:focus-visible) + label {
19
+ outline: 0;
20
+ }
21
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ /** The set of available options for sizing. */
7
+ $amsterdam-sizes: (
8
+ "xs": "extra-small",
9
+ "sm": "small",
10
+ "md": "medium",
11
+ "lg": "large",
12
+ "xl": "extra-large",
13
+ );
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Accordion
2
4
 
3
5
  The accordion component is a clickable (vertically stacked) list of headings to hide or show associated content.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  .amsterdam-accordion__header {
@@ -24,8 +24,8 @@
24
24
  font-weight: var(--amsterdam-accordion-button-font-weight);
25
25
  justify-content: space-between;
26
26
  line-height: var(--amsterdam-accordion-button-line-height);
27
- padding-block: 0.75rem;
28
- padding-inline: 1rem;
27
+ padding-block: var(--amsterdam-accordion-button-padding-block);
28
+ padding-inline: var(--amsterdam-accordion-button-padding-inline);
29
29
  width: 100%;
30
30
 
31
31
  &:focus {
@@ -54,8 +54,8 @@
54
54
 
55
55
  .amsterdam-accordion__panel {
56
56
  display: none;
57
- padding-block: 1rem;
58
- padding-inline: 1rem;
57
+ padding-block: var(--amsterdam-accordion-panel-padding-block);
58
+ padding-inline: var(--amsterdam-accordion-panel-padding-inline);
59
59
  }
60
60
 
61
61
  .amsterdam-accordion__panel--expanded {
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Alert
2
4
 
3
5
  An Alert informs the user of a significant or time-sensitive message without interrupting their task.
@@ -15,8 +17,8 @@ There are four types of notifications:
15
17
 
16
18
  - Place an orange Alert directly below the Header for important and urgent information.
17
19
  Examples: system outage or changes in the opening hours of a City Office.
18
- - Ensure sufficient whitespace around the Alert.
19
- The grid’s whitespace is a good reference – place the Alert in its own cell.
20
+ - Ensure sufficient white space around the Alert.
21
+ The grid’s white space is a good reference – place the Alert in its own cell.
20
22
  - By default, the Alert cannot be closed.
21
23
  This functionality can be added optionally.
22
24
  - Optionally, the title can be omitted.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  .amsterdam-alert {
@@ -11,10 +11,8 @@
11
11
  flex-direction: row;
12
12
  gap: var(--amsterdam-alert-gap);
13
13
  justify-content: space-between;
14
- padding-block-end: var(--amsterdam-alert-padding-block-end);
15
- padding-block-start: var(--amsterdam-alert-padding-block-start);
16
- padding-inline-end: var(--amsterdam-alert-padding-inline-end);
17
- padding-inline-start: var(--amsterdam-alert-padding-inline-start);
14
+ padding-block: var(--amsterdam-alert-padding-block);
15
+ padding-inline: var(--amsterdam-alert-padding-inline);
18
16
  }
19
17
 
20
18
  .amsterdam-alert__content {
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Aspect Ratio
2
4
 
3
5
  Aspect Ratio updates the height of an element with its width.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  .amsterdam-aspect-ratio {
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Badge
2
4
 
3
5
  A prominently coloured box containing 1 or 2 words.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2024 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  .amsterdam-badge {
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Blockquote
2
4
 
3
5
  We use blockquotes to emphasize citations.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Breadcrumb
2
4
 
3
5
  The breadcrumb is a secondary navigation pattern that helps a user understand the structure between levels in the website up to the current page.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  @mixin reset {
@@ -1,10 +1,12 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Button
2
4
 
3
5
  Allows the user to perform actions and operate the user interface.
4
6
 
5
7
  ## Guidelines
6
8
 
7
- - A label text that describes the function of the button.
9
+ - A short label text that describes the function of the button.
8
10
  - A clear contrasting colour scheme so that it is easy to recognize and quickly locate.
9
11
  - Use the correct type of button for the corresponding application.
10
12
  For example, a button within a form must always be of the type `submit`.
@@ -1,44 +1,90 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
- @import "../../../node_modules/@utrecht/components/button/css";
7
-
8
6
  @mixin reset {
9
7
  -webkit-text-size-adjust: 100%;
10
8
  }
11
9
 
12
10
  .amsterdam-button {
11
+ border: none;
12
+ cursor: var(--amsterdam-button-cursor);
13
+ display: inline-flex;
14
+ font-family: var(--amsterdam-button-font-family);
13
15
  font-size: var(--amsterdam-button-font-size);
16
+ gap: var(--amsterdam-button-gap);
14
17
  line-height: var(--amsterdam-button-line-height);
18
+ outline-offset: var(--amsterdam-button-outline-offset);
19
+ padding-block: var(--amsterdam-button-padding-block);
20
+ padding-inline: var(--amsterdam-button-padding-inline);
21
+ touch-action: manipulation;
22
+
23
+ &:disabled,
24
+ &[aria-disabled="true"] {
25
+ cursor: var(--amsterdam-button-disabled-cursor);
26
+ }
15
27
 
16
28
  @include reset;
17
29
  }
18
30
 
31
+ @mixin amsterdam-button-forced-color-mode {
32
+ @media screen and (-ms-high-contrast: active), screen and (forced-colors: active) {
33
+ border: 2px solid ButtonBorder; // add border because forced colors changes box-shadow to none
34
+ }
35
+ }
36
+
37
+ .amsterdam-button--primary {
38
+ background-color: var(--amsterdam-button-primary-background-color);
39
+ box-shadow: var(--amsterdam-button-primary-box-shadow);
40
+ color: var(--amsterdam-button-primary-color);
41
+
42
+ &:disabled,
43
+ [aria-disabled="true"] {
44
+ background-color: var(--amsterdam-button-primary-disabled-background-color);
45
+ box-shadow: var(--amsterdam-button-primary-disabled-box-shadow);
46
+ }
47
+
48
+ &:hover:not(:disabled, [aria-disabled="true"]) {
49
+ background-color: var(--amsterdam-button-primary-hover-background-color);
50
+ box-shadow: var(--amsterdam-button-primary-hover-box-shadow);
51
+ }
52
+
53
+ @include amsterdam-button-forced-color-mode;
54
+ }
55
+
19
56
  .amsterdam-button--secondary {
57
+ background-color: var(--amsterdam-button-secondary-background-color);
20
58
  box-shadow: var(--amsterdam-button-secondary-box-shadow);
59
+ color: var(--amsterdam-button-secondary-color);
21
60
 
22
61
  &:disabled,
23
62
  [aria-disabled="true"] {
63
+ background-color: var(--amsterdam-button-secondary-disabled-background-color);
24
64
  box-shadow: var(--amsterdam-button-secondary-disabled-box-shadow);
65
+ color: var(--amsterdam-button-secondary-disabled-color);
25
66
  }
26
67
 
27
68
  &:hover:not(:disabled, [aria-disabled="true"]) {
28
69
  box-shadow: var(--amsterdam-button-secondary-hover-box-shadow);
70
+ color: var(--amsterdam-button-secondary-hover-color);
29
71
  }
30
- }
31
72
 
32
- .amsterdam-button--secondary:focus:not(:hover, [aria-disabled="true"]) {
33
- box-shadow: var(--amsterdam-button-secondary-focus-box-shadow);
73
+ @include amsterdam-button-forced-color-mode;
34
74
  }
35
75
 
36
76
  .amsterdam-button--tertiary {
77
+ background-color: var(--amsterdam-button-tertiary-background-color);
78
+ color: var(--amsterdam-button-tertiary-color);
79
+
80
+ &:disabled,
81
+ [aria-disabled="true"] {
82
+ background-color: var(--amsterdam-button-tertiary-disabled-background-color);
83
+ color: var(--amsterdam-button-tertiary-disabled-color);
84
+ }
85
+
37
86
  &:hover:not(:disabled, [aria-disabled="true"]) {
38
87
  box-shadow: var(--amsterdam-button-tertiary-hover-box-shadow);
88
+ color: var(--amsterdam-button-tertiary-hover-color);
39
89
  }
40
90
  }
41
-
42
- .amsterdam-button--tertiary:focus:not(:hover, [aria-disabled="true"]) {
43
- box-shadow: none;
44
- }
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Card
2
4
 
3
5
  Use a card on an overview page to link to an article page, such as a news article, a job vacancy, or a search result.
@@ -7,15 +9,15 @@ The link is mandatory.
7
9
  ## Guidelines
8
10
 
9
11
  - The title of a card is a link within a heading.
10
- The same guidelines as for regular [links](?path=/docs/react_navigation-link--docs) and [headings](?path=/docs/react_text-heading--docs) apply here.
12
+ The same guidelines as for regular [links](/docs/components-navigation-link--docs) and [headings](/docs/components-text-heading--docs) apply here.
11
13
  The link is active across the entire area of the card.
12
14
  - A card needs more content than just a title.
13
15
  Supplement this with textual and/or visual content.
14
16
  - Place the text in a regular paragraph.
15
17
  Only use the smallest text size for a tagline or date.
16
18
  - This component may not be the best option if the content does not represent a detailed page.
17
- For referencing a thematic page, use a [top task link](?path=/docs/react_navigation-top-task-link--docs).
18
- You can also use a [regular link](?path=/docs/react_navigation-link--docs).
19
+ For referencing a thematic page, use a [top task link](/docs/components-navigation-top-task-link--docs).
20
+ You can also use a [regular link](/docs/components-navigation-link--docs).
19
21
 
20
22
  ## Screen Readers
21
23
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  .amsterdam-card {
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Checkbox
2
4
 
3
5
  Allows users to make a selection or agree to terms.
@@ -25,4 +27,4 @@ It is written in the first person when asking the user to agree to the terms and
25
27
 
26
28
  - [WCAG 1.3.5](https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html): It is clear for both users and programmatically what the purpose of a form field is.
27
29
 
28
- Checkbox is an interactive element; therefore, [the general requirements and guidelines for interactive elements](https://amsterdam.github.io/design-system/?path=/docs/docs-designrichtlijnen-interactieve-elementen--docs) apply.
30
+ Checkbox is an interactive element; therefore, [the general requirements and guidelines for interactive elements](/docs/docs-design-guidelines-interactive-elements--docs) apply.
@@ -1,18 +1,14 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @import "../../common/input-label-focus";
7
+ @import "../../common/hide-input";
8
+
6
9
  .amsterdam-checkbox__input {
7
- appearance: none;
8
- margin-block: 0;
9
- margin-inline: 0;
10
- opacity: 0%; /* to hide native input field in older iOS */
11
-
12
- &:focus-visible + label {
13
- outline: auto;
14
- outline-offset: var(--amsterdam-checkbox-outline-offset);
15
- }
10
+ @include hide-input;
11
+ @include input-label-focus;
16
12
  }
17
13
 
18
14
  .amsterdam-checkbox__checkmark {
@@ -23,9 +19,12 @@
23
19
  width: 1.5rem;
24
20
 
25
21
  &::after {
22
+ background-position: center;
23
+ background-repeat: no-repeat;
24
+ background-size: 1rem;
26
25
  border-color: var(--amsterdam-checkbox-checkmark-border-color);
27
26
  border-style: solid;
28
- border-width: 2px;
27
+ border-width: 0.125rem;
29
28
  box-sizing: border-box;
30
29
  content: "";
31
30
  height: 1.5rem;
@@ -43,9 +42,10 @@
43
42
  display: inline-flex;
44
43
  font-family: var(--amsterdam-checkbox-font-family);
45
44
  font-size: var(--amsterdam-checkbox-font-size);
46
- font-weight: 400;
45
+ font-weight: var(--amsterdam-checkbox-font-weight);
47
46
  gap: 0.5rem;
48
47
  line-height: var(--amsterdam-checkbox-line-height);
48
+ outline-offset: var(--amsterdam-checkbox-outline-offset);
49
49
 
50
50
  &:hover {
51
51
  color: var(--amsterdam-checkbox-hover-color);
@@ -55,7 +55,7 @@
55
55
 
56
56
  .amsterdam-checkbox__checkmark::after {
57
57
  border-color: var(--amsterdam-checkbox-checkmark-hover-border-color);
58
- border-width: 3px;
58
+ border-width: 0.1875rem;
59
59
  }
60
60
  }
61
61
 
@@ -66,10 +66,7 @@
66
66
  .amsterdam-checkbox__input:checked {
67
67
  + .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
68
68
  background-color: var(--amsterdam-checkbox-checkmark-checked-background-color);
69
- 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");
70
- background-position: center;
71
- background-repeat: no-repeat;
72
- background-size: 1rem;
69
+ background-image: var(--amsterdam-checkbox-checkmark-checked-background-image);
73
70
  border: none;
74
71
  }
75
72
  }
@@ -78,7 +75,7 @@
78
75
  .amsterdam-checkbox__input:indeterminate {
79
76
  + .amsterdam-checkbox__label .amsterdam-checkbox__checkmark::after {
80
77
  background-color: var(--amsterdam-checkbox-checkmark-indeterminate-background-color);
81
- background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0id2hpdGUiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMTMuNzE0aDMydjRIMHoiLz48L3N2Zz4=");
78
+ background-image: var(--amsterdam-checkbox-checkmark-indeterminate-background-image);
82
79
  background-position: center;
83
80
  background-repeat: no-repeat;
84
81
  background-size: 1rem;
@@ -102,7 +99,7 @@
102
99
 
103
100
  .amsterdam-checkbox__checkmark::after {
104
101
  border-color: var(--amsterdam-checkbox-checkmark-disabled-border-color);
105
- border-width: 2px;
102
+ border-width: 0.125rem;
106
103
  }
107
104
  }
108
105
  }
@@ -0,0 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Column
4
+
5
+ Stacks its children vertically and adds a vertical gap between them.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/size";
7
+
8
+ .amsterdam-column {
9
+ display: grid;
10
+ }
11
+
12
+ @each $size, $label in $amsterdam-sizes {
13
+ .amsterdam-column--#{$label} {
14
+ gap: var(--amsterdam-column-gap-#{$size});
15
+ }
16
+ }
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Dialog
2
4
 
3
5
  A Dialog allows the user to focus on one task or a piece of information by popping up and blocking the page content until the modal task is completed or until the user dismisses the action.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  @import "../../common/breakpoint";
@@ -26,6 +26,8 @@
26
26
  gap: var(--amsterdam-dialog-form-gap);
27
27
  grid-template-rows: auto 1fr auto;
28
28
  max-block-size: var(--amsterdam-dialog-form-max-block-size);
29
+
30
+ // TODO Decide on these widths
29
31
  padding-block: var(--amsterdam-dialog-form-padding-block);
30
32
  padding-inline: var(--amsterdam-dialog-form-padding-inline);
31
33
  }
@@ -36,7 +38,6 @@
36
38
  max-block-size: 100%; /* safari */
37
39
  overflow-y: auto;
38
40
  overscroll-behavior-y: contain;
39
- padding-inline-end: var(--amsterdam-dialog-article-padding-inline-end);
40
41
  }
41
42
 
42
43
  .amsterdam-dialog__header {
@@ -0,0 +1,18 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Fieldset
4
+
5
+ A component to group related form inputs.
6
+
7
+ ## Guidelines
8
+
9
+ - Use Fieldset when you need to show a relationship between multiple form inputs. For example, you may need to group a set of text inputs into a single fieldset when asking for an address.
10
+ - When grouping radio inputs, use `role="radiogroup"` on Fieldset to have this grouping explicitly announced as a radio group. Fieldset has a default role of `group`.
11
+
12
+ ## Relevant WCAG Requirements
13
+
14
+ - [WCAG 1.3.5](https://www.w3.org/WAI/WCAG22/Understanding/identify-input-purpose.html): Fieldset labels the purpose of a group of inputs.
15
+
16
+ ## References
17
+
18
+ - [Providing a description for groups of form controls using fieldset and legend elements](https://www.w3.org/WAI/WCAG22/Techniques/html/H71)
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/hyphenation";
7
+
8
+ @mixin reset {
9
+ border: none;
10
+ margin-inline: 0;
11
+ padding-block: 0;
12
+ padding-inline: 0;
13
+ }
14
+
15
+ .amsterdam-fieldset {
16
+ @include reset;
17
+ }
18
+
19
+ @mixin legend-reset {
20
+ padding-inline: 0;
21
+ -webkit-text-size-adjust: 100%;
22
+ }
23
+
24
+ .amsterdam-fieldset__legend {
25
+ color: var(--amsterdam-fieldset-legend-color);
26
+ font-family: var(--amsterdam-fieldset-legend-font-family);
27
+ font-size: var(--amsterdam-fieldset-legend-font-size);
28
+ font-weight: var(--amsterdam-fieldset-legend-font-weight);
29
+ line-height: var(--amsterdam-fieldset-legend-line-height);
30
+ margin-block-end: 1rem; /* Because of a bug in Chrome we can’t use display grid or flex for this gap */
31
+
32
+ @include hyphenation;
33
+ @include legend-reset;
34
+ }
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Footer
2
4
 
3
5
  The footer is the closing section on every web page.
@@ -1,3 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
1
3
  # Form Label
2
4
 
3
5
  Describes a form control.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license EUPL-1.2+
3
- * Copyright (c) 2023 Gemeente Amsterdam
3
+ * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
@@ -0,0 +1,5 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Gap
4
+
5
+ Use these utility classes to add consistent white space between a set of elements.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/size";
7
+
8
+ [class|="amsterdam-gap-"] {
9
+ display: grid !important;
10
+ }
11
+
12
+ @each $size in map-keys($amsterdam-sizes) {
13
+ .amsterdam-gap--#{$size} {
14
+ gap: var(--amsterdam-gap-#{$size}) !important;
15
+ }
16
+ }