@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
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/page-footer/page-footer.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAcA,4BACE,mEAGF,uBACE,kDACA,aACA,eACA,wDACA,0DACA,4CAdA,gBACA,eAiBA,qCAVF,uBAWI,kEAGF,qCAdF,uBAeI,gEAIJ,4BACE,6CACA,yDACA,qDACA,yDACA,yDACA,+DACA,2EACA,qFACA,6ECxCA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBFsCA,kCACE,mDACA","file":"page-footer.css"}
@@ -0,0 +1 @@
1
+ .ams-page-header{display:grid;font-family:var(--ams-page-header-font-family);padding-block:var(--ams-page-header-padding-block);padding-inline:var(--ams-page-header-padding-inline)}@media screen and (min-width: 36rem){.ams-page-header{padding-inline:var(--ams-page-header-medium-padding-inline)}}@media screen and (min-width: 68rem){.ams-page-header{padding-inline:var(--ams-page-header-wide-padding-inline)}}.ams-page-header__logo-link{align-items:center;align-self:start;column-gap:var(--ams-page-header-logo-link-column-gap);display:flex;grid-area:1/1;inline-size:fit-content;outline-offset:var(--ams-page-header-logo-link-outline-offset);text-decoration:none}.ams-page-header__logo-link--hidden{opacity:0%;user-select:none}.ams-page-header__logo-container{flex-shrink:0;inline-size:.75rem;overflow:hidden}@media screen and (min-width: 36rem){.ams-page-header__logo-container{inline-size:auto}}.ams-page-header__brand-name{color:var(--ams-page-header-brand-name-color);font-size:var(--ams-page-header-brand-name-font-size);font-weight:var(--ams-page-header-brand-name-font-weight);line-height:1.35;text-wrap:var(--ams-page-header-brand-name-text-wrap)}.ams-page-header__navigation{column-gap:var(--ams-page-header-navigation-column-gap);display:flex;flex-wrap:wrap;grid-area:1/1;pointer-events:none;row-gap:var(--ams-page-header-navigation-row-gap)}.ams-page-header__menu{align-items:center;column-gap:var(--ams-page-header-menu-column-gap);display:flex;flex-wrap:wrap;justify-content:flex-end;margin-inline-start:auto;pointer-events:auto;row-gap:var(--ams-page-header-menu-row-gap);list-style:none;margin-block:0;padding-inline-start:0}@media screen and not (min-width: 68rem){.ams-page-header__menu-item{display:none}}.ams-page-header__menu-item--fixed{display:revert}.ams-page-header__menu-link{display:inline-block;text-decoration-line:var(--ams-page-header-menu-link-text-decoration-line);text-decoration-thickness:var(--ams-page-header-menu-link-text-decoration-thickness);text-underline-offset:var(--ams-page-header-menu-link-text-underline-offset);color:var(--ams-page-header-menu-item-color);font-size:var(--ams-page-header-menu-item-font-size);font-weight:var(--ams-page-header-menu-item-font-weight);line-height:var(--ams-page-header-menu-item-line-height);outline-offset:var(--ams-page-header-menu-item-outline-offset);padding-block:var(--ams-page-header-menu-item-padding-block);touch-action:manipulation;white-space:nowrap;text-rendering:optimizeLegibility;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}.ams-page-header__menu-link:hover{color:var(--ams-page-header-menu-item-hover-color)}.ams-page-header__menu-link:hover{text-decoration-line:var(--ams-page-header-menu-link-hover-text-decoration-line)}@media screen and (min-width: 68rem){.ams-page-header__mega-menu-button-item--hide-on-wide-window{display:none}}.ams-page-header__mega-menu-button{column-gap:var(--ams-page-header-menu-item-column-gap);cursor:var(--ams-page-header-mega-menu-button-cursor);display:grid;font-family:inherit;grid-auto-flow:column;color:var(--ams-page-header-menu-item-color);font-size:var(--ams-page-header-menu-item-font-size);font-weight:var(--ams-page-header-menu-item-font-weight);line-height:var(--ams-page-header-menu-item-line-height);outline-offset:var(--ams-page-header-menu-item-outline-offset);padding-block:var(--ams-page-header-menu-item-padding-block);touch-action:manipulation;white-space:nowrap;text-rendering:optimizeLegibility;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;background:none;border:none;margin-block:0;margin-inline:0;padding-inline:0}.ams-page-header__mega-menu-button:hover{color:var(--ams-page-header-menu-item-hover-color)}.ams-page-header__mega-menu-button[aria-expanded=true]{font-weight:var(--ams-page-header-mega-menu-button-label-open-font-weight)}.ams-page-header__mega-menu-button-label,.ams-page-header__mega-menu-button-hidden-label{grid-area:1/1}.ams-page-header__mega-menu-button-hidden-label{font-weight:var(--ams-page-header-mega-menu-button-label-open-font-weight);pointer-events:none;user-select:none;visibility:hidden}.ams-page-header__menu-icon line{stroke:currentColor;stroke-width:3px;transform-origin:center;transition:translate .1s ease-in-out,rotate .2s ease-in-out,opacity .1s ease-in-out}@media(prefers-reduced-motion){.ams-page-header__menu-icon line{transition:none}}.ams-page-header__menu-icon .ams-page-header__menu-icon-top{translate:0 -7px}.ams-page-header__menu-icon .ams-page-header__menu-icon-bottom{translate:0 7px}.ams-page-header__menu-icon--open .ams-page-header__menu-icon-top{rotate:45deg;translate:0}.ams-page-header__menu-icon--open .ams-page-header__menu-icon-middle{opacity:0%}.ams-page-header__menu-icon--open .ams-page-header__menu-icon-bottom{rotate:-45deg;translate:0}.ams-page-header__mega-menu{inline-size:100%;pointer-events:auto}.ams-page-header__mega-menu .ams-grid{padding-inline:0}.ams-page-header__mega-menu--closed.ams-page-header__mega-menu--closed{display:none}@media screen and (min-width: 68rem){.ams-page-header__grid-cell-narrow-window-only{display:none}}/*# sourceMappingURL=page-header.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/page-header/page-header.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAQA,iBAME,aACA,+CACA,mDACA,qDAEA,qCAXF,iBAYI,6DAGF,qCAfF,iBAgBI,2DAIJ,4BACE,mBACA,iBACA,uDACA,aACA,cACA,wBACA,+DACA,qBAGF,oCACE,WACA,iBAGF,iCACE,cACA,mBACA,gBAEA,qCALF,iCAMI,kBAIJ,6BACE,8CACA,sDACA,0DACA,iBACA,sDAGF,6BACE,wDACA,aACA,eACA,cAGA,oBACA,kDASF,uBACE,mBACA,kDACA,aACA,eACA,yBACA,yBACA,oBACA,4CAbA,gBACA,eACA,uBAkBA,yCADF,4BAEI,cAKJ,mCACE,eAoBF,4BACE,qBACA,2EACA,qFACA,6EApBA,6CACA,qDACA,yDACA,yDACA,+DACA,6DACA,0BACA,mBCtGA,kCACA,2BACA,8BACA,sBDuGA,kCACE,mDAYF,kCACE,iFAKF,qCADF,6DAEI,cAcJ,mCACE,uDACA,sDACA,aACA,oBACA,sBAlDA,6CACA,qDACA,yDACA,yDACA,+DACA,6DACA,0BACA,mBCtGA,kCACA,2BACA,8BACA,sBDgIA,gBACA,YACA,eACA,gBACA,iBA7BA,yCACE,mDA4CJ,uDACE,2EAGF,yFAEE,cAKF,gDACE,2EACA,oBACA,iBACA,kBAIA,iCACE,oBACA,iBACA,wBACA,WACE,yEAIF,+BATF,iCAUI,iBAIJ,4DACE,iBAGF,+DACE,gBAKF,kEACE,aACA,YAEF,qEACE,WAEF,qEACE,cACA,YAIJ,4BACE,iBACA,oBAIA,sCACE,iBAIJ,uEACE,aAIA,qCADF,+CAEI","file":"page-header.css"}
@@ -1 +1 @@
1
- .ams-page-heading{box-sizing:border-box;break-after:avoid;break-inside:avoid;color:var(--ams-page-heading-color);font-family:var(--ams-page-heading-font-family);font-size:var(--ams-page-heading-font-size);font-weight:var(--ams-page-heading-font-weight);line-height:var(--ams-page-heading-line-height);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;margin-block:0}.ams-page-heading--inverse{color:var(--ams-page-heading-inverse-color)}/*# sourceMappingURL=page-heading.css.map */
1
+ .ams-page-heading{box-sizing:border-box;break-after:avoid;break-inside:avoid;color:var(--ams-page-heading-color);font-family:var(--ams-page-heading-font-family);font-size:var(--ams-page-heading-font-size);font-weight:var(--ams-page-heading-font-weight);line-height:var(--ams-page-heading-line-height);text-wrap:var(--ams-page-heading-text-wrap);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;margin-block:0}.ams-page-heading--inverse{color:var(--ams-page-heading-inverse-color)}/*# sourceMappingURL=page-heading.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/components/page-heading/page-heading.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAYA,kBACE,sBACA,kBACA,mBACA,oCACA,gDACA,4CACA,gDACA,gDCdA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBFJA,eAkBF,2BACE","file":"page-heading.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/page-heading/page-heading.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAYA,kBACE,sBACA,kBACA,mBACA,oCACA,gDACA,4CACA,gDACA,gDACA,4CCfA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBFJA,eAmBF,2BACE","file":"page-heading.css"}
@@ -0,0 +1 @@
1
+ .ams-standalone-link{color:var(--ams-standalone-link-color);column-gap:var(--ams-standalone-link-column-gap);display:inline-flex;font-family:var(--ams-standalone-link-font-family);font-size:var(--ams-standalone-link-font-size);font-weight:var(--ams-standalone-link-font-weight);line-height:var(--ams-standalone-link-line-height);outline-offset:var(--ams-standalone-link-outline-offset);text-decoration-thickness:var(--ams-standalone-link-text-decoration-thickness);text-underline-offset:var(--ams-standalone-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-standalone-link:hover{color:var(--ams-standalone-link-hover-color);text-decoration-thickness:var(--ams-standalone-link-hover-text-decoration-thickness);text-underline-offset:var(--ams-standalone-link-hover-text-underline-offset)}.ams-standalone-link--contrast{color:var(--ams-standalone-link-contrast-color)}.ams-standalone-link--contrast:hover{color:var(--ams-standalone-link-contrast-hover-color)}.ams-standalone-link--inverse{color:var(--ams-standalone-link-inverse-color)}.ams-standalone-link--inverse:hover{color:var(--ams-standalone-link-inverse-hover-color)}.ams-standalone-link--with-icon{text-decoration-line:var(--ams-standalone-link-with-icon-text-decoration-line)}.ams-standalone-link--with-icon:hover{text-decoration-line:var(--ams-standalone-link-with-icon-hover-text-decoration-line)}/*# sourceMappingURL=standalone-link.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/standalone-link/standalone-link.scss","../../src/common/hyphenation.scss","../../src/common/text-rendering.scss"],"names":[],"mappings":"AAQA,qBACE,uCACA,iDACA,oBACA,mDACA,+CACA,mDACA,mDACA,yDACA,+EACA,uECZA,kEACA,aACA,yBCEA,kCACA,2BACA,8BACA,sBFUA,2BACE,6CACA,qFACA,6EAIJ,+BACE,gDAEA,qCACE,sDAIJ,8BACE,+CAEA,oCACE,qDAIJ,gCACE,+EAEA,sCACE","file":"standalone-link.css"}
@@ -1 +1 @@
1
- .ams-visually-hidden:not(:active,:focus){block-size:1px;clip:rect(0 0 0 0);clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;white-space:nowrap}/*# sourceMappingURL=visually-hidden.css.map */
1
+ .ams-visually-hidden:not(:active,:focus){block-size:1px;clip:rect(0 0 0 0);clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;user-select:none;white-space:nowrap}/*# sourceMappingURL=visually-hidden.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/components/visually-hidden/visually-hidden.scss"],"names":[],"mappings":"AAMA,yCACE,eACA,mBACA,qBACA,gBACA,gBACA,kBACA","file":"visually-hidden.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/components/visually-hidden/visually-hidden.scss"],"names":[],"mappings":"AAMA,yCACE,eACA,mBACA,qBACA,gBACA,gBACA,kBACA,iBACA","file":"visually-hidden.css"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.15.0",
2
+ "version": "0.16.0",
3
3
  "author": "Design System Team, City of Amsterdam <designsystem@amsterdam.nl>",
4
4
  "description": "Stylesheets for all components from the Amsterdam Design System and some general utilities. Use it to apply the visual design of the City of Amsterdam to your HTML elements or non-React components.",
5
5
  "homepage": "https://designsystem.amsterdam",
@@ -19,10 +19,10 @@
19
19
  "directory": "packages/css"
20
20
  },
21
21
  "devDependencies": {
22
- "sass": "1.86.0"
22
+ "sass": "1.86.3"
23
23
  },
24
24
  "peerDependencies": {
25
- "@amsterdam/design-system-tokens": "0.15.0",
25
+ "@amsterdam/design-system-tokens": "0.16.0",
26
26
  "@amsterdam/design-system-assets": "0.3.0"
27
27
  },
28
28
  "scripts": {
@@ -44,6 +44,7 @@
44
44
  padding-block: var(--ams-accordion-button-padding-block);
45
45
  padding-inline: var(--ams-accordion-button-padding-inline);
46
46
  text-align: start;
47
+ text-wrap: var(--ams-accordion-button-text-wrap);
47
48
 
48
49
  @include reset-button;
49
50
 
@@ -16,7 +16,7 @@ An Alert informs the user of a significant or time-sensitive message without int
16
16
  - **Error** indicates an error has occurred.
17
17
  This variation is red.
18
18
  - Place the Alert in a Grid Cell to create enough white space around it.
19
- - Important and urgent information is to be placed directly below the Header.
19
+ - Important and urgent information is to be placed directly below the Page Header.
20
20
  Examples: system outage or changes in the opening hours of a City Office.
21
21
  This can be applied to the entire application or to a part of it.
22
22
  - Add a close button if the user should be able to dismiss the Alert.
@@ -19,52 +19,52 @@ $ams-breakout-row-span-max: 4;
19
19
  @include ams-grid--gap-vertical--none;
20
20
  }
21
21
 
22
- .ams-breakout--gap-vertical--small {
23
- @include ams-grid--gap-vertical--small;
24
- }
25
-
26
22
  .ams-breakout--gap-vertical--large {
27
23
  @include ams-grid--gap-vertical--large;
28
24
  }
29
25
 
30
- // Grid padding
31
-
32
- .ams-breakout--padding-bottom--small {
33
- @include ams-grid--padding-bottom--small;
26
+ .ams-breakout--gap-vertical--2x-large {
27
+ @include ams-grid--gap-vertical--2x-large;
34
28
  }
35
29
 
36
- .ams-breakout--padding-bottom--medium {
37
- @include ams-grid--padding-bottom--medium;
38
- }
30
+ // Grid padding
39
31
 
40
32
  .ams-breakout--padding-bottom--large {
41
33
  @include ams-grid--padding-bottom--large;
42
34
  }
43
35
 
44
- .ams-breakout--padding-top--small {
45
- @include ams-grid--padding-top--small;
36
+ .ams-breakout--padding-bottom--x-large {
37
+ @include ams-grid--padding-bottom--x-large;
46
38
  }
47
39
 
48
- .ams-breakout--padding-top--medium {
49
- @include ams-grid--padding-top--medium;
40
+ .ams-breakout--padding-bottom--2x-large {
41
+ @include ams-grid--padding-bottom--2x-large;
50
42
  }
51
43
 
52
44
  .ams-breakout--padding-top--large {
53
45
  @include ams-grid--padding-top--large;
54
46
  }
55
47
 
56
- .ams-breakout--padding-vertical--small {
57
- @include ams-grid--padding-vertical--small;
48
+ .ams-breakout--padding-top--x-large {
49
+ @include ams-grid--padding-top--x-large;
58
50
  }
59
51
 
60
- .ams-breakout--padding-vertical--medium {
61
- @include ams-grid--padding-vertical--medium;
52
+ .ams-breakout--padding-top--2x-large {
53
+ @include ams-grid--padding-top--2x-large;
62
54
  }
63
55
 
64
56
  .ams-breakout--padding-vertical--large {
65
57
  @include ams-grid--padding-vertical--large;
66
58
  }
67
59
 
60
+ .ams-breakout--padding-vertical--x-large {
61
+ @include ams-grid--padding-vertical--x-large;
62
+ }
63
+
64
+ .ams-breakout--padding-vertical--2x-large {
65
+ @include ams-grid--padding-vertical--2x-large;
66
+ }
67
+
68
68
  // Column span
69
69
  // The order of these declaration blocks ensures the intended specificity.
70
70
 
@@ -2,27 +2,28 @@
2
2
 
3
3
  # Card
4
4
 
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.
6
- The card typically includes the title, introduction, and an image of the content.
7
- The link is mandatory.
5
+ A brief section of a heading, some text, and optionally an image, that leads to a related page.
8
6
 
9
7
  ## Guidelines
10
8
 
11
- - The title of a card is a link within a heading.
12
- The same guidelines as for regular [links](/docs/components-navigation-link--docs) and [headings](/docs/components-text-heading--docs) apply here.
13
- The link is active across the entire area of the card.
9
+ - The mandatory title of a card is a link within a Heading.
10
+ The guidelines for regular [links](/docs/components-navigation-link--docs) and [headings](/docs/components-text-heading--docs) apply.
11
+ The link is made active across the entire area of the card.
14
12
  - A card needs more content than just a title.
15
- Supplement this with textual and/or visual content.
16
- - Place the text in a regular paragraph.
17
- Only use the smallest text size for a tagline or date.
18
- - This component may not be the best option if the content does not represent a detailed page.
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).
13
+ Add a short text and optionally an image and metadata.
14
+ - Use the Card Heading, Card Heading Group and Card Image subcomponents.
15
+ They apply the correct spacing.
16
+ - Card Heading requires a `level`, because there is no sensible default.
17
+ Its visual size of `heading-4` can be overridden.
18
+ - Place the text in a regular [Paragraph](/docs/components-text-paragraph--docs).
19
+ Use a small Paragraph for a publication date.
20
+ - This component is not the best option if the target content does not represent an article-like page.
21
+ In that case, use a Heading, a Paragraph and a [Standalone Link](/docs/components-navigation-standalone-link--docs) instead.
21
22
 
22
23
  ### Screen readers
23
24
 
24
- With a screen reader, you can navigate using headings and links in a document.
25
- The title of a card is a link within a heading, allowing you to utilize both navigation methods.
25
+ Screen reader users may navigate a page using headings and links.
26
+ A Card works well in both approaches as its title carries a link.
26
27
  A screen reader reads the title first, followed by the rest of the content.
27
28
 
28
29
  ### Using links with routing libraries
@@ -5,7 +5,6 @@
5
5
 
6
6
  .ams-card {
7
7
  display: grid;
8
- gap: var(--ams-card-gap);
9
8
  outline-offset: var(--ams-card-outline-offset);
10
9
  position: relative; // Allows stretching the card link below.
11
10
  touch-action: manipulation;
@@ -16,12 +15,21 @@
16
15
  outline-style: auto;
17
16
  outline-width: 0.0625rem;
18
17
  }
18
+
19
+ > .ams-card__heading:has(+ *) {
20
+ margin-block-end: var(--ams-card-heading-margin-block-end);
21
+ }
22
+
23
+ > .ams-card__image:has(+ *) {
24
+ margin-block-end: var(--ams-card-image-margin-block-end);
25
+ }
19
26
  }
20
27
 
21
28
  .ams-card__heading-group {
22
29
  display: flex;
23
30
  flex-direction: column-reverse;
24
31
  gap: var(--ams-card-heading-group-gap);
32
+ margin-block-end: var(--ams-card-heading-group-margin-block-end);
25
33
  }
26
34
 
27
35
  .ams-card__link {
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Dialog
4
4
 
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.
5
+ A popup window in which the user must perform an action to proceed.
6
6
 
7
7
  ## Guidelines
8
8
 
@@ -10,6 +10,8 @@ A Dialog allows the user to focus on one task or a piece of information by poppi
10
10
  - Use a dialog for short and non-frequent tasks.
11
11
  Consider using the main flow for regular tasks.
12
12
  - Wrap multiple buttons in an [Action Group](https://designsystem.amsterdam/?path=/docs/components-layout-action-group--docs).
13
+ - To open the Dialog, use `Dialog.open(dialogId)` from the React package.
14
+ - To close it, either call the `Dialog.close` function or add a `<form>` as in the ‘confirmation’ example.
13
15
 
14
16
  ## Keyboard support
15
17
 
@@ -19,10 +21,6 @@ A Dialog allows the user to focus on one task or a piece of information by poppi
19
21
  | Shift + Tab | Moves focus to the previous focusable element inside the dialog. |
20
22
  | Escape | Closes the dialog. |
21
23
 
22
- ## Closing Dialog without submit
23
-
24
- You can close a Dialog without submitting by using `<button type="button" onClick={Dialog.close}>`.
25
-
26
24
  ## References
27
25
 
28
26
  - [HTMLDialogElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement)
@@ -3,6 +3,8 @@
3
3
  * Copyright Gemeente Amsterdam
4
4
  */
