@amsterdam/design-system-css 0.15.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +1 -1
  3. package/dist/accordion/accordion.css +1 -1
  4. package/dist/accordion/accordion.css.map +1 -1
  5. package/dist/alert/alert.css +1 -1
  6. package/dist/alert/alert.css.map +1 -1
  7. package/dist/avatar/avatar.css +1 -1
  8. package/dist/avatar/avatar.css.map +1 -1
  9. package/dist/breakout/breakout.css +1 -1
  10. package/dist/breakout/breakout.css.map +1 -1
  11. package/dist/button/button.css +1 -1
  12. package/dist/button/button.css.map +1 -1
  13. package/dist/card/card.css +1 -1
  14. package/dist/card/card.css.map +1 -1
  15. package/dist/checkbox/checkbox.css +1 -1
  16. package/dist/checkbox/checkbox.css.map +1 -1
  17. package/dist/date-input/date-input.css +1 -1
  18. package/dist/date-input/date-input.css.map +1 -1
  19. package/dist/dialog/dialog.css +1 -1
  20. package/dist/dialog/dialog.css.map +1 -1
  21. package/dist/field-set/field-set.css +1 -1
  22. package/dist/field-set/field-set.css.map +1 -1
  23. package/dist/file-input/file-input.css +1 -1
  24. package/dist/file-input/file-input.css.map +1 -1
  25. package/dist/grid/grid.css +1 -1
  26. package/dist/grid/grid.css.map +1 -1
  27. package/dist/heading/heading.css +1 -1
  28. package/dist/heading/heading.css.map +1 -1
  29. package/dist/hint/hint.css +1 -1
  30. package/dist/hint/hint.css.map +1 -1
  31. package/dist/icon/icon.css +1 -1
  32. package/dist/icon/icon.css.map +1 -1
  33. package/dist/image/image.css +1 -1
  34. package/dist/image/image.css.map +1 -1
  35. package/dist/index.css +1 -1
  36. package/dist/index.css.map +1 -1
  37. package/dist/invalid-form-alert/invalid-form-alert.css.map +1 -1
  38. package/dist/label/label.css +1 -1
  39. package/dist/label/label.css.map +1 -1
  40. package/dist/link/link.css +1 -1
  41. package/dist/link/link.css.map +1 -1
  42. package/dist/page/page.css +1 -0
  43. package/dist/page/page.css.map +1 -0
  44. package/dist/page-footer/page-footer.css +1 -0
  45. package/dist/page-footer/page-footer.css.map +1 -0
  46. package/dist/page-header/page-header.css +1 -0
  47. package/dist/page-header/page-header.css.map +1 -0
  48. package/dist/page-heading/page-heading.css +1 -1
  49. package/dist/page-heading/page-heading.css.map +1 -1
  50. package/dist/password-input/password-input.css +1 -1
  51. package/dist/password-input/password-input.css.map +1 -1
  52. package/dist/radio/radio.css +1 -1
  53. package/dist/radio/radio.css.map +1 -1
  54. package/dist/search-field/search-field.css +1 -1
  55. package/dist/search-field/search-field.css.map +1 -1
  56. package/dist/select/select.css +1 -1
  57. package/dist/select/select.css.map +1 -1
  58. package/dist/standalone-link/standalone-link.css +1 -0
  59. package/dist/standalone-link/standalone-link.css.map +1 -0
  60. package/dist/switch/switch.css +1 -1
  61. package/dist/switch/switch.css.map +1 -1
  62. package/dist/text-area/text-area.css +1 -1
  63. package/dist/text-area/text-area.css.map +1 -1
  64. package/dist/text-input/text-input.css +1 -1
  65. package/dist/text-input/text-input.css.map +1 -1
  66. package/dist/time-input/time-input.css +1 -1
  67. package/dist/time-input/time-input.css.map +1 -1
  68. package/dist/visually-hidden/visually-hidden.css +1 -1
  69. package/dist/visually-hidden/visually-hidden.css.map +1 -1
  70. package/package.json +4 -4
  71. package/src/components/accordion/accordion.scss +1 -0
  72. package/src/components/alert/README.md +1 -1
  73. package/src/components/alert/alert.scss +6 -9
  74. package/src/components/aspect-ratio/README.md +1 -0
  75. package/src/components/avatar/avatar.scss +14 -10
  76. package/src/components/breakout/breakout.scss +19 -19
  77. package/src/components/button/README.md +6 -6
  78. package/src/components/button/button.scss +7 -18
  79. package/src/components/card/README.md +15 -14
  80. package/src/components/card/card.scss +9 -1
  81. package/src/components/checkbox/checkbox.scss +229 -125
  82. package/src/components/date-input/date-input.scss +9 -9
  83. package/src/components/dialog/README.md +3 -5
  84. package/src/components/dialog/dialog.scss +24 -1
  85. package/src/components/field-set/field-set.scss +7 -6
  86. package/src/components/file-input/file-input.scss +6 -10
  87. package/src/components/grid/README.md +9 -8
  88. package/src/components/grid/_mixins.scss +22 -22
  89. package/src/components/grid/grid.scss +19 -19
  90. package/src/components/heading/heading.scss +1 -0
  91. package/src/components/hint/hint.scss +1 -1
  92. package/src/components/icon/icon.scss +2 -1
  93. package/src/components/icon-button/README.md +6 -5
  94. package/src/components/image/image.scss +1 -2
  95. package/src/components/image-slider/README.md +1 -1
  96. package/src/components/index.scss +4 -6
  97. package/src/components/invalid-form-alert/invalid-form-alert.scss +5 -0
  98. package/src/components/label/label.scss +1 -0
  99. package/src/components/link/README.md +9 -10
  100. package/src/components/link/link.scss +6 -28
  101. package/src/components/logo/README.md +1 -1
  102. package/src/components/page/README.md +23 -0
  103. package/src/components/page/page.scss +12 -0
  104. package/src/components/{footer → page-footer}/README.md +7 -5
  105. package/src/components/page-footer/page-footer.scss +56 -0
  106. package/src/components/{header → page-header}/README.md +5 -5
  107. package/src/components/{header/header.scss → page-header/page-header.scss} +74 -57
  108. package/src/components/page-heading/README.md +1 -1
  109. package/src/components/page-heading/page-heading.scss +1 -0
  110. package/src/components/password-input/password-input.scss +13 -9
  111. package/src/components/radio/radio.scss +6 -4
  112. package/src/components/search-field/search-field.scss +5 -3
  113. package/src/components/select/select.scss +14 -8
  114. package/src/components/skip-link/README.md +3 -3
  115. package/src/components/spotlight/README.md +2 -3
  116. package/src/components/standalone-link/README.md +11 -0
  117. package/src/components/standalone-link/standalone-link.scss +53 -0
  118. package/src/components/switch/switch.scss +1 -1
  119. package/src/components/tabs/README.md +1 -1
  120. package/src/components/text-area/text-area.scss +9 -9
  121. package/src/components/text-input/text-input.scss +13 -9
  122. package/src/components/time-input/time-input.scss +9 -9
  123. package/src/components/visually-hidden/visually-hidden.scss +1 -0
  124. package/dist/footer/footer.css +0 -1
  125. package/dist/footer/footer.css.map +0 -1
  126. package/dist/header/header.css +0 -1
  127. package/dist/header/header.css.map +0 -1
  128. package/dist/mega-menu/mega-menu.css +0 -1
  129. package/dist/mega-menu/mega-menu.css.map +0 -1
  130. package/dist/page-menu/page-menu.css +0 -1
  131. package/dist/page-menu/page-menu.css.map +0 -1
  132. package/dist/screen/screen.css +0 -1
  133. package/dist/screen/screen.css.map +0 -1
  134. package/dist/top-task-link/top-task-link.css +0 -1
  135. package/dist/top-task-link/top-task-link.css.map +0 -1
  136. package/src/components/footer/footer.scss +0 -47
  137. package/src/components/mega-menu/README.md +0 -3
  138. package/src/components/mega-menu/mega-menu.scss +0 -16
  139. package/src/components/page-menu/README.md +0 -24
  140. package/src/components/page-menu/page-menu.scss +0 -65
  141. package/src/components/screen/README.md +0 -23
  142. package/src/components/screen/screen.scss +0 -23
  143. package/src/components/top-task-link/README.md +0 -27
  144. package/src/components/top-task-link/top-task-link.scss +0 -45
