@amsterdam/design-system-css 0.15.0 → 0.16.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 (91) hide show
  1. package/CHANGELOG.md +40 -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/breakout/breakout.css +1 -1
  6. package/dist/breakout/breakout.css.map +1 -1
  7. package/dist/card/card.css +1 -1
  8. package/dist/card/card.css.map +1 -1
  9. package/dist/dialog/dialog.css +1 -1
  10. package/dist/dialog/dialog.css.map +1 -1
  11. package/dist/field-set/field-set.css +1 -1
  12. package/dist/field-set/field-set.css.map +1 -1
  13. package/dist/grid/grid.css +1 -1
  14. package/dist/grid/grid.css.map +1 -1
  15. package/dist/heading/heading.css +1 -1
  16. package/dist/heading/heading.css.map +1 -1
  17. package/dist/icon/icon.css +1 -1
  18. package/dist/icon/icon.css.map +1 -1
  19. package/dist/index.css +1 -1
  20. package/dist/index.css.map +1 -1
  21. package/dist/label/label.css +1 -1
  22. package/dist/label/label.css.map +1 -1
  23. package/dist/link/link.css +1 -1
  24. package/dist/link/link.css.map +1 -1
  25. package/dist/page/page.css +1 -0
  26. package/dist/page/page.css.map +1 -0
  27. package/dist/page-footer/page-footer.css +1 -0
  28. package/dist/page-footer/page-footer.css.map +1 -0
  29. package/dist/page-header/page-header.css +1 -0
  30. package/dist/page-header/page-header.css.map +1 -0
  31. package/dist/page-heading/page-heading.css +1 -1
  32. package/dist/page-heading/page-heading.css.map +1 -1
  33. package/dist/standalone-link/standalone-link.css +1 -0
  34. package/dist/standalone-link/standalone-link.css.map +1 -0
  35. package/dist/visually-hidden/visually-hidden.css +1 -1
  36. package/dist/visually-hidden/visually-hidden.css.map +1 -1
  37. package/package.json +3 -3
  38. package/src/components/accordion/accordion.scss +1 -0
  39. package/src/components/alert/README.md +1 -1
  40. package/src/components/breakout/breakout.scss +19 -19
  41. package/src/components/card/README.md +15 -14
  42. package/src/components/card/card.scss +9 -1
  43. package/src/components/dialog/README.md +3 -5
  44. package/src/components/dialog/dialog.scss +21 -0
  45. package/src/components/field-set/field-set.scss +7 -6
  46. package/src/components/grid/README.md +9 -8
  47. package/src/components/grid/_mixins.scss +22 -22
  48. package/src/components/grid/grid.scss +19 -19
  49. package/src/components/heading/heading.scss +1 -0
  50. package/src/components/icon/icon.scss +2 -1
  51. package/src/components/image-slider/README.md +1 -1
  52. package/src/components/index.scss +4 -6
  53. package/src/components/label/label.scss +1 -0
  54. package/src/components/link/README.md +9 -10
  55. package/src/components/link/link.scss +6 -28
  56. package/src/components/logo/README.md +1 -1
  57. package/src/components/page/README.md +23 -0
  58. package/src/components/page/page.scss +12 -0
  59. package/src/components/{footer → page-footer}/README.md +7 -5
  60. package/src/components/page-footer/page-footer.scss +56 -0
  61. package/src/components/{header → page-header}/README.md +5 -5
  62. package/src/components/{header/header.scss → page-header/page-header.scss} +65 -56
  63. package/src/components/page-heading/README.md +1 -1
  64. package/src/components/page-heading/page-heading.scss +1 -0
  65. package/src/components/skip-link/README.md +3 -3
  66. package/src/components/spotlight/README.md +2 -3
  67. package/src/components/standalone-link/README.md +11 -0
  68. package/src/components/standalone-link/standalone-link.scss +53 -0
  69. package/src/components/tabs/README.md +1 -1
  70. package/src/components/visually-hidden/visually-hidden.scss +1 -0
  71. package/dist/footer/footer.css +0 -1
  72. package/dist/footer/footer.css.map +0 -1
  73. package/dist/header/header.css +0 -1
  74. package/dist/header/header.css.map +0 -1
  75. package/dist/mega-menu/mega-menu.css +0 -1
  76. package/dist/mega-menu/mega-menu.css.map +0 -1
  77. package/dist/page-menu/page-menu.css +0 -1
  78. package/dist/page-menu/page-menu.css.map +0 -1
  79. package/dist/screen/screen.css +0 -1
  80. package/dist/screen/screen.css.map +0 -1
  81. package/dist/top-task-link/top-task-link.css +0 -1
  82. package/dist/top-task-link/top-task-link.css.map +0 -1
  83. package/src/components/footer/footer.scss +0 -47
  84. package/src/components/mega-menu/README.md +0 -3
  85. package/src/components/mega-menu/mega-menu.scss +0 -16
  86. package/src/components/page-menu/README.md +0 -24
  87. package/src/components/page-menu/page-menu.scss +0 -65
  88. package/src/components/screen/README.md +0 -23
  89. package/src/components/screen/screen.scss +0 -23
  90. package/src/components/top-task-link/README.md +0 -27
  91. package/src/components/top-task-link/top-task-link.scss +0 -45