5
5
 
6
+ @use "../../common/breakpoint" as *;
7
+
6
8
  @mixin reset-dialog {
7
9
  inset-block: 0;
8
10
  padding-block: 0;
@@ -24,6 +26,11 @@ so do not apply these styles without an `open` attribute. */
24
26
 
25
27
  @include reset-dialog;
26
28
 
29
+ @media screen and (min-width: $ams-breakpoint-medium) {
30
+ inline-size: var(--ams-dialog-medium-inline-size);
31
+ max-block-size: var(--ams-dialog-medium-max-block-size);
32
+ }
33
+
27
34
  /*
28
35
  * The fallback value is for browsers where ::backdrop does not inherit from its originating element.
29
36
  * @see https://caniuse.com/mdn-css_selectors_backdrop_inherit_from_originating_element
@@ -40,6 +47,11 @@ so do not apply these styles without an `open` attribute. */
40
47
  justify-content: space-between;
41
48
  padding-block: var(--ams-dialog-header-padding-block);
42
49
  padding-inline: var(--ams-dialog-header-padding-inline);
50
+
51
+ @media screen and (min-width: $ams-breakpoint-medium) {
52
+ padding-block: var(--ams-dialog-header-medium-padding-block);
53
+ padding-inline: var(--ams-dialog-header-medium-padding-inline);
54
+ }
43
55
  }