@@ -6,35 +6,51 @@
6
6
  @use "../../common/breakpoint" as *;
7
7
  @use "../../common/text-rendering" as *;
8
8
 
9
- .ams-header {
9
+ .ams-page-header {
10
10
  /*
11
11
  * The logo link section is created twice: once outside the navigation and once hidden inside it.
12
12
  * This keeps all navigation in one nav element and lets the menu wrap around the logo link section.
13
13
  * Display grid is used to let both logo link sections overlap.
14
14
  */
15
15
  display: grid;
16
- font-family: var(--ams-header-font-family);
17
- padding-block: var(--ams-header-padding-block);
18
- padding-inline: var(--ams-header-padding-inline);
16
+ font-family: var(--ams-page-header-font-family);
17
+ padding-block: var(--ams-page-header-padding-block);
18
+ padding-inline: var(--ams-page-header-padding-inline);
19
+
20
+ @media screen and (min-width: $ams-breakpoint-medium) {
21
+ padding-inline: var(--ams-page-header-medium-padding-inline);
22
+ }
23
+
24
+ @media screen and (min-width: $ams-breakpoint-wide) {
25
+ padding-inline: var(--ams-page-header-wide-padding-inline);
26
+ }
19
27
  }
20
28
 
21
- .ams-header__logo-link {
29
+ .ams-page-header__logo-link {
22
30
  align-items: center;
23
31
  align-self: start; // To align the logo link section to the top of the header when it wraps
24
- column-gap: var(--ams-header-logo-link-column-gap);
32
+ column-gap: var(--ams-page-header-logo-link-column-gap);
25
33
  display: flex;
26
34
  grid-area: 1 / 1; // To allow this section to overlap with the second logo link section
27
35
  inline-size: fit-content;
28
- outline-offset: var(--ams-header-logo-link-outline-offset);
36
+ outline-offset: var(--ams-page-header-logo-link-outline-offset);
29
37
  text-decoration: none;
38
+
39
+ @media (forced-colors: active) {
40
+ .ams-logo__emblem,
41
+ .ams-logo__text-primary,
42
+ .ams-logo__text-secondary {
43
+ fill: LinkText;
44
+ }
45
+ }
30
46
  }
31
47
 
32
- .ams-header__logo-link--hidden {
48
+ .ams-page-header__logo-link--hidden {
33
49
  opacity: 0%;
34
50
  user-select: none; // The hidden logo link section should not be selectable
35
51
  }
36
52
 
37
- .ams-header__logo-container {
53
+ .ams-page-header__logo-container {
38
54
  flex-shrink: 0;
39
55
  inline-size: 0.75rem;
40
56
  overflow: hidden;
@@ -44,22 +60,23 @@
44
60
  }
45
61
  }
46
62
 
47
- .ams-header__brand-name {
48
- color: var(--ams-header-brand-name-color);
49
- font-size: var(--ams-header-brand-name-font-size);
50
- font-weight: var(--ams-header-brand-name-font-weight);
51
- line-height: 1.35;
63
+ .ams-page-header__brand-name {
64
+ color: var(--ams-page-header-brand-name-color);
65
+ font-size: var(--ams-page-header-brand-name-font-size);
66
+ font-weight: var(--ams-page-header-brand-name-font-weight);
67
+ line-height: var(--ams-page-header-brand-name-line-height);
68
+ text-wrap: var(--ams-page-header-brand-name-text-wrap);
52
69
  }
53
70
 
54
- .ams-header__navigation {
55
- column-gap: var(--ams-header-navigation-column-gap);
71
+ .ams-page-header__navigation {
72
+ column-gap: var(--ams-page-header-navigation-column-gap);
56
73
  display: flex;
57
74
  flex-wrap: wrap;
58
75
  grid-area: 1 / 1; // To allow this section to overlap with the logo link section
59
76
  // This section blocks pointer events initially, so the hidden logo link section can't be activated.
60
77
  // The menu and collapsible menu set it back to auto, to make sure they can be activated.
61
78
  pointer-events: none;
62
- row-gap: var(--ams-header-navigation-row-gap);
79
+ row-gap: var(--ams-page-header-navigation-row-gap);
63
80
  }
64
81
 
65
82
  @mixin reset-list {
@@ -68,62 +85,62 @@
68
85
  padding-inline-start: 0;
69
86
  }
70
87
 
71
- .ams-header__menu {
88
+ .ams-page-header__menu {
72
89
  align-items: center;
73
- column-gap: var(--ams-header-menu-column-gap);
90
+ column-gap: var(--ams-page-header-menu-column-gap);
74
91
  display: flex;
75
92
  flex-wrap: wrap;
76
93
  justify-content: flex-end;
77
94
  margin-inline-start: auto;
78
95
  pointer-events: auto; // Set pointer events back to auto to allow the menu to be activated
79
- row-gap: var(--ams-header-menu-row-gap);
96
+ row-gap: var(--ams-page-header-menu-row-gap);
80
97
 
81
98
  @include reset-list;
82
99
  }
83
100
 
84
101
  // Do not show menu items below the wide breakpoint...
85
- .ams-header__menu-item {
102
+ .ams-page-header__menu-item {
86
103
  @media screen and (not (min-width: $ams-breakpoint-wide)) {
87
104
  display: none;
88
105
  }
89
106
  }
90
107
 
91
108
  // ...unless they're fixed.
92
- .ams-header__menu-item--fixed {
109
+ .ams-page-header__menu-item--fixed {
93
110
  display: revert;
94
111
  }
95
112
 
96
- @mixin header-menu-action {
97
- color: var(--ams-header-menu-item-color);
98
- font-size: var(--ams-header-menu-item-font-size);
99
- font-weight: var(--ams-header-menu-item-font-weight);
100
- line-height: var(--ams-header-menu-item-line-height);
101
- outline-offset: var(--ams-header-menu-item-outline-offset);
102
- padding-block: var(--ams-header-menu-item-padding-block);
113
+ @mixin page-header-menu-action {
114
+ color: var(--ams-page-header-menu-item-color);
115
+ font-size: var(--ams-page-header-menu-item-font-size);
116
+ font-weight: var(--ams-page-header-menu-item-font-weight);
117
+ line-height: var(--ams-page-header-menu-item-line-height);
118
+ outline-offset: var(--ams-page-header-menu-item-outline-offset);
119
+ padding-block: var(--ams-page-header-menu-item-padding-block);
103
120
  touch-action: manipulation;
104
121
  white-space: nowrap;
105
122
 
106
123
  @include text-rendering;
107
124
 
108
125
  &:hover {
109
- color: var(--ams-header-menu-item-hover-color);
126
+ color: var(--ams-page-header-menu-item-hover-color);
110
127
  }
111
128
  }
112
129
 
113
- .ams-header__menu-link {
130
+ .ams-page-header__menu-link {
114
131
  display: inline-block;
115
- text-decoration-line: var(--ams-header-menu-link-text-decoration-line);
116
- text-decoration-thickness: var(--ams-header-menu-link-text-decoration-thickness);
117
- text-underline-offset: var(--ams-header-menu-link-text-underline-offset);
132
+ text-decoration-line: var(--ams-page-header-menu-link-text-decoration-line);
133
+ text-decoration-thickness: var(--ams-page-header-menu-link-text-decoration-thickness);
134
+ text-underline-offset: var(--ams-page-header-menu-link-text-underline-offset);
118
135
 
119
- @include header-menu-action;
136
+ @include page-header-menu-action;
120
137
 
121
138
  &:hover {
122
- text-decoration-line: var(--ams-header-menu-link-hover-text-decoration-line);
139
+ text-decoration-line: var(--ams-page-header-menu-link-hover-text-decoration-line);
123
140
  }
124
141
  }
125
142
 
126
- .ams-header__mega-menu-button-item--hide-on-wide-window {
143
+ .ams-page-header__mega-menu-button-item--hide-on-wide-window {
127
144
  @media screen and (min-width: $ams-breakpoint-wide) {
128
145
  display: none;
129
146
  }
@@ -139,36 +156,36 @@
139
156
  // [1] Remove the margin in older Safari.
140
157
  }
141
158
 
142
- .ams-header__mega-menu-button {
143
- column-gap: var(--ams-header-menu-item-column-gap);
144
- cursor: var(--ams-header-mega-menu-button-cursor);
159
+ .ams-page-header__mega-menu-button {
160
+ column-gap: var(--ams-page-header-menu-item-column-gap);
161
+ cursor: var(--ams-page-header-mega-menu-button-cursor);
145
162
  display: grid;
146
163
  font-family: inherit;
147
164
  grid-auto-flow: column;
148
165
 
149
- @include header-menu-action;
166
+ @include page-header-menu-action;
150
167
  @include reset-button;
151
168
  }
152
169
 
153
- .ams-header__mega-menu-button[aria-expanded="true"] {
154
- font-weight: var(--ams-header-mega-menu-button-label-open-font-weight);
170
+ .ams-page-header__mega-menu-button[aria-expanded="true"] {
171
+ font-weight: var(--ams-page-header-mega-menu-button-label-open-font-weight);
155
172
  }
156
173
 
157
- .ams-header__mega-menu-button-label,
158
- .ams-header__mega-menu-button-hidden-label {
174
+ .ams-page-header__mega-menu-button-label,
175
+ .ams-page-header__mega-menu-button-hidden-label {
159
176
  grid-area: 1 / 1; // To allow the label and the hidden label to overlap
160
177
  }
161
178
 
162
179
  // This hidden label is used to prevent a layout shift when the mega menu is opened
163
180
  // and the button text becomes bold.
164
- .ams-header__mega-menu-button-hidden-label {
165
- font-weight: var(--ams-header-mega-menu-button-label-open-font-weight);
181
+ .ams-page-header__mega-menu-button-hidden-label {
182
+ font-weight: var(--ams-page-header-mega-menu-button-label-open-font-weight);
166
183
  pointer-events: none;
167
184
  user-select: none;
168
185
  visibility: hidden;
169
186
  }
170
187
 
171
- .ams-header__menu-icon {
188
+ .ams-page-header__menu-icon {
172
189
  line {
173
190
  stroke: currentColor;
174
191
  stroke-width: 3px;
@@ -183,30 +200,30 @@
183
200
  }
184
201
  }
185
202
 
186
- .ams-header__menu-icon-top {
203
+ .ams-page-header__menu-icon-top {
187
204
  translate: 0 -7px;
188
205
  }
189
206
 
190
- .ams-header__menu-icon-bottom {
207
+ .ams-page-header__menu-icon-bottom {
191
208
  translate: 0 7px;
192
209
  }
193
210
  }
194
211
 
195
- .ams-header__menu-icon--open {
196
- .ams-header__menu-icon-top {
212
+ .ams-page-header__menu-icon--open {
213
+ .ams-page-header__menu-icon-top {
197
214
  rotate: 45deg;
198
215
  translate: 0;
199
216
  }
200
- .ams-header__menu-icon-middle {
217
+ .ams-page-header__menu-icon-middle {
201
218
  opacity: 0%;
202
219
  }
203
- .ams-header__menu-icon-bottom {
220
+ .ams-page-header__menu-icon-bottom {
204
221
  rotate: -45deg;
205
222
  translate: 0;
206
223
  }
207
224
  }
208
225
 
209
- .ams-header__mega-menu {
226
+ .ams-page-header__mega-menu {
210
227
  inline-size: 100%;
211
228
  pointer-events: auto; // Set pointer events back to auto to allow the mega menu to be activated
212
229
 
@@ -217,11 +234,11 @@
217
234
  }
218
235
  }
219
236
 
220
- .ams-header__mega-menu--closed.ams-header__mega-menu--closed {
237
+ .ams-page-header__mega-menu--closed.ams-page-header__mega-menu--closed {
221
238
  display: none;
222
239
  }
223
240
 
224
- .ams-header__grid-cell-narrow-window-only {
241
+ .ams-page-header__grid-cell-narrow-window-only {
225
242
  @media screen and (min-width: $ams-breakpoint-wide) {
226
243
  display: none;
227
244
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Page Heading
4
4
 
5
- The page heading component is a prominent text at the beginning of a page, immediately after the header.
5
+ The page heading component is a prominent text at the beginning of a page, immediately after the Page Header.
6
6
  Use this component for a name, title, or motto.
7
7
 
8
8
  ## Guidelines
@@ -19,6 +19,7 @@
19
19
  font-size: var(--ams-page-heading-font-size);
20
20
  font-weight: var(--ams-page-heading-font-weight);
21
21
  line-height: var(--ams-page-heading-line-height);
22
+ text-wrap: var(--ams-page-heading-text-wrap);
22
23
 
23
24
  @include hyphenation;
24
25
  @include text-rendering;
@@ -8,21 +8,22 @@
8
8
  @mixin reset-input {
9
9
  -webkit-appearance: none; // Reset appearance for Safari < 15.4
10
10
  appearance: none; // Reset native appearance, this causes issues on iOS and Android devices
11
- border: none;
12
11
  border-radius: 0; // Reset rounded borders on iOS devices
13
12
  margin-block: 0;
14
13
  }
15
14
 
16
15
  .ams-password-input {
17
16
  background-color: var(--ams-password-input-background-color);
18
- box-shadow: var(--ams-password-input-box-shadow);
17
+ border-color: var(--ams-password-input-border-color);
18
+ border-style: var(--ams-password-input-border-style);
19
+ border-width: var(--ams-password-input-border-width);
19
20
  box-sizing: border-box;
20
21
  color: var(--ams-password-input-color);
21
22
  font-family: var(--ams-password-input-font-family);
22
23
  font-size: var(--ams-password-input-font-size);
23
24
  font-weight: var(--ams-password-input-font-weight);
24
- inline-size: 100%;
25
25
  line-height: var(--ams-password-input-line-height);
26
+ max-inline-size: 100%;
26
27
  outline-offset: var(--ams-password-input-outline-offset);
27
28
  padding-block: var(--ams-password-input-padding-block);
28
29
  padding-inline: var(--ams-password-input-padding-inline);
@@ -30,10 +31,10 @@
30
31
 
31
32
  @include text-rendering;
32
33
  @include reset-input;
34
+ }
33
35
 
34
- &:hover {
35
- box-shadow: var(--ams-password-input-hover-box-shadow);
36
- }
36
+ .ams-password-input:not([size]) {
37
+ inline-size: 100%;
37
38
  }
38
39
 
39
40
  .ams-password-input::placeholder {
@@ -42,17 +43,20 @@
42
43
  }
43
44
 
44
45
  .ams-password-input:disabled {
45
- background-color: var(--ams-password-input-disabled-background-color);
46
- box-shadow: var(--ams-password-input-disabled-box-shadow);
47
46
  color: var(--ams-password-input-disabled-color);
48
47
  cursor: var(--ams-password-input-disabled-cursor);
49
48
  }
50
49
 
51
50
  .ams-password-input:invalid,
52
51
  .ams-password-input[aria-invalid="true"] {
53
- box-shadow: var(--ams-password-input-invalid-box-shadow);
52
+ border-color: var(--ams-password-input-invalid-border-color);
54
53
 
55
54
  &:hover {
55
+ border-color: var(--ams-password-input-invalid-hover-border-color);
56
56
  box-shadow: var(--ams-password-input-invalid-hover-box-shadow);
57
57
  }
58
58
  }
59
+
60
+ .ams-password-input:not(:disabled):hover {
61
+ box-shadow: var(--ams-password-input-hover-box-shadow);
62
+ }
@@ -41,13 +41,10 @@
41
41
  .ams-radio__circle {
42
42
  fill: var(--ams-radio-circle-fill);
43
43
  stroke: var(--ams-radio-circle-stroke);
44
- stroke-width: var(--ams-radio-circle-stroke-width);
45
44
  }
46
45
 
47
46
  .ams-radio__hover-indicator {
48
- fill: none;
49
- stroke: transparent;
50
- stroke-width: var(--ams-radio-hover-indicator-stroke-width);
47
+ stroke: none;
51
48
  }
52
49
 
53
50
  .ams-radio__checked-indicator {
@@ -169,9 +166,14 @@
169
166
  .ams-radio__input[aria-invalid="true"] + .ams-radio__label,
170
167
  .ams-radio__input[aria-invalid="true"] + .ams-radio__label:hover {
171
168
  .ams-radio__circle {
169
+ fill: Canvas;
172
170
  stroke: FieldText;
173
171
  }
174
172
 
173
+ .ams-radio__hover-indicator {
174
+ stroke: none;
175
+ }
176
+
175
177
  .ams-radio__checked-indicator {
176
178
  fill: FieldText;
177
179
  }
@@ -13,14 +13,15 @@
13
13
  @mixin reset-input {
14
14
  -webkit-appearance: none; // Reset appearance for Safari < 15.4
15
15
  appearance: none; // Reset native appearance, this causes issues on iOS and Android devices
16
- border: none;
17
16
  border-radius: 0; // Reset rounded borders on iOS devices
18
17
  margin-block: 0;
19
18
  }
20
19
 
21
20
  .ams-search-field__input {
22
21
  background-color: var(--ams-search-field-input-background-color);
23
- box-shadow: var(--ams-search-field-input-box-shadow);
22
+ border-color: var(--ams-search-field-input-border-color);
23
+ border-style: var(--ams-search-field-input-border-style);
24
+ border-width: var(--ams-search-field-input-border-width);
24
25
  box-sizing: border-box;
25
26
  color: var(--ams-search-field-input-color);
26
27
  font-family: var(--ams-search-field-input-font-family);
@@ -47,9 +48,10 @@
47
48
 
48
49
  .ams-search-field__input:invalid,
49
50
  .ams-search-field__input[aria-invalid="true"] {
50
- box-shadow: var(--ams-search-field-input-invalid-box-shadow);
51
+ border-color: var(--ams-search-field-input-invalid-border-color);
51
52
 
52
53
  &:hover {
54
+ border-color: var(--ams-search-field-input-invalid-hover-border-color);
53
55
  box-shadow: var(--ams-search-field-input-invalid-hover-box-shadow);
54
56
  }
55
57
  }
@@ -5,13 +5,14 @@
5
5
 
6
6
  @mixin reset-select {
7
7
  appearance: none; // Reset native appearance to hide default chevron
8
- border: none;
9
8
  border-radius: 0; // Reset rounded borders for Safari on MacOS
10
9
  }
11
10
 
12
11
  .ams-select {
13
12
  background-color: var(--ams-select-background-color);
14
- box-shadow: var(--ams-select-box-shadow);
13
+ border-color: var(--ams-select-border-color);
14
+ border-style: var(--ams-select-border-style);
15
+ border-width: var(--ams-select-border-width);
15
16
  color: var(--ams-select-color);
16
17
  font-family: var(--ams-select-font-family);
17
18
  font-size: var(--ams-select-font-size);
@@ -31,32 +32,37 @@
31
32
  background-repeat: no-repeat;
32
33
  background-size: 1em 1em;
33
34
  }
34
-
35
- &:hover {
36
- box-shadow: var(--ams-select-hover-box-shadow);
37
- }
38
35
  }
39
36
 
40
37
  .ams-select:invalid,
41
38
  .ams-select[aria-invalid="true"] {
42
- box-shadow: var(--ams-select-invalid-box-shadow);
39
+ border-color: var(--ams-select-invalid-border-color);
43
40
  }
44
41
 
45
42
  .ams-select:disabled {
46
- box-shadow: var(--ams-select-disabled-box-shadow);
47
43
  color: var(--ams-select-disabled-color);
48
44
  cursor: var(--ams-select-disabled-cursor);
49
45
 
50
46
  &:not([multiple]) {
51
47
  background-image: var(--ams-select-disabled-background-image);
48
+
49
+ /* stylelint-disable no-descending-specificity */
50
+ &:hover {
51
+ background-image: var(--ams-select-hover-background-image);
52
+ }
52
53
  }
53
54
  }
54
55
 
55
56
  .ams-select:invalid:hover,
56
57
  .ams-select[aria-invalid="true"]:hover {
58
+ border-color: var(--ams-select-invalid-hover-border-color);
57
59
  box-shadow: var(--ams-select-invalid-hover-box-shadow);
58
60
  }
59
61
 
62
+ .ams-select:not(:disabled):hover {
63
+ box-shadow: var(--ams-select-hover-box-shadow);
64
+ }
65
+
60
66
  .ams-select__option:disabled {
61
67
  color: var(--ams-select-option-disabled-color);
62
68
  }
@@ -6,13 +6,13 @@ Allows skipping past recurring navigation blocks at the top of a page.
6
6
 
7
7
  ## Design
8
8
 
9
- The Skip Link sits above the header and is as wide as the Screen container.
9
+ The Skip Link sits above the Page Header and is as wide as the Page container.
10
10
  It remains hidden until activated with the ‘Tab’ key.
11
- After appearing, it pushes the entire page down.
11
+ After appearing, it pushes the rest of the page down.
12
12
 
13
13
  ## Guidelines
14
14
 
15
- - Place the Skip Link as the first element in the Screen.
15
+ - Place the Skip Link as the first element in the [Page](/docs/components-containers-page--docs) container.
16
16
  - Target the Skip Link to the main content.
17
17
  On an article page, for example, it could be the title of the article.
18
18
  On a search page, it could be the search field.
@@ -6,13 +6,12 @@ Emphasizes a section on a page through a distinctive background colour.
6
6
 
7
7
  ## Guidelines
8
8
 
9
- - Display the Spotlight at the entire width of the [Screen](/docs/components-layout-screen--docs); do not position it on the [Grid](/docs/components-layout-grid--docs).
9
+ - Display the Spotlight at the entire width of the [Page](/docs/components-containers-page--docs) container; do not position it on the [Grid](/docs/components-layout-grid--docs).
10
10
  - Add a Grid with medium vertical padding inside the Spotlight to add whitespace around the content, even for a single element.
11
11
  - Use any of the [highlight colours](/docs/brand-design-tokens-colour--docs) for the background.
12
12
  The design system does not prescribe a meaning to any of these colours.
13
13
  The default is purple.
14
- - Use the default text colour (black) on an azure, lime, orange or yellow background.
15
- Use the inverse text colour (white) on a green, magenta or purple background.
14
+ - Select [the correct colour](?path=/docs/brand-design-tokens-colour--docs#pairing-foreground-with-background-colours) for text and links against the background you choose.
16
15
 
17
16
  ## Relevant WCAG requirements
18
17
 
@@ -0,0 +1,11 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Standalone Link
4
+
5
+ A navigation element that is seperated from the text around it.
6
+
7
+ ## Guidelines
8
+
9
+ - Use a Standalone Link for links that need to stand out.
10
+ - Use a regular [Link](/docs/components-navigation-link--docs) within sentences or paragraphs of text.
11
+ - For additional guidelines, refer to the [Link](/docs/components-navigation-link--docs) component.
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @use "../../common/hyphenation" as *;
7
+ @use "../../common/text-rendering" as *;
8
+
9
+ .ams-standalone-link {
10
+ color: var(--ams-standalone-link-color);
11
+ column-gap: var(--ams-standalone-link-column-gap);
12
+ display: inline-flex;
13
+ font-family: var(--ams-standalone-link-font-family);
14
+ font-size: var(--ams-standalone-link-font-size);
15
+ font-weight: var(--ams-standalone-link-font-weight);
16
+ line-height: var(--ams-standalone-link-line-height);
17
+ outline-offset: var(--ams-standalone-link-outline-offset);
18
+ text-decoration-thickness: var(--ams-standalone-link-text-decoration-thickness);
19
+ text-underline-offset: var(--ams-standalone-link-text-underline-offset);
20
+
21
+ @include hyphenation;
22
+ @include text-rendering;
23
+
24
+ &:hover {
25
+ color: var(--ams-standalone-link-hover-color);
26
+ text-decoration-thickness: var(--ams-standalone-link-hover-text-decoration-thickness);
27
+ text-underline-offset: var(--ams-standalone-link-hover-text-underline-offset);
28
+ }
29
+ }
30
+
31
+ .ams-standalone-link--contrast {
32
+ color: var(--ams-standalone-link-contrast-color);
33
+
34
+ &:hover {
35
+ color: var(--ams-standalone-link-contrast-hover-color);
36
+ }
37
+ }
38
+
39
+ .ams-standalone-link--inverse {
40
+ color: var(--ams-standalone-link-inverse-color);
41
+
42
+ &:hover {
43
+ color: var(--ams-standalone-link-inverse-hover-color);
44
+ }
45
+ }
46
+
47
+ .ams-standalone-link--with-icon {
48
+ text-decoration-line: var(--ams-standalone-link-with-icon-text-decoration-line);
49
+
50
+ &:hover {
51
+ text-decoration-line: var(--ams-standalone-link-with-icon-hover-text-decoration-line);
52
+ }
53
+ }
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .ams-switch__label {
15
- --ams-switch-track-border-width: 0.0625rem;
15
+ --ams-switch-track-border-width: var(--ams-border-width-m);
16
16
 
17
17
  background-color: var(--ams-switch-background-color);
18
18
 
@@ -10,7 +10,7 @@ Tabs are used to bundle related content in a compact overview within a page. Eac
10
10
  - The content within each tab should have a similar structure.
11
11
  - Use when there is limited visual space and content needs to be divided into sections.
12
12
  - Each tab consists of a button and a panel.
13
- A `tab` prop with a corresponding value connects them.
13
+ The button has an `aria-controls` attribute that matches the `id` of the associated panel.
14
14
 
15
15
  You can navigate tabs with your keyboard:
16
16
 
@@ -8,14 +8,15 @@
8
8
  @mixin reset-textarea {
9
9
  -webkit-appearance: none; // Reset appearance for Safari < 15.4
10
10
  appearance: none; // Reset native appearance, this causes issues on iOS and Android devices
11
- border: none;
12
11
  border-radius: 0; // Reset rounded borders on iOS devices
13
12
  margin-block: 0;
14
13
  }
15
14
 
16
15
  .ams-text-area {
17
16
  background-color: var(--ams-text-area-background-color);
18
- box-shadow: var(--ams-text-area-box-shadow);
17
+ border-color: var(--ams-text-area-border-color);
18
+ border-style: var(--ams-text-area-border-style);
19
+ border-width: var(--ams-text-area-border-width);
19
20
  box-sizing: border-box;
20
21
  color: var(--ams-text-area-color);
21
22
  font-family: var(--ams-text-area-font-family);
@@ -32,10 +33,6 @@
32
33
 
33
34
  @include text-rendering;
34
35
  @include reset-textarea;
35
-
36
- &:hover {
37
- box-shadow: var(--ams-text-area-hover-box-shadow);
38
- }
39
36
  }
40
37
 
41
38
  .ams-text-area::placeholder {
@@ -44,21 +41,24 @@
44
41
  }
45
42
 
46
43
  .ams-text-area:disabled {
47
- background-color: var(--ams-text-area-disabled-background-color);
48
- box-shadow: var(--ams-text-area-disabled-box-shadow);
49
44
  color: var(--ams-text-area-disabled-color);
50
45
  cursor: var(--ams-text-area-disabled-cursor);
51
46
  }
52
47
 
53
48
  .ams-text-area:invalid,
54
49
  .ams-text-area[aria-invalid="true"] {
55
- box-shadow: var(--ams-text-area-invalid-box-shadow);
50
+ border-color: var(--ams-text-area-invalid-border-color);
56
51
 
57
52
  &:hover {
53
+ border-color: var(--ams-text-area-invalid-hover-border-color);
58
54
  box-shadow: var(--ams-text-area-invalid-hover-box-shadow);
59
55
  }
60
56
  }
61
57
 
58
+ .ams-text-area:not(:disabled):hover {
59
+ box-shadow: var(--ams-text-area-hover-box-shadow);
60
+ }
61
+
62
62
  .ams-text-area--resize-none {
63
63
  resize: none;
64
64
  }