design_system 0.7.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 (411) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +91 -0
  4. data/Rakefile +47 -0
  5. data/app/assets/config/design_system_manifest.js +0 -0
  6. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/_base.scss +3 -0
  7. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/all.scss +7 -0
  8. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/_all.scss +8 -0
  9. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/_index.scss +38 -0
  10. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/accordion/_accordion.scss +2 -0
  11. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/accordion/_index.scss +368 -0
  12. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/back-link/_back-link.scss +2 -0
  13. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/back-link/_index.scss +81 -0
  14. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/breadcrumbs/_breadcrumbs.scss +2 -0
  15. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/breadcrumbs/_index.scss +132 -0
  16. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/button/_button.scss +2 -0
  17. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/button/_index.scss +260 -0
  18. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/character-count/_character-count.scss +2 -0
  19. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/character-count/_index.scss +42 -0
  20. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/checkboxes/_checkboxes.scss +2 -0
  21. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/checkboxes/_index.scss +309 -0
  22. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/cookie-banner/_cookie-banner.scss +2 -0
  23. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/cookie-banner/_index.scss +57 -0
  24. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/date-input/_date-input.scss +2 -0
  25. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/date-input/_index.scss +26 -0
  26. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/details/_details.scss +2 -0
  27. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/details/_index.scss +137 -0
  28. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/error-message/_error-message.scss +2 -0
  29. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/error-message/_index.scss +12 -0
  30. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/error-summary/_error-summary.scss +2 -0
  31. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/error-summary/_index.scss +54 -0
  32. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/exit-this-page/_exit-this-page.scss +2 -0
  33. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/exit-this-page/_index.scss +90 -0
  34. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/fieldset/_fieldset.scss +2 -0
  35. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/fieldset/_index.scss +67 -0
  36. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/file-upload/_file-upload.scss +2 -0
  37. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/file-upload/_index.scss +216 -0
  38. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/footer/_footer.scss +2 -0
  39. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/footer/_index.scss +192 -0
  40. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/header/_header.scss +2 -0
  41. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/header/_index.scss +546 -0
  42. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/hint/_hint.scss +2 -0
  43. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/hint/_index.scss +43 -0
  44. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/input/_index.scss +166 -0
  45. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/input/_input.scss +2 -0
  46. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/inset-text/_index.scss +24 -0
  47. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/inset-text/_inset-text.scss +2 -0
  48. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/label/_index.scss +44 -0
  49. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/label/_label.scss +2 -0
  50. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/notification-banner/_index.scss +91 -0
  51. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/notification-banner/_notification-banner.scss +2 -0
  52. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/pagination/_index.scss +226 -0
  53. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/pagination/_pagination.scss +2 -0
  54. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/panel/_index.scss +56 -0
  55. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/panel/_panel.scss +2 -0
  56. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/password-input/_index.scss +55 -0
  57. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/password-input/_password-input.scss +2 -0
  58. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/phase-banner/_index.scss +34 -0
  59. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/phase-banner/_phase-banner.scss +2 -0
  60. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/radios/_index.scss +326 -0
  61. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/radios/_radios.scss +2 -0
  62. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/select/_index.scss +57 -0
  63. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/select/_select.scss +2 -0
  64. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/service-navigation/_index.scss +252 -0
  65. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/service-navigation/_service-navigation.scss +2 -0
  66. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/skip-link/_index.scss +50 -0
  67. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/skip-link/_skip-link.scss +2 -0
  68. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/summary-list/_index.scss +267 -0
  69. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/summary-list/_summary-list.scss +2 -0
  70. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/table/_index.scss +73 -0
  71. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/table/_table.scss +2 -0
  72. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/tabs/_index.scss +132 -0
  73. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/tabs/_tabs.scss +2 -0
  74. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/tag/_index.scss +95 -0
  75. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/tag/_tag.scss +2 -0
  76. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/task-list/_index.scss +77 -0
  77. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/task-list/_task-list.scss +2 -0
  78. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/textarea/_index.scss +48 -0
  79. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/textarea/_textarea.scss +2 -0
  80. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/warning-text/_index.scss +64 -0
  81. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/warning-text/_warning-text.scss +2 -0
  82. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_all.scss +8 -0
  83. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_global-styles.scss +18 -0
  84. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_govuk-frontend-properties.scss +13 -0
  85. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_index.scss +6 -0
  86. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_links.scss +40 -0
  87. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_lists.scss +65 -0
  88. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_section-break.scss +49 -0
  89. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/core/_typography.scss +187 -0
  90. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_all.scss +8 -0
  91. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_clearfix.scss +15 -0
  92. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_colour.scss +165 -0
  93. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_device-pixels.scss +36 -0
  94. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_focused.scss +57 -0
  95. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_font-faces.scss +39 -0
  96. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_grid.scss +61 -0
  97. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_index.scss +12 -0
  98. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_links.scss +389 -0
  99. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_media-queries.scss +80 -0
  100. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_shape-arrow.scss +80 -0
  101. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_spacing.scss +171 -0
  102. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_typography.scss +286 -0
  103. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/helpers/_visually-hidden.scss +86 -0
  104. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/index.scss +9 -0
  105. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_all.scss +8 -0
  106. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_button-group.scss +78 -0
  107. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_form-group.scss +23 -0
  108. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_grid.scss +24 -0
  109. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_index.scss +6 -0
  110. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_main-wrapper.scss +53 -0
  111. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_template.scss +55 -0
  112. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/objects/_width-container.scss +75 -0
  113. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_all.scss +7 -0
  114. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_display.scss +24 -0
  115. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_index.scss +5 -0
  116. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_spacing.scss +84 -0
  117. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_text-align.scss +14 -0
  118. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_typography.scss +40 -0
  119. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/overrides/_width.scss +46 -0
  120. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_all.scss +8 -0
  121. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_assets.scss +82 -0
  122. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_colours-applied.scss +193 -0
  123. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_colours-organisations.scss +380 -0
  124. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_colours-palette.scss +35 -0
  125. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_global-styles.scss +13 -0
  126. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_index.scss +34 -0
  127. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_links.scss +47 -0
  128. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_measurements.scss +105 -0
  129. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_media-queries.scss +23 -0
  130. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_spacing.scss +76 -0
  131. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_typography-font.scss +50 -0
  132. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_typography-responsive.scss +315 -0
  133. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/settings/_warnings.scss +76 -0
  134. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_all.scss +8 -0
  135. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_exports.scss +33 -0
  136. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_font-url.scss +26 -0
  137. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_image-url.scss +26 -0
  138. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_index.scss +6 -0
  139. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_px-to-em.scss +20 -0
  140. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_px-to-rem.scss +20 -0
  141. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/tools/_rebrand.scss +63 -0
  142. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/utilities/_all.scss +8 -0
  143. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/utilities/_clearfix.scss +5 -0
  144. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/utilities/_index.scss +2 -0
  145. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/utilities/_visually-hidden.scss +9 -0
  146. data/app/assets/stylesheets/design_system/govuk-frontend-5.11.1/vendor/_sass-mq.scss +347 -0
  147. data/app/assets/stylesheets/design_system/govuk.scss +7 -0
  148. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/_index.scss +38 -0
  149. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/action-link/_action-link.scss +1 -0
  150. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/action-link/_index.scss +73 -0
  151. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/back-link/_back-link.scss +1 -0
  152. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/back-link/_index.scss +66 -0
  153. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/breadcrumb/_breadcrumb.scss +1 -0
  154. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/breadcrumb/_index.scss +138 -0
  155. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/button/_button.scss +1 -0
  156. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/button/_index.scss +257 -0
  157. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/card/_card.scss +1 -0
  158. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/card/_index.scss +321 -0
  159. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/character-count/_character-count.scss +1 -0
  160. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/character-count/_index.scss +19 -0
  161. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/checkboxes/_checkboxes.scss +1 -0
  162. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/checkboxes/_index.scss +155 -0
  163. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/contents-list/_contents-list.scss +1 -0
  164. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/contents-list/_index.scss +40 -0
  165. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/date-input/_date-input.scss +1 -0
  166. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/date-input/_index.scss +29 -0
  167. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/details/_details.scss +1 -0
  168. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/details/_index.scss +211 -0
  169. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/do-dont-list/_do-dont-list.scss +1 -0
  170. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/do-dont-list/_index.scss +23 -0
  171. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/error-message/_error-message.scss +1 -0
  172. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/error-message/_index.scss +17 -0
  173. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/error-summary/_error-summary.scss +1 -0
  174. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/error-summary/_index.scss +72 -0
  175. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/fieldset/_fieldset.scss +1 -0
  176. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/fieldset/_index.scss +65 -0
  177. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/footer/_footer.scss +1 -0
  178. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/footer/_index.scss +87 -0
  179. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header-base.scss +495 -0
  180. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header-organisation.scss +126 -0
  181. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header-service.scss +60 -0
  182. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header-transactional.scss +61 -0
  183. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header-white.scss +117 -0
  184. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_header.scss +1 -0
  185. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/header/_index.scss +5 -0
  186. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/hero/_hero.scss +1 -0
  187. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/hero/_index.scss +187 -0
  188. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/hint/_hint.scss +1 -0
  189. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/hint/_index.scss +51 -0
  190. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/images/_images.scss +1 -0
  191. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/images/_index.scss +48 -0
  192. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/input/_index.scss +149 -0
  193. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/input/_input.scss +1 -0
  194. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/inset-text/_index.scss +28 -0
  195. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/inset-text/_inset-text.scss +1 -0
  196. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/label/_index.scss +53 -0
  197. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/label/_label.scss +1 -0
  198. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/pagination/_index.scss +95 -0
  199. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/pagination/_pagination.scss +1 -0
  200. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/panel/_index.scss +57 -0
  201. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/panel/_panel.scss +1 -0
  202. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/radios/_index.scss +180 -0
  203. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/radios/_radios.scss +1 -0
  204. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/select/_index.scss +44 -0
  205. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/select/_select.scss +1 -0
  206. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/skip-link/_index.scss +34 -0
  207. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/skip-link/_skip-link.scss +1 -0
  208. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/summary-list/_index.scss +183 -0
  209. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/summary-list/_summary-list.scss +1 -0
  210. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tables/_index.scss +181 -0
  211. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tables/_tables.scss +1 -0
  212. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tabs/_index.scss +120 -0
  213. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tabs/_tabs.scss +1 -0
  214. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tag/_index.scss +92 -0
  215. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/tag/_tag.scss +1 -0
  216. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/task-list/_index.scss +101 -0
  217. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/task-list/_task-list.scss +1 -0
  218. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/textarea/_index.scss +30 -0
  219. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/textarea/_textarea.scss +1 -0
  220. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/warning-callout/_index.scss +19 -0
  221. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/components/warning-callout/_warning-callout.scss +1 -0
  222. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/_index.scss +11 -0
  223. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/all.scss +8 -0
  224. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/elements/_forms.scss +16 -0
  225. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/elements/_index.scss +8 -0
  226. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/elements/_links.scss +42 -0
  227. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/elements/_page.scss +43 -0
  228. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/elements/_table.scss +62 -0
  229. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/generic/_box-sizing.scss +26 -0
  230. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/generic/_font-face.scss +47 -0
  231. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/generic/_index.scss +6 -0
  232. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/objects/_form-group.scss +25 -0
  233. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/objects/_grid.scss +23 -0
  234. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/objects/_index.scss +8 -0
  235. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/objects/_main-wrapper.scss +96 -0
  236. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/objects/_width-container.scss +63 -0
  237. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_all.scss +8 -0
  238. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_breakpoints.scss +18 -0
  239. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_colours.scss +188 -0
  240. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_globals.scss +82 -0
  241. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_index.scss +10 -0
  242. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_spacing.scss +79 -0
  243. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_typography.scss +176 -0
  244. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/settings/_warnings.scss +82 -0
  245. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/styles/_icons.scss +105 -0
  246. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/styles/_index.scss +4 -0
  247. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/styles/_lists.scss +115 -0
  248. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/styles/_section-break.scss +71 -0
  249. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/styles/_typography.scss +297 -0
  250. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_all.scss +8 -0
  251. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_exports.scss +47 -0
  252. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_focused.scss +86 -0
  253. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_functions.scss +45 -0
  254. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_grid.scss +138 -0
  255. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_ifff.scss +19 -0
  256. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_index.scss +15 -0
  257. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_links.scss +184 -0
  258. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_mixins.scss +520 -0
  259. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_sass-mq.scss +79 -0
  260. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_shape-arrow.scss +91 -0
  261. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_spacing.scss +192 -0
  262. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/tools/_typography.scss +259 -0
  263. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_clearfix.scss +15 -0
  264. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_display.scss +15 -0
  265. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_float.scss +15 -0
  266. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_grid-widths.scss +97 -0
  267. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_index.scss +16 -0
  268. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_link-nowrap.scss +19 -0
  269. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_list-border.scss +20 -0
  270. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_reading-width.scss +16 -0
  271. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_spacing.scss +88 -0
  272. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_text-align.scss +19 -0
  273. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_typography.scss +72 -0
  274. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_visually-hidden.scss +20 -0
  275. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/utilities/_widths.scss +62 -0
  276. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/core/vendor/sass-mq.scss +316 -0
  277. data/app/assets/stylesheets/design_system/nhsuk-frontend-9.6.4/nhsuk.scss +1 -0
  278. data/app/assets/stylesheets/design_system/nhsuk.scss +5 -0
  279. data/app/controllers/concerns/design_system/branded.rb +21 -0
  280. data/app/helpers/css_helper.rb +13 -0
  281. data/app/helpers/design_system_helper.rb +113 -0
  282. data/app/javascript/design_system/controllers/hello_world_controller.js +7 -0
  283. data/app/javascript/design_system/controllers/show_password_controller.js +40 -0
  284. data/app/javascript/design_system/index.js +11 -0
  285. data/app/views/govuk/_navigation.html.erb +14 -0
  286. data/app/views/layouts/_alert_and_notice.html.erb +7 -0
  287. data/app/views/layouts/govuk/application.html.erb +196 -0
  288. data/app/views/layouts/govuk/full_page.html.erb +2 -0
  289. data/app/views/layouts/govuk/left_panel.html.erb +2 -0
  290. data/app/views/layouts/nhsuk/application.html.erb +132 -0
  291. data/app/views/layouts/nhsuk/full_page.html.erb +2 -0
  292. data/app/views/layouts/nhsuk/left_panel.html.erb +2 -0
  293. data/app/views/nhsuk/_navigation.html.erb +25 -0
  294. data/config/importmap.rb +4 -0
  295. data/config/initializers/govuk_form_builder_overrides.rb +128 -0
  296. data/config/routes.rb +3 -0
  297. data/lib/design_system/all.rb +3 -0
  298. data/lib/design_system/components/summary_list.rb +53 -0
  299. data/lib/design_system/components/tab.rb +20 -0
  300. data/lib/design_system/components/table.rb +68 -0
  301. data/lib/design_system/engine.rb +30 -0
  302. data/lib/design_system/generic/builders/base.rb +18 -0
  303. data/lib/design_system/generic/builders/button.rb +35 -0
  304. data/lib/design_system/generic/builders/callout.rb +28 -0
  305. data/lib/design_system/generic/builders/concerns/brand_derivable.rb +14 -0
  306. data/lib/design_system/generic/builders/elements/breadcrumbs.rb +45 -0
  307. data/lib/design_system/generic/builders/elements/form.rb +23 -0
  308. data/lib/design_system/generic/builders/elements/headings.rb +31 -0
  309. data/lib/design_system/generic/builders/fixed_elements.rb +38 -0
  310. data/lib/design_system/generic/builders/heading.rb +38 -0
  311. data/lib/design_system/generic/builders/link.rb +37 -0
  312. data/lib/design_system/generic/builders/notification.rb +43 -0
  313. data/lib/design_system/generic/builders/pagination_renderer.rb +85 -0
  314. data/lib/design_system/generic/builders/panel.rb +18 -0
  315. data/lib/design_system/generic/builders/summary_list.rb +84 -0
  316. data/lib/design_system/generic/builders/tab.rb +17 -0
  317. data/lib/design_system/generic/builders/table.rb +76 -0
  318. data/lib/design_system/generic/form_builder.rb +54 -0
  319. data/lib/design_system/generic.rb +15 -0
  320. data/lib/design_system/govuk/builders/button.rb +57 -0
  321. data/lib/design_system/govuk/builders/callout.rb +26 -0
  322. data/lib/design_system/govuk/builders/elements/breadcrumbs.rb +33 -0
  323. data/lib/design_system/govuk/builders/elements/headings.rb +18 -0
  324. data/lib/design_system/govuk/builders/fixed_elements.rb +17 -0
  325. data/lib/design_system/govuk/builders/heading.rb +11 -0
  326. data/lib/design_system/govuk/builders/link.rb +23 -0
  327. data/lib/design_system/govuk/builders/notification.rb +11 -0
  328. data/lib/design_system/govuk/builders/pagination_renderer.rb +80 -0
  329. data/lib/design_system/govuk/builders/panel.rb +18 -0
  330. data/lib/design_system/govuk/builders/summary_list.rb +44 -0
  331. data/lib/design_system/govuk/builders/tab.rb +56 -0
  332. data/lib/design_system/govuk/builders/table.rb +79 -0
  333. data/lib/design_system/govuk/form_builder.rb +430 -0
  334. data/lib/design_system/govuk.rb +19 -0
  335. data/lib/design_system/nhsuk/builders/button.rb +11 -0
  336. data/lib/design_system/nhsuk/builders/callout.rb +11 -0
  337. data/lib/design_system/nhsuk/builders/elements/breadcrumbs.rb +47 -0
  338. data/lib/design_system/nhsuk/builders/fixed_elements.rb +15 -0
  339. data/lib/design_system/nhsuk/builders/heading.rb +11 -0
  340. data/lib/design_system/nhsuk/builders/link.rb +21 -0
  341. data/lib/design_system/nhsuk/builders/notification.rb +17 -0
  342. data/lib/design_system/nhsuk/builders/pagination_renderer.rb +16 -0
  343. data/lib/design_system/nhsuk/builders/panel.rb +11 -0
  344. data/lib/design_system/nhsuk/builders/summary_list.rb +34 -0
  345. data/lib/design_system/nhsuk/builders/tab.rb +11 -0
  346. data/lib/design_system/nhsuk/builders/table.rb +68 -0
  347. data/lib/design_system/nhsuk/form_builder.rb +83 -0
  348. data/lib/design_system/nhsuk.rb +18 -0
  349. data/lib/design_system/registry.rb +40 -0
  350. data/lib/design_system/version.rb +3 -0
  351. data/lib/design_system.rb +7 -0
  352. data/lib/tasks/design_system_tasks.rake +4 -0
  353. data/lib/tasks/govuk.rake +122 -0
  354. data/lib/tasks/nhsuk.rake +108 -0
  355. data/public/design_system/static/design_system-0.7.0/design_system.js +1309 -0
  356. data/public/design_system/static/govuk-frontend-5.11.1/fonts/bold-affa96571d-v2.woff +0 -0
  357. data/public/design_system/static/govuk-frontend-5.11.1/fonts/bold-b542beb274-v2.woff2 +0 -0
  358. data/public/design_system/static/govuk-frontend-5.11.1/fonts/light-94a07e06a1-v2.woff2 +0 -0
  359. data/public/design_system/static/govuk-frontend-5.11.1/fonts/light-f591b13f7d-v2.woff +0 -0
  360. data/public/design_system/static/govuk-frontend-5.11.1/govuk-frontend.min.js +1 -0
  361. data/public/design_system/static/govuk-frontend-5.11.1/govuk-frontend.min.js.map +1 -0
  362. data/public/design_system/static/govuk-frontend-5.11.1/images/favicon.ico +0 -0
  363. data/public/design_system/static/govuk-frontend-5.11.1/images/favicon.svg +1 -0
  364. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-crest.svg +1 -0
  365. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-icon-180.png +0 -0
  366. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-icon-192.png +0 -0
  367. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-icon-512.png +0 -0
  368. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-icon-mask.svg +1 -0
  369. data/public/design_system/static/govuk-frontend-5.11.1/images/govuk-opengraph-image.png +0 -0
  370. data/public/design_system/static/govuk-frontend-5.11.1/manifest.json +39 -0
  371. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/favicon.ico +0 -0
  372. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/favicon.svg +1 -0
  373. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-crest.svg +1 -0
  374. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-icon-180.png +0 -0
  375. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-icon-192.png +0 -0
  376. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-icon-512.png +0 -0
  377. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-icon-mask.svg +1 -0
  378. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/images/govuk-opengraph-image.png +0 -0
  379. data/public/design_system/static/govuk-frontend-5.11.1/rebrand/manifest.json +39 -0
  380. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/apple-touch-icon-180x180.png +0 -0
  381. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/apple-touch-icon.png +0 -0
  382. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/favicon-192x192.png +0 -0
  383. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/favicon.ico +0 -0
  384. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/favicon.png +0 -0
  385. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/favicon.svg +3 -0
  386. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/largetile-310x310.png +0 -0
  387. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/mediumtile-144x144.png +0 -0
  388. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/mediumtile-150x150.png +0 -0
  389. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/smalltile-70x70.png +0 -0
  390. data/public/design_system/static/nhsuk-frontend-9.6.4/favicons/widetile-310x150.png +0 -0
  391. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-arrow-left.svg +3 -0
  392. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-arrow-right-circle.svg +4 -0
  393. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-arrow-right.svg +3 -0
  394. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-chevron-left.svg +3 -0
  395. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-chevron-right.svg +3 -0
  396. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-close.svg +3 -0
  397. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-cross.svg +4 -0
  398. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-emdash-small.svg +3 -0
  399. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-emdash.svg +3 -0
  400. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-minus.svg +4 -0
  401. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-plus.svg +4 -0
  402. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-search.svg +3 -0
  403. data/public/design_system/static/nhsuk-frontend-9.6.4/icons/icon-tick.svg +3 -0
  404. data/public/design_system/static/nhsuk-frontend-9.6.4/logos/logo-nhs.svg +5 -0
  405. data/public/design_system/static/nhsuk-frontend-9.6.4/logos/nhs-logo.png +0 -0
  406. data/public/design_system/static/nhsuk-frontend-9.6.4/logos/open-graph.png +0 -0
  407. data/public/design_system/static/nhsuk-frontend-9.6.4/nhsuk.js +4 -0
  408. data/public/design_system/static/nhsuk-frontend-9.6.4/nhsuk.min.js +1 -0
  409. data/public/design_system/static/stimulus-3.2.2/stimulus-loading.js +87 -0
  410. data/public/design_system/static/tailwind-4.1.6/index.js +8 -0
  411. metadata +517 -0