44
56
 
45
57
  .ams-dialog__body {
@@ -47,9 +59,18 @@ so do not apply these styles without an `open` attribute. */
47
59
  overscroll-behavior-y: contain;
48
60
  padding-block: var(--ams-dialog-body-padding-block);
49
61
  padding-inline: var(--ams-dialog-body-padding-inline);
62
+
63
+ @media screen and (min-width: $ams-breakpoint-medium) {
64
+ padding-inline: var(--ams-dialog-body-medium-padding-inline);
65
+ }
50
66
  }
51
67
 
52
68
  .ams-dialog__footer {
53
69
  padding-block: var(--ams-dialog-footer-padding-block);
54
70
  padding-inline: var(--ams-dialog-footer-padding-inline);
71
+
72
+ @media screen and (min-width: $ams-breakpoint-medium) {
73
+ padding-block: var(--ams-dialog-footer-medium-padding-block);
74
+ padding-inline: var(--ams-dialog-footer-medium-padding-inline);
75
+ }
55
76
  }
@@ -30,23 +30,24 @@
30
30
  padding-inline: 0;
31
31
 
32
32
  + * {
33
- clear: both; // Reset the applied float for the legend’s first sibling
33
+ clear: both; // [2]
34
34
  }
35
35
  }
36
36
 
