@amsterdam/design-system-css 0.7.1 → 0.8.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 (103) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +21 -0
  3. package/dist/accordion/accordion.css +1 -1
  4. package/dist/accordion/accordion.css.map +1 -1
  5. package/dist/blockquote/blockquote.css +1 -1
  6. package/dist/blockquote/blockquote.css.map +1 -1
  7. package/dist/breadcrumb/breadcrumb.css +1 -1
  8. package/dist/breadcrumb/breadcrumb.css.map +1 -1
  9. package/dist/button/button.css +1 -1
  10. package/dist/button/button.css.map +1 -1
  11. package/dist/checkbox/checkbox.css +1 -1
  12. package/dist/checkbox/checkbox.css.map +1 -1
  13. package/dist/date-input/date-input.css +1 -0
  14. package/dist/date-input/date-input.css.map +1 -0
  15. package/dist/description-list/description-list.css +1 -0
  16. package/dist/description-list/description-list.css.map +1 -0
  17. package/dist/document/document.css +1 -0
  18. package/dist/document/document.css.map +1 -0
  19. package/dist/fieldset/fieldset.css +1 -1
  20. package/dist/fieldset/fieldset.css.map +1 -1
  21. package/dist/form-field-character-counter/form-field-character-counter.css +1 -1
  22. package/dist/form-field-character-counter/form-field-character-counter.css.map +1 -1
  23. package/dist/heading/heading.css +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/label/label.css +1 -0
  28. package/dist/label/label.css.map +1 -0
  29. package/dist/link/link.css +1 -1
  30. package/dist/link/link.css.map +1 -1
  31. package/dist/link-list/link-list.css +1 -1
  32. package/dist/link-list/link-list.css.map +1 -1
  33. package/dist/ordered-list/ordered-list.css +1 -1
  34. package/dist/ordered-list/ordered-list.css.map +1 -1
  35. package/dist/page-heading/page-heading.css +1 -1
  36. package/dist/page-heading/page-heading.css.map +1 -1
  37. package/dist/page-menu/page-menu.css +1 -1
  38. package/dist/page-menu/page-menu.css.map +1 -1
  39. package/dist/pagination/pagination.css +1 -1
  40. package/dist/pagination/pagination.css.map +1 -1
  41. package/dist/paragraph/paragraph.css +1 -1
  42. package/dist/paragraph/paragraph.css.map +1 -1
  43. package/dist/radio/radio.css +1 -1
  44. package/dist/radio/radio.css.map +1 -1
  45. package/dist/screen/screen.css +1 -1
  46. package/dist/screen/screen.css.map +1 -1
  47. package/dist/search-field/search-field.css +1 -1
  48. package/dist/search-field/search-field.css.map +1 -1
  49. package/dist/select/select.css +1 -0
  50. package/dist/select/select.css.map +1 -0
  51. package/dist/tabs/tabs.css +1 -1
  52. package/dist/tabs/tabs.css.map +1 -1
  53. package/dist/text-area/text-area.css +1 -1
  54. package/dist/text-area/text-area.css.map +1 -1
  55. package/dist/text-input/text-input.css +1 -1
  56. package/dist/text-input/text-input.css.map +1 -1
  57. package/dist/time-input/time-input.css +1 -0
  58. package/dist/time-input/time-input.css.map +1 -0
  59. package/dist/top-task-link/top-task-link.css +1 -1
  60. package/dist/top-task-link/top-task-link.css.map +1 -1
  61. package/dist/unordered-list/unordered-list.css +1 -1
  62. package/dist/unordered-list/unordered-list.css.map +1 -1
  63. package/documentation/coding-conventions.md +6 -0
  64. package/package.json +3 -6
  65. package/src/common/text-rendering.scss +15 -0
  66. package/src/components/accordion/accordion.scss +22 -14
  67. package/src/components/blockquote/blockquote.scss +2 -1
  68. package/src/components/breadcrumb/breadcrumb.scss +3 -1
  69. package/src/components/button/button.scss +7 -5
  70. package/src/components/checkbox/checkbox.scss +8 -11
  71. package/src/components/date-input/README.md +11 -0
  72. package/src/components/date-input/date-input.scss +78 -0
  73. package/src/components/description-list/README.md +18 -0
  74. package/src/components/description-list/description-list.scss +55 -0
  75. package/src/components/document/document.scss +14 -0
  76. package/src/components/fieldset/fieldset.scss +5 -4
  77. package/src/components/form-field-character-counter/form-field-character-counter.scss +2 -4
  78. package/src/components/heading/heading.scss +2 -1
  79. package/src/components/index.scss +6 -1
  80. package/src/components/{form-label → label}/README.md +1 -1
  81. package/src/components/label/label.scss +18 -0
  82. package/src/components/link/link.scss +2 -4
  83. package/src/components/link-list/link-list.scss +4 -3
  84. package/src/components/ordered-list/ordered-list.scss +5 -3
  85. package/src/components/page-heading/page-heading.scss +2 -1
  86. package/src/components/page-menu/page-menu.scss +8 -1
  87. package/src/components/pagination/pagination.scss +8 -5
  88. package/src/components/paragraph/paragraph.scss +3 -1
  89. package/src/components/radio/radio.scss +5 -8
  90. package/src/components/screen/screen.scss +6 -1
  91. package/src/components/search-field/search-field.scss +21 -5
  92. package/src/components/select/README.md +9 -0
  93. package/src/components/select/select.scss +60 -0
  94. package/src/components/tabs/tabs.scss +8 -2
  95. package/src/components/text-area/text-area.scss +5 -2
  96. package/src/components/text-input/text-input.scss +5 -2
  97. package/src/components/time-input/README.md +11 -0
  98. package/src/components/time-input/time-input.scss +79 -0
  99. package/src/components/top-task-link/top-task-link.scss +2 -1
  100. package/src/components/unordered-list/unordered-list.scss +5 -3
  101. package/dist/form-label/form-label.css +0 -1
  102. package/dist/form-label/form-label.css.map +0 -1
  103. package/src/components/form-label/form-label.scss +0 -21
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/text-rendering";
7
+
8
+ @mixin reset {
9
+ // Reset native appearance, this causes issues on iOS and Android devices
10
+ -webkit-appearance: none;
11
+ appearance: none;
12
+ border: 0;
13
+ border-radius: 0; // Reset rounded borders on iOS devices
14
+ box-sizing: border-box;
15
+ margin-block: 0;
16
+ }
17
+
18
+ .ams-date-input {
19
+ background-color: var(--ams-date-input-background-color);
20
+ box-shadow: var(--ams-date-input-box-shadow);
21
+ color: var(--ams-date-input-color);
22
+ font-family: var(--ams-date-input-font-family);
23
+ font-size: var(--ams-date-input-font-size);
24
+ font-weight: var(--ams-date-input-font-weight);
25
+ line-height: var(--ams-date-input-line-height);
26
+
27
+ // Set min height for iOS, otherwise an empty box is a lot smaller than a filled one.
28
+ min-height: calc(
29
+ (var(--ams-date-input-font-size) * var(--ams-date-input-line-height)) + 2 * var(--ams-date-input-padding-block)
30
+ );
31
+
32
+ // Set min width for iOS, so the width is closer to the filled in width.
33
+ min-width: calc(8ch + (2 * var(--ams-date-input-padding-inline)));
34
+ outline-offset: var(--ams-date-input-outline-offset);
35
+ padding-block: var(--ams-date-input-padding-block);
36
+ padding-inline: var(--ams-date-input-padding-inline);
37
+ touch-action: manipulation;
38
+
39
+ @include text-rendering;
40
+ @include reset;
41
+
42
+ &:hover {
43
+ box-shadow: var(--ams-date-input-hover-box-shadow);
44
+ }
45
+ }
46
+
47
+ // This changes the default calendar icon on Chromium browsers only
48
+ .ams-date-input::-webkit-calendar-picker-indicator {
49
+ appearance: none;
50
+ background-image: var(--ams-date-input-calender-picker-indicator-background-image);
51
+ cursor: pointer;
52
+ }
53
+
54
+ .ams-date-input:hover::-webkit-calendar-picker-indicator {
55
+ background-image: var(--ams-date-input-hover-calender-picker-indicator-background-image);
56
+ }
57
+
58
+ .ams-date-input:disabled {
59
+ background-color: var(--ams-date-input-disabled-background-color);
60
+ box-shadow: var(--ams-date-input-disabled-box-shadow);
61
+ color: var(--ams-date-input-disabled-color);
62
+ cursor: not-allowed;
63
+ }
64
+
65
+ .ams-date-input:disabled::-webkit-calendar-picker-indicator {
66
+ background-image: var(--ams-date-input-disabled-calender-picker-indicator-background-image);
67
+ visibility: visible;
68
+ }
69
+
70
+ .ams-date-input:invalid,
71
+ .ams-date-input[aria-invalid="true"] {
72
+ box-shadow: var(--ams-date-input-invalid-box-shadow);
73
+
74
+ &:hover {
75
+ // TODO: this should be the (currently non-existent) dark red hover color
76
+ box-shadow: var(--ams-date-input-invalid-hover-box-shadow);
77
+ }
78
+ }
@@ -0,0 +1,18 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Description List
4
+
5
+ A collection of terms and their details.
6
+
7
+ ## Design
8
+
9
+ On a narrow screen, details appear indented below their term.
10
+ From the medium breakpoint, terms and details appear next to each other.
11
+ The column for the details is twice as wide as the one for the term.
12
+
13
+ Details are set in bold text.
14
+
15
+ ## References
16
+
17
+ - [MDN: `<dl>`: The Description List element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl)
18
+ - [WCAG: Using description lists](https://www.w3.org/WAI/WCAG22/Techniques/html/H40)
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/breakpoint";
7
+ @import "../../common/text-rendering";
8
+
9
+ @mixin reset {
10
+ box-sizing: border-box;
11
+ margin-block: 0;
12
+ }
13
+
14
+ .ams-description-list {
15
+ color: var(--ams-description-list-color);
16
+ display: grid;
17
+ font-family: var(--ams-description-list-font-family);
18
+ font-size: var(--ams-description-list-font-size);
19
+ font-weight: var(--ams-description-list-font-weight);
20
+ gap: var(--ams-description-list-gap);
21
+ line-height: var(--ams-description-list-line-height);
22
+
23
+ @media screen and (min-width: $ams-breakpoint-medium) {
24
+ grid-template-columns: 1fr 2fr;
25
+ }
26
+
27
+ @include reset;
28
+ @include text-rendering;
29
+ }
30
+
31
+ .ams-description-list--inverse-color {
32
+ color: var(--ams-description-list-inverse-color);
33
+ }
34
+
35
+ .ams-description-list__term {
36
+ @media screen and (min-width: $ams-breakpoint-medium) {
37
+ grid-column-start: 1;
38
+ }
39
+ }
40
+
41
+ @mixin reset-details {
42
+ margin-inline: 0;
43
+ }
44
+
45
+ .ams-description-list__details {
46
+ font-weight: var(--ams-description-list-details-font-weight);
47
+ padding-inline-start: var(--ams-description-list-details-padding-inline-start);
48
+
49
+ @media screen and (min-width: $ams-breakpoint-medium) {
50
+ grid-column-start: 2;
51
+ padding-inline-start: 0;
52
+ }
53
+
54
+ @include reset-details;
55
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @mixin reset-body {
7
+ margin-block: 0;
8
+ margin-inline: 0;
9
+ }
10
+
11
+ // Add this class if you haven’t removed the default margin on the `<body>` element.
12
+ .ams-body {
13
+ @include reset-body;
14
+ }
@@ -4,9 +4,10 @@
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
7
+ @import "../../common/text-rendering";
7
8
 
8
9
  @mixin reset {
9
- border: none;
10
+ border: 0;
10
11
  margin-inline: 0;
11
12
  padding-block: 0;
12
13
  padding-inline: 0;
@@ -16,9 +17,8 @@
16
17
  @include reset;
17
18
  }
18
19
 
19
- @mixin legend-reset {
20
+ @mixin reset-legend {
20
21
  padding-inline: 0;
21
- -webkit-text-size-adjust: 100%;
22
22
  }
23
23
 
24
24
  .ams-fieldset__legend {
@@ -30,5 +30,6 @@
30
30
  margin-block-end: 1rem; /* Because of a bug in Chrome we can’t use display grid or flex for this gap */
31
31
 
32
32
  @include hyphenation;
33
- @include legend-reset;
33
+ @include text-rendering;
34
+ @include reset-legend;
34
35
  }
@@ -3,9 +3,7 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
- @mixin reset {
7
- -webkit-text-size-adjust: 100%;
8
- }
6
+ @import "../../common/text-rendering";
9
7
 
10
8
  .ams-form-field-character-counter {
11
9
  color: var(--ams-form-field-character-counter-color);
@@ -14,7 +12,7 @@
14
12
  font-weight: var(--ams-form-field-character-counter-font-weight);
15
13
  line-height: var(--ams-form-field-character-counter-line-height);
16
14
 
17
- @include reset;
15
+ @include text-rendering;
18
16
  }
19
17
 
20
18
  .ams-form-field-character-counter--error {
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
7
+ @import "../../common/text-rendering";
7
8
 
8
9
  @mixin reset {
9
10
  box-sizing: border-box;
10
11
  margin-block: 0;
11
- -webkit-text-size-adjust: 100%;
12
12
  }
13
13
 
14
14
  .ams-heading {
@@ -19,6 +19,7 @@
19
19
  font-weight: var(--ams-heading-font-weight);
20
20
 
21
21
  @include hyphenation;
22
+ @include text-rendering;
22
23
  @include reset;
23
24
  }
24
25
 
@@ -4,8 +4,13 @@
4
4
  */
5
5
 
6
6
  /* Append here */
7
+ @import "./select/select";
8
+ @import "./time-input/time-input";
9
+ @import "./date-input/date-input";
10
+ @import "./document/document";
7
11
  @import "./avatar/avatar";
8
12
  @import "./form-field-character-counter/form-field-character-counter";
13
+ @import "./description-list/description-list";
9
14
  @import "./row/row";
10
15
  @import "./radio/radio";
11
16
  @import "./tabs/tabs";
@@ -37,7 +42,7 @@
37
42
  @import "./button/button";
38
43
  @import "./card/card";
39
44
  @import "./checkbox/checkbox";
40
- @import "./form-label/form-label";
45
+ @import "./label/label";
41
46
  @import "./grid/grid";
42
47
  @import "./heading/heading";
43
48
  @import "./spotlight/spotlight";
@@ -1,6 +1,6 @@
1
1
  <!-- @license CC0-1.0 -->
2
2
 
3
- # Form Label
3
+ # Label
4
4
 
5
5
  Describes a form control.
6
6
 
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @import "../../common/hyphenation";
7
+ @import "../../common/text-rendering";
8
+
9
+ .ams-label {
10
+ color: var(--ams-label-color);
11
+ font-family: var(--ams-label-font-family);
12
+ font-size: var(--ams-label-font-size);
13
+ font-weight: var(--ams-label-font-weight);
14
+ line-height: var(--ams-label-line-height);
15
+
16
+ @include hyphenation;
17
+ @include text-rendering;
18
+ }
@@ -3,9 +3,7 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
- @mixin reset {
7
- -webkit-text-size-adjust: 100%;
8
- }
6
+ @import "../../common/text-rendering";
9
7
 
10
8
  .ams-link {
11
9
  color: var(--ams-link-color);
@@ -17,7 +15,7 @@
17
15
  color: var(--ams-link-hover-color);
18
16
  }
19
17
 
20
- @include reset;
18
+ @include text-rendering;
21
19
  }
22
20
 
23
21
  .ams-link--standalone {
@@ -4,20 +4,21 @@
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
7
+ @import "../../common/text-rendering";
7
8
 
8
9
  @mixin reset-list {
9
10
  box-sizing: border-box;
10
11
  list-style: none;
11
12
  margin-block: 0;
12
13
  padding-inline-start: 0;
13
- -webkit-text-size-adjust: 100%;
14
14
  }
15
15
 
16
16
  .ams-link-list {
17
- @include reset-list;
18
-
19
17
  display: grid;
20
18
  gap: var(--ams-link-list-gap);
19
+
20
+ @include text-rendering;
21
+ @include reset-list;
21
22
  }
22
23
 
23
24
  .ams-link-list__link {
@@ -3,21 +3,23 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @import "../../common/text-rendering";
7
+
6
8
  /** Apply border box sizing, reset white space and list styles. */
7
9
  @mixin reset {
8
10
  box-sizing: border-box;
9
11
  list-style-type: none;
10
12
  margin-block: 0;
11
13
  padding-inline-start: 0;
12
- -webkit-text-size-adjust: 100%;
13
14
  }
14
15
 
15
16
  /** A list is a grid column with a gap between items. */
16
17
  .ams-ordered-list {
17
- @include reset;
18
-
19
18
  display: grid;
20
19
  gap: var(--ams-ordered-list-gap);
20
+
21
+ @include text-rendering;
22
+ @include reset;
21
23
  }
22
24
 
23
25
  /** A list with markers sets typography for its text content. */
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  @import "../../common/hyphenation";
7
+ @import "../../common/text-rendering";
7
8
 
8
9
  @mixin reset {
9
10
  box-sizing: border-box;
10
11
  margin-block: 0;
11
- -webkit-text-size-adjust: 100%;
12
12
  }
13
13
 
14
14
  .ams-page-heading {
@@ -21,6 +21,7 @@
21
21
  line-height: var(--ams-page-heading-line-height);
22
22
 
23
23
  @include hyphenation;
24
+ @include text-rendering;
24
25
  @include reset;
25
26
  }
26
27
 
@@ -3,6 +3,8 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @import "../../common/text-rendering";
7
+
6
8
  @mixin reset-list {
7
9
  box-sizing: border-box;
8
10
  margin-block: 0;
@@ -11,7 +13,6 @@
11
13
 
12
14
  @mixin reset-item {
13
15
  box-sizing: border-box;
14
- -webkit-text-size-adjust: 100%;
15
16
  }
16
17
 
17
18
  .ams-page-menu {
@@ -19,6 +20,7 @@
19
20
  column-gap: var(--ams-page-menu-column-gap);
20
21
  display: flex;
21
22
  flex-direction: row;
23
+ flex-wrap: wrap;
22
24
  list-style: none;
23
25
  row-gap: var(--ams-page-menu-row-gap);
24
26
 
@@ -29,6 +31,10 @@
29
31
  justify-content: end;
30
32
  }
31
33
 
34
+ .ams-page-menu--no-wrap {
35
+ flex-wrap: nowrap;
36
+ }
37
+
32
38
  @mixin page-menu-item {
33
39
  color: var(--ams-page-menu-item-color);
34
40
  display: inline-flex;
@@ -49,6 +55,7 @@
49
55
 
50
56
  .ams-page-menu__link {
51
57
  @include page-menu-item;
58
+ @include text-rendering;
52
59
  @include reset-item;
53
60
  }
54
61
 
@@ -3,7 +3,9 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
- @mixin list-reset {
6
+ @import "../../common/text-rendering";
7
+
8
+ @mixin reset-list {
7
9
  list-style-type: none;
8
10
  margin-block: 0;
9
11
  padding-inline-start: 0;
@@ -19,20 +21,19 @@
19
21
  justify-content: center;
20
22
  line-height: var(--ams-pagination-line-height);
21
23
 
22
- @include list-reset;
24
+ @include reset-list;
23
25
  }
24
26
 
25
- @mixin button-reset {
27
+ @mixin reset-button {
26
28
  all: unset;
27
29
  box-sizing: border-box;
28
30
  outline: revert;
29
- -webkit-text-size-adjust: 100%;
30
31
  }
31
32
 
32
33
  .ams-pagination__button {
33
34
  /* The reset is included at the top of the block here, if you set it
34
35
  at the bottom `all: unset` overrides the `gap` property. */
35
- @include button-reset;
36
+ @include reset-button;
36
37
 
37
38
  cursor: pointer;
38
39
  display: flex;
@@ -58,6 +59,8 @@
58
59
  height: 1rem;
59
60
  width: 1rem;
60
61
  }
62
+
63
+ @include text-rendering;
61
64
  }
62
65
 
63
66
  .ams-pagination__button--current {
@@ -3,10 +3,11 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @import "../../common/text-rendering";
7
+
6
8
  @mixin reset {
7
9
  box-sizing: border-box;
8
10
  margin-block: 0;
9
- -webkit-text-size-adjust: 100%;
10
11
  }
11
12
 
12
13
  .ams-paragraph {
@@ -16,6 +17,7 @@
16
17
  font-weight: var(--ams-paragraph-font-weight);
17
18
  line-height: var(--ams-paragraph-medium-line-height);
18
19
 
20
+ @include text-rendering;
19
21
  @include reset;
20
22
  }
21
23
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  @import "../../common/input-label-focus";
7
7
  @import "../../common/hide-input";
8
+ @import "../../common/text-rendering";
8
9
 
9
10
  .ams-radio__input {
10
11
  @include hide-input;
@@ -25,7 +26,7 @@
25
26
  border-color: var(--ams-radio-circle-border-color);
26
27
  border-radius: 100%;
27
28
  border-style: solid;
28
- border-width: 0.125rem;
29
+ border-width: var(--ams-radio-circle-border-width);
29
30
  box-sizing: border-box;
30
31
  content: "";
31
32
  height: 1.5rem;
@@ -33,10 +34,6 @@
33
34
  }
34
35
  }
35
36
 
36
- @mixin reset {
37
- -webkit-text-size-adjust: 100%;
38
- }
39
-
40
37
  .ams-radio__label {
41
38
  color: var(--ams-radio-color);
42
39
  cursor: pointer;
@@ -51,7 +48,7 @@
51
48
  &:hover {
52
49
  color: var(--ams-radio-hover-color);
53
50
  text-decoration-line: underline;
54
- text-decoration-thickness: 0.125rem;
51
+ text-decoration-thickness: var(--ams-radio-hover-text-decoration-thickness);
55
52
  text-underline-offset: 0.375rem;
56
53
 
57
54
  .ams-radio__circle::after {
@@ -59,7 +56,7 @@
59
56
  }
60
57
  }
61
58
 
62
- @include reset;
59
+ @include text-rendering;
63
60
  }
64
61
 
65
62
  // Default checked
@@ -84,7 +81,7 @@
84
81
 
85
82
  .ams-radio__circle::after {
86
83
  border-color: var(--ams-radio-circle-disabled-border-color);
87
- border-width: 0.125rem;
84
+ border-width: var(--ams-radio-circle-disabled-border-width);
88
85
  }
89
86
  }
90
87
  }
@@ -8,9 +8,14 @@
8
8
  }
9
9
 
10
10
  .ams-screen {
11
+ background-color: var(--ams-screen-background-color);
12
+ margin-inline: auto;
13
+
11
14
  @include reset;
15
+ }
12
16
 
13
- margin-inline: auto;
17
+ .ams-screen--full-height {
18
+ min-height: 100vh;
14
19
  }
15
20
 
16
21
  .ams-screen--wide {
@@ -3,19 +3,25 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @import "../../common/text-rendering";
7
+
6
8
  .ams-search-field {
7
9
  display: flex;
8
10
  isolation: isolate; // create new stacking context, so the input’s z-index doesn’t escape the component
9
11
  }
10
12
 
11
- @mixin reset {
13
+ @mixin reset-input {
14
+ // Reset native appearance, this causes issues on iOS and Android devices
15
+ -webkit-appearance: none;
16
+ appearance: none;
17
+ border: 0;
18
+ border-radius: 0; // Reset rounded borders on iOS devices
12
19
  box-sizing: border-box;
13
20
  margin-block: 0;
14
- -webkit-text-size-adjust: 100%;
15
21
  }
16
22
 
17
23
  .ams-search-field__input {
18
- border: none;
24
+ background-color: var(--ams-search-field-input-background-color);
19
25
  box-shadow: var(--ams-search-field-input-box-shadow);
20
26
  color: var(--ams-search-field-input-color);
21
27
  font-family: var(--ams-search-field-input-font-family);
@@ -28,7 +34,8 @@
28
34
  touch-action: manipulation;
29
35
  width: 100%;
30
36
 
31
- @include reset;
37
+ @include text-rendering;
38
+ @include reset-input;
32
39
 
33
40
  &:hover {
34
41
  box-shadow: var(--ams-search-field-input-hover-box-shadow);
@@ -52,9 +59,16 @@
52
59
  width: var(--ams-search-field-input-cancel-button-width);
53
60
  }
54
61
 
62
+ @mixin reset-button {
63
+ border: 0;
64
+
65
+ // Reset margins added by Safari on iOS
66
+ margin-block: 0;
67
+ margin-inline: 0;
68
+ }
69
+
55
70
  .ams-search-field__button {
56
71
  background-color: var(--ams-search-field-button-background-color);
57
- border: 0;
58
72
  color: var(--ams-search-field-button-color);
59
73
  cursor: pointer;
60
74
  outline-offset: var(--ams-search-field-button-outline-offset);
@@ -64,6 +78,8 @@
64
78
  padding-inline: var(--ams-search-field-button-padding-inline);
65
79
  touch-action: manipulation;
66
80
 
81
+ @include reset-button;
82
+
67
83
  &:hover {
68
84
  background-color: var(--ams-search-field-button-hover-background-color);
69
85
  }
@@ -0,0 +1,9 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Select
4
+
5
+ A form control that allows users to select one or more options from a list.
6
+
7
+ ## References
8
+
9
+ - [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)