@@ -0,0 +1,192 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+ @use "sass:meta";
4
+ @use "../settings" as *;
5
+ @use "ifff" as *;
6
+ @use "sass-mq" as *;
7
+
8
+ ////
9
+ /// Spacing
10
+ ///
11
+ /// @group tools
12
+ ////
13
+
14
+ /// Single point spacing
15
+ ///
16
+ /// Returns measurement corresponding to the spacing point requested.
17
+ ///
18
+ /// @param {Number} $spacing-point - Point on the spacing scale
19
+ /// (set in `settings/_spacing.scss`)
20
+ ///
21
+ /// @returns {String} Spacing measurement eg. 8px
22
+ ///
23
+ /// @example scss
24
+ /// .element {
25
+ /// padding: nhsuk-spacing(5);
26
+ /// }
27
+ ///
28
+ /// @example scss Using negative spacing
29
+ /// .element {
30
+ /// margin-top: nhsuk-spacing(-1);
31
+ /// }
32
+ ///
33
+ /// @example scss Marking spacing declarations as important
34
+ /// .element {
35
+ /// margin-top: nhsuk-spacing(1) !important;
36
+ /// }
37
+ ///
38
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
39
+
40
+ @function nhsuk-spacing($spacing-point) {
41
+ $actual-input-type: meta.type-of($spacing-point);
42
+ @if $actual-input-type != "number" {
43
+ @error "Expected a number (integer), but got a "
44
+ + "#{$actual-input-type}.";
45
+ }
46
+
47
+ $is-negative: false;
48
+ @if $spacing-point < 0 {
49
+ $is-negative: true;
50
+ $spacing-point: math.abs($spacing-point);
51
+ }
52
+
53
+ @if not map.has-key($nhsuk-spacing-points, $spacing-point) {
54
+ @error "Unknown spacing variable `#{$spacing-point}`. Make sure you are using a point from the spacing scale in `_settings/spacing.scss`.";
55
+ }
56
+
57
+ $value: map.get($nhsuk-spacing-points, $spacing-point);
58
+ @return if($is-negative, $value * -1, $value);
59
+ }
60
+
61
+ /// Responsive spacing
62
+ ///
63
+ /// Adds responsive spacing (either padding or margin, depending on `$property`)
64
+ /// by fetching a 'spacing map' from the responsive spacing scale, which defines
65
+ /// different spacing values at different breakpoints.
66
+ ///
67
+ /// To generate responsive spacing, use 'nhsuk-responsive-margin' or
68
+ /// 'nhsuk-responsive-padding' mixins
69
+ ///
70
+ /// @param {Number} $responsive-spacing-point - Point on the responsive spacing
71
+ /// scale, corresponds to a map of breakpoints and spacing values
72
+ /// @param {String} $property - Property to add spacing to (e.g. 'margin')
73
+ /// @param {String} $direction [all] - Direction to add spacing to
74
+ /// (`top`, `right`, `bottom`, `left`, `all`)
75
+ /// @param {Boolean} $important [false] - Whether to mark as `!important`
76
+ /// @param {Number} $adjustment [false] - Offset to adjust spacing by
77
+ ///
78
+ /// @example scss
79
+ /// .foo {
80
+ /// padding: nhsuk-spacing(5);
81
+ /// top: nhsuk-spacing(2) !important; // if `!important` is required
82
+ /// }
83
+ ///
84
+ /// 1. Make sure that the return value from `_settings/spacing.scss` is a map.
85
+ /// 2. Loop through each breakpoint in the map
86
+ /// 3. The 'null' breakpoint is for mobile.
87
+ ///
88
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
89
+
90
+ @mixin nhsuk-responsive-spacing(
91
+ $responsive-spacing-point,
92
+ $property,
93
+ $direction: "all",
94
+ $important: false,
95
+ $adjustment: false
96
+ ) {
97
+ $actual-input-type: meta.type-of($responsive-spacing-point);
98
+ @if $actual-input-type != "number" {
99
+ @error "Expected a number (integer), but got a " + "#{$actual-input-type}.";
100
+ }
101
+
102
+ @if not map.has-key($nhsuk-spacing-responsive-scale, $responsive-spacing-point) {
103
+ @error "Unknown spacing point `#{$responsive-spacing-point}`. Make sure you are using a point from the "
104
+ + "responsive spacing scale in `_settings/spacing.scss`.";
105
+ }
106
+
107
+ $scale-map: map.get($nhsuk-spacing-responsive-scale, $responsive-spacing-point); // [1]
108
+ $actual-map-type: meta.type-of($scale-map);
109
+ @if $actual-map-type != "map" {
110
+ @error "Expected a number (integer), but got a "
111
+ + "#{$actual-map-type}. Make sure you are using a map to set the responsive spacing in `_settings/spacing.scss`)";
112
+ }
113
+
114
+ @each $breakpoint, $breakpoint-value in $scale-map {
115
+ // [2]
116
+
117
+ @if $adjustment {
118
+ $breakpoint-value: $breakpoint-value + $adjustment;
119
+ }
120
+
121
+ & {
122
+ @if not $breakpoint {
123
+ // [3]
124
+ @if $direction == all {
125
+ #{$property}: $breakpoint-value if($important, !important, null);
126
+ } @else {
127
+ #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);
128
+ }
129
+ } @else {
130
+ @include nhsuk-media-query($from: $breakpoint) {
131
+ @if $direction == all {
132
+ #{$property}: $breakpoint-value if($important, !important, null);
133
+ } @else {
134
+ #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ /// Responsive margin
143
+ ///
144
+ /// Adds responsive margin by fetching a 'spacing map' from the responsive
145
+ /// spacing scale, which defines different spacing values at different
146
+ /// breakpoints. Wrapper for the `nhsuk-responsive-spacing` mixin.
147
+ ///
148
+ /// @see {mixin} nhsuk-responsive-spacing
149
+ ///
150
+ /// @param {Number} $responsive-spacing-point - Point on the responsive spacing
151
+ /// scale, corresponds to a map of breakpoints and spacing values
152
+ /// @param {String} $direction [all] - Direction to add spacing to
153
+ /// (`top`, `right`, `bottom`, `left`, `all`)
154
+ /// @param {Boolean} $important [false] - Whether to mark as `!important`
155
+ /// @param {Number} $adjustment [false] - Offset to adjust spacing by
156
+ ///
157
+ /// @example scss
158
+ /// .foo {
159
+ /// @include nhsuk-responsive-margin(6, 'left', $adjustment: 1px);
160
+ /// }
161
+ ///
162
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
163
+
164
+ @mixin nhsuk-responsive-margin($responsive-spacing-point, $direction: "all", $important: false, $adjustment: false) {
165
+ @include nhsuk-responsive-spacing($responsive-spacing-point, "margin", $direction, $important, $adjustment);
166
+ }
167
+
168
+ /// Responsive padding
169
+ ///
170
+ /// Adds responsive padding by fetching a 'spacing map' from the responsive
171
+ /// spacing scale, which defines different spacing values at different
172
+ /// breakpoints. Wrapper for the `nhsuk-responsive-spacing` mixin.
173
+ ///
174
+ /// @see {mixin} nhsuk-responsive-spacing
175
+ ///
176
+ /// @param {Number} $responsive-spacing-point - Point on the responsive spacing
177
+ /// scale, corresponds to a map of breakpoints and spacing values
178
+ /// @param {String} $direction [all] - Direction to add spacing to
179
+ /// (`top`, `right`, `bottom`, `left`, `all`)
180
+ /// @param {Boolean} $important [false] - Whether to mark as `!important`
181
+ /// @param {Number} $adjustment [false] - Offset to adjust spacing
182
+ ///
183
+ /// @example scss
184
+ /// .foo {
185
+ /// @include nhsuk-responsive-padding(6, 'left', $adjustment: 1px);
186
+ /// }
187
+ ///
188
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
189
+
190
+ @mixin nhsuk-responsive-padding($responsive-spacing-point, $direction: "all", $important: false, $adjustment: false) {
191
+ @include nhsuk-responsive-spacing($responsive-spacing-point, "padding", $direction, $important, $adjustment);
192
+ }
@@ -0,0 +1,259 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+ @use "sass:string";
4
+ @use "../settings" as *;
5
+ @use "functions" as *;
6
+ @use "ifff" as *;
7
+ @use "sass-mq" as *;
8
+
9
+ ////
10
+ /// Typography
11
+ ///
12
+ /// These mixins allow us to quickly and consistently generate common text
13
+ /// patterns such as colours and font-weight
14
+ ///
15
+ /// @group tools
16
+ ////
17
+
18
+ /// Text colour
19
+ ///
20
+ /// Sets the text colour, including a suitable override for print.
21
+ ///
22
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
23
+
24
+ @mixin nhsuk-text-color {
25
+ color: $nhsuk-text-color;
26
+
27
+ @include nhsuk-media-query($media-type: print) {
28
+ color: $nhsuk-print-text-color;
29
+ }
30
+ }
31
+
32
+ /// Normal font weight
33
+ ///
34
+ /// @param {Boolean} $important [false] - Whether to mark declarations as
35
+ /// `!important`. Generally Used to create override classes.
36
+
37
+ @mixin nhsuk-typography-weight-normal($important: false) {
38
+ font-weight: $nhsuk-font-normal if($important, !important, null);
39
+ }
40
+
41
+ /// Bold font weight
42
+ ///
43
+ /// @param {Boolean} $important [false] - Whether to mark declarations as
44
+ /// `!important`. Generally Used to create override classes.
45
+
46
+ @mixin nhsuk-typography-weight-bold($important: false) {
47
+ font-weight: $nhsuk-font-bold if($important, !important, null);
48
+ }
49
+
50
+ /// Word break helper
51
+ ///
52
+ /// Forcibly breaks long words that lack spaces, such as email addresses,
53
+ /// across multiple lines when they wouldn't otherwise fit.
54
+ ///
55
+ /// @param {Boolean} $important [false] - Whether to mark declarations as
56
+ /// `!important`. Generally used to create override classes.
57
+
58
+ @mixin nhsuk-text-break-word($important: false) {
59
+ // IE 11 and Edge 16–17 only support the non-standard `word-wrap` property
60
+ word-wrap: break-word if($important, !important, null);
61
+
62
+ // All other browsers support `overflow-wrap`
63
+ overflow-wrap: break-word if($important, !important, null);
64
+ }
65
+
66
+ /// Line height
67
+ ///
68
+ ///
69
+ /// Convert line-heights specified in pixels into a relative value, unless
70
+ /// they are already unit-less (and thus already treated as relative values)
71
+ /// or the units do not match the units used for the font size.
72
+ ///
73
+ /// @param {Number} $line-height Line height
74
+ /// @param {Number} $font-size Font size
75
+ /// @return {Number} The line height as either a relative value or unmodified
76
+
77
+ @function nhsuk-line-height($line-height, $font-size) {
78
+ @if not math.is-unitless($line-height) and math.unit($line-height) == math.unit($font-size) {
79
+ // Explicitly rounding to 5 decimal places to match the node-sass/libsass default precision.
80
+ // This is expanded to 10 in dart-sass and results in significant line height differences
81
+ // Therefore by rounding it here we achieve consistent rendering across node-sass and dart-sass
82
+ $ten-to-the-power-five: 100000;
83
+ $line-height: math.div(round(math.div($line-height, $font-size) * $ten-to-the-power-five), $ten-to-the-power-five);
84
+ }
85
+
86
+ @return $line-height;
87
+ }
88
+
89
+ /// Font size and line height helper
90
+ ///
91
+ /// Takes a point from the responsive 'font map' as an argument (the size as it
92
+ /// would appear on tablet and above), and uses it to create font-size and
93
+ /// line-height declarations for different breakpoints, and print.
94
+ ///
95
+ /// Example font map:
96
+ ///
97
+ /// ```scss
98
+ /// 19: (
99
+ /// null: (
100
+ /// font-size: 16px,
101
+ /// line-height: 20px
102
+ /// ),
103
+ /// tablet: (
104
+ /// font-size: 19px,
105
+ /// line-height: 25px
106
+ /// ),
107
+ /// print: (
108
+ /// font-size: 14pt,
109
+ /// line-height: 1.15
110
+ /// )
111
+ /// );
112
+ /// ```
113
+ ///
114
+ /// @param {Number | String} $size - Point from the typography scale (the size
115
+ /// as it would appear on tablet and above)
116
+ /// @param {Number} $line-height [false] - Non responsive custom line
117
+ /// height. Omit to use the line height from the font map.
118
+ /// @param {Boolean} $important [false] - Whether to mark declarations as
119
+ /// `!important`.
120
+ ///
121
+ /// @throw if `$size` is not a valid point from the typography scale
122
+ ///
123
+ /// @link https://github.com/alphagov/govuk-frontend Original code taken from GDS (Government Digital Service)
124
+
125
+ @mixin nhsuk-font-size($size, $line-height: false, $important: false) {
126
+ // Flag font sizes that start with underscores so we can suppress warnings on
127
+ // deprecated sizes used internally, for example `nhsuk-font($size: "_24")`
128
+ $size-internal-use-only: string.slice(#{$size}, 1, 1) == "_";
129
+
130
+ // Remove underscore from font sizes flagged for internal use
131
+ @if $size-internal-use-only {
132
+ $size: string.slice(#{$size}, 2);
133
+ }
134
+
135
+ // Check for a font map exactly matching the given size
136
+ $font-map: map.get($nhsuk-typography-scale, $size);
137
+
138
+ // No match? Try with string type (e.g. $size: "16" not 16)
139
+ @if not $font-map {
140
+ @each $font-size in map.keys($nhsuk-typography-scale) {
141
+ @if not $font-map and "#{$font-size}" == "#{$size}" {
142
+ $font-map: map.get($nhsuk-typography-scale, $font-size);
143
+ }
144
+ }
145
+ }
146
+
147
+ // Still no match? Throw error
148
+ @if not $font-map {
149
+ @error "Unknown font size `#{$size}` - expected a point from the typography scale.";
150
+ }
151
+
152
+ // Check for a deprecation within the typography scale
153
+ $deprecation: map.get($font-map, "deprecation");
154
+
155
+ @if $deprecation {
156
+ // Warn on deprecated font sizes unless flagged for internal use
157
+ @if not $size-internal-use-only {
158
+ @include nhsuk-warning(map.get($deprecation, "key"), map.get($deprecation, "message"));
159
+ }
160
+
161
+ // remove the deprecation map keys so they do not break the breakpoint loop
162
+ $font-map: map.remove($font-map, "deprecation");
163
+ }
164
+
165
+ @each $breakpoint, $breakpoint-map in $font-map {
166
+ $font-size: map.get($breakpoint-map, "font-size");
167
+ $font-size-rem: nhsuk-px-to-rem($font-size);
168
+
169
+ // $calculated-line-height is a separate variable from $line-height,
170
+ // as otherwise the value would get redefined with each loop and
171
+ // eventually break nhsuk-line-height.
172
+ //
173
+ // We continue to call the param $line-height to stay consistent with the
174
+ // naming with nhsuk-font.
175
+ $calculated-line-height: nhsuk-line-height(
176
+ $line-height: if($line-height, $line-height, map.get($breakpoint-map, "line-height")),
177
+ $font-size: $font-size
178
+ );
179
+
180
+ // Mark rules as !important if $important is true - this will result in
181
+ // these variables becoming strings, so this needs to happen *after* they
182
+ // are used in calculations
183
+ $font-size: $font-size if($important, !important, null);
184
+ $font-size-rem: $font-size-rem if($important, !important, null);
185
+ $calculated-line-height: $calculated-line-height if($important, !important, null);
186
+
187
+ & {
188
+ @if not $breakpoint {
189
+ font-size: $font-size;
190
+ font-size: $font-size-rem;
191
+ line-height: $calculated-line-height;
192
+ } @else if $breakpoint == "print" {
193
+ @include nhsuk-media-query($media-type: print) {
194
+ font-size: $font-size;
195
+ line-height: $calculated-line-height;
196
+ }
197
+ } @else {
198
+ @include nhsuk-media-query($from: $breakpoint) {
199
+ font-size: $font-size;
200
+ font-size: $font-size-rem;
201
+ line-height: $calculated-line-height;
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+
208
+ /// Font size and line height helper (deprecated)
209
+ ///
210
+ /// @param {Number | Boolean | String} $size - Point from the typography scale
211
+ /// (the size as it would appear on tablet and above). Use `false` to avoid
212
+ /// setting a size.
213
+ /// @param {Number} $override-line-height [false] - Non responsive custom line
214
+ /// height. Omit to use the line height from the font map.
215
+ /// @param {Boolean} $important [false] - Whether to mark declarations as
216
+ /// `!important`.
217
+ ///
218
+ /// @throw if `$size` is not a valid point from the typography scale (or false)
219
+ ///
220
+ /// @alias nhsuk-font-size
221
+ /// @deprecated To be removed in v11.0, replaced by nhsuk-font-size
222
+
223
+ @mixin nhsuk-typography-responsive($size, $override-line-height: false, $important: false) {
224
+ @include nhsuk-warning(
225
+ "nhsuk-typography-responsive",
226
+ "nhsuk-typography-responsive is deprecated. Use nhsuk-font-size instead."
227
+ );
228
+ @include nhsuk-font-size($size, $override-line-height, $important);
229
+ }
230
+
231
+ /// Font helper
232
+ ///
233
+ /// @example scss
234
+ /// .foo {
235
+ /// @include nhsuk-font(19);
236
+ /// }
237
+ ///
238
+ /// .foo {
239
+ /// @include nhsuk-font(36, $weight: bold);
240
+ /// }
241
+ ///
242
+ /// @param {Number} $size - Size of the font as it would appear on desktop -
243
+ /// uses the responsive font size map
244
+ /// @param {String} $weight [normal] - Weight: `bold` or `normal`
245
+ /// @param {Number} $line-height [false] - Line-height, if overriding the default
246
+
247
+ @mixin nhsuk-font($size, $weight: normal, $line-height: false) {
248
+ & {
249
+ @if $weight == normal {
250
+ @include nhsuk-typography-weight-normal;
251
+ } @else if $weight == bold {
252
+ @include nhsuk-typography-weight-bold;
253
+ }
254
+ }
255
+
256
+ @if $size {
257
+ @include nhsuk-font-size($size, $line-height);
258
+ }
259
+ }
@@ -0,0 +1,15 @@
1
+ @use "../tools" as *;
2
+
3
+ ////
4
+ /// Clearfix
5
+ ///
6
+ /// Automatically clear an elements
7
+ /// child elements
8
+ ///
9
+ /// @example html
10
+ /// <div class="nhsuk-u-clear"></div>
11
+ ////
12
+
13
+ .nhsuk-u-clear {
14
+ @include nhsuk-clearfix;
15
+ }
@@ -0,0 +1,15 @@
1
+ ////
2
+ /// Display
3
+ ///
4
+ /// @group utilities
5
+ ////
6
+
7
+ // stylelint-disable declaration-no-important
8
+
9
+ .nhsuk-u-display-block {
10
+ display: block !important;
11
+ }
12
+
13
+ .nhsuk-u-display-inline-block {
14
+ display: inline-block !important;
15
+ }
@@ -0,0 +1,15 @@
1
+ ////
2
+ /// Float
3
+ ///
4
+ /// @group utilities
5
+ ////
6
+
7
+ // stylelint-disable declaration-no-important
8
+
9
+ .nhsuk-u-float-left {
10
+ float: left !important;
11
+ }
12
+
13
+ .nhsuk-u-float-right {
14
+ float: right !important;
15
+ }
@@ -0,0 +1,97 @@
1
+ @use "sass:math";
2
+ @use "../tools" as *;
3
+
4
+ ////
5
+ /// Grid widths
6
+ ///
7
+ /// Force grid widths on all screen sizes
8
+ ///
9
+ /// By default all grid elements will go to 100% width
10
+ /// on screen sizes below tablet, these utilities can force
11
+ /// custom widths on all screen sizes
12
+ ///
13
+ /// @group utilities
14
+ ///
15
+ /// @example html
16
+ /// <div class="nhsuk-u-one-half"></div>
17
+ ////
18
+
19
+ // Utility classes are allowed to use !important;
20
+ // so we disable stylelint for that rule
21
+ // stylelint-disable declaration-no-important
22
+
23
+ .nhsuk-u-one-half {
24
+ float: left;
25
+ width: math.percentage(math.div(1, 2)) !important;
26
+ }
27
+
28
+ .nhsuk-u-one-third {
29
+ float: left;
30
+ width: math.percentage(math.div(1, 3)) !important;
31
+ }
32
+
33
+ .nhsuk-u-two-thirds {
34
+ float: left;
35
+ width: math.percentage(math.div(2, 3)) !important;
36
+ }
37
+
38
+ .nhsuk-u-one-quarter {
39
+ float: left;
40
+ width: math.percentage(math.div(1, 4)) !important;
41
+ }
42
+
43
+ .nhsuk-u-three-quarters {
44
+ float: left;
45
+ width: math.percentage(math.div(3, 4)) !important;
46
+ }
47
+
48
+ /// Force grid widths on screen sizes on tablet
49
+ /// and above
50
+ ///
51
+ /// By default all grid elements will go to 100% width
52
+ /// on every screen size, these utilities can force
53
+ /// custom widths on screen sizes on tablet
54
+ /// and above
55
+ ///
56
+ /// @example html
57
+ /// <div class="nhsuk-u-one-half-tablet"></div>
58
+
59
+ .nhsuk-u-one-half-tablet {
60
+ width: 100% !important;
61
+ @include nhsuk-media-query($from: tablet) {
62
+ float: left;
63
+ width: math.percentage(math.div(1, 2)) !important;
64
+ }
65
+ }
66
+
67
+ .nhsuk-u-one-third-tablet {
68
+ width: 100% !important;
69
+ @include nhsuk-media-query($from: tablet) {
70
+ float: left;
71
+ width: math.percentage(math.div(1, 3)) !important;
72
+ }
73
+ }
74
+
75
+ .nhsuk-u-two-thirds-tablet {
76
+ width: 100% !important;
77
+ @include nhsuk-media-query($from: tablet) {
78
+ float: left;
79
+ width: math.percentage(math.div(2, 3)) !important;
80
+ }
81
+ }
82
+
83
+ .nhsuk-u-one-quarter-tablet {
84
+ width: 100% !important;
85
+ @include nhsuk-media-query($from: tablet) {
86
+ float: left;
87
+ width: math.percentage(math.div(1, 4)) !important;
88
+ }
89
+ }
90
+
91
+ .nhsuk-u-three-quarters-tablet {
92
+ width: 100% !important;
93
+ @include nhsuk-media-query($from: tablet) {
94
+ float: left;
95
+ width: math.percentage(math.div(3, 4)) !important;
96
+ }
97
+ }
@@ -0,0 +1,16 @@
1
+ ////
2
+ /// Tools
3
+ ////
4
+
5
+ @forward "clearfix";
6
+ @forward "display";
7
+ @forward "float";
8
+ @forward "grid-widths";
9
+ @forward "link-nowrap";
10
+ @forward "list-border";
11
+ @forward "reading-width";
12
+ @forward "spacing";
13
+ @forward "text-align";
14
+ @forward "typography";
15
+ @forward "visually-hidden";
16
+ @forward "widths";
@@ -0,0 +1,19 @@
1
+ @use "../tools" as *;
2
+
3
+ ////
4
+ /// Link nowrap
5
+ ///
6
+ /// Prevent long anchor links from line breaking
7
+ /// on smaller screens
8
+ ///
9
+ /// @group utilities
10
+ ///
11
+ /// @example html
12
+ /// <a href="#" class="nhsuk-u-nowrap"></a>
13
+ ////
14
+
15
+ .nhsuk-u-nowrap {
16
+ @include nhsuk-media-query($until: tablet) {
17
+ white-space: nowrap;
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ @use "../settings" as *;
2
+
3
+ ////
4
+ /// List border
5
+ ///
6
+ /// Adds a grey border to the bottom of an <li> tag
7
+ ///
8
+ /// @group utilities
9
+ ///
10
+ /// @example html
11
+ /// <ul class="nhsuk-list nhsuk-list--border">
12
+ /// <li>Item 1</li>
13
+ /// <li>Item 2</li>
14
+ /// </ul>
15
+ ////
16
+
17
+ .nhsuk-list--border li {
18
+ border-bottom: 1px solid $color_nhsuk-grey-4;
19
+ padding: 8px 0 16px;
20
+ }
@@ -0,0 +1,16 @@
1
+ @use "../tools" as *;
2
+
3
+ ////
4
+ /// Reading width
5
+ ///
6
+ /// Adds a maximum width to large pieces of content
7
+ ///
8
+ /// @group utilities
9
+ ///
10
+ /// @example html
11
+ /// <div class="nhsuk-u-reading-width"></div>
12
+ ////
13
+
14
+ .nhsuk-u-reading-width {
15
+ @include nhsuk-reading-width;
16
+ }