37
- // [1] This combination allows the fieldset border to go around the legend, instead of through it.
38
-
39
37
  .ams-field-set__legend {
40
38
  color: var(--ams-field-set-legend-color);
41
39
  font-family: var(--ams-field-set-legend-font-family);
42
40
  font-size: var(--ams-field-set-legend-font-size);
43
41
  font-weight: var(--ams-field-set-legend-font-weight);
44
42
  line-height: var(--ams-field-set-legend-line-height);
45
- margin-block-end: var(
46
- --ams-field-set-legend-margin-block-end
47
- ); /* Because of a bug in Chrome we can’t use display grid or flex for this gap */
43
+ margin-block-end: var(--ams-field-set-legend-margin-block-end); // [3]
44
+ text-wrap: var(--ams-field-set-legend-text-wrap);
48
45
 
49
46
  @include hyphenation;
50
47
  @include text-rendering;
51
48
  @include reset-legend;
52
49
  }
50
+
51
+ // [1] This combination allows the fieldset border to go around the legend, instead of through it.
52
+ // [2] Reset the applied float for the legend’s first sibling.
53
+ // [3] We can’t use grid or flex display and a gap because of a bug in Chrome.
@@ -6,14 +6,15 @@ Divides the screen into columns to align the elements of a page.
6
6
 