@@ -7,16 +7,15 @@ It is the lightweight variant for navigation.
7
7
 
8
8
  ## Guidelines
9
9
 
10
- Use a link in the following cases:
11
-
12
- - To navigate to another page within the website or application
13
- - To navigate to another website (see [External links](#external-links))
14
- - To navigate to an element on the same page
15
- - To link to emails or phone numbers (start the link with `mailto:` or `tel:`)
16
- - Wrap 2 or more consecutive buttons and/or links in an [Action Group](https://designsystem.amsterdam/?path=/docs/components-layout-action-group--docs).
17
-
18
- A link is a navigation component.
19
- Use a button instead of a link when an action is desired.
10
+ - Use a link in the following cases:
11
+ - To navigate to another page within the website or application
12
+ - To navigate to another website (see [External links](#external-links))
13
+ - To navigate to an element on the same page
14
+ - To link to emails or phone numbers (start the link with `mailto:` or `tel:`)
15
+ - A link is a navigation component.
16
+ Use a button instead of a link when an action is desired.
17
+ - An icon can be added to links, positioned after the link.
18
+ - Too many links on the same page may confuse the user.
20
19
 
21
20
  ### External links
22
21
 
@@ -9,41 +9,19 @@
9
9
  .ams-link {
10
10
  color: var(--ams-link-color);
11
11
  font-family: var(--ams-link-font-family);
12
+ font-size: var(--ams-link-font-size);
12
13
  font-weight: var(--ams-link-font-weight);
14
+ line-height: var(--ams-link-line-height);
13
15
  outline-offset: var(--ams-link-outline-offset);
16
+ text-decoration-thickness: var(--ams-link-text-decoration-thickness);
17
+ text-underline-offset: var(--ams-link-text-underline-offset);
14
18
 
15
19
  @include text-rendering;
16
20
 
17
21
  &:hover {
18
22
  color: var(--ams-link-hover-color);
19
- }
20
- }
21
-
22
- .ams-link--standalone {
23
- display: inline-block;
24
- font-size: var(--ams-link-standalone-font-size);
25
- line-height: var(--ams-link-standalone-line-height);
26
- text-decoration-thickness: var(--ams-link-standalone-text-decoration-thickness);
27
- text-underline-offset: var(--ams-link-standalone-text-underline-offset);
28
-
29
- @include hyphenation;
30
-
31
- &:hover {
32
- text-decoration-thickness: var(--ams-link-standalone-hover-text-decoration-thickness);
33
- text-underline-offset: var(--ams-link-standalone-hover-text-underline-offset);
34
- }
35
- }
36
-
37
- .ams-link--inline {
38
- font-family: var(--ams-link-inline-font-family);
39
- font-size: var(--ams-link-inline-font-size);
40
- line-height: var(--ams-link-inline-line-height);
41
- text-decoration-thickness: var(--ams-link-inline-text-decoration-thickness);
42
- text-underline-offset: var(--ams-link-inline-text-underline-offset);
43
-
44
- &:hover {
45
- text-decoration-thickness: var(--ams-link-inline-hover-text-decoration-thickness);
46
- text-underline-offset: var(--ams-link-inline-hover-text-underline-offset);
23
+ text-decoration-thickness: var(--ams-link-hover-text-decoration-thickness);
24
+ text-underline-offset: var(--ams-link-hover-text-underline-offset);
47
25
  }
48
26
  }
49
27
 
@@ -30,7 +30,7 @@ The sub-brands are:
30
30
  ## Requirements for all logos
31
31
 
32
32
  - The logo is always displayed.
33
- - The logo is left-aligned in the header.
33
+ - The logo is left-aligned in the Page Header.
34
34
  - The logo links to the homepage of the website or application.
35
35
  - If the application is a form, application, or tool without a homepage, the logo links to the page where the form, application, or tool is referred to.
36
36
 
@@ -0,0 +1,23 @@
1
+ <!-- @license CC0-1.0 -->
2
+
3
+ # Page
4
+
5
+ Contains the entire website.
6
+ Sets the background colour and its maximum width, and is horizontally centered.
7
+
8
+ ## Guidelines
9
+
10
+ - The Page component must be used on all websites for the City of Amsterdam.
11
+ Applications can use it as well, although a specific layout for them is in development.
12
+ - It is the outermost container. Within it, combine components such as
13
+ [Grid](https://designsystem.amsterdam/?path=/docs/components-layout-grid--docs),
14
+ [Page Header](https://designsystem.amsterdam/?path=/docs/components-containers-page-header--docs),
15
+ [Page Footer](https://designsystem.amsterdam/?path=/docs/components-containers-page-footer--docs),
16
+ [Spotlight](https://designsystem.amsterdam/?path=/docs/components-containers-spotlight--docs),
17
+ [Image Slider](https://designsystem.amsterdam/?path=/docs/components-media-image-slider--docs),
18
+ and [Figure](https://designsystem.amsterdam/?path=/docs/components-media-figure--docs).
19
+
20
+ ## Design
21
+
22
+ The Page container sets the maximum width for a website of the City of Amsterdam, which is 1600 pixels.
23
+ It horizontally centres both itself and its content and sets a white background.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ .ams-page {
7
+ background-color: var(--ams-page-background-color);
8
+ margin-inline: auto;
9
+ max-inline-size: var(--ams-page-max-inline-size);
10
+ min-block-size: 100vh; /* Fallback for browsers that do not support dvh */
11
+ min-block-size: 100dvh;
12
+ }
@@ -1,16 +1,18 @@
1
1
  <!-- @license CC0-1.0 -->
2
2
 
3
- # Footer
3
+ # Page Footer
4
4
 
5
5
  Provides service information at the bottom of every page.
6
6
 
7
7
  ## Guidelines
8
8
 
9
- - The Footer usually consists of two sections: a full-width blue area and a `Footer.Menu` below it.
10
- - Both sections are preceded by a visually hidden `Heading` for accessibility.
11
- - A Footer containing only a `Footer.Menu` can be sufficient for applications.
12
- - The Footer must be used on all websites for the City of Amsterdam.
9
+ - The Page Footer must be used on all websites and applications for the City of Amsterdam.
10
+ - It usually consists of two sections: a full-width blue `PageFooter.Spotlight` and a `PageFooter.Menu` below it.
11
+ - `Footer.Menu` is preceded by a visually hidden `Heading` for accessibility.
12
+ - A Page Footer containing only a `PageFooter.Menu` can be sufficient for applications.
13
+ - The Page Footer must be used on all websites for the City of Amsterdam.
13
14
  - It must be the same on every page.
15
+ - Set [the inverse colour](?path=/docs/brand-design-tokens-colour--docs#pairing-foreground-with-background-colours) on all text and links in this area.
14
16
 
15
17
  The top section offers space for various practical links:
16
18
 
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+
6
+ @use "../../common/breakpoint" as *;
7
+ @use "../../common/hyphenation" as *;
8
+ @use "../../common/text-rendering" as *;
9
+
10
+ @mixin reset-ul {
11
+ list-style: none;
12
+ margin-block: 0;
13
+ }
14
+
15
+ .ams-page-footer__spotlight {
16
+ background-color: var(--ams-page-footer-spotlight-background-color);
17
+ }
18
+
19
+ .ams-page-footer__menu {
20
+ column-gap: var(--ams-page-footer-menu-column-gap);
21
+ display: flex;
22
+ flex-wrap: wrap;
23
+ padding-block: var(--ams-page-footer-menu-padding-block);
24
+ padding-inline: var(--ams-page-footer-menu-padding-inline);
25
+ row-gap: var(--ams-page-footer-menu-row-gap);
26
+
27
+ @include reset-ul;
28
+
29
+ @media screen and (min-width: $ams-breakpoint-medium) {
30
+ padding-inline: var(--ams-page-footer-menu-medium-padding-inline);
31
+ }
32
+
33
+ @media screen and (min-width: $ams-breakpoint-wide) {
34
+ padding-inline: var(--ams-page-footer-menu-wide-padding-inline);
35
+ }
36
+ }
37
+
38
+ .ams-page-footer__menu-link {
39
+ color: var(--ams-page-footer-menu-link-color);
40
+ font-family: var(--ams-page-footer-menu-link-font-family);
41
+ font-size: var(--ams-page-footer-menu-link-font-size);
42
+ font-weight: var(--ams-page-footer-menu-link-font-weight);
43
+ line-height: var(--ams-page-footer-menu-link-line-height);
44
+ outline-offset: var(--ams-page-footer-menu-link-outline-offset);
45
+ text-decoration-line: var(--ams-page-footer-menu-link-text-decoration-line);
46
+ text-decoration-thickness: var(--ams-page-footer-menu-link-text-decoration-thickness);
47
+ text-underline-offset: var(--ams-page-footer-menu-link-text-underline-offset);
48
+
49
+ @include hyphenation;
50
+ @include text-rendering;
51
+
52
+ &:hover {
53
+ color: var(--ams-page-footer-menu-link-hover-color);
54
+ text-decoration-line: var(--ams-page-footer-menu-link-hover-text-decoration-line);
55
+ }
56
+ }
@@ -1,17 +1,17 @@
1
1
  <!-- @license CC0-1.0 -->
2
2
 
3
- # Header
3
+ # Page Header
4
4
 
5
5
  Displays the City’s logo at the top of every page, and optionally a navigation menu.
6
6
  Includes the name of the application if it is not the general website.
7
7
 
8
8
  ## Guidelines
9
9
 
10
- - The Header must be used on all websites and applications for the City of Amsterdam.
10
+ - The Page Header must be used on all websites and applications for the City of Amsterdam.
11
11
  - It includes the logo of the City or the organization, the site title (except for the general website), and a menu with links to commonly used pages.
12
- - The Header is important because it conveys our corporate identity and is the first thing people see.
12
+ - The Page Header is important because it conveys our corporate identity and is the first thing people see.
13
13
  Using it consistently helps users recognize and trust the website.
14
- - The Header is the same on every page of the application, although full-screen pages may hide it, e.g. a video or a map.
14
+ - The Page Header is the same on every page of the application, although full-screen pages may hide it, e.g. a video or a map.
15
15
  - The inline menu can contain a maximum of 5 items.
16
16
  The last two will often be ‘Search’ and ‘Menu’.
17
17
  - The 'Menu' button opens a collapsible menu, which has room for more links.
@@ -22,5 +22,5 @@ Includes the name of the application if it is not the general website.
22
22
 
23
23
  ## References
24
24
 
25
- - A Header is a [landmark](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_landmark_roles) and can be used to group navigation elements.
25
+ - A Page Header is a [landmark](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_landmark_roles) and can be used to group navigation elements.
26
26
  - [WCAG 3.2.3](https://wcag.com/designers/3-2-3-consistent-navigation/) Consistent Navigation: Navigation menus that appear on multiple pages are consistent.
@@ -6,35 +6,43 @@
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;
30
38
  }
31
39
 
32
- .ams-header__logo-link--hidden {
40
+ .ams-page-header__logo-link--hidden {
33
41
  opacity: 0%;
34
42
  user-select: none; // The hidden logo link section should not be selectable
35
43
  }
36
44
 
37
- .ams-header__logo-container {
45
+ .ams-page-header__logo-container {
38
46
  flex-shrink: 0;
39
47
  inline-size: 0.75rem;
40
48
  overflow: hidden;
@@ -44,22 +52,23 @@
44
52
  }
45
53
  }
46
54
 
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);
55
+ .ams-page-header__brand-name {
56
+ color: var(--ams-page-header-brand-name-color);
57
+ font-size: var(--ams-page-header-brand-name-font-size);
58
+ font-weight: var(--ams-page-header-brand-name-font-weight);
51
59
  line-height: 1.35;
60
+ text-wrap: var(--ams-page-header-brand-name-text-wrap);
52
61
  }
53
62
 
54
- .ams-header__navigation {
55
- column-gap: var(--ams-header-navigation-column-gap);
63
+ .ams-page-header__navigation {
64
+ column-gap: var(--ams-page-header-navigation-column-gap);
56
65
  display: flex;
57
66
  flex-wrap: wrap;
58
67
  grid-area: 1 / 1; // To allow this section to overlap with the logo link section
59
68
  // This section blocks pointer events initially, so the hidden logo link section can't be activated.
60
69
  // The menu and collapsible menu set it back to auto, to make sure they can be activated.
61
70
  pointer-events: none;
62
- row-gap: var(--ams-header-navigation-row-gap);
71
+ row-gap: var(--ams-page-header-navigation-row-gap);
63
72
  }
64
73
 
65
74
  @mixin reset-list {
@@ -68,62 +77,62 @@
68
77
  padding-inline-start: 0;
69
78
  }
70
79
 
71
- .ams-header__menu {
80
+ .ams-page-header__menu {
72
81
  align-items: center;
73
- column-gap: var(--ams-header-menu-column-gap);
82
+ column-gap: var(--ams-page-header-menu-column-gap);
74
83
  display: flex;
75
84
  flex-wrap: wrap;
76
85
  justify-content: flex-end;
77
86
  margin-inline-start: auto;
78
87
  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);
88
+ row-gap: var(--ams-page-header-menu-row-gap);
80
89
 
81
90
  @include reset-list;
82
91
  }
83
92
 
84
93
  // Do not show menu items below the wide breakpoint...
85
- .ams-header__menu-item {
94
+ .ams-page-header__menu-item {
86
95
  @media screen and (not (min-width: $ams-breakpoint-wide)) {
87
96
  display: none;
88
97
  }
89
98
  }
90
99
 
91
100
  // ...unless they're fixed.
92
- .ams-header__menu-item--fixed {
101
+ .ams-page-header__menu-item--fixed {
93
102
  display: revert;
94
103
  }
95
104
 
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);
105
+ @mixin page-header-menu-action {
106
+ color: var(--ams-page-header-menu-item-color);
107
+ font-size: var(--ams-page-header-menu-item-font-size);
108
+ font-weight: var(--ams-page-header-menu-item-font-weight);
109
+ line-height: var(--ams-page-header-menu-item-line-height);
110
+ outline-offset: var(--ams-page-header-menu-item-outline-offset);
111
+ padding-block: var(--ams-page-header-menu-item-padding-block);
103
112
  touch-action: manipulation;
104
113
  white-space: nowrap;
105
114
 
106
115
  @include text-rendering;
107
116
 
108
117
  &:hover {
109
- color: var(--ams-header-menu-item-hover-color);
118
+ color: var(--ams-page-header-menu-item-hover-color);
110
119
  }
111
120
  }
112
121
 
113
- .ams-header__menu-link {
122
+ .ams-page-header__menu-link {
114
123
  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);
124
+ text-decoration-line: var(--ams-page-header-menu-link-text-decoration-line);
125
+ text-decoration-thickness: var(--ams-page-header-menu-link-text-decoration-thickness);
126
+ text-underline-offset: var(--ams-page-header-menu-link-text-underline-offset);
118
127
 
119
- @include header-menu-action;
128
+ @include page-header-menu-action;
120
129
 
121
130
  &:hover {
122
- text-decoration-line: var(--ams-header-menu-link-hover-text-decoration-line);
131
+ text-decoration-line: var(--ams-page-header-menu-link-hover-text-decoration-line);
123
132
  }
124
133
  }
125
134
 
126
- .ams-header__mega-menu-button-item--hide-on-wide-window {
135
+ .ams-page-header__mega-menu-button-item--hide-on-wide-window {
127
136
  @media screen and (min-width: $ams-breakpoint-wide) {
128
137
  display: none;
129
138
  }
@@ -139,36 +148,36 @@
139
148
  // [1] Remove the margin in older Safari.
140
149
  }
141
150
 
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);
151
+ .ams-page-header__mega-menu-button {
152
+ column-gap: var(--ams-page-header-menu-item-column-gap);
153
+ cursor: var(--ams-page-header-mega-menu-button-cursor);
145
154
  display: grid;
146
155
  font-family: inherit;
147
156
  grid-auto-flow: column;
148
157
 
149
- @include header-menu-action;
158
+ @include page-header-menu-action;
150
159
  @include reset-button;
151
160
  }
152
161
 
153
- .ams-header__mega-menu-button[aria-expanded="true"] {
154
- font-weight: var(--ams-header-mega-menu-button-label-open-font-weight);
162
+ .ams-page-header__mega-menu-button[aria-expanded="true"] {
163
+ font-weight: var(--ams-page-header-mega-menu-button-label-open-font-weight);
155
164
  }
156
165
 
157
- .ams-header__mega-menu-button-label,
158
- .ams-header__mega-menu-button-hidden-label {
166
+ .ams-page-header__mega-menu-button-label,
167
+ .ams-page-header__mega-menu-button-hidden-label {
159
168
  grid-area: 1 / 1; // To allow the label and the hidden label to overlap
160
169
  }
161
170
 
162
171
  // This hidden label is used to prevent a layout shift when the mega menu is opened
163
172
  // 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);
173
+ .ams-page-header__mega-menu-button-hidden-label {
174
+ font-weight: var(--ams-page-header-mega-menu-button-label-open-font-weight);
166
175
  pointer-events: none;
167
176
  user-select: none;
168
177
  visibility: hidden;
169
178
  }
170
179
 
171
- .ams-header__menu-icon {
180
+ .ams-page-header__menu-icon {
172
181
  line {
173
182
  stroke: currentColor;
174
183
  stroke-width: 3px;
@@ -183,30 +192,30 @@
183
192
  }
184
193
  }
185
194
 
186
- .ams-header__menu-icon-top {
195
+ .ams-page-header__menu-icon-top {
187
196
  translate: 0 -7px;
188
197
  }
189
198
 
190
- .ams-header__menu-icon-bottom {
199
+ .ams-page-header__menu-icon-bottom {
191
200
  translate: 0 7px;
192
201
  }
193
202
  }
194
203
 
195
- .ams-header__menu-icon--open {
196
- .ams-header__menu-icon-top {
204
+ .ams-page-header__menu-icon--open {
205
+ .ams-page-header__menu-icon-top {
197
206
  rotate: 45deg;
198
207
  translate: 0;
199
208
  }
200
- .ams-header__menu-icon-middle {
209
+ .ams-page-header__menu-icon-middle {
201
210
  opacity: 0%;
202
211
  }
203
- .ams-header__menu-icon-bottom {
212
+ .ams-page-header__menu-icon-bottom {
204
213
  rotate: -45deg;
205
214
  translate: 0;
206
215
  }
207
216
  }
208
217
 
209
- .ams-header__mega-menu {
218
+ .ams-page-header__mega-menu {
210
219
  inline-size: 100%;
211
220
  pointer-events: auto; // Set pointer events back to auto to allow the mega menu to be activated
212
221
 
@@ -217,11 +226,11 @@
217
226
  }
218
227
  }
219
228
 
220
- .ams-header__mega-menu--closed.ams-header__mega-menu--closed {
229
+ .ams-page-header__mega-menu--closed.ams-page-header__mega-menu--closed {
221
230
  display: none;
222
231
  }
223
232
 
224
- .ams-header__grid-cell-narrow-window-only {
233
+ .ams-page-header__grid-cell-narrow-window-only {
225
234
  @media screen and (min-width: $ams-breakpoint-wide) {
226
235
  display: none;
227
236
  }
@@ -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;
@@ -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
+ }
@@ -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
 
@@ -11,5 +11,6 @@
11
11
  inline-size: 1px;
12
12
  overflow: hidden;
13
13
  position: absolute;
14
+ user-select: none;
14
15
  white-space: nowrap;
15
16
  }
@@ -1 +0,0 @@
1
- .ams-footer__spotlight{background-color:var(--ams-footer-spotlight-background-color)}.ams-footer__menu{column-gap:var(--ams-footer-menu-column-gap);display:flex;flex-wrap:wrap;padding-block:var(--ams-footer-menu-padding-block);padding-inline:var(--ams-footer-menu-padding-inline);row-gap:var(--ams-footer-menu-row-gap);list-style:none;margin-block:0}.ams-footer__menu-link{color:var(--ams-footer-menu-link-color);font-family:var(--ams-footer-menu-link-font-family);font-size:var(--ams-footer-menu-link-font-size);font-weight:var(--ams-footer-menu-link-font-weight);line-height:var(--ams-footer-menu-link-line-height);outline-offset:var(--ams-footer-menu-link-outline-offset);text-decoration-line:var(--ams-footer-menu-link-text-decoration-line);text-decoration-thickness:var(--ams-footer-menu-link-text-decoration-thickness);text-underline-offset:var(--ams-footer-menu-link-text-underline-offset);hyphenate-limit-chars:var(--ams-typography-hyphenate-limit-chars);hyphens:auto;overflow-wrap:break-word;text-rendering:optimizeLegibility;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}.ams-footer__menu-link:hover{color:var(--ams-footer-menu-link-hover-color);text-decoration-line:var(--ams-footer-menu-link-hover-text-decoration-line)}/*# sourceMappingURL=footer.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/components/footer/footer.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAaA,uBACE,8DAGF,kBACE,6CACA,aACA,eACA,mDACA,qDACA,uCAdA,gBACA,eAkBF,uBACE,wCACA,oDACA,gDACA,oDACA,oDACA,0DACA,sEACA,gFACA,wEC/BA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBF6BA,6BACE,8CACA","file":"footer.css"}