7
7
  ## Guidelines
8
8
 
9
- - Every page should use the grid as the foundation for its layout.
10
- It is placed directly within the [Screen](/docs/components-layout-screen--docs).
11
- - A [Footer](/docs/components-containers-footer--docs) and a [Spotlight](/docs/components-containers-spotlight--docs) are slightly wider than the grid.
12
- You close one instance of the grid before these components.
13
- Inside and optionally after them, you start a new one.
14
- Multiple instances of the grid component are possible on a page, but the columns of all grids must align precisely.
15
- - Within the grid, you create cells containing the desired content.
16
- A cell often spans multiple columns of the grid.
9
+ - Every page uses the Grid component as the foundation for its layout.
10
+ It is a direct child of the [Page](/docs/components-containers-page--docs) container.
11
+ - The Grid provides 4, 8, or 12 columns, depending on the width of the window.
12
+ - Its children are `Grid.Cell` components that define how many columns they span, and optionally where they start.
13
+ Both its `span` and `start` properties accept a single value, or separate values for the narrow, medium and wide variations of the Grid.
14
+ - A single page can have several Grids.
15
+ This allows mixing a Grid with a [Spotlight](/docs/components-containers-spotlight--docs), [Breakout](/docs/components-layout-breakout--docs) or full width [Image](/docs/components-media-image--docs) which ‘bleed out’ of the main layout.
16
+ - Grids must not be nested.
17
+ The component is currently intended for the full width of the page only.
17
18
  - The Gap utility classes must not be used on the Grid component.
18
19
 
19
20
  ## Design
@@ -1,16 +1,16 @@
1
- @use "../../common/breakpoint" as *;
2
-
3
1
  /**
4
2
  * @license EUPL-1.2+
5
3
  * Copyright Gemeente Amsterdam
6
4
  */
7
5
 
6
+ @use "../../common/breakpoint" as *;
7
+
8
8
  @mixin ams-grid {
9
9
  column-gap: var(--ams-grid-column-gap);
10
10
  display: grid;
11
11
  grid-template-columns: repeat(var(--ams-grid-column-count), 1fr);
12
12
  padding-inline: var(--ams-grid-padding-inline);
13
- row-gap: var(--ams-grid-row-gap-m);
13
+ row-gap: var(--ams-grid-row-gap-xl);
14
14
 
15
15
  @media screen and (min-width: $ams-breakpoint-medium) {
16
16
  grid-template-columns: repeat(var(--ams-grid-medium-column-count), 1fr);
@@ -29,52 +29,52 @@
29
29
  row-gap: initial;
30
30
  }
31
31
 
32
- @mixin ams-grid--gap-vertical--small {
33
- row-gap: var(--ams-grid-row-gap-s);
34
- }
35
-
36
32
  @mixin ams-grid--gap-vertical--large {
37
33
  row-gap: var(--ams-grid-row-gap-l);
38
34
  }
39
35
 
40
- // Grid padding
41
-
42
- @mixin ams-grid--padding-bottom--small {
43
- padding-block-end: var(--ams-grid-padding-block-s);
36
+ @mixin ams-grid--gap-vertical--2x-large {
37
+ row-gap: var(--ams-grid-row-gap-2xl);
44
38
  }
45
39
 
46
- @mixin ams-grid--padding-bottom--medium {
47
- padding-block-end: var(--ams-grid-padding-block-m);
48
- }
40
+ // Grid padding
49
41
 
50
42
  @mixin ams-grid--padding-bottom--large {
51
43
  padding-block-end: var(--ams-grid-padding-block-l);
52
44
  }
53
45
 
54
- @mixin ams-grid--padding-top--small {
55
- padding-block-start: var(--ams-grid-padding-block-s);
46
+ @mixin ams-grid--padding-bottom--x-large {
47
+ padding-block-end: var(--ams-grid-padding-block-xl);
56
48
  }
57
49
 
58
- @mixin ams-grid--padding-top--medium {
59
- padding-block-start: var(--ams-grid-padding-block-m);
50
+ @mixin ams-grid--padding-bottom--2x-large {
51
+ padding-block-end: var(--ams-grid-padding-block-2xl);
60
52
  }
61
53
 
62
54
  @mixin ams-grid--padding-top--large {
63
55
  padding-block-start: var(--ams-grid-padding-block-l);
64
56
  }
65
57
 
66
- @mixin ams-grid--padding-vertical--small {
67
- padding-block: var(--ams-grid-padding-block-s);
58
+ @mixin ams-grid--padding-top--x-large {
59
+ padding-block-start: var(--ams-grid-padding-block-xl);
68
60
  }
69
61
 
70
- @mixin ams-grid--padding-vertical--medium {
71
- padding-block: var(--ams-grid-padding-block-m);
62
+ @mixin ams-grid--padding-top--2x-large {
63
+ padding-block-start: var(--ams-grid-padding-block-2xl);
72
64
  }
73
65
 
74
66
  @mixin ams-grid--padding-vertical--large {
75
67
  padding-block: var(--ams-grid-padding-block-l);
76
68
  }
77
69
 
70
+ @mixin ams-grid--padding-vertical--x-large {
71
+ padding-block: var(--ams-grid-padding-block-xl);
72
+ }
73
+
74
+ @mixin ams-grid--padding-vertical--2x-large {
75
+ padding-block: var(--ams-grid-padding-block-2xl);
76
+ }
77
+
78
78
  @mixin ams-grid__cell--span-all {
79
79
  grid-column: 1 / -1;
80
80
  }
@@ -18,52 +18,52 @@ $ams-grid-column-count: 12;
18
18
  @include ams-grid--gap-vertical--none;
19
19
  }
20
20
 
21
- .ams-grid--gap-vertical--small {
22
- @include ams-grid--gap-vertical--small;
23
- }
24
-
25
21
  .ams-grid--gap-vertical--large {
26
22
  @include ams-grid--gap-vertical--large;
27
23
  }
28
24
 
29
- // Grid padding
30
-
31
- .ams-grid--padding-bottom--small {
32
- @include ams-grid--padding-bottom--small;
25
+ .ams-grid--gap-vertical--2x-large {
26
+ @include ams-grid--gap-vertical--2x-large;
33
27
  }
34
28
 
35
- .ams-grid--padding-bottom--medium {
36
- @include ams-grid--padding-bottom--medium;
37
- }
29
+ // Grid padding
38
30
 
39
31
  .ams-grid--padding-bottom--large {
40
32
  @include ams-grid--padding-bottom--large;
41
33
  }
42
34
 
43
- .ams-grid--padding-top--small {
44
- @include ams-grid--padding-top--small;
35
+ .ams-grid--padding-bottom--x-large {
36
+ @include ams-grid--padding-bottom--x-large;
45
37
  }
46
38
 
47
- .ams-grid--padding-top--medium {
48
- @include ams-grid--padding-top--medium;
39
+ .ams-grid--padding-bottom--2x-large {
40
+ @include ams-grid--padding-bottom--2x-large;
49
41
  }
50
42
 
51
43
  .ams-grid--padding-top--large {
52
44
  @include ams-grid--padding-top--large;
53
45
  }
54
46
 
55
- .ams-grid--padding-vertical--small {
56
- @include ams-grid--padding-vertical--small;
47
+ .ams-grid--padding-top--x-large {
48
+ @include ams-grid--padding-top--x-large;
57
49
  }
58
50
 
59
- .ams-grid--padding-vertical--medium {
60
- @include ams-grid--padding-vertical--medium;
51
+ .ams-grid--padding-top--2x-large {
52
+ @include ams-grid--padding-top--2x-large;
61
53
  }
62
54
 
63
55
  .ams-grid--padding-vertical--large {
64
56
  @include ams-grid--padding-vertical--large;
65
57
  }
66
58
 
59
+ .ams-grid--padding-vertical--x-large {
60
+ @include ams-grid--padding-vertical--x-large;
61
+ }
62
+
63
+ .ams-grid--padding-vertical--2x-large {
64
+ @include ams-grid--padding-vertical--2x-large;
65
+ }
66
+
67
67
  // Column span
68
68
  // The order of these declaration blocks ensures the intended specificity.
69
69
 
@@ -17,6 +17,7 @@
17
17
  color: var(--ams-heading-color);
18
18
  font-family: var(--ams-heading-font-family);
19
19
  font-weight: var(--ams-heading-font-weight);
20
+ text-wrap: var(--ams-heading-text-wrap);
20
21
 
21
22
  @include hyphenation;
22
23
  @include text-rendering;
@@ -6,8 +6,9 @@
6
6
  .ams-icon {
7
7
  --ams-line-height: var(--ams-icon-line-height);
8
8
 
9
+ align-items: center;
9
10
  align-self: baseline; // Aligns the icon with text in flex or grid context
10
- display: inline-flex; // Stretches the svg in order to align the icon vertically
11
+ display: inline-flex;
11
12
  font-size: var(--ams-icon-font-size);
12
13
  line-height: var(--ams-line-height);
13
14
 
@@ -19,7 +19,7 @@ The images do not slide automatically.
19
19
  - Feature the most essential image first.
20
20
  - Assume that some or many users will not navigate between the slides and only see the first image.
21
21
  Display all images separately if you want each of them to receive attention.
22
- - A full-width Image Slider should run from one edge of the Screen to the other;
22
+ - A full-width Image Slider should run from one edge of the [Page](/docs/components-containers-page--docs) container to the other;
23
23
  position it next to a Grid, not in a Cell spanning all columns.
24
24
  Smaller sliders are fine in a Grid Cell.
25
25
  - Consult the [Image](/docs/components-media-image--docs) docs for guidelines on the individual images.
@@ -28,10 +28,8 @@
28
28
  @use "figure/figure";
29
29
  @use "file-input/file-input";
30
30
  @use "file-list/file-list";
31
- @use "footer/footer";
32
31
  @use "gap/gap";
33
32
  @use "grid/grid";
34
- @use "header/header";
35
33
  @use "heading/heading";
36
34
  @use "hint/hint";
37
35
  @use "icon-button/icon-button";
@@ -45,21 +43,22 @@
45
43
  @use "logo/logo";
46
44
  @use "margin/margin";
47
45
  @use "mark/mark";
48
- @use "mega-menu/mega-menu";
49
46
  @use "ordered-list/ordered-list";
50
47
  @use "overlap/overlap";
48
+ @use "page/page";
49
+ @use "page-footer/page-footer";
50
+ @use "page-header/page-header";
51
51
  @use "page-heading/page-heading";
52
- @use "page-menu/page-menu";
53
52
  @use "pagination/pagination";
54
53
  @use "paragraph/paragraph";
55
54
  @use "password-input/password-input";
56
55
  @use "radio/radio";
57
56
  @use "row/row";
58
- @use "screen/screen";
59
57
  @use "search-field/search-field";
60
58
  @use "select/select";
61
59
  @use "skip-link/skip-link";
62
60
  @use "spotlight/spotlight";
61
+ @use "standalone-link/standalone-link";
63
62
  @use "switch/switch";
64
63
  @use "table-of-contents/table-of-contents";
65
64
  @use "table/table";
@@ -67,6 +66,5 @@
67
66
  @use "text-area/text-area";
68
67
  @use "text-input/text-input";
69
68
  @use "time-input/time-input";
70
- @use "top-task-link/top-task-link";
71
69
  @use "unordered-list/unordered-list";
72
70
  @use "visually-hidden/visually-hidden";
@@ -12,6 +12,7 @@
12
12
  font-size: var(--ams-label-font-size);
13
13
  font-weight: var(--ams-label-font-weight);
14
14
  line-height: var(--ams-label-line-height);
15
+ text-wrap: var(--ams-label-text-wrap);
15
16
 
16
17
  @include hyphenation;
17
18
  @include text-rendering;