@fremtind/jokul 5.0.0-next.0 → 5.0.0-next.2

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 (636) hide show
  1. package/README.md +30 -7
  2. package/bin/jokul.mjs +10 -0
  3. package/bin/run-jokul-cli.mjs +63 -0
  4. package/build/build-stats.html +1 -1
  5. package/build/cjs/components/beta/description-list/DescriptionList.cjs +2 -0
  6. package/build/cjs/components/beta/description-list/DescriptionList.cjs.map +1 -0
  7. package/build/cjs/components/beta/description-list/DescriptionListItem.cjs +2 -0
  8. package/build/cjs/components/beta/description-list/DescriptionListItem.cjs.map +1 -0
  9. package/build/cjs/{components-beta → components/beta}/description-list/index.d.cts +2 -2
  10. package/build/cjs/components/beta/nav-link/NavLink.cjs +2 -0
  11. package/build/cjs/components/beta/nav-link/NavLink.cjs.map +1 -0
  12. package/build/cjs/components/beta/nav-link/index.d.cts +1 -0
  13. package/build/cjs/{components-beta → components/beta}/nav-link/types.d.cts +1 -1
  14. package/build/cjs/components/beta/select/Select.cjs +2 -0
  15. package/build/cjs/components/beta/select/Select.cjs.map +1 -0
  16. package/build/cjs/components/beta/select/index.d.cts +2 -0
  17. package/build/cjs/{components-beta → components/beta}/select/types.d.cts +1 -1
  18. package/build/cjs/components/breadcrumb/types.d.cts +1 -1
  19. package/build/cjs/components/card/Card.cjs +1 -1
  20. package/build/cjs/components/card/Card.cjs.map +1 -1
  21. package/build/cjs/components/card/types.cjs +1 -1
  22. package/build/cjs/components/card/types.cjs.map +1 -1
  23. package/build/cjs/components/card/types.d.cts +2 -2
  24. package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
  25. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  26. package/build/cjs/components/checkbox/types.d.cts +1 -1
  27. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  28. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  29. package/build/cjs/components/cookie-consent/CookieConsent.d.cts +1 -1
  30. package/build/cjs/components/cookie-consent/types.d.cts +5 -1
  31. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  32. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  33. package/build/cjs/components/datepicker/types.d.cts +1 -1
  34. package/build/cjs/components/description-list/index.cjs +1 -1
  35. package/build/cjs/components/description-list/index.d.cts +3 -3
  36. package/build/cjs/components/description-list/types.d.cts +1 -1
  37. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  38. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  39. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  40. package/build/cjs/components/feedback/feedbackContext.d.cts +1 -1
  41. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  42. package/build/cjs/components/feedback/followup/followupContext.d.cts +1 -1
  43. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  44. package/build/cjs/components/feedback/main-question/mainQuestionContext.d.cts +1 -1
  45. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  46. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  47. package/build/cjs/components/file-input/internal/Dropzone.d.cts +1 -1
  48. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  49. package/build/cjs/components/file-input/internal/fileInputContext.d.cts +1 -1
  50. package/build/cjs/components/icon/development/internal/IconsExampleGrid.d.cts +1 -1
  51. package/build/cjs/components/input-group/InputGroup.d.cts +2 -2
  52. package/build/cjs/components/input-group/types.d.cts +1 -1
  53. package/build/cjs/components/link/Link.cjs +1 -1
  54. package/build/cjs/components/link/Link.cjs.map +1 -1
  55. package/build/cjs/components/link/Link.d.cts +2 -2
  56. package/build/cjs/components/link/types.d.cts +1 -4
  57. package/build/cjs/components/link-list/LinkList.d.cts +1 -1
  58. package/build/cjs/components/list/ListItem.cjs.map +1 -1
  59. package/build/cjs/components/list/ListItem.d.cts +1 -1
  60. package/build/cjs/components/logo/types.d.cts +1 -1
  61. package/build/cjs/components/menu/types.d.cts +1 -1
  62. package/build/cjs/components/modal/Modal.cjs +1 -1
  63. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  64. package/build/cjs/components/modal/Modal.d.cts +2 -9
  65. package/build/cjs/components/modal/index.d.cts +1 -1
  66. package/build/cjs/components/modal/types.d.cts +19 -1
  67. package/build/cjs/components/nav-link/index.cjs +1 -1
  68. package/build/cjs/components/nav-link/index.d.cts +2 -2
  69. package/build/cjs/components/popover/Popover.cjs +1 -1
  70. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  71. package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
  72. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  73. package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
  74. package/build/cjs/components/radio-button/radioGroupContext.d.cts +1 -1
  75. package/build/cjs/components/screen-reader-only/types.d.cts +1 -1
  76. package/build/cjs/components/select/index.cjs +1 -1
  77. package/build/cjs/components/select/index.d.cts +2 -2
  78. package/build/cjs/components/select/types.d.cts +1 -1
  79. package/build/cjs/components/system-message/types.d.cts +1 -1
  80. package/build/cjs/components/table/types.d.cts +1 -1
  81. package/build/cjs/components/table-of-contents/TableOfContents.d.cts +1 -1
  82. package/build/cjs/components/tabs/types.d.cts +1 -1
  83. package/build/cjs/components/toast/types.d.cts +1 -1
  84. package/build/cjs/components/toggle-switch/types.d.cts +1 -1
  85. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  86. package/build/cjs/components/tooltip/Tooltip.d.cts +1 -1
  87. package/build/cjs/hooks/useAnimatedHeight/types.d.cts +1 -1
  88. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  89. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  90. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  91. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  92. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  93. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  94. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.d.cts +1 -1
  95. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.d.cts +1 -1
  96. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  97. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.d.cts +1 -1
  98. package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
  99. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  100. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs +1 -1
  101. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs.map +1 -1
  102. package/build/cjs/tailwind/tailwindPreset.cjs +1 -1
  103. package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
  104. package/build/cjs/tokens.cjs +2 -0
  105. package/build/cjs/tokens.cjs.map +1 -0
  106. package/build/cjs/tokens.d.cts +235 -0
  107. package/build/cjs/utilities/getThemeAndSize.cjs +1 -1
  108. package/build/cjs/utilities/getThemeAndSize.cjs.map +1 -1
  109. package/build/cjs/utilities/getThemeAndSize.d.cts +1 -1
  110. package/build/cjs/utilities/index.d.cts +1 -0
  111. package/build/cjs/{core → utilities}/types.d.cts +1 -1
  112. package/build/es/components/beta/description-list/DescriptionList.js +2 -0
  113. package/build/es/components/beta/description-list/DescriptionList.js.map +1 -0
  114. package/build/es/components/beta/description-list/DescriptionListItem.js +2 -0
  115. package/build/es/components/beta/description-list/DescriptionListItem.js.map +1 -0
  116. package/build/es/{components-beta → components/beta}/description-list/index.d.ts +2 -2
  117. package/build/es/components/beta/nav-link/NavLink.js +2 -0
  118. package/build/es/components/beta/nav-link/NavLink.js.map +1 -0
  119. package/build/es/components/beta/nav-link/index.d.ts +1 -0
  120. package/build/es/{components-beta → components/beta}/nav-link/types.d.ts +1 -1
  121. package/build/es/components/beta/select/Select.js +2 -0
  122. package/build/es/components/beta/select/Select.js.map +1 -0
  123. package/build/es/components/beta/select/index.d.ts +2 -0
  124. package/build/es/{components-beta → components/beta}/select/types.d.ts +1 -1
  125. package/build/es/components/breadcrumb/types.d.ts +1 -1
  126. package/build/es/components/card/Card.js +1 -1
  127. package/build/es/components/card/Card.js.map +1 -1
  128. package/build/es/components/card/types.d.ts +2 -2
  129. package/build/es/components/card/types.js +1 -1
  130. package/build/es/components/card/types.js.map +1 -1
  131. package/build/es/components/checkbox/Checkbox.js +1 -1
  132. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  133. package/build/es/components/checkbox/types.d.ts +1 -1
  134. package/build/es/components/cookie-consent/CookieConsent.d.ts +1 -1
  135. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  136. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  137. package/build/es/components/cookie-consent/types.d.ts +5 -1
  138. package/build/es/components/datepicker/DatePicker.js +1 -1
  139. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  140. package/build/es/components/datepicker/types.d.ts +1 -1
  141. package/build/es/components/description-list/index.d.ts +3 -3
  142. package/build/es/components/description-list/index.js +1 -1
  143. package/build/es/components/description-list/types.d.ts +1 -1
  144. package/build/es/components/expander/ExpandablePanel.js +1 -1
  145. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  146. package/build/es/components/feedback/feedbackContext.d.ts +1 -1
  147. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  148. package/build/es/components/feedback/followup/followupContext.d.ts +1 -1
  149. package/build/es/components/feedback/followup/followupContext.js.map +1 -1
  150. package/build/es/components/feedback/main-question/mainQuestionContext.d.ts +1 -1
  151. package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
  152. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  153. package/build/es/components/file-input/internal/Dropzone.d.ts +1 -1
  154. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  155. package/build/es/components/file-input/internal/fileInputContext.d.ts +1 -1
  156. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  157. package/build/es/components/icon/development/internal/IconsExampleGrid.d.ts +1 -1
  158. package/build/es/components/input-group/InputGroup.d.ts +2 -2
  159. package/build/es/components/input-group/types.d.ts +1 -1
  160. package/build/es/components/link/Link.d.ts +2 -2
  161. package/build/es/components/link/Link.js +1 -1
  162. package/build/es/components/link/Link.js.map +1 -1
  163. package/build/es/components/link/types.d.ts +1 -4
  164. package/build/es/components/link-list/LinkList.d.ts +1 -1
  165. package/build/es/components/list/ListItem.d.ts +1 -1
  166. package/build/es/components/list/ListItem.js.map +1 -1
  167. package/build/es/components/logo/types.d.ts +1 -1
  168. package/build/es/components/menu/types.d.ts +1 -1
  169. package/build/es/components/modal/Modal.d.ts +2 -9
  170. package/build/es/components/modal/Modal.js +1 -1
  171. package/build/es/components/modal/Modal.js.map +1 -1
  172. package/build/es/components/modal/index.d.ts +1 -1
  173. package/build/es/components/modal/types.d.ts +19 -1
  174. package/build/es/components/nav-link/index.d.ts +2 -2
  175. package/build/es/components/nav-link/index.js +1 -1
  176. package/build/es/components/popover/Popover.js +1 -1
  177. package/build/es/components/popover/Popover.js.map +1 -1
  178. package/build/es/components/radio-button/BaseRadioButton.js +1 -1
  179. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  180. package/build/es/components/radio-button/radioGroupContext.d.ts +1 -1
  181. package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
  182. package/build/es/components/screen-reader-only/types.d.ts +1 -1
  183. package/build/es/components/select/index.d.ts +2 -2
  184. package/build/es/components/select/index.js +1 -1
  185. package/build/es/components/select/types.d.ts +1 -1
  186. package/build/es/components/system-message/types.d.ts +1 -1
  187. package/build/es/components/table/types.d.ts +1 -1
  188. package/build/es/components/table-of-contents/TableOfContents.d.ts +1 -1
  189. package/build/es/components/tabs/types.d.ts +1 -1
  190. package/build/es/components/toast/types.d.ts +1 -1
  191. package/build/es/components/toggle-switch/types.d.ts +1 -1
  192. package/build/es/components/tooltip/Tooltip.d.ts +1 -1
  193. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  194. package/build/es/hooks/useAnimatedHeight/types.d.ts +1 -1
  195. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  196. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  197. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  198. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  199. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.d.ts +1 -1
  200. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  201. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  202. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.d.ts +1 -1
  203. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.d.ts +1 -1
  204. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  205. package/build/es/hooks/useScreen/useScreen.js +1 -1
  206. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  207. package/build/es/tailwind/plugins/jokulTypographyPlugin.js +1 -1
  208. package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
  209. package/build/es/tailwind/tailwindPreset.js +1 -1
  210. package/build/es/tailwind/tailwindPreset.js.map +1 -1
  211. package/build/es/tokens.d.ts +235 -0
  212. package/build/es/tokens.js +2 -0
  213. package/build/es/tokens.js.map +1 -0
  214. package/build/es/utilities/getThemeAndSize.d.ts +1 -1
  215. package/build/es/utilities/getThemeAndSize.js +1 -1
  216. package/build/es/utilities/getThemeAndSize.js.map +1 -1
  217. package/build/es/utilities/index.d.ts +1 -0
  218. package/build/es/{core → utilities}/types.d.ts +1 -1
  219. package/codemods/__tests__/import-paths.test.mjs +84 -0
  220. package/codemods/import-paths.mjs +393 -0
  221. package/package.json +12 -585
  222. package/styles/base.css +1822 -0
  223. package/styles/base.min.css +2 -0
  224. package/styles/components/autosuggest/autosuggest.css +6 -12
  225. package/styles/components/autosuggest/autosuggest.min.css +1 -1
  226. package/styles/components/autosuggest/autosuggest.scss +3 -3
  227. package/styles/{components-beta → components/beta}/description-list/description-list.css +1 -1
  228. package/styles/{components-beta → components/beta}/description-list/description-list.min.css +1 -1
  229. package/styles/{components-beta → components/beta}/description-list/description-list.scss +2 -2
  230. package/styles/{components-beta → components/beta}/nav-link/navlink.css +11 -14
  231. package/styles/components/beta/nav-link/navlink.min.css +1 -0
  232. package/styles/{components-beta → components/beta}/nav-link/navlink.scss +4 -4
  233. package/styles/components/beta/select/_index.scss +3 -0
  234. package/styles/{components-beta → components/beta}/select/select.css +13 -16
  235. package/styles/components/beta/select/select.min.css +1 -0
  236. package/styles/{components-beta → components/beta}/select/select.scss +9 -9
  237. package/styles/components/breadcrumb/breadcrumb.css +1 -1
  238. package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
  239. package/styles/components/breadcrumb/breadcrumb.scss +1 -1
  240. package/styles/components/button/button.css +15 -14
  241. package/styles/components/button/button.min.css +1 -1
  242. package/styles/components/button/button.scss +14 -14
  243. package/styles/components/card/card.css +8 -11
  244. package/styles/components/card/card.min.css +1 -1
  245. package/styles/components/card/card.scss +7 -11
  246. package/styles/components/checkbox/checkbox.css +55 -42
  247. package/styles/components/checkbox/checkbox.min.css +1 -1
  248. package/styles/components/checkbox/checkbox.scss +43 -36
  249. package/styles/components/checkbox-panel/checkbox-panel.css +84 -72
  250. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  251. package/styles/components/checkbox-panel/checkbox-panel.scss +5 -1
  252. package/styles/components/checkbox-panel/development/styles.scss +1 -1
  253. package/styles/components/chip/chip.css +6 -9
  254. package/styles/components/chip/chip.min.css +1 -1
  255. package/styles/components/chip/chip.scss +3 -3
  256. package/styles/components/combobox/combobox.css +30 -39
  257. package/styles/components/combobox/combobox.min.css +1 -1
  258. package/styles/components/combobox/combobox.scss +10 -8
  259. package/styles/components/cookie-consent/cookie-consent.css +1 -5
  260. package/styles/components/cookie-consent/cookie-consent.min.css +1 -1
  261. package/styles/components/cookie-consent/cookie-consent.scss +1 -1
  262. package/styles/components/countdown/countdown.css +4 -4
  263. package/styles/components/countdown/countdown.min.css +1 -1
  264. package/styles/components/datepicker/_calendar-date-button.scss +9 -9
  265. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +3 -3
  266. package/styles/components/datepicker/_calendar-navigation.scss +1 -1
  267. package/styles/components/datepicker/_calendar-table.scss +1 -1
  268. package/styles/components/datepicker/_calendar.scss +7 -8
  269. package/styles/components/datepicker/datepicker.css +27 -31
  270. package/styles/components/datepicker/datepicker.min.css +1 -1
  271. package/styles/components/datepicker/datepicker.scss +1 -1
  272. package/styles/components/description-list/description-list.css +2 -2
  273. package/styles/components/description-list/description-list.min.css +1 -1
  274. package/styles/components/description-list/description-list.scss +3 -3
  275. package/styles/components/expander/expandable.css +20 -20
  276. package/styles/components/expander/expandable.min.css +1 -1
  277. package/styles/components/expander/expandable.scss +16 -20
  278. package/styles/components/feedback/feedback.css +14 -20
  279. package/styles/components/feedback/feedback.min.css +1 -1
  280. package/styles/components/feedback/feedback.scss +5 -10
  281. package/styles/components/file/file.css +10 -18
  282. package/styles/components/file/file.min.css +1 -1
  283. package/styles/components/file/file.scss +7 -7
  284. package/styles/components/file-input/file-input.css +52 -70
  285. package/styles/components/file-input/file-input.min.css +1 -1
  286. package/styles/components/file-input/file-input.scss +4 -4
  287. package/styles/components/help/help.css +2 -2
  288. package/styles/components/help/help.min.css +1 -1
  289. package/styles/components/help/help.scss +3 -3
  290. package/styles/components/icon/_base-styles.scss +3 -5
  291. package/styles/components/icon/icon.css +13 -34
  292. package/styles/components/icon/icon.min.css +1 -1
  293. package/styles/components/icon/icon.scss +5 -19
  294. package/styles/components/icon-button/icon-button.css +3 -3
  295. package/styles/components/icon-button/icon-button.min.css +1 -1
  296. package/styles/components/icon-button/icon-button.scss +1 -1
  297. package/styles/components/image/image.css +2 -2
  298. package/styles/components/image/image.min.css +1 -1
  299. package/styles/components/image/image.scss +1 -1
  300. package/styles/components/input-group/_field-group.scss +1 -1
  301. package/styles/components/input-group/_labels.scss +1 -1
  302. package/styles/components/input-group/input-group.css +12 -27
  303. package/styles/components/input-group/input-group.min.css +1 -1
  304. package/styles/components/input-group/input-group.scss +1 -1
  305. package/styles/components/input-panel/input-panel.css +26 -30
  306. package/styles/components/input-panel/input-panel.min.css +1 -1
  307. package/styles/components/input-panel/input-panel.scss +22 -20
  308. package/styles/components/link/link.css +7 -8
  309. package/styles/components/link/link.min.css +1 -1
  310. package/styles/components/link/link.scss +1 -2
  311. package/styles/components/link-list/link-list.css +17 -23
  312. package/styles/components/link-list/link-list.min.css +1 -1
  313. package/styles/components/link-list/link-list.scss +7 -3
  314. package/styles/components/list/list.css +6 -27
  315. package/styles/components/list/list.min.css +1 -1
  316. package/styles/components/list/list.scss +11 -15
  317. package/styles/components/loader/loader.css +6 -6
  318. package/styles/components/loader/loader.min.css +1 -1
  319. package/styles/components/loader/loader.scss +1 -1
  320. package/styles/components/loader/skeleton-loader.css +4 -4
  321. package/styles/components/loader/skeleton-loader.min.css +1 -1
  322. package/styles/components/loader/skeleton-loader.scss +2 -2
  323. package/styles/components/logo/logo.css +4 -4
  324. package/styles/components/logo/logo.min.css +1 -1
  325. package/styles/components/logo/logo.scss +1 -1
  326. package/styles/components/menu/_menu-divider.scss +2 -2
  327. package/styles/components/menu/_menu-item.scss +1 -1
  328. package/styles/components/menu/menu.css +8 -23
  329. package/styles/components/menu/menu.min.css +1 -1
  330. package/styles/components/menu/menu.scss +8 -12
  331. package/styles/components/message/message.css +25 -27
  332. package/styles/components/message/message.min.css +1 -1
  333. package/styles/components/message/message.scss +17 -7
  334. package/styles/components/modal/_layout.scss +22 -0
  335. package/styles/components/modal/_modal-base.scss +32 -0
  336. package/styles/components/modal/_motion.scss +45 -0
  337. package/styles/components/modal/_overlay.scss +20 -0
  338. package/styles/components/modal/_parts.scss +33 -0
  339. package/styles/components/modal/_placement.scss +59 -0
  340. package/styles/components/modal/modal.css +120 -42
  341. package/styles/components/modal/modal.min.css +1 -1
  342. package/styles/components/modal/modal.scss +6 -95
  343. package/styles/components/nav-link/nav-link.css +5 -5
  344. package/styles/components/nav-link/nav-link.min.css +1 -1
  345. package/styles/components/nav-link/nav-link.scss +2 -2
  346. package/styles/components/pagination/development/styles.scss +1 -1
  347. package/styles/components/pagination/pagination.css +2 -2
  348. package/styles/components/pagination/pagination.min.css +1 -1
  349. package/styles/components/pagination/pagination.scss +1 -1
  350. package/styles/components/popover/popover.css +17 -18
  351. package/styles/components/popover/popover.min.css +1 -1
  352. package/styles/components/popover/popover.scss +21 -11
  353. package/styles/components/progress-bar/progress-bar.css +29 -5
  354. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  355. package/styles/components/progress-bar/progress-bar.scss +6 -1
  356. package/styles/components/radio-button/radio-button.css +53 -36
  357. package/styles/components/radio-button/radio-button.min.css +1 -1
  358. package/styles/components/radio-button/radio-button.scss +40 -31
  359. package/styles/components/radio-panel/development/styles.scss +1 -1
  360. package/styles/components/radio-panel/radio-panel.css +29 -30
  361. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  362. package/styles/components/radio-panel/radio-panel.scss +5 -1
  363. package/styles/components/search/search-with-submit-button.css +3 -3
  364. package/styles/components/search/search-with-submit-button.min.css +1 -1
  365. package/styles/components/search/search-with-submit-button.scss +2 -2
  366. package/styles/components/search/search.css +10 -16
  367. package/styles/components/search/search.min.css +1 -1
  368. package/styles/components/search/search.scss +2 -2
  369. package/styles/components/segmented-control/segmented-control.css +91 -114
  370. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  371. package/styles/components/segmented-control/segmented-control.scss +5 -5
  372. package/styles/components/select/select.css +27 -36
  373. package/styles/components/select/select.min.css +1 -1
  374. package/styles/components/select/select.scss +13 -14
  375. package/styles/components/summary-table/development/summary-table-example.scss +1 -1
  376. package/styles/components/summary-table/summary-table.css +5 -8
  377. package/styles/components/summary-table/summary-table.min.css +1 -1
  378. package/styles/components/summary-table/summary-table.scss +5 -5
  379. package/styles/components/system-message/system-message.css +22 -15
  380. package/styles/components/system-message/system-message.min.css +1 -1
  381. package/styles/components/system-message/system-message.scss +18 -9
  382. package/styles/components/table/_table-caption.scss +1 -1
  383. package/styles/components/table/_table-cell.scss +1 -1
  384. package/styles/components/table/_table-head.scss +3 -13
  385. package/styles/components/table/_table-header.scss +4 -4
  386. package/styles/components/table/_table-pagination.scss +1 -1
  387. package/styles/components/table/_table-row.scss +3 -3
  388. package/styles/components/table/table.css +20 -48
  389. package/styles/components/table/table.min.css +1 -1
  390. package/styles/components/table/table.scss +1 -1
  391. package/styles/components/table-of-contents/table-of-contents.css +4 -8
  392. package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
  393. package/styles/components/table-of-contents/table-of-contents.scss +2 -2
  394. package/styles/components/tabs/tabs.css +9 -12
  395. package/styles/components/tabs/tabs.min.css +1 -1
  396. package/styles/components/tabs/tabs.scss +3 -3
  397. package/styles/components/tag/tag.css +18 -11
  398. package/styles/components/tag/tag.min.css +1 -1
  399. package/styles/components/tag/tag.scss +18 -8
  400. package/styles/components/text-area/text-area.css +17 -26
  401. package/styles/components/text-area/text-area.min.css +1 -1
  402. package/styles/components/text-area/text-area.scss +1 -1
  403. package/styles/components/text-input/text-input.css +12 -18
  404. package/styles/components/text-input/text-input.min.css +1 -1
  405. package/styles/components/text-input/text-input.scss +2 -3
  406. package/styles/components/toast/toast.css +21 -20
  407. package/styles/components/toast/toast.min.css +1 -1
  408. package/styles/components/toast/toast.scss +16 -14
  409. package/styles/components/toggle-switch/_toggle-slider.scss +5 -5
  410. package/styles/components/toggle-switch/toggle-switch.css +21 -29
  411. package/styles/components/toggle-switch/toggle-switch.min.css +2 -2
  412. package/styles/components/toggle-switch/toggle-switch.scss +10 -17
  413. package/styles/components/tooltip/tooltip.css +7 -11
  414. package/styles/components/tooltip/tooltip.min.css +1 -1
  415. package/styles/components/tooltip/tooltip.scss +4 -4
  416. package/styles/{styles.css → components.css} +801 -872
  417. package/styles/components.min.css +3 -0
  418. package/styles/{styles.scss → components.scss} +2 -2
  419. package/styles/{core/global → global}/_base-class.scss +6 -4
  420. package/styles/{core/global → global}/_top-layer.scss +1 -1
  421. package/styles/hooks/stories/styles.scss +7 -9
  422. package/styles/{core/jkl/_theme.scss → jkl/_forced-colors.scss} +0 -49
  423. package/styles/{core/jkl → jkl}/_index.scss +3 -6
  424. package/styles/{core/jkl → jkl}/_motion.scss +8 -26
  425. package/styles/{core/jkl → jkl}/_ornaments.scss +1 -1
  426. package/styles/{core/jkl → jkl}/_reset.scss +2 -2
  427. package/styles/{core/jkl → jkl}/_spacing.scss +1 -6
  428. package/styles/jkl/_tokens.scss +386 -0
  429. package/styles/{core/jkl → jkl}/_typography.scss +5 -98
  430. package/styles/shared/input/shared-input-styles.scss +7 -7
  431. package/styles/shared/track/track.scss +3 -3
  432. package/styles/tailwind.css +213 -0
  433. package/styles/theme/_color-scheme.scss +153 -0
  434. package/styles/{core/theme → theme}/_dynamic-spacing.scss +9 -5
  435. package/styles/theme/_fonts.scss +147 -0
  436. package/styles/theme/_index.scss +8 -0
  437. package/styles/theme/_size.scss +53 -0
  438. package/styles/theme/_tokens.scss +94 -0
  439. package/styles/theme/brands/dnb/_color-scheme.scss +119 -0
  440. package/styles/theme/brands/eika/_color-scheme.scss +119 -0
  441. package/styles/theme/brands/sparebank1/_color-scheme.scss +119 -0
  442. package/styles/{core/utility → utility}/_headings.scss +1 -1
  443. package/styles/utility/_paragraphs.scss +24 -0
  444. package/styles/{core/utility → utility}/_screen-reader.scss +1 -1
  445. package/styles/{core/utility → utility}/_spacing.scss +4 -3
  446. package/build/cjs/components-beta/description-list/DescriptionList.cjs +0 -2
  447. package/build/cjs/components-beta/description-list/DescriptionList.cjs.map +0 -1
  448. package/build/cjs/components-beta/description-list/DescriptionListItem.cjs +0 -2
  449. package/build/cjs/components-beta/description-list/DescriptionListItem.cjs.map +0 -1
  450. package/build/cjs/components-beta/nav-link/NavLink.cjs +0 -2
  451. package/build/cjs/components-beta/nav-link/NavLink.cjs.map +0 -1
  452. package/build/cjs/components-beta/nav-link/index.d.cts +0 -1
  453. package/build/cjs/components-beta/select/Select.cjs +0 -2
  454. package/build/cjs/components-beta/select/Select.cjs.map +0 -1
  455. package/build/cjs/components-beta/select/index.d.cts +0 -2
  456. package/build/cjs/core/index.cjs +0 -2
  457. package/build/cjs/core/index.cjs.map +0 -1
  458. package/build/cjs/core/index.d.cts +0 -2
  459. package/build/cjs/core/tokens/build-tailwind-4.cjs +0 -2
  460. package/build/cjs/core/tokens/build-tailwind-4.cjs.map +0 -1
  461. package/build/cjs/core/tokens/build-tailwind-4.d.cts +0 -1
  462. package/build/cjs/core/tokens/style-dictionary/build.cjs +0 -2
  463. package/build/cjs/core/tokens/style-dictionary/build.cjs.map +0 -1
  464. package/build/cjs/core/tokens/style-dictionary/build.d.cts +0 -0
  465. package/build/cjs/core/tokens/style-dictionary/config.cjs +0 -2
  466. package/build/cjs/core/tokens/style-dictionary/config.cjs.map +0 -1
  467. package/build/cjs/core/tokens/style-dictionary/config.d.cts +0 -4
  468. package/build/cjs/core/tokens/style-dictionary/filters/index.cjs +0 -2
  469. package/build/cjs/core/tokens/style-dictionary/filters/index.cjs.map +0 -1
  470. package/build/cjs/core/tokens/style-dictionary/filters/index.d.cts +0 -3
  471. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs +0 -2
  472. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs.map +0 -1
  473. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.cts +0 -3
  474. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs +0 -2
  475. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs.map +0 -1
  476. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.d.cts +0 -3
  477. package/build/cjs/core/tokens/style-dictionary/formats/index.cjs +0 -2
  478. package/build/cjs/core/tokens/style-dictionary/formats/index.cjs.map +0 -1
  479. package/build/cjs/core/tokens/style-dictionary/formats/index.d.cts +0 -6
  480. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs +0 -2
  481. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs.map +0 -1
  482. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.d.cts +0 -3
  483. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs +0 -2
  484. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs.map +0 -1
  485. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.d.cts +0 -3
  486. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs +0 -2
  487. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs.map +0 -1
  488. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.d.cts +0 -3
  489. package/build/cjs/core/tokens/style-dictionary/register.cjs +0 -2
  490. package/build/cjs/core/tokens/style-dictionary/register.cjs.map +0 -1
  491. package/build/cjs/core/tokens/style-dictionary/register.d.cts +0 -1
  492. package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs +0 -2
  493. package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs.map +0 -1
  494. package/build/cjs/core/tokens/style-dictionary/transforms/index.d.cts +0 -2
  495. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs +0 -2
  496. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs.map +0 -1
  497. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.d.cts +0 -3
  498. package/build/cjs/index.cjs +0 -2
  499. package/build/cjs/index.cjs.map +0 -1
  500. package/build/cjs/index.d.cts +0 -3
  501. package/build/es/components-beta/description-list/DescriptionList.js +0 -2
  502. package/build/es/components-beta/description-list/DescriptionList.js.map +0 -1
  503. package/build/es/components-beta/description-list/DescriptionListItem.js +0 -2
  504. package/build/es/components-beta/description-list/DescriptionListItem.js.map +0 -1
  505. package/build/es/components-beta/nav-link/NavLink.js +0 -2
  506. package/build/es/components-beta/nav-link/NavLink.js.map +0 -1
  507. package/build/es/components-beta/nav-link/index.d.ts +0 -1
  508. package/build/es/components-beta/select/Select.js +0 -2
  509. package/build/es/components-beta/select/Select.js.map +0 -1
  510. package/build/es/components-beta/select/index.d.ts +0 -2
  511. package/build/es/core/index.d.ts +0 -2
  512. package/build/es/core/index.js +0 -2
  513. package/build/es/core/index.js.map +0 -1
  514. package/build/es/core/tokens/build-tailwind-4.d.ts +0 -1
  515. package/build/es/core/tokens/build-tailwind-4.js +0 -2
  516. package/build/es/core/tokens/build-tailwind-4.js.map +0 -1
  517. package/build/es/core/tokens/style-dictionary/build.d.ts +0 -0
  518. package/build/es/core/tokens/style-dictionary/build.js +0 -2
  519. package/build/es/core/tokens/style-dictionary/build.js.map +0 -1
  520. package/build/es/core/tokens/style-dictionary/config.d.ts +0 -4
  521. package/build/es/core/tokens/style-dictionary/config.js +0 -2
  522. package/build/es/core/tokens/style-dictionary/config.js.map +0 -1
  523. package/build/es/core/tokens/style-dictionary/filters/index.d.ts +0 -3
  524. package/build/es/core/tokens/style-dictionary/filters/index.js +0 -2
  525. package/build/es/core/tokens/style-dictionary/filters/index.js.map +0 -1
  526. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.ts +0 -3
  527. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js +0 -2
  528. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js.map +0 -1
  529. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.d.ts +0 -3
  530. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js +0 -2
  531. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js.map +0 -1
  532. package/build/es/core/tokens/style-dictionary/formats/index.d.ts +0 -6
  533. package/build/es/core/tokens/style-dictionary/formats/index.js +0 -2
  534. package/build/es/core/tokens/style-dictionary/formats/index.js.map +0 -1
  535. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.d.ts +0 -3
  536. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js +0 -2
  537. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js.map +0 -1
  538. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.d.ts +0 -3
  539. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js +0 -2
  540. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js.map +0 -1
  541. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.d.ts +0 -3
  542. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js +0 -2
  543. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js.map +0 -1
  544. package/build/es/core/tokens/style-dictionary/register.d.ts +0 -1
  545. package/build/es/core/tokens/style-dictionary/register.js +0 -2
  546. package/build/es/core/tokens/style-dictionary/register.js.map +0 -1
  547. package/build/es/core/tokens/style-dictionary/transforms/index.d.ts +0 -2
  548. package/build/es/core/tokens/style-dictionary/transforms/index.js +0 -2
  549. package/build/es/core/tokens/style-dictionary/transforms/index.js.map +0 -1
  550. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.d.ts +0 -3
  551. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js +0 -2
  552. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js.map +0 -1
  553. package/build/es/index.d.ts +0 -3
  554. package/build/es/index.js +0 -2
  555. package/build/es/index.js.map +0 -1
  556. package/build/index-Ck94bTpt.cjs +0 -2
  557. package/build/index-Ck94bTpt.cjs.map +0 -1
  558. package/build/index-DOHQmuhD.js +0 -2
  559. package/build/index-DOHQmuhD.js.map +0 -1
  560. package/src/fonts/styles/_index.scss +0 -1
  561. package/src/fonts/styles/webfonts.scss +0 -145
  562. package/src/tailwind/v4/jokul-tailwind.css +0 -266
  563. package/styles/components-beta/nav-link/navlink.min.css +0 -1
  564. package/styles/components-beta/select/_index.scss +0 -3
  565. package/styles/components-beta/select/select.min.css +0 -1
  566. package/styles/core/core.css +0 -1731
  567. package/styles/core/core.min.css +0 -2
  568. package/styles/core/jkl/_colors.scss +0 -26
  569. package/styles/core/jkl/_helpers.scss +0 -26
  570. package/styles/core/jkl/legacy/_index.scss +0 -2
  571. package/styles/core/theme/_index.scss +0 -10
  572. package/styles/core/theme/_old-vars.scss +0 -21
  573. package/styles/core/theme/_shape.scss +0 -12
  574. package/styles/core/theme/_spacing.scss +0 -64
  575. package/styles/core/theme/_typography.scss +0 -38
  576. package/styles/core/utility/_paragraphs.scss +0 -29
  577. package/styles/fonts/_index.scss +0 -1
  578. package/styles/fonts/webfonts.css +0 -115
  579. package/styles/fonts/webfonts.min.css +0 -1
  580. package/styles/fonts/webfonts.scss +0 -145
  581. package/styles/styles.min.css +0 -3
  582. /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionList.d.cts +0 -0
  583. /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionListItem.d.cts +0 -0
  584. /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs +0 -0
  585. /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs.map +0 -0
  586. /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs +0 -0
  587. /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs.map +0 -0
  588. /package/build/cjs/{components-beta → components/beta}/description-list/types.d.cts +0 -0
  589. /package/build/cjs/{components-beta → components/beta}/nav-link/NavLink.d.cts +0 -0
  590. /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs +0 -0
  591. /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs.map +0 -0
  592. /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs +0 -0
  593. /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs.map +0 -0
  594. /package/build/cjs/{components-beta → components/beta}/select/Select.d.cts +0 -0
  595. /package/build/cjs/{components-beta → components/beta}/select/index.cjs +0 -0
  596. /package/build/cjs/{components-beta → components/beta}/select/index.cjs.map +0 -0
  597. /package/build/cjs/{components-beta → components/beta}/select/types.cjs +0 -0
  598. /package/build/cjs/{components-beta → components/beta}/select/types.cjs.map +0 -0
  599. /package/build/cjs/{core → utilities}/types.cjs +0 -0
  600. /package/build/cjs/{core → utilities}/types.cjs.map +0 -0
  601. /package/build/es/{components-beta → components/beta}/description-list/DescriptionList.d.ts +0 -0
  602. /package/build/es/{components-beta → components/beta}/description-list/DescriptionListItem.d.ts +0 -0
  603. /package/build/es/{components-beta → components/beta}/description-list/index.js +0 -0
  604. /package/build/es/{components-beta → components/beta}/description-list/index.js.map +0 -0
  605. /package/build/es/{components-beta → components/beta}/description-list/types.d.ts +0 -0
  606. /package/build/es/{components-beta → components/beta}/description-list/types.js +0 -0
  607. /package/build/es/{components-beta → components/beta}/description-list/types.js.map +0 -0
  608. /package/build/es/{components-beta → components/beta}/nav-link/NavLink.d.ts +0 -0
  609. /package/build/es/{components-beta → components/beta}/nav-link/index.js +0 -0
  610. /package/build/es/{components-beta → components/beta}/nav-link/index.js.map +0 -0
  611. /package/build/es/{components-beta → components/beta}/nav-link/types.js +0 -0
  612. /package/build/es/{components-beta → components/beta}/nav-link/types.js.map +0 -0
  613. /package/build/es/{components-beta → components/beta}/select/Select.d.ts +0 -0
  614. /package/build/es/{components-beta → components/beta}/select/index.js +0 -0
  615. /package/build/es/{components-beta → components/beta}/select/index.js.map +0 -0
  616. /package/build/es/{components-beta → components/beta}/select/types.js +0 -0
  617. /package/build/es/{components-beta → components/beta}/select/types.js.map +0 -0
  618. /package/build/es/{core → utilities}/types.js +0 -0
  619. /package/build/es/{core → utilities}/types.js.map +0 -0
  620. /package/styles/{core/_layers.scss → _layers.scss} +0 -0
  621. /package/styles/{core/core.scss → base.scss} +0 -0
  622. /package/styles/{components-beta → components/beta}/description-list/_index.scss +0 -0
  623. /package/styles/{components-beta → components/beta}/nav-link/_index.scss +0 -0
  624. /package/styles/{core/global → global}/_index.scss +0 -0
  625. /package/styles/{core/jkl → jkl}/_convert.scss +0 -0
  626. /package/styles/{core/jkl → jkl}/_navigation.scss +0 -0
  627. /package/styles/{core/jkl → jkl}/_responsive-units.scss +0 -0
  628. /package/styles/{core/jkl → jkl}/_screenreader.scss +0 -0
  629. /package/styles/{core/jkl → jkl}/_screens.scss +0 -0
  630. /package/styles/{core/jkl → jkl}/_shadows.scss +0 -0
  631. /package/styles/{core/jkl → jkl}/_underline.scss +0 -0
  632. /package/styles/{core/jkl → jkl}/_z-index.scss +0 -0
  633. /package/styles/{core/resets → resets}/_index.scss +0 -0
  634. /package/styles/{core/resets → resets}/_normalize.scss +0 -0
  635. /package/styles/{core/resets → resets}/_reset.scss +0 -0
  636. /package/styles/{core/utility → utility}/_index.scss +0 -0
@@ -21,15 +21,12 @@
21
21
  }
22
22
  .jkl-autosuggest__no-hits-message {
23
23
  padding: var(--jkl-autosuggest-option-padding);
24
- font-size: var(--jkl-font-size-2);
25
- line-height: var(--jkl-line-height-tight);
26
- font-weight: 400;
27
- --jkl-icon-weight: 300;
24
+ font: var(--jkl-text-style-text-small);
28
25
  color: var(--jkl-color-text-subdued);
29
26
  }
30
27
  .jkl-autosuggest__menu {
31
- background-color: var(--jkl-color-background-container-high);
32
- border: 0.125rem solid var(--jkl-color-border-input-focus);
28
+ background-color: var(--jkl-color-background-container);
29
+ border: 0.125rem solid var(--jkl-color-border-strong);
33
30
  border-top: none;
34
31
  border-radius: 0 0 var(--border-radius) var(--border-radius);
35
32
  box-sizing: border-box;
@@ -49,10 +46,7 @@
49
46
  padding: 0;
50
47
  }
51
48
  .jkl-autosuggest__item {
52
- font-size: var(--jkl-font-size-2);
53
- line-height: var(--jkl-line-height-tight);
54
- font-weight: 400;
55
- --jkl-icon-weight: 300;
49
+ font: var(--jkl-text-style-text-small);
56
50
  color: unset;
57
51
  display: flex;
58
52
  align-items: center;
@@ -60,8 +54,8 @@
60
54
  background-color: var(--jkl-color-background-interactive);
61
55
  min-height: var(--jkl-autosuggest-option-height);
62
56
  text-align: left;
63
- transition-timing-function: ease;
64
- transition-duration: 150ms;
57
+ transition-timing-function: var(--jkl-motion-easing-standard);
58
+ transition-duration: var(--jkl-motion-timing-productive);
65
59
  transition-property: color, background-color;
66
60
  position: relative;
67
61
  padding: var(--jkl-autosuggest-option-padding);
@@ -83,8 +77,8 @@
83
77
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
84
78
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
85
79
  --text-color: var(--jkl-color-text-default);
86
- --background-color: var(--jkl-color-background-input-base);
87
- --border-color: var(--jkl-color-border-input);
80
+ --background-color: transparent;
81
+ --border-color: var(--jkl-color-border-default);
88
82
  --placeholder-color: var(--jkl-color-text-subdued);
89
83
  border-radius: var(--jkl-border-radius-s);
90
84
  box-sizing: border-box;
@@ -92,27 +86,24 @@
92
86
  position: relative;
93
87
  display: flex;
94
88
  align-items: center;
95
- font-size: var(--jkl-font-size-3);
96
- line-height: var(--jkl-line-height-tight);
97
- font-weight: 400;
98
- --jkl-icon-weight: 300;
99
- transition-timing-function: ease;
100
- transition-duration: 150ms;
89
+ font: var(--jkl-text-style-text-medium);
90
+ transition-timing-function: var(--jkl-motion-easing-standard);
91
+ transition-duration: var(--jkl-motion-timing-productive);
101
92
  transition-property: color, box-shadow, background-color;
102
93
  background-color: var(--background-color);
103
94
  color: var(--text-color);
104
95
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
105
96
  }
106
97
  .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
107
- --background-color: var(--jkl-color-background-input-focus);
98
+ --background-color: var(--jkl-color-background-container);
108
99
  }
109
100
  .jkl-text-input-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
110
- --background-color: var(--jkl-color-background-alert-error);
111
- --text-color: var(--jkl-color-text-on-alert);
101
+ --background-color: var(--jkl-color-error-background-container);
102
+ --text-color: var(--jkl-color-error-text-default);
112
103
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
113
104
  }
114
105
  .jkl-text-input-wrapper:hover, .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
115
- --border-color: var(--jkl-color-border-input-focus);
106
+ --border-color: var(--jkl-color-border-strong);
116
107
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
117
108
  }
118
109
  @media screen and (forced-colors: active) {
@@ -121,11 +112,11 @@
121
112
  }
122
113
  }
123
114
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-input-wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-input-wrapper:has(.jkl-text-area__text-area:focus-visible) {
124
- outline: 3px solid var(--jkl-color-border-action);
115
+ outline: 3px solid var(--jkl-color-border-strong);
125
116
  outline-offset: 3px;
126
117
  }
127
118
  .jkl-text-input-wrapper > .jkl-icon-button:focus-visible {
128
- outline: 3px solid var(--jkl-color-border-action);
119
+ outline: 3px solid var(--jkl-color-border-strong);
129
120
  outline-offset: -8px;
130
121
  }
131
122
  @media screen and (forced-colors: active) {
@@ -172,10 +163,7 @@
172
163
  background: none;
173
164
  -webkit-appearance: none;
174
165
  color: inherit;
175
- font-size: var(--jkl-font-size-3);
176
- line-height: var(--jkl-line-height-tight);
177
- font-weight: 400;
178
- --jkl-icon-weight: 300;
166
+ font: var(--jkl-text-style-text-medium);
179
167
  }
180
168
  .jkl-text-input__input {
181
169
  outline: 0;
@@ -233,43 +221,22 @@
233
221
  margin: -0.125rem 0.25rem;
234
222
  }
235
223
  }
236
- @layer jokul.theme {
237
- @media screen and (prefers-color-scheme: light) {
238
- :root {
239
- --jkl-icon-grade: 0;
240
- }
241
- }
242
- [data-theme=light] {
243
- --jkl-icon-grade: 0;
244
- }
245
- @media screen and (prefers-color-scheme: dark) {
246
- :root {
247
- --jkl-icon-grade: -25;
248
- }
249
- }
250
- [data-theme=dark] {
251
- --jkl-icon-grade: -25;
252
- }
253
- }
254
224
  @layer jokul.components {
255
225
  .jkl-icon {
256
226
  --jkl-icon-fill: 0;
257
227
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
258
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
228
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
259
229
  font-feature-settings: "liga";
260
230
  -webkit-font-feature-settings: "liga";
261
231
  font-size: 1.3em;
262
- font-weight: var(--jkl-icon-weight, 300);
232
+ font-weight: 400;
263
233
  line-height: 1;
264
234
  display: inline-block;
265
235
  -webkit-font-smoothing: antialiased;
266
- transition-timing-function: ease;
267
- transition-duration: 75ms;
236
+ transition-timing-function: var(--jkl-motion-easing-standard);
237
+ transition-duration: var(--jkl-motion-timing-energetic);
268
238
  transition-property: font-variation-settings, transform;
269
239
  }
270
- .jkl-icon--bold {
271
- --jkl-icon-weight: var(--jkl-icon-weight-bold);
272
- }
273
240
  .jkl-icon--filled {
274
241
  --jkl-icon-fill: 1;
275
242
  }
@@ -277,8 +244,8 @@
277
244
  display: block;
278
245
  }
279
246
  .jkl-icon-red-cross {
280
- --red-cross-circle: var(--jkl-color-background-alert-error);
281
- --red-cross-path: var(--jkl-color-text-on-alert);
247
+ --red-cross-circle: var(--jkl-color-error-background-action);
248
+ --red-cross-path: var(--jkl-color-error-text-on-action);
282
249
  width: 1.3em;
283
250
  height: 1.3em;
284
251
  }
@@ -289,8 +256,8 @@
289
256
  fill: var(--red-cross-circle);
290
257
  }
291
258
  .jkl-icon-green-check {
292
- --green-check-circle: var(--jkl-color-background-alert-success);
293
- --green-check-path: var(--jkl-color-text-on-alert);
259
+ --green-check-circle: var(--jkl-color-success-background-action);
260
+ --green-check-path: var(--jkl-color-success-text-on-action);
294
261
  width: 1.3em;
295
262
  height: 1.3em;
296
263
  }
@@ -309,9 +276,9 @@
309
276
  .jkl-animated-horizontal-arrows__slider,
310
277
  .jkl-animated-vertical-arrows__slider {
311
278
  display: flex;
312
- transition-timing-function: ease;
313
- transition-duration: 250ms;
314
- transition-delay: calc(250ms * 0.3333333333);
279
+ transition-timing-function: var(--jkl-motion-easing-standard);
280
+ transition-duration: var(--jkl-motion-timing-expressive);
281
+ transition-delay: calc(var(--jkl-motion-timing-expressive) * 0.3333333333);
315
282
  transition-property: transform;
316
283
  }
317
284
  .jkl-animated-horizontal-arrows__arrow,
@@ -339,8 +306,8 @@
339
306
  transform: translate3d(-50%, 0, 0);
340
307
  }
341
308
  .jkl-icons-animated__plus {
342
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
343
- transition-duration: 250ms;
309
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
310
+ transition-duration: var(--jkl-motion-timing-expressive);
344
311
  transition-property: transform;
345
312
  transform-origin: 50% 50%;
346
313
  }
@@ -359,8 +326,8 @@
359
326
  position: relative;
360
327
  transition-property: box-shadow;
361
328
  padding: 0;
362
- transition-timing-function: cubic-bezier(0.6, 0.2, 0.35, 1);
363
- transition-duration: 100ms;
329
+ transition-timing-function: var(--jkl-motion-easing-focus);
330
+ transition-duration: var(--jkl-motion-timing-snappy);
364
331
  }
365
332
  .jkl-icon-button {
366
333
  outline: 0;
@@ -390,7 +357,7 @@
390
357
  display: revert;
391
358
  }
392
359
  .jkl-icon-button:focus-visible {
393
- outline: 3px solid var(--jkl-color-border-action);
360
+ outline: 3px solid var(--jkl-color-border-strong);
394
361
  outline-offset: 3px;
395
362
  }
396
363
  .jkl-icon-button:hover {
@@ -436,17 +403,14 @@
436
403
  --jkl-form-support-label-icon-size: 1.25rem;
437
404
  --jkl-form-support-label-icon-margin: 0 -1.25rem -0.375rem 0;
438
405
  --color: var(--jkl-color-text-subdued);
439
- font-size: var(--jkl-font-size-2);
440
- line-height: var(--jkl-line-height-tight);
441
- font-weight: 400;
442
- --jkl-icon-weight: 300;
443
- transition-timing-function: ease;
444
- transition-duration: 400ms;
406
+ font: var(--jkl-text-style-text-small);
407
+ transition-timing-function: var(--jkl-motion-easing-standard);
408
+ transition-duration: var(--jkl-motion-timing-lazy);
445
409
  display: flex;
446
410
  margin: var(--jkl-form-support-label-margin);
447
411
  color: var(--color);
448
412
  transition-property: color;
449
- transition-delay: 150ms;
413
+ transition-delay: var(--jkl-motion-timing-productive);
450
414
  }
451
415
  .jkl-form-support-label__icon, .jkl-form-support-label__icon.jkl-icon {
452
416
  opacity: 0;
@@ -467,7 +431,7 @@
467
431
  --color: var(--jkl-color-text-default);
468
432
  }
469
433
  .jkl-form-support-label--error .jkl-form-support-label__icon, .jkl-form-support-label--warning .jkl-form-support-label__icon, .jkl-form-support-label--success .jkl-form-support-label__icon {
470
- animation: 400ms cubic-bezier(0, 0, 0.3, 1) 250ms jkl-support-icon-entrance-uyjs4yv forwards;
434
+ animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-ufcxafr forwards;
471
435
  }
472
436
  .jkl-form-support-label--sr-only {
473
437
  border: 0 !important;
@@ -487,22 +451,13 @@
487
451
  color: var(--jkl-color-text-default);
488
452
  }
489
453
  .jkl-label--small {
490
- font-size: var(--jkl-font-size-3);
491
- line-height: var(--jkl-line-height-tight);
492
- font-weight: 400;
493
- --jkl-icon-weight: 300;
454
+ font: var(--jkl-text-style-text-medium);
494
455
  }
495
456
  .jkl-label--medium {
496
- font-size: var(--jkl-font-size-3);
497
- line-height: var(--jkl-line-height-tight);
498
- font-weight: 400;
499
- --jkl-icon-weight: 300;
457
+ font: var(--jkl-text-style-text-medium);
500
458
  }
501
459
  .jkl-label--large {
502
- font-size: var(--jkl-font-size-5);
503
- line-height: var(--jkl-line-height-tight);
504
- font-weight: 400;
505
- --jkl-icon-weight: 300;
460
+ font: var(--jkl-text-style-text-large);
506
461
  }
507
462
  .jkl-label--sr-only {
508
463
  border: 0 !important;
@@ -521,10 +476,7 @@
521
476
  top: -0.1ex;
522
477
  }
523
478
  .jkl-input-group-description {
524
- font-size: var(--jkl-font-size-2);
525
- line-height: var(--jkl-line-height-tight);
526
- font-weight: 400;
527
- --jkl-icon-weight: 300;
479
+ font: var(--jkl-text-style-text-small);
528
480
  color: var(--jkl-color-text-subdued);
529
481
  margin-block-end: var(--jkl-spacing-8);
530
482
  max-inline-size: 50ch;
@@ -533,14 +485,14 @@
533
485
  .jkl-label:has(+ .jkl-input-group-description) {
534
486
  margin-block-end: var(--jkl-spacing-4);
535
487
  }
536
- @keyframes jkl-support-icon-entrance-uyjs4yv {
488
+ @keyframes jkl-support-icon-entrance-ufcxafr {
537
489
  0% {
538
490
  margin-right: 0;
539
491
  opacity: 0;
540
492
  transform: scale(1);
541
493
  }
542
494
  30% {
543
- margin-right: 0.5rem;
495
+ margin-right: var(--jkl-spacing-8);
544
496
  }
545
497
  50% {
546
498
  opacity: 1;
@@ -554,7 +506,7 @@
554
506
  100% {
555
507
  transform: scale(1);
556
508
  opacity: 1;
557
- margin-right: 0.5rem;
509
+ margin-right: var(--jkl-spacing-8);
558
510
  }
559
511
  }
560
512
  }
@@ -576,19 +528,15 @@
576
528
  }
577
529
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-tooltip-trigger:focus {
578
530
  --jkl-icon-weight: 400;
579
- font-weight: 700;
531
+ font-weight: var(--jkl-font-weight-bold);
580
532
  letter-spacing: -0.014em;
581
533
  }
582
534
  .jkl-tooltip-content {
583
535
  --content-padding: var(--jkl-unit-15);
584
- --background-color: var(--jkl-color-background-container-inverted);
585
- font-size: var(--jkl-font-size-2);
586
- line-height: var(--jkl-line-height-relaxed);
587
- font-weight: 400;
588
- --jkl-icon-weight: 300;
589
- --jkl-icon-size: 1.2em;
536
+ --background-color: var(--jkl-color-background-action);
537
+ font: var(--jkl-text-style-paragraph-small);
590
538
  background-color: var(--background-color);
591
- color: var(--jkl-color-text-inverted);
539
+ color: var(--jkl-color-text-on-action);
592
540
  display: inline-block;
593
541
  min-width: min-content;
594
542
  max-width: min(19.375rem, 100%);
@@ -602,8 +550,8 @@
602
550
  }
603
551
  }
604
552
  .jkl-tooltip-question-button {
605
- transition-timing-function: ease-in;
606
- transition-duration: 100ms;
553
+ transition-timing-function: var(--jkl-motion-easing-exit);
554
+ transition-duration: var(--jkl-motion-timing-snappy);
607
555
  transition-property: color;
608
556
  cursor: pointer;
609
557
  position: relative;
@@ -639,7 +587,7 @@
639
587
  --button-color: var(--jkl-color-text-interactive-hover);
640
588
  }
641
589
  .jkl-tooltip-question-button:focus-visible {
642
- outline: 3px solid var(--jkl-color-border-action);
590
+ outline: 3px solid var(--jkl-color-border-strong);
643
591
  outline-offset: 0;
644
592
  }
645
593
  .jkl-tooltip-question-button::after {
@@ -663,7 +611,7 @@
663
611
  background-image: none;
664
612
  }
665
613
  .jkl-breadcrumb a:focus-visible {
666
- outline: 3px solid var(--jkl-color-border-action);
614
+ outline: 3px solid var(--jkl-color-border-strong);
667
615
  outline-offset: 3px;
668
616
  }
669
617
  .jkl-breadcrumb__list {
@@ -689,8 +637,8 @@
689
637
  color: inherit;
690
638
  outline: none;
691
639
  text-decoration: none;
692
- transition-timing-function: ease;
693
- transition-duration: 75ms;
640
+ transition-timing-function: var(--jkl-motion-easing-standard);
641
+ transition-duration: var(--jkl-motion-timing-energetic);
694
642
  transition-property: color;
695
643
  }
696
644
  .jkl-link__content {
@@ -707,22 +655,21 @@
707
655
  .jkl-link--external::after, .jkl-link[target=_blank]::after, .jkl-link[download]::after {
708
656
  --jkl-icon-fill: 0;
709
657
  --jkl-icon-size: 1em;
710
- --jkl-icon-opsz: 20;
711
658
  content: "\e89e"/"(Åpnes i ny fane)";
712
659
  margin-block-start: -0.1em;
713
660
  padding-inline-start: 0.2em;
714
661
  vertical-align: middle;
715
662
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
716
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
663
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
717
664
  font-feature-settings: "liga";
718
665
  -webkit-font-feature-settings: "liga";
719
666
  font-size: 1.3em;
720
- font-weight: var(--jkl-icon-weight, 300);
667
+ font-weight: 400;
721
668
  line-height: 1;
722
669
  display: inline-block;
723
670
  -webkit-font-smoothing: antialiased;
724
- transition-timing-function: ease;
725
- transition-duration: 75ms;
671
+ transition-timing-function: var(--jkl-motion-easing-standard);
672
+ transition-duration: var(--jkl-motion-timing-energetic);
726
673
  transition-property: font-variation-settings, transform;
727
674
  display: inline;
728
675
  }
@@ -733,7 +680,7 @@
733
680
  --link-color: var(--jkl-color-text-subdued);
734
681
  }
735
682
  .jkl-link:focus-visible {
736
- outline: 3px solid var(--jkl-color-border-action);
683
+ outline: 3px solid var(--jkl-color-border-strong);
737
684
  outline-offset: 0;
738
685
  }
739
686
  @media screen and (forced-colors: active) {
@@ -751,17 +698,15 @@
751
698
  --jkl-button-padding-icon: var(--jkl-unit-20);
752
699
  --jkl-button-padding-icon-button: var(--jkl-unit-10);
753
700
  --jkl-button-tertiary-padding-icon: var(--jkl-unit-05);
701
+ --jkl-button-text-ink-offset: 0.1em;
754
702
  --jkl-icon-weight: var(--jkl-icon-weight-bold);
755
703
  --text-color: var(--jkl-color-text-default);
756
704
  --background-color: transparent;
757
705
  --border-radius: 0;
758
706
  --border-width: 0.0625rem;
759
707
  display: inline-block;
760
- font-size: var(--jkl-font-size-3);
761
- line-height: var(--jkl-line-height-tight);
762
- font-weight: 400;
763
- --jkl-icon-weight: 300;
764
- font-weight: 700;
708
+ font: var(--jkl-text-style-text-medium);
709
+ font-weight: var(--jkl-font-weight-bold);
765
710
  cursor: pointer;
766
711
  user-select: none;
767
712
  background: var(--background-color);
@@ -776,8 +721,8 @@
776
721
  overflow: hidden;
777
722
  max-width: 100%;
778
723
  animation: a 0.3s linear;
779
- transition-timing-function: ease;
780
- transition-duration: 150ms;
724
+ transition-timing-function: var(--jkl-motion-easing-standard);
725
+ transition-duration: var(--jkl-motion-timing-productive);
781
726
  transition-property: background-color;
782
727
  }
783
728
  .jkl-button:has(.jkl-button__text) {
@@ -793,19 +738,19 @@
793
738
  padding-inline: var(--jkl-button-padding-icon-button);
794
739
  }
795
740
  .jkl-button__label {
796
- transition-timing-function: ease;
797
- transition-duration: 250ms;
741
+ transition-timing-function: var(--jkl-motion-easing-standard);
742
+ transition-duration: var(--jkl-motion-timing-expressive);
798
743
  transition-property: translate;
799
744
  width: 100%;
800
745
  display: flex;
801
746
  flex-direction: row;
802
747
  align-items: center;
803
- gap: calc(var(--jkl-unit-base) * 0.25);
748
+ gap: var(--jkl-unit-02);
804
749
  pointer-events: none;
805
750
  }
806
751
  .jkl-button__loader {
807
- transition-timing-function: ease;
808
- transition-duration: 250ms;
752
+ transition-timing-function: var(--jkl-motion-easing-standard);
753
+ transition-duration: var(--jkl-motion-timing-expressive);
809
754
  transition-property: opacity, translate;
810
755
  position: absolute;
811
756
  top: 50%;
@@ -815,8 +760,11 @@
815
760
  pointer-events: none;
816
761
  }
817
762
  .jkl-button__text {
763
+ display: block;
818
764
  width: 100%;
819
765
  max-width: 100%;
766
+ padding-block-start: var(--jkl-button-text-ink-offset);
767
+ margin-block-start: calc(var(--jkl-button-text-ink-offset) * -1);
820
768
  overflow: hidden;
821
769
  white-space: nowrap;
822
770
  text-overflow: ellipsis;
@@ -829,7 +777,7 @@
829
777
  opacity: 1;
830
778
  }
831
779
  .jkl-button:focus-visible {
832
- outline: 3px solid var(--jkl-color-border-action);
780
+ outline: 3px solid var(--jkl-color-border-strong);
833
781
  outline-offset: 3px;
834
782
  }
835
783
  .jkl-button:hover {
@@ -837,7 +785,7 @@
837
785
  }
838
786
  @media (forced-colors: active) {
839
787
  .jkl-button:hover {
840
- outline: 3px solid var(--jkl-color-border-action);
788
+ outline: 3px solid var(--jkl-color-border-strong);
841
789
  outline-offset: 3px;
842
790
  }
843
791
  }
@@ -885,22 +833,22 @@
885
833
  animation: 2500ms linear infinite;
886
834
  }
887
835
  .jkl-loader__dot--left {
888
- animation-name: jkl-loader-left-spin-uyjs4z5;
836
+ animation-name: jkl-loader-left-spin-ufcxag3;
889
837
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
890
838
  }
891
839
  .jkl-loader__dot--middle {
892
- animation-name: jkl-loader-middle-spin-uyjs4zu;
840
+ animation-name: jkl-loader-middle-spin-ufcxaga;
893
841
  margin-right: var(--jkl-loader-spacing);
894
842
  }
895
843
  .jkl-loader__dot--right {
896
- animation-name: jkl-loader-right-spin-uyjs500;
844
+ animation-name: jkl-loader-right-spin-ufcxaha;
897
845
  }
898
846
  @media screen and (forced-colors: active) {
899
847
  .jkl-loader__dot {
900
848
  background-color: CanvasText;
901
849
  }
902
850
  }
903
- @keyframes jkl-loader-left-spin-uyjs4z5 {
851
+ @keyframes jkl-loader-left-spin-ufcxag3 {
904
852
  0% {
905
853
  transform: rotate(0) scale(0);
906
854
  }
@@ -914,7 +862,7 @@
914
862
  transform: rotate(180deg) scale(0);
915
863
  }
916
864
  }
917
- @keyframes jkl-loader-middle-spin-uyjs4zu {
865
+ @keyframes jkl-loader-middle-spin-ufcxaga {
918
866
  0% {
919
867
  transform: rotate(20deg) scale(0);
920
868
  }
@@ -931,7 +879,7 @@
931
879
  transform: rotate(200deg) scale(0);
932
880
  }
933
881
  }
934
- @keyframes jkl-loader-right-spin-uyjs500 {
882
+ @keyframes jkl-loader-right-spin-ufcxaha {
935
883
  0% {
936
884
  transform: rotate(40deg) scale(0);
937
885
  }
@@ -953,7 +901,7 @@
953
901
  inherits: true;
954
902
  }
955
903
  .jkl-skeleton-animation {
956
- --jkl-skeleton-element-color: var(--jkl-color-background-container-low);
904
+ --jkl-skeleton-element-color: var(--jkl-color-background-page);
957
905
  --jkl-skeleton-sweep-duration: 4500ms;
958
906
  --jkl-skeleton-sweeper-width: 40%;
959
907
  mask-image: linear-gradient(to right, #000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)), transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width) / 2), #000 var(--jkl-skeleton-sweeper-position));
@@ -971,7 +919,7 @@
971
919
  @media screen and (forced-colors: active) {
972
920
  .jkl-skeleton-element {
973
921
  border: 1px solid CanvasText;
974
- animation: 2s ease infinite jkl-blink-uyjs506;
922
+ animation: 2s ease infinite jkl-blink-ufcxahy;
975
923
  }
976
924
  }
977
925
  .jkl-skeleton-input {
@@ -1019,10 +967,10 @@
1019
967
  }
1020
968
  @media screen and (forced-colors: active) {
1021
969
  .jkl-skeleton-table {
1022
- animation: 2s ease-in-out infinite jkl-blink-uyjs506;
970
+ animation: 2s ease-in-out infinite jkl-blink-ufcxahy;
1023
971
  }
1024
972
  }
1025
- @keyframes jkl-blink-uyjs506 {
973
+ @keyframes jkl-blink-ufcxahy {
1026
974
  0% {
1027
975
  opacity: 1;
1028
976
  }
@@ -1048,7 +996,7 @@
1048
996
  --padding-m: var(--jkl-unit-15);
1049
997
  --padding-l: var(--jkl-unit-20);
1050
998
  --padding-xl: var(--jkl-unit-30);
1051
- --border-radius: 0.25rem;
999
+ --border-radius: var(--jkl-border-radius-m);
1052
1000
  --border-color: transparent;
1053
1001
  --border-width: 0.0625rem;
1054
1002
  --background-color: transparent;
@@ -1069,8 +1017,8 @@
1069
1017
  pointer-events: none;
1070
1018
  border-radius: var(--border-radius);
1071
1019
  border: var(--border-width) solid var(--border-color);
1072
- transition-timing-function: ease;
1073
- transition-duration: 100ms;
1020
+ transition-timing-function: var(--jkl-motion-easing-standard);
1021
+ transition-duration: var(--jkl-motion-timing-snappy);
1074
1022
  transition-property: border-color, border-size;
1075
1023
  }
1076
1024
  @media (min-width: 680px) {
@@ -1093,24 +1041,21 @@
1093
1041
  .jkl-card[data-padding=xl] {
1094
1042
  --padding: var(--padding-xl);
1095
1043
  }
1096
- .jkl-card--high {
1097
- --background-color: var(--jkl-color-background-container-high);
1098
- }
1099
- .jkl-card--low {
1100
- --background-color: var(--jkl-color-background-container-low);
1044
+ .jkl-card--filled {
1045
+ --background-color: var(--jkl-color-background-container);
1101
1046
  }
1102
1047
  .jkl-card--outlined {
1103
- --border-color: var(--jkl-color-border-separator);
1048
+ --border-color: var(--jkl-color-border-default);
1104
1049
  }
1105
1050
  .jkl-card[data-clickable=true] {
1106
1051
  cursor: pointer;
1107
1052
  }
1108
1053
  .jkl-card[data-clickable=true]:hover {
1109
- --border-color: var(--jkl-color-border-separator-hover);
1054
+ --border-color: var(--jkl-color-border-strong);
1110
1055
  --border-width: 0.125rem;
1111
1056
  }
1112
1057
  .jkl-card[data-clickable=true]:focus-visible {
1113
- outline: 3px solid var(--jkl-color-border-action);
1058
+ outline: 3px solid var(--jkl-color-border-strong);
1114
1059
  outline-offset: 3px;
1115
1060
  }
1116
1061
  .jkl-card-image {
@@ -1140,8 +1085,8 @@
1140
1085
  filter: blur(20px);
1141
1086
  }
1142
1087
  .jkl-image__image {
1143
- transition-timing-function: ease;
1144
- transition-duration: 400ms;
1088
+ transition-timing-function: var(--jkl-motion-easing-standard);
1089
+ transition-duration: var(--jkl-motion-timing-lazy);
1145
1090
  transition-property: opacity;
1146
1091
  opacity: 1;
1147
1092
  }
@@ -1161,15 +1106,14 @@
1161
1106
  .jkl-tag {
1162
1107
  --padding: var(--jkl-unit-02) var(--jkl-unit-10);
1163
1108
  --gap: var(--jkl-unit-05);
1164
- --background-color: var(--jkl-color-background-alert-neutral);
1165
- --text-color: var(--jkl-color-text-on-alert);
1166
- font-size: var(--jkl-font-size-2);
1167
- line-height: var(--jkl-line-height-tight);
1168
- font-weight: 400;
1169
- --jkl-icon-weight: 300;
1170
- font-weight: 700;
1109
+ --background-color: var(--jkl-color-background-container);
1110
+ --text-color: var(--jkl-color-text-default);
1111
+ --border-color: var(--jkl-color-border-subdued);
1112
+ font: var(--jkl-text-style-text-small);
1113
+ font-weight: var(--jkl-font-weight-bold);
1171
1114
  background-color: var(--background-color);
1172
1115
  color: var(--text-color);
1116
+ border: 1px solid var(--border-color);
1173
1117
  border-radius: 0.25rem;
1174
1118
  display: inline-flex;
1175
1119
  align-items: center;
@@ -1178,16 +1122,24 @@
1178
1122
  gap: var(--gap);
1179
1123
  }
1180
1124
  .jkl-tag--info {
1181
- --background-color: var(--jkl-color-background-alert-info);
1125
+ --background-color: var(--jkl-color-info-background-container);
1126
+ --text-color: var(--jkl-color-info-text-default);
1127
+ --border-color: var(--jkl-color-info-border-subdued);
1182
1128
  }
1183
1129
  .jkl-tag--warning {
1184
- --background-color: var(--jkl-color-background-alert-warning);
1130
+ --background-color: var(--jkl-color-warning-background-container);
1131
+ --text-color: var(--jkl-color-warning-text-default);
1132
+ --border-color: var(--jkl-color-warning-border-subdued);
1185
1133
  }
1186
1134
  .jkl-tag--error {
1187
- --background-color: var(--jkl-color-background-alert-error);
1135
+ --background-color: var(--jkl-color-error-background-container);
1136
+ --text-color: var(--jkl-color-error-text-default);
1137
+ --border-color: var(--jkl-color-error-border-subdued);
1188
1138
  }
1189
1139
  .jkl-tag--success {
1190
- --background-color: var(--jkl-color-background-alert-success);
1140
+ --background-color: var(--jkl-color-success-background-container);
1141
+ --text-color: var(--jkl-color-success-text-default);
1142
+ --border-color: var(--jkl-color-success-border-subdued);
1191
1143
  }
1192
1144
  @media screen and (forced-colors: active) {
1193
1145
  .jkl-tag {
@@ -1210,31 +1162,16 @@
1210
1162
  }
1211
1163
 
1212
1164
  @layer jokul.components {
1213
- @media screen and (prefers-color-scheme: light) {
1214
- :root {
1215
- --jkl-checkbox-error-color: #ab2e43;
1216
- }
1217
- }
1218
- [data-theme=light] {
1219
- --jkl-checkbox-error-color: #ab2e43;
1220
- }
1221
- @media screen and (prefers-color-scheme: dark) {
1222
- :root {
1223
- --jkl-checkbox-error-color: #d79ba5;
1224
- }
1225
- }
1226
- [data-theme=dark] {
1227
- --jkl-checkbox-error-color: #d79ba5;
1228
- }
1229
1165
  .jkl-checkbox {
1230
- --box-color: var(--jkl-color-border-action);
1231
- --check-color: var(--jkl-color-border-action);
1166
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1167
+ --jkl-checkbox-error-color: #ab2e43;
1168
+ --jkl-checkbox-error-color: light-dark(#ab2e43, #d79ba5);
1169
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1170
+ --box-color: var(--jkl-color-border-strong);
1171
+ --check-color: var(--jkl-color-border-strong);
1232
1172
  --text-color: var(--jkl-color-text-default);
1233
1173
  --background-color: transparent;
1234
- font-size: var(--jkl-font-size-3);
1235
- line-height: var(--jkl-line-height-tight);
1236
- font-weight: 400;
1237
- --jkl-icon-weight: 300;
1174
+ font: var(--jkl-text-style-text-medium);
1238
1175
  display: flex;
1239
1176
  flex-wrap: wrap;
1240
1177
  color: var(--text-color);
@@ -1242,50 +1179,78 @@
1242
1179
  }
1243
1180
  .jkl-checkbox__input {
1244
1181
  position: absolute;
1245
- opacity: 0;
1246
- pointer-events: none;
1247
- inset: 0 auto 0 0;
1248
- width: 1lh;
1182
+ inset-block-start: 0;
1183
+ inset-inline-start: 0;
1184
+ block-size: 1lh;
1185
+ inline-size: 1lh;
1186
+ margin: 0;
1187
+ padding: 0;
1188
+ cursor: pointer;
1189
+ z-index: 1;
1190
+ appearance: none;
1191
+ background: transparent;
1192
+ border: 0;
1193
+ }
1194
+ .jkl-checkbox__input {
1195
+ outline: 0;
1196
+ border-style: none;
1197
+ outline-style: none;
1198
+ }
1199
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1200
+ outline: 0;
1201
+ outline-style: none;
1202
+ }
1203
+ @media screen and (forced-colors: active) {
1204
+ .jkl-checkbox__input {
1205
+ outline: revert;
1206
+ border-style: revert;
1207
+ outline-style: revert;
1208
+ }
1209
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1210
+ outline: revert;
1211
+ outline-style: revert;
1212
+ }
1249
1213
  }
1250
1214
  .jkl-checkbox__label {
1251
1215
  cursor: pointer;
1252
1216
  display: flex;
1253
- transition-timing-function: ease;
1254
- transition-duration: 150ms;
1217
+ transition-timing-function: var(--jkl-motion-easing-standard);
1218
+ transition-duration: var(--jkl-motion-timing-productive);
1255
1219
  transition-property: color;
1256
- font-size: var(--jkl-font-size-3);
1257
- line-height: var(--jkl-line-height-tight);
1258
- font-weight: 400;
1259
- --jkl-icon-weight: 300;
1260
- }
1261
- .jkl-checkbox__label:hover, .jkl-checkbox__label:active {
1262
- --jkl-icon-weight: 400;
1220
+ font: var(--jkl-text-style-text-medium);
1263
1221
  }
1264
1222
  .jkl-checkbox__label::before {
1265
1223
  content: "check_box_outline_blank";
1266
1224
  margin-inline-end: 0.25em;
1267
1225
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
1268
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
1226
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1269
1227
  font-feature-settings: "liga";
1270
1228
  -webkit-font-feature-settings: "liga";
1271
1229
  font-size: 1.3em;
1272
- font-weight: var(--jkl-icon-weight, 300);
1230
+ font-weight: 400;
1273
1231
  line-height: 1;
1274
1232
  display: inline-block;
1275
1233
  -webkit-font-smoothing: antialiased;
1276
- transition-timing-function: ease;
1277
- transition-duration: 75ms;
1234
+ transition-timing-function: var(--jkl-motion-easing-standard);
1235
+ transition-duration: var(--jkl-motion-timing-energetic);
1278
1236
  transition-property: font-variation-settings, transform;
1279
1237
  }
1280
- .jkl-checkbox__label:has(+ :checked)::before {
1238
+ .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1239
+ outline: 3px solid var(--jkl-color-border-strong);
1240
+ outline-offset: 3px;
1241
+ }
1242
+ .jkl-checkbox__input:is(:hover, :active) + .jkl-checkbox__label, .jkl-checkbox__label:hover, .jkl-checkbox__label:active {
1243
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
1244
+ }
1245
+ .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1281
1246
  content: "check_box";
1282
1247
  --jkl-icon-fill: 1;
1283
1248
  }
1284
- .jkl-checkbox__label:has(+ :indeterminate:not(:checked))::before {
1249
+ .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1285
1250
  content: "indeterminate_check_box";
1286
1251
  --jkl-icon-fill: 1;
1287
1252
  }
1288
- .jkl-checkbox__label:has(+ [aria-invalid=true])::before {
1253
+ .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
1289
1254
  color: var(--jkl-checkbox-error-color);
1290
1255
  }
1291
1256
  .jkl-checkbox + .jkl-checkbox {
@@ -1300,7 +1265,7 @@
1300
1265
  }
1301
1266
  @layer jokul.components {
1302
1267
  .jkl-input-panel {
1303
- --outer-border-color: var(--jkl-color-border-input);
1268
+ --outer-border-color: var(--jkl-color-border-default);
1304
1269
  --outer-border-thickness: 0.0625rem;
1305
1270
  --background-color: transparent;
1306
1271
  --padding-inline: var(--jkl-unit-25);
@@ -1310,8 +1275,8 @@
1310
1275
  display: flex;
1311
1276
  flex-direction: column;
1312
1277
  interpolate-size: allow-keywords;
1313
- transition-timing-function: ease;
1314
- transition-duration: 150ms;
1278
+ transition-timing-function: var(--jkl-motion-easing-standard);
1279
+ transition-duration: var(--jkl-motion-timing-productive);
1315
1280
  transition-property: box-shadow;
1316
1281
  }
1317
1282
  .jkl-input-panel__header {
@@ -1323,28 +1288,27 @@
1323
1288
  position: relative;
1324
1289
  padding: var(--jkl-unit-20) var(--padding-inline);
1325
1290
  }
1326
- .jkl-input-panel__header__amount {
1327
- display: flex;
1328
- height: 100%;
1329
- align-items: center;
1330
- font-size: var(--jkl-font-size-3);
1331
- line-height: var(--jkl-line-height-tight);
1332
- font-weight: 400;
1333
- --jkl-icon-weight: 300;
1334
- font-weight: 700;
1335
- }
1336
- .jkl-input-panel__header label,
1337
1291
  .jkl-input-panel__header .jkl-radio-button,
1338
1292
  .jkl-input-panel__header .jkl-checkbox {
1339
- position: unset;
1293
+ grid-column: 1/-1;
1294
+ grid-row: 1;
1295
+ inline-size: 100%;
1340
1296
  }
1341
- .jkl-input-panel__header label::after {
1342
- content: "";
1343
- position: absolute;
1344
- top: 0;
1345
- left: 0;
1297
+ .jkl-input-panel__header label {
1346
1298
  inline-size: 100%;
1347
- block-size: 100%;
1299
+ }
1300
+ .jkl-input-panel__header__amount {
1301
+ display: flex;
1302
+ height: 100%;
1303
+ align-items: center;
1304
+ grid-column: 2;
1305
+ grid-row: 1;
1306
+ justify-self: end;
1307
+ pointer-events: none;
1308
+ position: relative;
1309
+ z-index: 1;
1310
+ font: var(--jkl-text-style-text-medium);
1311
+ font-weight: var(--jkl-font-weight-bold);
1348
1312
  }
1349
1313
  .jkl-input-panel__description {
1350
1314
  height: 0;
@@ -1352,27 +1316,24 @@
1352
1316
  padding-inline: var(--padding-inline);
1353
1317
  padding-block-end: var(--jkl-spacing-none);
1354
1318
  line-height: initial;
1355
- font-size: var(--jkl-font-size-3);
1356
- line-height: var(--jkl-line-height-relaxed);
1357
- font-weight: 400;
1358
- --jkl-icon-weight: 300;
1359
- transition-timing-function: ease;
1360
- transition-duration: 150ms;
1319
+ font: var(--jkl-text-style-paragraph-medium);
1320
+ transition-timing-function: var(--jkl-motion-easing-standard);
1321
+ transition-duration: var(--jkl-motion-timing-productive);
1361
1322
  transition-property: height;
1362
1323
  }
1363
1324
  .jkl-input-panel:has(:focus-visible) {
1364
- outline: 3px solid var(--jkl-color-border-action);
1325
+ outline: 3px solid var(--jkl-color-border-strong);
1365
1326
  outline-offset: 3px;
1366
1327
  }
1367
1328
  .jkl-input-panel:has(:checked), .jkl-input-panel[data-always-open=true], .jkl-input-panel:not([data-always-open]) {
1368
- --background-color: var(--jkl-color-background-container-high);
1329
+ --background-color: var(--jkl-color-background-container);
1369
1330
  }
1370
1331
  .jkl-input-panel:has(:checked) .jkl-input-panel__description, .jkl-input-panel[data-always-open=true] .jkl-input-panel__description, .jkl-input-panel:not([data-always-open]) .jkl-input-panel__description {
1371
1332
  height: auto;
1372
1333
  padding-block-end: var(--jkl-unit-20);
1373
1334
  }
1374
1335
  .jkl-input-panel:has(input:hover) {
1375
- --outer-border-color: var(--jkl-color-border-separator-hover);
1336
+ --outer-border-color: var(--jkl-color-border-default);
1376
1337
  --outer-border-thickness: 0.125rem;
1377
1338
  cursor: pointer;
1378
1339
  }
@@ -1382,6 +1343,9 @@
1382
1343
  /* Visuell justering ettersom ikonet ikke fyller bounding box helt */
1383
1344
  margin-inline-start: -0.1em;
1384
1345
  }
1346
+ .jkl-checkbox-panel .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1347
+ outline: none;
1348
+ }
1385
1349
  }
1386
1350
  .jkl-chip {
1387
1351
  --padding-inline: var(--jkl-unit-15);
@@ -1389,14 +1353,11 @@
1389
1353
  --height: var(--jkl-unit-40);
1390
1354
  --gap: var(--jkl-unit-05);
1391
1355
  --text-color: var(--jkl-color-text-default);
1392
- --border-color: var(--jkl-color-border-separator);
1356
+ --border-color: var(--jkl-color-border-subdued);
1393
1357
  --background-color: transparent;
1394
1358
  --border-width: 0.0625rem;
1395
- font-size: var(--jkl-font-size-2);
1396
- line-height: var(--jkl-line-height-tight);
1397
- font-weight: 400;
1398
- --jkl-icon-weight: 300;
1399
- font-weight: 700;
1359
+ font: var(--jkl-text-style-text-small);
1360
+ font-weight: var(--jkl-font-weight-bold);
1400
1361
  cursor: pointer;
1401
1362
  position: relative;
1402
1363
  background-color: var(--background-color);
@@ -1424,12 +1385,12 @@
1424
1385
  inset: 0;
1425
1386
  border-radius: inherit;
1426
1387
  background-color: var(--text-color);
1427
- transition-timing-function: ease;
1428
- transition-duration: 150ms;
1388
+ transition-timing-function: var(--jkl-motion-easing-standard);
1389
+ transition-duration: var(--jkl-motion-timing-productive);
1429
1390
  transition-property: opacity;
1430
1391
  }
1431
1392
  .jkl-chip:focus-visible {
1432
- outline: 3px solid var(--jkl-color-border-action);
1393
+ outline: 3px solid var(--jkl-color-border-strong);
1433
1394
  outline-offset: 3px;
1434
1395
  }
1435
1396
  .jkl-chip:hover::after {
@@ -1512,8 +1473,8 @@
1512
1473
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
1513
1474
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
1514
1475
  --text-color: var(--jkl-color-text-default);
1515
- --background-color: var(--jkl-color-background-input-base);
1516
- --border-color: var(--jkl-color-border-input);
1476
+ --background-color: transparent;
1477
+ --border-color: var(--jkl-color-border-default);
1517
1478
  --placeholder-color: var(--jkl-color-text-subdued);
1518
1479
  border-radius: var(--jkl-border-radius-s);
1519
1480
  box-sizing: border-box;
@@ -1521,27 +1482,24 @@
1521
1482
  position: relative;
1522
1483
  display: flex;
1523
1484
  align-items: center;
1524
- font-size: var(--jkl-font-size-3);
1525
- line-height: var(--jkl-line-height-tight);
1526
- font-weight: 400;
1527
- --jkl-icon-weight: 300;
1528
- transition-timing-function: ease;
1529
- transition-duration: 150ms;
1485
+ font: var(--jkl-text-style-text-medium);
1486
+ transition-timing-function: var(--jkl-motion-easing-standard);
1487
+ transition-duration: var(--jkl-motion-timing-productive);
1530
1488
  transition-property: color, box-shadow, background-color;
1531
1489
  background-color: var(--background-color);
1532
1490
  color: var(--text-color);
1533
1491
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
1534
1492
  }
1535
1493
  .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1536
- --background-color: var(--jkl-color-background-input-focus);
1494
+ --background-color: var(--jkl-color-background-container);
1537
1495
  }
1538
1496
  .jkl-combobox__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
1539
- --background-color: var(--jkl-color-background-alert-error);
1540
- --text-color: var(--jkl-color-text-on-alert);
1497
+ --background-color: var(--jkl-color-error-background-container);
1498
+ --text-color: var(--jkl-color-error-text-default);
1541
1499
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
1542
1500
  }
1543
1501
  .jkl-combobox__wrapper:hover, .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1544
- --border-color: var(--jkl-color-border-input-focus);
1502
+ --border-color: var(--jkl-color-border-strong);
1545
1503
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
1546
1504
  }
1547
1505
  @media screen and (forced-colors: active) {
@@ -1550,11 +1508,11 @@
1550
1508
  }
1551
1509
  }
1552
1510
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(.jkl-text-area__text-area:focus-visible) {
1553
- outline: 3px solid var(--jkl-color-border-action);
1511
+ outline: 3px solid var(--jkl-color-border-strong);
1554
1512
  outline-offset: 3px;
1555
1513
  }
1556
1514
  .jkl-combobox__wrapper > .jkl-icon-button:focus-visible {
1557
- outline: 3px solid var(--jkl-color-border-action);
1515
+ outline: 3px solid var(--jkl-color-border-strong);
1558
1516
  outline-offset: -8px;
1559
1517
  }
1560
1518
  @media screen and (forced-colors: active) {
@@ -1597,9 +1555,9 @@
1597
1555
  padding: 0.46875rem;
1598
1556
  }
1599
1557
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(:focus-visible) {
1600
- outline: 3px solid var(--jkl-color-border-action);
1558
+ outline: 3px solid var(--jkl-color-border-strong);
1601
1559
  outline-offset: 3px;
1602
- background-color: var(--jkl-color-background-input-focus);
1560
+ background-color: var(--jkl-color-background-container);
1603
1561
  }
1604
1562
  .jkl-combobox__wrapper:has(.jkl-icon-button:focus-visible) {
1605
1563
  outline: none;
@@ -1612,14 +1570,12 @@
1612
1570
  outline: none;
1613
1571
  padding: 0;
1614
1572
  flex: 1 1 1ch;
1573
+ min-width: 0;
1615
1574
  max-height: var(--jkl-combobox-search-input-height);
1616
1575
  background: none;
1617
1576
  -webkit-appearance: none;
1618
1577
  color: inherit;
1619
- font-size: var(--jkl-font-size-3);
1620
- line-height: var(--jkl-line-height-tight);
1621
- font-weight: 400;
1622
- --jkl-icon-weight: 300;
1578
+ font: var(--jkl-text-style-text-medium);
1623
1579
  }
1624
1580
  .jkl-combobox__search-input {
1625
1581
  outline: 0;
@@ -1664,8 +1620,8 @@
1664
1620
  .jkl-combobox__arrow {
1665
1621
  pointer-events: none;
1666
1622
  transform: translateY(-50%);
1667
- transition-timing-function: ease;
1668
- transition-duration: 150ms;
1623
+ transition-timing-function: var(--jkl-motion-easing-standard);
1624
+ transition-duration: var(--jkl-motion-timing-productive);
1669
1625
  transition-property: transform, color;
1670
1626
  }
1671
1627
  @media screen and (forced-colors: active) {
@@ -1679,8 +1635,8 @@
1679
1635
  }
1680
1636
  }
1681
1637
  .jkl-combobox__menu {
1682
- transition-timing-function: ease;
1683
- transition-duration: 150ms;
1638
+ transition-timing-function: var(--jkl-motion-easing-standard);
1639
+ transition-duration: var(--jkl-motion-timing-productive);
1684
1640
  transition-property: height;
1685
1641
  top: calc(100% - 1px);
1686
1642
  overflow-y: auto;
@@ -1688,19 +1644,16 @@
1688
1644
  z-index: 7000;
1689
1645
  left: -0.0625rem;
1690
1646
  right: -0.0625rem;
1691
- background-color: var(--jkl-color-background-container-high);
1692
- border: 0.125rem solid var(--jkl-color-border-input-focus);
1647
+ background-color: var(--jkl-color-background-container);
1648
+ border: 0.125rem solid var(--jkl-color-border-strong);
1693
1649
  border-radius: 0 0 0.1875rem 0.1875rem;
1694
1650
  box-sizing: border-box;
1695
1651
  max-height: calc((var(--jkl-combobox-max-shown-options, 5) + 0.5) * var(--jkl-combobox-input-height));
1696
1652
  }
1697
1653
  .jkl-combobox__option {
1698
- font-size: var(--jkl-font-size-2);
1699
- line-height: var(--jkl-line-height-tight);
1700
- font-weight: 400;
1701
- --jkl-icon-weight: 300;
1702
- transition-timing-function: ease;
1703
- transition-duration: 150ms;
1654
+ font: var(--jkl-text-style-text-small);
1655
+ transition-timing-function: var(--jkl-motion-easing-standard);
1656
+ transition-duration: var(--jkl-motion-timing-productive);
1704
1657
  display: flex;
1705
1658
  align-items: center;
1706
1659
  border: 0;
@@ -1717,10 +1670,7 @@
1717
1670
  background-color: var(--jkl-color-background-interactive-hover);
1718
1671
  }
1719
1672
  .jkl-combobox__option-description {
1720
- font-size: var(--jkl-font-size-2);
1721
- line-height: var(--jkl-line-height-tight);
1722
- font-weight: 400;
1723
- --jkl-icon-weight: 300;
1673
+ font: var(--jkl-text-style-text-small);
1724
1674
  color: var(--jkl-color-text-subdued);
1725
1675
  display: block;
1726
1676
  width: 100%;
@@ -1733,10 +1683,12 @@
1733
1683
  }
1734
1684
  .jkl-combobox__chips {
1735
1685
  display: flex;
1686
+ flex: 1 1 auto;
1736
1687
  flex-wrap: wrap;
1737
1688
  align-items: center;
1738
1689
  gap: var(--jkl-combobox-chips-gap);
1739
- width: 100%;
1690
+ min-width: 0;
1691
+ box-sizing: border-box;
1740
1692
  padding: var(--jkl-text-input-padding);
1741
1693
  }
1742
1694
  .jkl-combobox__chips .jkl-chip {
@@ -1747,12 +1699,12 @@
1747
1699
  }
1748
1700
  .jkl-combobox--invalid .jkl-combobox__search-input,
1749
1701
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1750
- background-color: var(--jkl-color-background-alert-error);
1702
+ background-color: var(--jkl-color-error-background-container);
1751
1703
  }
1752
1704
  .jkl-combobox--invalid .jkl-combobox__search-input,
1753
1705
  .jkl-combobox--invalid .jkl-combobox__button,
1754
1706
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1755
- color: var(--jkl-color-text-on-alert);
1707
+ color: var(--jkl-color-error-text-default);
1756
1708
  }
1757
1709
  .jkl-combobox--menu-closed .jkl-combobox__search-input {
1758
1710
  position: absolute;
@@ -1786,46 +1738,21 @@
1786
1738
  transition: 0.2s;
1787
1739
  }
1788
1740
  .jkl-cookie-consent-modal__info-text {
1789
- font-size: var(--jkl-font-size-2);
1790
- line-height: var(--jkl-line-height-relaxed);
1791
- font-weight: 400;
1792
- --jkl-icon-weight: 300;
1793
- --jkl-icon-size: 1.2em;
1741
+ font: var(--jkl-text-style-paragraph-small);
1794
1742
  }
1795
1743
  .jkl-cookie-consent-modal__checkbox {
1796
1744
  margin-bottom: var(--jkl-unit-10);
1797
1745
  margin-top: var(--jkl-unit-30);
1798
1746
  }
1799
1747
  }
1800
- /*
1801
- * NOTE: These icon also exists as a copy in the jkl-icons-react package.
1802
- * If you're here to change them, consider changing them there as well, or
1803
- * finding a technical solution to sharing the SVG markup
1804
- */
1805
- @media screen and (prefers-color-scheme: light) {
1806
- :root {
1807
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1808
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1809
- }
1810
- }
1811
- [data-theme=light] {
1812
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1813
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1814
- }
1815
-
1816
- @media screen and (prefers-color-scheme: dark) {
1817
- :root {
1818
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23DE9E9E'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1819
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394B79B'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1820
- }
1821
- }
1822
- [data-theme=dark] {
1823
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23DE9E9E'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1824
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394B79B'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1825
- }
1826
-
1827
1748
  @layer jokul.components {
1828
1749
  .jkl-list {
1750
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1751
+ --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1752
+ --jkl-list-marker-cross: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23DE9E9E'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"));
1753
+ --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1754
+ --jkl-list-marker-check: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394B79B'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"));
1755
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1829
1756
  --list-text-color: var(--jkl-color-text-default);
1830
1757
  list-style-type: "•";
1831
1758
  padding-left: var(--jkl-unit-20);
@@ -1891,6 +1818,7 @@
1891
1818
  }
1892
1819
  }
1893
1820
  @layer jokul.components {
1821
+ /* Base layout */
1894
1822
  .jkl-modal-container,
1895
1823
  .jkl-modal-overlay {
1896
1824
  position: fixed;
@@ -1899,29 +1827,46 @@
1899
1827
  .jkl-modal-container {
1900
1828
  z-index: 9000;
1901
1829
  display: flex;
1830
+ align-items: center;
1831
+ justify-content: center;
1902
1832
  }
1903
1833
  .jkl-modal-container[aria-hidden=true] {
1904
- display: none;
1834
+ visibility: hidden;
1835
+ pointer-events: none;
1905
1836
  }
1837
+ }
1838
+ @layer jokul.components {
1906
1839
  .jkl-modal-overlay {
1907
1840
  background-color: rgba(27, 25, 23, 0.8);
1841
+ opacity: 0;
1842
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1843
+ transition-duration: var(--jkl-motion-timing-expressive);
1844
+ transition-property: opacity;
1845
+ }
1846
+ .jkl-modal-container:not([aria-hidden=true]) .jkl-modal-overlay {
1847
+ opacity: 1;
1848
+ }
1849
+ @media (prefers-reduced-motion: reduce) {
1850
+ .jkl-modal-overlay {
1851
+ transition-duration: 0ms;
1852
+ }
1908
1853
  }
1854
+ }
1855
+ @layer jokul.components {
1909
1856
  .jkl-modal {
1910
- --jkl-modal-padding: var(--jkl-unit-50);
1911
- --jkl-modal-min-width: 13.75rem;
1912
- --jkl-modal-max-width: 41.25rem;
1913
- margin: auto;
1857
+ --margin: var(--jkl-spacing-m);
1858
+ container-type: inline-size;
1859
+ box-sizing: border-box;
1860
+ margin: var(--margin);
1861
+ padding: var(--modal-padding, var(--jkl-unit-40));
1914
1862
  z-index: 9000;
1915
- position: relative;
1916
- background-color: var(--jkl-color-background-container-high);
1917
- border-radius: 0.125rem;
1863
+ background-color: var(--jkl-color-background-container);
1864
+ border-radius: var(--jkl-border-radius-l);
1918
1865
  box-shadow: 0 0.25rem 0.75rem rgba(37, 42, 49, 0.03);
1919
- width: 100%;
1920
- min-width: var(--jkl-modal-min-width);
1921
- max-width: var(--jkl-modal-max-width);
1866
+ width: min(100vw - 2 * var(--margin), var(--modal-width, 60ch));
1867
+ max-width: none;
1922
1868
  max-height: 90vh;
1923
1869
  overflow: auto;
1924
- padding: var(--jkl-modal-padding);
1925
1870
  display: flex;
1926
1871
  flex-direction: column;
1927
1872
  }
@@ -1930,54 +1875,114 @@
1930
1875
  border-color: CanvasText;
1931
1876
  }
1932
1877
  }
1933
- @media (width >= 0) and (max-width: 679px) {
1934
- .jkl-modal {
1935
- margin: auto var(--jkl-unit-30);
1936
- }
1878
+ }
1879
+ @layer jokul.components {
1880
+ .jkl-modal-container--slide-in {
1881
+ --jkl-modal-slide-x: 0px;
1882
+ --jkl-modal-slide-y: 12px;
1883
+ transition-timing-function: var(--jkl-motion-easing-exit);
1884
+ transition-duration: var(--jkl-motion-timing-expressive);
1885
+ transition-property: visibility;
1886
+ transition-duration: 0ms;
1887
+ }
1888
+ .jkl-modal-container--slide-in[aria-hidden=true] {
1889
+ display: flex;
1890
+ visibility: hidden;
1891
+ pointer-events: none;
1892
+ transition-delay: var(--jkl-motion-timing-expressive);
1937
1893
  }
1938
- .jkl-modal-header {
1939
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1894
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) {
1895
+ visibility: visible;
1896
+ transition-delay: 0ms;
1940
1897
  }
1941
- @media (width >= 0) and (max-width: 679px) {
1942
- .jkl-modal-header {
1943
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-15);
1898
+ .jkl-modal-container--slide-in .jkl-modal {
1899
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1900
+ transition-duration: var(--jkl-motion-timing-expressive);
1901
+ transition-property: transform, opacity;
1902
+ transform: translate(var(--jkl-modal-slide-x), var(--jkl-modal-slide-y));
1903
+ opacity: 0;
1904
+ will-change: transform, opacity;
1905
+ }
1906
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) .jkl-modal {
1907
+ transform: translate(0, 0);
1908
+ opacity: 1;
1909
+ }
1910
+ @media (prefers-reduced-motion: reduce) {
1911
+ .jkl-modal-container--slide-in .jkl-modal {
1912
+ transition-duration: 0ms;
1944
1913
  }
1945
1914
  }
1915
+ }
1916
+ @layer jokul.components {
1917
+ /* Placement: bottom */
1918
+ .jkl-modal-container--placement-bottom {
1919
+ align-items: flex-end;
1920
+ }
1921
+ .jkl-modal-container--placement-bottom.jkl-modal-container--slide-in {
1922
+ --jkl-modal-slide-x: 0px;
1923
+ --jkl-modal-slide-y: 24px;
1924
+ }
1925
+ .jkl-modal-container--placement-bottom .jkl-modal {
1926
+ --margin: 0px;
1927
+ width: min(100vw, var(--modal-width, 100vw));
1928
+ border-bottom-left-radius: 0;
1929
+ border-bottom-right-radius: 0;
1930
+ }
1931
+ /* Placement: left */
1932
+ .jkl-modal-container--placement-left {
1933
+ justify-content: flex-start;
1934
+ }
1935
+ .jkl-modal-container--placement-left.jkl-modal-container--slide-in {
1936
+ --jkl-modal-slide-x: -24px;
1937
+ --jkl-modal-slide-y: 0px;
1938
+ }
1939
+ .jkl-modal-container--placement-left .jkl-modal {
1940
+ height: 100%;
1941
+ max-height: 100%;
1942
+ margin-block: 0;
1943
+ margin-inline-start: 0;
1944
+ border-top-left-radius: 0;
1945
+ border-bottom-left-radius: 0;
1946
+ }
1947
+ /* Placement: right */
1948
+ .jkl-modal-container--placement-right {
1949
+ justify-content: flex-end;
1950
+ }
1951
+ .jkl-modal-container--placement-right.jkl-modal-container--slide-in {
1952
+ --jkl-modal-slide-x: 24px;
1953
+ --jkl-modal-slide-y: 0px;
1954
+ }
1955
+ .jkl-modal-container--placement-right .jkl-modal {
1956
+ height: 100%;
1957
+ max-height: 100%;
1958
+ margin-block: 0;
1959
+ margin-inline-end: 0;
1960
+ border-top-right-radius: 0;
1961
+ border-bottom-right-radius: 0;
1962
+ }
1963
+ }
1964
+ @layer jokul.components {
1946
1965
  .jkl-modal-header {
1966
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1947
1967
  display: flex;
1948
1968
  flex-direction: row;
1949
1969
  justify-content: space-between;
1950
1970
  align-items: center;
1951
1971
  margin: var(--jkl-modal-header-margin);
1952
- gap: var(--jkl-modal-gap);
1953
1972
  }
1954
1973
  .jkl-modal-body {
1955
- font-size: var(--jkl-font-size-3);
1956
- line-height: var(--jkl-line-height-relaxed);
1957
- font-weight: 400;
1958
- --jkl-icon-weight: 300;
1974
+ font: var(--jkl-text-style-paragraph-medium);
1959
1975
  }
1960
1976
  .jkl-modal-title {
1961
- font-size: var(--jkl-font-size-6);
1962
- line-height: var(--jkl-line-height-tight);
1963
- font-weight: 700;
1964
- --jkl-icon-weight: 400;
1965
- }
1966
- .jkl-modal-actions {
1967
- --jkl-modal-actions-margin: var(--jkl-unit-50) 0 0 0;
1968
- }
1969
- @media (width >= 0) and (max-width: 679px) {
1970
- .jkl-modal-actions {
1971
- --jkl-modal-actions-margin: var(--jkl-unit-40) 0 0 0;
1972
- }
1977
+ font: var(--jkl-text-style-heading-3);
1973
1978
  }
1974
1979
  .jkl-modal-actions {
1975
- margin: var(--jkl-modal-actions-margin);
1980
+ margin-block-start: var(--jkl-unit-50);
1976
1981
  display: flex;
1977
1982
  flex-direction: column;
1978
- gap: var(--jkl-unit-20);
1983
+ gap: var(--jkl-unit-15) var(--jkl-unit-20);
1979
1984
  }
1980
- @media (min-width: 60ch) {
1985
+ @container (width > 35ch /* ~380px ved vanlig zoom/size */) {
1981
1986
  .jkl-modal-actions {
1982
1987
  flex-direction: row-reverse;
1983
1988
  align-self: flex-end;
@@ -1986,8 +1991,8 @@
1986
1991
  }
1987
1992
  @layer jokul.components {
1988
1993
  .jkl-countdown {
1989
- --track-color: var(--jkl-color-border-separator);
1990
- --bar-color: var(--jkl-color-border-input-focus);
1994
+ --track-color: var(--jkl-color-border-subdued);
1995
+ --bar-color: var(--jkl-color-border-strong);
1991
1996
  --bar-height: 0.25rem;
1992
1997
  background-color: var(--track-color);
1993
1998
  border-radius: 6.25rem;
@@ -2009,10 +2014,10 @@
2009
2014
  }
2010
2015
  }
2011
2016
  .jkl-countdown__tracker {
2012
- animation: jkl-downcount-uyjs51b var(--duration) linear forwards;
2017
+ animation: jkl-downcount-ufcxaj2 var(--duration) linear forwards;
2013
2018
  animation-play-state: var(--play-state, running);
2014
2019
  }
2015
- @keyframes jkl-downcount-uyjs51b {
2020
+ @keyframes jkl-downcount-ufcxaj2 {
2016
2021
  from {
2017
2022
  width: 100%;
2018
2023
  }
@@ -2022,14 +2027,18 @@
2022
2027
  }
2023
2028
  }
2024
2029
  @layer jokul.components {
2025
- @media (width >= 0) and (max-width: 374px) {
2026
- --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
2027
- }
2028
2030
  .jkl-calendar {
2029
2031
  --jkl-calendar-padding: var(--jkl-unit-15) var(--jkl-unit-20) var(--jkl-unit-20);
2030
2032
  --jkl-calendar-gap: var(--jkl-unit-15);
2033
+ }
2034
+ @media (width >= 0) and (max-width: 374px) {
2035
+ .jkl-calendar {
2036
+ --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
2037
+ }
2038
+ }
2039
+ .jkl-calendar {
2031
2040
  display: block;
2032
- background-color: var(--jkl-color-background-container-high);
2041
+ background-color: var(--jkl-color-background-container);
2033
2042
  color: var(--jkl-color);
2034
2043
  }
2035
2044
  .jkl-calendar__padding {
@@ -2067,11 +2076,8 @@
2067
2076
  }
2068
2077
  .jkl-calendar-navigation-dropdown__select {
2069
2078
  appearance: none;
2070
- font-size: var(--jkl-font-size-2);
2071
- line-height: var(--jkl-line-height-tight);
2072
- font-weight: 400;
2073
- --jkl-icon-weight: 300;
2074
- font-weight: 700;
2079
+ font: var(--jkl-text-style-text-small);
2080
+ font-weight: var(--jkl-font-weight-bold);
2075
2081
  background-color: transparent;
2076
2082
  color: inherit;
2077
2083
  border-radius: 0;
@@ -2105,11 +2111,11 @@
2105
2111
  }
2106
2112
  .jkl-calendar-navigation-dropdown__select option {
2107
2113
  color: var(--jkl-color-text-default);
2108
- background-color: var(--jkl-color-background-container-high);
2114
+ background-color: var(--jkl-color-background-container);
2109
2115
  text-align: left;
2110
2116
  }
2111
2117
  .jkl-calendar-navigation-dropdown__select:focus-visible {
2112
- outline: 3px solid var(--jkl-color-border-action);
2118
+ outline: 3px solid var(--jkl-color-border-strong);
2113
2119
  outline-offset: 3px;
2114
2120
  }
2115
2121
  .jkl-calendar-navigation-dropdown__chevron {
@@ -2122,10 +2128,7 @@
2122
2128
  }
2123
2129
  @layer jokul.components {
2124
2130
  .jkl-calendar-table th {
2125
- font-size: var(--jkl-font-size-2);
2126
- line-height: var(--jkl-line-height-tight);
2127
- font-weight: 400;
2128
- --jkl-icon-weight: 300;
2131
+ font: var(--jkl-text-style-text-small);
2129
2132
  padding-bottom: var(--jkl-unit-10);
2130
2133
  }
2131
2134
  .jkl-calendar-table td {
@@ -2140,15 +2143,16 @@
2140
2143
  }
2141
2144
  }
2142
2145
  @layer jokul.components {
2146
+ .jkl-calendar-date-button {
2147
+ --jkl-calendar-date-size: var(--jkl-unit-50);
2148
+ }
2143
2149
  @media (width >= 0) and (max-width: 374px) {
2144
- --jkl-calendar-date-size: var(--jkl-unit-40);
2150
+ .jkl-calendar-date-button {
2151
+ --jkl-calendar-date-size: var(--jkl-unit-40);
2152
+ }
2145
2153
  }
2146
2154
  .jkl-calendar-date-button {
2147
- --jkl-calendar-date-size: var(--jkl-unit-50);
2148
- font-size: var(--jkl-font-size-2);
2149
- line-height: var(--jkl-line-height-tight);
2150
- font-weight: 400;
2151
- --jkl-icon-weight: 300;
2155
+ font: var(--jkl-text-style-text-small);
2152
2156
  appearance: none;
2153
2157
  position: relative;
2154
2158
  box-sizing: border-box;
@@ -2163,8 +2167,8 @@
2163
2167
  margin: var(--jkl-calendar-date-margin);
2164
2168
  padding: 0;
2165
2169
  padding-top: var(--jkl-unit-02);
2166
- transition-timing-function: ease-out;
2167
- transition-duration: 75ms;
2170
+ transition-timing-function: var(--jkl-motion-easing-entrance);
2171
+ transition-duration: var(--jkl-motion-timing-energetic);
2168
2172
  transition-property: color, background-color, box-shadow;
2169
2173
  }
2170
2174
  .jkl-calendar-date-button {
@@ -2188,23 +2192,20 @@
2188
2192
  }
2189
2193
  }
2190
2194
  .jkl-calendar-date-button[data-adjacent=true] {
2191
- font-size: var(--jkl-font-size-2);
2192
- line-height: var(--jkl-line-height-tight);
2193
- font-weight: 400;
2194
- --jkl-icon-weight: 300;
2195
+ font: var(--jkl-text-style-text-small);
2195
2196
  padding: 0;
2196
2197
  color: var(--jkl-color-text-subdued);
2197
2198
  }
2198
2199
  .jkl-calendar-date-button[aria-current=date] {
2199
- font-weight: 700;
2200
+ font-weight: var(--jkl-font-weight-bold);
2200
2201
  }
2201
2202
  .jkl-calendar-date-button:hover:not(:disabled) {
2202
2203
  background-color: var(--jkl-color-background-interactive-hover);
2203
2204
  cursor: pointer;
2204
2205
  }
2205
2206
  .jkl-calendar-date-button[aria-pressed=true] {
2206
- background-color: var(--jkl-color-background-container-inverted);
2207
- color: var(--jkl-color-text-inverted);
2207
+ background-color: var(--jkl-color-background-action);
2208
+ color: var(--jkl-color-text-on-action);
2208
2209
  cursor: pointer;
2209
2210
  }
2210
2211
  .jkl-calendar-date-button[aria-pressed=true]:hover {
@@ -2214,7 +2215,7 @@
2214
2215
  color: color(from var(--jkl-color-text-subdued) srgb r g b/70%);
2215
2216
  }
2216
2217
  .jkl-calendar-date-button:focus-visible {
2217
- outline: 3px solid var(--jkl-color-border-action);
2218
+ outline: 3px solid var(--jkl-color-border-strong);
2218
2219
  outline-offset: 3px;
2219
2220
  }
2220
2221
  }
@@ -2271,29 +2272,28 @@
2271
2272
  }
2272
2273
  }
2273
2274
  @layer jokul.components {
2274
- @media screen and (prefers-color-scheme: light) {
2275
- :root {
2276
- --jkl-datepicker-box-shadow: rgb(49 48 48 / 20%);
2277
- }
2278
- }
2279
- [data-theme=light] {
2280
- --jkl-datepicker-box-shadow: rgb(49 48 48 / 20%);
2281
- }
2282
- @media screen and (prefers-color-scheme: dark) {
2283
- :root {
2284
- --jkl-datepicker-box-shadow: rgb(0 0 0 / 50%);
2285
- }
2286
- }
2287
- [data-theme=dark] {
2288
- --jkl-datepicker-box-shadow: rgb(0 0 0 / 50%);
2289
- }
2290
2275
  .jkl-popover {
2276
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
2277
+ --shadow-color: rgb(49 48 48 / 20%);
2278
+ --shadow-color: light-dark(rgb(49 48 48 / 20%), rgb(0 0 0 / 50%));
2279
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
2291
2280
  padding: var(--popover-padding, 0);
2292
2281
  z-index: 10000;
2293
- box-shadow: 0 4px 20px 0 var(--jkl-datepicker-box-shadow);
2294
- background-color: var(--jkl-color-background-container-high);
2282
+ box-shadow: 0 4px 20px 0 var(--shadow-color);
2283
+ background-color: var(--jkl-color-background-container);
2295
2284
  border-radius: var(--jkl-border-radius-s);
2296
2285
  }
2286
+ .jkl-popover:focus-visible {
2287
+ outline: 3px solid var(--jkl-color-border-strong);
2288
+ outline-offset: 3px;
2289
+ }
2290
+ .jkl-popover-trigger:focus {
2291
+ outline: 0;
2292
+ }
2293
+ .jkl-popover-trigger:focus-visible {
2294
+ outline: 3px solid var(--jkl-color-border-strong);
2295
+ outline-offset: 3px;
2296
+ }
2297
2297
  }
2298
2298
  @layer jokul.components {
2299
2299
  .jkl-description-list {
@@ -2314,7 +2314,7 @@
2314
2314
  display: unset;
2315
2315
  }
2316
2316
  .jkl-description-list__term {
2317
- font-weight: 700;
2317
+ font-weight: var(--jkl-font-weight-bold);
2318
2318
  }
2319
2319
  .jkl-description-list__detail {
2320
2320
  margin-left: 0;
@@ -2352,12 +2352,12 @@
2352
2352
  }
2353
2353
  .jkl-description-list[data-separators=true] .seperator:not(:first-of-type) {
2354
2354
  margin-block: var(--jkl-unit-15);
2355
- border-top: 1px solid var(--jkl-color-border-separator);
2355
+ border-top: 1px solid var(--jkl-color-border-subdued);
2356
2356
  }
2357
2357
  }
2358
2358
  @layer jokul.components {
2359
2359
  .jkl-expandable {
2360
- background-color: var(--jkl-color-background-container-low);
2360
+ background-color: var(--jkl-color-background-page);
2361
2361
  border: 1px solid transparent;
2362
2362
  border-radius: var(--border-radius);
2363
2363
  box-sizing: border-box;
@@ -2377,7 +2377,7 @@
2377
2377
  padding: var(--jkl-unit-20);
2378
2378
  }
2379
2379
  .jkl-expandable--stroke {
2380
- border-color: var(--jkl-color-border-separator);
2380
+ border-color: var(--jkl-color-border-subdued);
2381
2381
  background-color: transparent;
2382
2382
  border-radius: 0;
2383
2383
  border-radius: var(--border-top-left-radius) var(--border-top-right-radius) var(--border-bottom-right-radius) var(--border-bottom-left-radius);
@@ -2385,34 +2385,34 @@
2385
2385
  .jkl-expandable__wrapper {
2386
2386
  --border-radius: 0.25rem;
2387
2387
  --outline-offset: 3px;
2388
+ --stroke-outline-offset: 3px;
2389
+ --border-top-left-radius: var(--border-radius);
2390
+ --border-top-right-radius: var(--border-radius);
2391
+ --border-bottom-left-radius: var(--border-radius);
2392
+ --border-bottom-right-radius: var(--border-radius);
2393
+ position: relative;
2394
+ }
2395
+ .jkl-expandable__wrapper + .jkl-expandable__wrapper {
2388
2396
  --border-top-left-radius: 0;
2389
2397
  --border-top-right-radius: 0;
2390
- --border-bottom-left-radius: 0;
2391
- --border-bottom-right-radius: 0;
2392
- position: relative;
2398
+ --stroke-outline-offset: -1px;
2393
2399
  }
2394
2400
  .jkl-expandable__wrapper + .jkl-expandable__wrapper .jkl-expandable--stroke {
2395
2401
  border-top: none;
2396
2402
  }
2397
- .jkl-expandable__wrapper:first-child {
2398
- --border-top-left-radius: var(--border-radius);
2399
- --border-top-right-radius: var(--border-radius);
2400
- }
2401
- .jkl-expandable__wrapper:last-child {
2402
- --border-bottom-left-radius: var(--border-radius);
2403
- --border-bottom-right-radius: var(--border-radius);
2403
+ .jkl-expandable__wrapper:has(+ .jkl-expandable__wrapper) {
2404
+ --border-bottom-left-radius: 0;
2405
+ --border-bottom-right-radius: 0;
2406
+ --stroke-outline-offset: -1px;
2404
2407
  }
2405
2408
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable--stroke) {
2406
- --outline-offset: -1px;
2409
+ --outline-offset: var(--stroke-outline-offset);
2407
2410
  }
2408
2411
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable__focus-container {
2409
- outline: 3px solid var(--jkl-color-border-action);
2412
+ outline: 3px solid var(--jkl-color-border-strong);
2410
2413
  outline-offset: 3px;
2411
2414
  outline-offset: var(--outline-offset);
2412
2415
  }
2413
- .jkl-expandable__wrapper:has(:focus-visible):first-child:last-child {
2414
- --outline-offset: 3px;
2415
- }
2416
2416
  .jkl-expandable__focus-container {
2417
2417
  border-radius: var(--border-radius);
2418
2418
  position: absolute;
@@ -2448,13 +2448,13 @@
2448
2448
  }
2449
2449
  .jkl-expander--open .jkl-expander__label {
2450
2450
  --jkl-icon-weight: 400;
2451
- font-weight: 700;
2451
+ font-weight: var(--jkl-font-weight-bold);
2452
2452
  letter-spacing: -0.014em;
2453
2453
  }
2454
2454
  .jkl-expander--open .jkl-expander__chevron {
2455
2455
  transform: rotate(-0.5turn);
2456
- transition-timing-function: ease;
2457
- transition-duration: 100ms;
2456
+ transition-timing-function: var(--jkl-motion-easing-standard);
2457
+ transition-duration: var(--jkl-motion-timing-snappy);
2458
2458
  }
2459
2459
  @media (hover: hover) {
2460
2460
  .jkl-expander:hover {
@@ -2489,8 +2489,8 @@
2489
2489
  .jkl-feedback__submit-wrapper {
2490
2490
  width: 100%;
2491
2491
  transition-property: height;
2492
- transition-timing-function: ease;
2493
- transition-duration: 250ms;
2492
+ transition-timing-function: var(--jkl-motion-easing-standard);
2493
+ transition-duration: var(--jkl-motion-timing-expressive);
2494
2494
  }
2495
2495
  .jkl-feedback__submit-wrapper--hidden {
2496
2496
  display: none;
@@ -2498,19 +2498,15 @@
2498
2498
  .jkl-feedback__step-counter {
2499
2499
  color: var(--jkl-color-text-subdued);
2500
2500
  margin-bottom: var(--jkl-unit-20);
2501
- font-size: var(--jkl-font-size-2);
2502
- line-height: var(--jkl-line-height-relaxed);
2503
- font-weight: 400;
2504
- --jkl-icon-weight: 300;
2505
- --jkl-icon-size: 1.2em;
2501
+ font: var(--jkl-text-style-paragraph-small);
2506
2502
  }
2507
2503
  .jkl-feedback__fade-in {
2508
- animation: jkl-show-uyjs52a 0.25s ease-out;
2504
+ animation: jkl-show-ufcxajq 0.25s ease-out;
2509
2505
  }
2510
2506
  .jkl-feedback__buttons {
2511
2507
  display: flex;
2512
2508
  }
2513
- @keyframes jkl-show-uyjs52a {
2509
+ @keyframes jkl-show-ufcxajq {
2514
2510
  from {
2515
2511
  transform: translate3d(0, 0.5rem, 0);
2516
2512
  opacity: 0;
@@ -2523,7 +2519,7 @@
2523
2519
  width: 100%;
2524
2520
  max-width: 22.5rem;
2525
2521
  flex-wrap: nowrap;
2526
- gap: 0.75rem;
2522
+ gap: var(--jkl-spacing-12);
2527
2523
  }
2528
2524
  .jkl-feedback-smiley-option {
2529
2525
  display: inline-block;
@@ -2533,8 +2529,8 @@
2533
2529
  width: 2.5rem;
2534
2530
  color: var(--jkl-color-text-subdued);
2535
2531
  transform: translate3d(0, 0, 0);
2536
- transition-timing-function: ease;
2537
- transition-duration: 150ms;
2532
+ transition-timing-function: var(--jkl-motion-easing-standard);
2533
+ transition-duration: var(--jkl-motion-timing-productive);
2538
2534
  transition-property: transform, color;
2539
2535
  }
2540
2536
  @media screen and (forced-colors: active) {
@@ -2552,14 +2548,10 @@
2552
2548
  position: absolute;
2553
2549
  border-radius: 50%;
2554
2550
  opacity: 0;
2555
- transition-timing-function: ease;
2556
- transition-duration: 150ms;
2551
+ transition-timing-function: var(--jkl-motion-easing-standard);
2552
+ transition-duration: var(--jkl-motion-timing-productive);
2557
2553
  transition-property: opacity;
2558
2554
  }
2559
- .jkl-feedback-smiley-option::after {
2560
- inset: -0.125rem -0.125rem -0.125rem -0.125rem;
2561
- box-shadow: 0 0 0 0.125rem currentColor;
2562
- }
2563
2555
  .jkl-feedback-smiley-option::before {
2564
2556
  inset: 0;
2565
2557
  box-shadow: 0 0.125rem 1.875rem rgba(0, 0, 0, 0.1);
@@ -2574,8 +2566,10 @@
2574
2566
  input:checked + .jkl-feedback-smiley-option::before {
2575
2567
  opacity: 1;
2576
2568
  }
2577
- html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus + .jkl-feedback-smiley-option::after {
2578
- opacity: 1;
2569
+ input:focus-visible + .jkl-feedback-smiley-option {
2570
+ border-radius: var(--jkl-border-radius-full);
2571
+ outline: 3px solid var(--jkl-color-border-strong);
2572
+ outline-offset: 3px;
2579
2573
  }
2580
2574
  }
2581
2575
  @layer jokul.components {
@@ -2586,29 +2580,25 @@
2586
2580
  --jkl-message-dismiss-button-size: var(--jkl-unit-50);
2587
2581
  --jkl-message-gap: var(--jkl-unit-20);
2588
2582
  --jkl-message-padding: var(--jkl-unit-25) var(--jkl-unit-15);
2589
- --background-color: var(--jkl-color-background-alert-neutral);
2590
- --text-color: var(--jkl-color-text-on-alert);
2583
+ --background-color: var(--jkl-color-background-container);
2584
+ --text-color: var(--jkl-color-text-default);
2585
+ --border-color: var(--jkl-color-border-subdued);
2591
2586
  width: 100%;
2592
2587
  max-width: 35rem;
2593
2588
  padding: var(--jkl-message-padding);
2594
2589
  background-color: var(--background-color);
2595
2590
  color: var(--text-color);
2591
+ border: 1px solid var(--border-color);
2596
2592
  border-radius: 0.25rem;
2597
2593
  box-sizing: border-box;
2598
2594
  display: grid;
2599
2595
  align-items: start;
2600
2596
  grid-template-areas: "icon content dismiss";
2601
2597
  grid-template-columns: auto 1fr auto;
2602
- font-size: var(--jkl-font-size-3);
2603
- line-height: var(--jkl-line-height-relaxed);
2604
- font-weight: 400;
2605
- --jkl-icon-weight: 300;
2598
+ font: var(--jkl-text-style-paragraph-medium);
2606
2599
  }
2607
2600
  .jkl-message:has(.jkl-message__title) {
2608
- font-size: var(--jkl-font-size-4);
2609
- line-height: var(--jkl-line-height-tight);
2610
- font-weight: 700;
2611
- --jkl-icon-weight: 400;
2601
+ font: var(--jkl-text-style-heading-5);
2612
2602
  }
2613
2603
  .jkl-message__icon {
2614
2604
  grid-area: icon;
@@ -2626,17 +2616,11 @@
2626
2616
  grid-area: content;
2627
2617
  }
2628
2618
  .jkl-message__message {
2629
- font-size: var(--jkl-font-size-3);
2630
- line-height: var(--jkl-line-height-relaxed);
2631
- font-weight: 400;
2632
- --jkl-icon-weight: 300;
2619
+ font: var(--jkl-text-style-paragraph-medium);
2633
2620
  margin-top: -0.125rem;
2634
2621
  }
2635
2622
  .jkl-message__title {
2636
- font-size: var(--jkl-font-size-4);
2637
- line-height: var(--jkl-line-height-tight);
2638
- font-weight: 700;
2639
- --jkl-icon-weight: 400;
2623
+ font: var(--jkl-text-style-heading-5);
2640
2624
  margin: var(--jkl-message-title-margin);
2641
2625
  }
2642
2626
  .jkl-message__title ~ .jkl-message__message {
@@ -2708,27 +2692,35 @@
2708
2692
  }
2709
2693
  }
2710
2694
  .jkl-message__dismiss-button:focus-visible {
2711
- outline: 3px solid var(--jkl-color-border-action);
2695
+ outline: 3px solid var(--jkl-color-border-strong);
2712
2696
  outline-offset: 3px;
2713
2697
  }
2714
2698
  .jkl-message--full {
2715
2699
  max-width: 100%;
2716
2700
  }
2717
2701
  .jkl-message--info {
2718
- --background-color: var(--jkl-color-background-alert-info);
2702
+ --background-color: var(--jkl-color-info-background-container);
2703
+ --text-color: var(--jkl-color-info-text-default);
2704
+ --border-color: var(--jkl-color-info-border-subdued);
2719
2705
  }
2720
2706
  .jkl-message--warning {
2721
- --background-color: var(--jkl-color-background-alert-warning);
2707
+ --background-color: var(--jkl-color-warning-background-container);
2708
+ --text-color: var(--jkl-color-warning-text-default);
2709
+ --border-color: var(--jkl-color-warning-border-subdued);
2722
2710
  }
2723
2711
  .jkl-message--error {
2724
- --background-color: var(--jkl-color-background-alert-error);
2712
+ --background-color: var(--jkl-color-error-background-container);
2713
+ --text-color: var(--jkl-color-error-text-default);
2714
+ --border-color: var(--jkl-color-error-border-subdued);
2725
2715
  }
2726
2716
  .jkl-message--success {
2727
- --background-color: var(--jkl-color-background-alert-success);
2717
+ --background-color: var(--jkl-color-success-background-container);
2718
+ --text-color: var(--jkl-color-success-text-default);
2719
+ --border-color: var(--jkl-color-success-border-subdued);
2728
2720
  }
2729
2721
  .jkl-message--dismissed {
2730
- animation: jkl-dismiss-uyjs532 400ms ease-in-out forwards;
2731
- transition: visibility 0ms 400ms;
2722
+ animation: jkl-dismiss-ufcxak2 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2723
+ transition: visibility 0ms var(--jkl-motion-timing-lazy);
2732
2724
  visibility: hidden;
2733
2725
  }
2734
2726
  @media screen and (forced-colors: active) {
@@ -2747,9 +2739,9 @@
2747
2739
  }
2748
2740
  }
2749
2741
  .jkl-form-error-message {
2750
- padding-bottom: calc(var(--jkl-unit-base) * 5);
2742
+ padding-bottom: var(--jkl-unit-50);
2751
2743
  }
2752
- @keyframes jkl-dismiss-uyjs532 {
2744
+ @keyframes jkl-dismiss-ufcxak2 {
2753
2745
  from {
2754
2746
  opacity: 1;
2755
2747
  transform: translate3d(0, 0, 0);
@@ -2761,23 +2753,11 @@
2761
2753
  }
2762
2754
  }
2763
2755
  @layer jokul.components {
2764
- @media screen and (prefers-color-scheme: light) {
2765
- :root {
2766
- --jkl-radio-button-error-color: #ab2e43;
2767
- }
2768
- }
2769
- [data-theme=light] {
2770
- --jkl-radio-button-error-color: #ab2e43;
2771
- }
2772
- @media screen and (prefers-color-scheme: dark) {
2773
- :root {
2774
- --jkl-radio-button-error-color: #d79ba5;
2775
- }
2776
- }
2777
- [data-theme=dark] {
2778
- --jkl-radio-button-error-color: #d79ba5;
2779
- }
2780
2756
  .jkl-radio-button {
2757
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
2758
+ --jkl-radio-button-error-color: #ab2e43;
2759
+ --jkl-radio-button-error-color: light-dark(#ab2e43, #d79ba5);
2760
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
2781
2761
  display: flex;
2782
2762
  position: relative;
2783
2763
  }
@@ -2803,45 +2783,74 @@
2803
2783
  }
2804
2784
  .jkl-radio-button__input {
2805
2785
  position: absolute;
2806
- opacity: 0;
2807
- pointer-events: none;
2808
- inset: 0 auto 0 0;
2809
- width: 1lh;
2786
+ inset-block-start: 0;
2787
+ inset-inline-start: 0;
2788
+ block-size: 1lh;
2789
+ inline-size: 1lh;
2790
+ margin: 0;
2791
+ padding: 0;
2792
+ cursor: pointer;
2793
+ z-index: 1;
2794
+ appearance: none;
2795
+ background: transparent;
2796
+ border: 0;
2797
+ }
2798
+ .jkl-radio-button__input {
2799
+ outline: 0;
2800
+ border-style: none;
2801
+ outline-style: none;
2802
+ }
2803
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2804
+ outline: 0;
2805
+ outline-style: none;
2806
+ }
2807
+ @media screen and (forced-colors: active) {
2808
+ .jkl-radio-button__input {
2809
+ outline: revert;
2810
+ border-style: revert;
2811
+ outline-style: revert;
2812
+ }
2813
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2814
+ outline: revert;
2815
+ outline-style: revert;
2816
+ }
2810
2817
  }
2811
2818
  .jkl-radio-button__label {
2812
2819
  cursor: pointer;
2813
2820
  display: flex;
2814
- transition-timing-function: ease;
2815
- transition-duration: 150ms;
2821
+ transition-timing-function: var(--jkl-motion-easing-standard);
2822
+ transition-duration: var(--jkl-motion-timing-productive);
2816
2823
  transition-property: color;
2817
- font-size: var(--jkl-font-size-3);
2818
- line-height: var(--jkl-line-height-tight);
2819
- font-weight: 400;
2820
- --jkl-icon-weight: 300;
2821
- }
2822
- .jkl-radio-button__label:hover, .jkl-radio-button__label:active {
2823
- --jkl-icon-weight: 400;
2824
+ font: var(--jkl-text-style-text-medium);
2824
2825
  }
2825
2826
  .jkl-radio-button__label::before {
2826
2827
  content: "radio_button_unchecked";
2827
2828
  margin-inline-end: 0.25em;
2828
2829
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
2829
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
2830
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
2830
2831
  font-feature-settings: "liga";
2831
2832
  -webkit-font-feature-settings: "liga";
2832
2833
  font-size: 1.3em;
2833
- font-weight: var(--jkl-icon-weight, 300);
2834
+ font-weight: 400;
2834
2835
  line-height: 1;
2835
2836
  display: inline-block;
2836
2837
  -webkit-font-smoothing: antialiased;
2837
- transition-timing-function: ease;
2838
- transition-duration: 75ms;
2838
+ transition-timing-function: var(--jkl-motion-easing-standard);
2839
+ transition-duration: var(--jkl-motion-timing-energetic);
2839
2840
  transition-property: font-variation-settings, transform;
2840
2841
  }
2841
- .jkl-radio-button__label:has(+ :checked)::before {
2842
+ .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
2843
+ border-radius: var(--jkl-border-radius-full);
2844
+ outline: 3px solid var(--jkl-color-border-strong);
2845
+ outline-offset: 3px;
2846
+ }
2847
+ .jkl-radio-button__input:is(:hover, :active) + .jkl-radio-button__label, .jkl-radio-button__label:hover, .jkl-radio-button__label:active {
2848
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
2849
+ }
2850
+ .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2842
2851
  content: "radio_button_checked";
2843
2852
  }
2844
- .jkl-radio-button__label:has(+ [aria-invalid=true])::before {
2853
+ .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2845
2854
  color: var(--jkl-radio-button-error-color);
2846
2855
  }
2847
2856
  .jkl-radio-button + .jkl-radio-button, .jkl-dormant-form-support-label + .jkl-radio-button, .jkl-form-support-label + .jkl-radio-button {
@@ -2857,7 +2866,7 @@
2857
2866
  .jkl-radio-button + .jkl-form-support-label {
2858
2867
  margin-left: 1.75em;
2859
2868
  margin-top: 0.25lh;
2860
- margin-bottom: var(--jkl-unit-base);
2869
+ margin-bottom: var(--jkl-unit-10);
2861
2870
  }
2862
2871
  }
2863
2872
  @layer jokul.components {
@@ -2872,8 +2881,8 @@
2872
2881
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
2873
2882
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
2874
2883
  --text-color: var(--jkl-color-text-default);
2875
- --background-color: var(--jkl-color-background-input-base);
2876
- --border-color: var(--jkl-color-border-input);
2884
+ --background-color: transparent;
2885
+ --border-color: var(--jkl-color-border-default);
2877
2886
  --placeholder-color: var(--jkl-color-text-subdued);
2878
2887
  border-radius: var(--jkl-border-radius-s);
2879
2888
  box-sizing: border-box;
@@ -2881,27 +2890,24 @@
2881
2890
  position: relative;
2882
2891
  display: flex;
2883
2892
  align-items: center;
2884
- font-size: var(--jkl-font-size-3);
2885
- line-height: var(--jkl-line-height-tight);
2886
- font-weight: 400;
2887
- --jkl-icon-weight: 300;
2888
- transition-timing-function: ease;
2889
- transition-duration: 150ms;
2893
+ font: var(--jkl-text-style-text-medium);
2894
+ transition-timing-function: var(--jkl-motion-easing-standard);
2895
+ transition-duration: var(--jkl-motion-timing-productive);
2890
2896
  transition-property: color, box-shadow, background-color;
2891
2897
  background-color: var(--background-color);
2892
2898
  color: var(--text-color);
2893
2899
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
2894
2900
  }
2895
2901
  .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2896
- --background-color: var(--jkl-color-background-input-focus);
2902
+ --background-color: var(--jkl-color-background-container);
2897
2903
  }
2898
2904
  .jkl-text-area-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
2899
- --background-color: var(--jkl-color-background-alert-error);
2900
- --text-color: var(--jkl-color-text-on-alert);
2905
+ --background-color: var(--jkl-color-error-background-container);
2906
+ --text-color: var(--jkl-color-error-text-default);
2901
2907
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
2902
2908
  }
2903
2909
  .jkl-text-area-wrapper:hover, .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2904
- --border-color: var(--jkl-color-border-input-focus);
2910
+ --border-color: var(--jkl-color-border-strong);
2905
2911
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
2906
2912
  }
2907
2913
  @media screen and (forced-colors: active) {
@@ -2910,11 +2916,11 @@
2910
2916
  }
2911
2917
  }
2912
2918
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-area-wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-area-wrapper:has(.jkl-text-area__text-area:focus-visible) {
2913
- outline: 3px solid var(--jkl-color-border-action);
2919
+ outline: 3px solid var(--jkl-color-border-strong);
2914
2920
  outline-offset: 3px;
2915
2921
  }
2916
2922
  .jkl-text-area-wrapper > .jkl-icon-button:focus-visible {
2917
- outline: 3px solid var(--jkl-color-border-action);
2923
+ outline: 3px solid var(--jkl-color-border-strong);
2918
2924
  outline-offset: -8px;
2919
2925
  }
2920
2926
  @media screen and (forced-colors: active) {
@@ -2965,16 +2971,13 @@
2965
2971
  max-height: var(--text-input-height);
2966
2972
  height: var(--text-input-height);
2967
2973
  min-height: var(--text-input-height);
2968
- transition-timing-function: ease;
2969
- transition-duration: 150ms;
2974
+ transition-timing-function: var(--jkl-motion-easing-standard);
2975
+ transition-duration: var(--jkl-motion-timing-productive);
2970
2976
  transition-property: height, min-height, max-height, padding;
2971
2977
  background: none;
2972
2978
  -webkit-appearance: none;
2973
2979
  color: inherit;
2974
- font-size: var(--jkl-font-size-3);
2975
- line-height: var(--jkl-line-height-tight);
2976
- font-weight: 400;
2977
- --jkl-icon-weight: 300;
2980
+ font: var(--jkl-text-style-text-medium);
2978
2981
  }
2979
2982
  .jkl-text-area__text-area {
2980
2983
  outline: 0;
@@ -3040,10 +3043,7 @@
3040
3043
  .jkl-text-area:has(.jkl-text-area__counter) .jkl-text-area__counter-count {
3041
3044
  padding: var(--jkl-text-input-padding);
3042
3045
  color: var(--text-color);
3043
- font-size: var(--jkl-font-size-2);
3044
- line-height: var(--jkl-line-height-tight);
3045
- font-weight: 400;
3046
- --jkl-icon-weight: 300;
3046
+ font: var(--jkl-text-style-text-small);
3047
3047
  }
3048
3048
  .jkl-text-area:has(.jkl-text-area__counter) .jkl-text-area__counter-progress {
3049
3049
  background-color: transparent;
@@ -3058,8 +3058,8 @@
3058
3058
  height: var(--progress-bar-height);
3059
3059
  background-color: var(--border-color);
3060
3060
  transition-property: width;
3061
- transition-timing-function: ease;
3062
- transition-duration: 400ms;
3061
+ transition-timing-function: var(--jkl-motion-easing-standard);
3062
+ transition-duration: var(--jkl-motion-timing-lazy);
3063
3063
  }
3064
3064
  .jkl-text-area__text-area--3-rows:focus,
3065
3065
  .jkl-text-area__text-area--3-rows:not(:placeholder-shown),
@@ -3143,14 +3143,14 @@
3143
3143
  --jkl-file-gap: var(--jkl-unit-10) var(--jkl-unit-20);
3144
3144
  --jkl-file-button-width: var(--jkl-unit-50);
3145
3145
  --text-color: var(--jkl-color-text-default);
3146
- --border: 1px solid var(--jkl-color-border-separator);
3146
+ --border: 1px solid var(--jkl-color-border-subdued);
3147
3147
  --border-radius: 2px;
3148
3148
  --bg: transparent;
3149
- --transition-time: 250ms;
3149
+ --transition-time: var(--jkl-motion-timing-expressive);
3150
3150
  }
3151
3151
  .jkl-file__content {
3152
- transition-timing-function: ease;
3153
- transition-duration: 100ms;
3152
+ transition-timing-function: var(--jkl-motion-easing-standard);
3153
+ transition-duration: var(--jkl-motion-timing-snappy);
3154
3154
  transition-property: background-color, border-color, color;
3155
3155
  color: var(--jkl-color-text-default);
3156
3156
  padding: var(--jkl-file-padding);
@@ -3165,11 +3165,7 @@
3165
3165
  height: fit-content;
3166
3166
  }
3167
3167
  .jkl-file__content__name {
3168
- font-size: var(--jkl-font-size-2);
3169
- line-height: var(--jkl-line-height-relaxed);
3170
- font-weight: 400;
3171
- --jkl-icon-weight: 300;
3172
- --jkl-icon-size: 1.2em;
3168
+ font: var(--jkl-text-style-paragraph-small);
3173
3169
  grid-area: text;
3174
3170
  /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated */
3175
3171
  word-break: break-word;
@@ -3191,7 +3187,7 @@
3191
3187
  display: flex;
3192
3188
  align-items: center;
3193
3189
  justify-content: center;
3194
- background: var(--jkl-color-background-container-low);
3190
+ background: var(--jkl-color-background-page);
3195
3191
  border-radius: 2px;
3196
3192
  overflow: hidden;
3197
3193
  container-type: inline-size;
@@ -3239,11 +3235,7 @@
3239
3235
  grid-template-areas: "image image" "text button";
3240
3236
  }
3241
3237
  .jkl-file:not([data-state*=loading]) .jkl-file__content__thumbnail:not(:has(img[src]))::before {
3242
- font-size: var(--jkl-font-size-2);
3243
- line-height: var(--jkl-line-height-relaxed);
3244
- font-weight: 400;
3245
- --jkl-icon-weight: 300;
3246
- --jkl-icon-size: 1.2em;
3238
+ font: var(--jkl-text-style-paragraph-small);
3247
3239
  content: attr(data-filetype);
3248
3240
  }
3249
3241
  .jkl-file[data-state=loading]:not(:has(.jkl-file__support-label)) .jkl-file__content__thumbnail img {
@@ -3254,16 +3246,16 @@
3254
3246
  scale: 1;
3255
3247
  }
3256
3248
  .jkl-file[data-state=error] {
3257
- --bg: var(--jkl-color-functional-error);
3249
+ --bg: var(--jkl-color-error-background-container);
3258
3250
  }
3259
3251
  .jkl-file[data-state=error],
3260
3252
  .jkl-file[data-state=error] a,
3261
3253
  .jkl-file[data-state=error] a:hover,
3262
3254
  .jkl-file[data-state=error] button,
3263
3255
  .jkl-file[data-state=error] span {
3264
- --text-color: var(--jkl-color-text-on-alert);
3256
+ --text-color: var(--jkl-color-error-text-default);
3265
3257
  --link-color: var(--text-color);
3266
- --jkl-color-border-action: currentColor;
3258
+ --jkl-color-border-strong: currentColor;
3267
3259
  }
3268
3260
  @keyframes spin {
3269
3261
  from {
@@ -3283,7 +3275,7 @@
3283
3275
  --jkl-file-list-gap: var(--jkl-unit-10);
3284
3276
  }
3285
3277
  .jkl-file-input__dropzone {
3286
- --border-color: var(--jkl-color-border-input);
3278
+ --border-color: var(--jkl-color-border-default);
3287
3279
  --background-color: transparent;
3288
3280
  border: var(--border-color) 1px dashed;
3289
3281
  border-radius: 0.25rem;
@@ -3294,22 +3286,18 @@
3294
3286
  flex-direction: column;
3295
3287
  flex-wrap: nowrap;
3296
3288
  gap: var(--jkl-file-input-dropzone-gap);
3297
- transition-timing-function: ease;
3298
- transition-duration: 150ms;
3289
+ transition-timing-function: var(--jkl-motion-easing-standard);
3290
+ transition-duration: var(--jkl-motion-timing-productive);
3299
3291
  transition-property: background-color;
3300
3292
  background-color: var(--background-color);
3301
3293
  }
3302
3294
  .jkl-file-input__dropzone--enter {
3303
- --border-color: var(--jkl-color-border-input-focus);
3304
- --background-color: var(--jkl-color-background-container-high);
3295
+ --border-color: var(--jkl-color-border-strong);
3296
+ --background-color: var(--jkl-color-background-container);
3305
3297
  border-style: solid;
3306
3298
  }
3307
3299
  .jkl-file-input__dropzone__drag-text {
3308
- font-size: var(--jkl-font-size-2);
3309
- line-height: var(--jkl-line-height-relaxed);
3310
- font-weight: 400;
3311
- --jkl-icon-weight: 300;
3312
- --jkl-icon-size: 1.2em;
3300
+ font: var(--jkl-text-style-paragraph-small);
3313
3301
  }
3314
3302
  @media (width >= 0) and (max-width: 679px) {
3315
3303
  .jkl-file-input__dropzone__drag-text {
@@ -3325,7 +3313,7 @@
3325
3313
  }
3326
3314
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button {
3327
3315
  transform: scale(1.05);
3328
- outline: 3px solid var(--jkl-color-border-action);
3316
+ outline: 3px solid var(--jkl-color-border-strong);
3329
3317
  outline-offset: 3px;
3330
3318
  }
3331
3319
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button:active {
@@ -3338,10 +3326,7 @@
3338
3326
  display: none;
3339
3327
  }
3340
3328
  .jkl-file-input__max-size-text {
3341
- font-size: var(--jkl-font-size-2);
3342
- line-height: var(--jkl-line-height-tight);
3343
- font-weight: 400;
3344
- --jkl-icon-weight: 300;
3329
+ font: var(--jkl-text-style-text-small);
3345
3330
  color: var(--jkl-color-text-subdued);
3346
3331
  margin-top: var(--jkl-unit-30);
3347
3332
  }
@@ -3366,11 +3351,8 @@
3366
3351
  max-width: fit-content;
3367
3352
  }
3368
3353
  .jkl-file-input--small .jkl-file-input__call-to-action {
3369
- font-size: var(--jkl-font-size-2);
3370
- line-height: var(--jkl-line-height-tight);
3371
- font-weight: 400;
3372
- --jkl-icon-weight: 300;
3373
- gap: calc(var(--jkl-unit-base) * 1.5);
3354
+ font: var(--jkl-text-style-text-small);
3355
+ gap: var(--jkl-unit-15);
3374
3356
  flex-direction: row;
3375
3357
  justify-content: flex-start;
3376
3358
  }
@@ -3381,20 +3363,13 @@
3381
3363
  }
3382
3364
  @layer jokul.components {
3383
3365
  .jkl-link-list {
3384
- --border: 1px solid var(--jkl-color-border-separator);
3366
+ --border: 1px solid var(--jkl-color-border-subdued);
3385
3367
  --text-color: var(--jkl-color-text-default);
3386
- font-size: var(--jkl-font-size-3);
3387
- line-height: var(--jkl-line-height-relaxed);
3388
- font-weight: 400;
3389
- --jkl-icon-weight: 300;
3368
+ font: var(--jkl-text-style-paragraph-medium);
3390
3369
  }
3391
3370
  .jkl-link-list .jkl-link-list-title {
3392
3371
  margin-block-end: var(--jkl-unit-10);
3393
- font-size: var(--jkl-font-size-2);
3394
- line-height: var(--jkl-line-height-relaxed);
3395
- font-weight: 400;
3396
- --jkl-icon-weight: 300;
3397
- --jkl-icon-size: 1.2em;
3372
+ font: var(--jkl-text-style-paragraph-small);
3398
3373
  }
3399
3374
  .jkl-link-list ul {
3400
3375
  display: flex;
@@ -3405,7 +3380,7 @@
3405
3380
  height: min-content;
3406
3381
  border-radius: var(--jkl-unit-05);
3407
3382
  overflow: hidden;
3408
- background: var(--jkl-color-background-container-low);
3383
+ background: var(--jkl-color-background-page);
3409
3384
  }
3410
3385
  .jkl-link-list ul .jkl-link-list-link {
3411
3386
  display: flex;
@@ -3418,30 +3393,27 @@
3418
3393
  text-wrap: balance;
3419
3394
  box-sizing: border-box;
3420
3395
  padding: var(--jkl-unit-20);
3421
- font-size: var(--jkl-font-size-3);
3422
- line-height: var(--jkl-line-height-tight);
3423
- font-weight: 400;
3424
- --jkl-icon-weight: 300;
3425
- transition-timing-function: ease;
3426
- transition-duration: 150ms;
3396
+ font: var(--jkl-text-style-text-medium);
3397
+ transition-timing-function: var(--jkl-motion-easing-standard);
3398
+ transition-duration: var(--jkl-motion-timing-productive);
3427
3399
  transition-property: background;
3428
3400
  }
3429
3401
  .jkl-link-list ul .jkl-link-list-link::after {
3430
3402
  content: "arrow_forward"/"";
3431
3403
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
3432
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
3404
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3433
3405
  font-feature-settings: "liga";
3434
3406
  -webkit-font-feature-settings: "liga";
3435
3407
  font-size: 1.3em;
3436
- font-weight: var(--jkl-icon-weight, 300);
3408
+ font-weight: 400;
3437
3409
  line-height: 1;
3438
3410
  display: inline-block;
3439
3411
  -webkit-font-smoothing: antialiased;
3440
- transition-timing-function: ease;
3441
- transition-duration: 75ms;
3412
+ transition-timing-function: var(--jkl-motion-easing-standard);
3413
+ transition-duration: var(--jkl-motion-timing-energetic);
3442
3414
  transition-property: font-variation-settings, transform;
3443
- transition-timing-function: ease;
3444
- transition-duration: 150ms;
3415
+ transition-timing-function: var(--jkl-motion-easing-standard);
3416
+ transition-duration: var(--jkl-motion-timing-productive);
3445
3417
  transition-property: translate;
3446
3418
  }
3447
3419
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible) {
@@ -3450,6 +3422,10 @@
3450
3422
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible)::after {
3451
3423
  translate: 4px 0;
3452
3424
  }
3425
+ .jkl-link-list ul .jkl-link-list-link:focus-visible {
3426
+ outline: 3px solid var(--jkl-color-border-strong);
3427
+ outline-offset: 3px;
3428
+ }
3453
3429
  .jkl-link-list .jkl-link-list-item {
3454
3430
  display: flex;
3455
3431
  }
@@ -3497,13 +3473,13 @@
3497
3473
  transform: translateX(-5%);
3498
3474
  }
3499
3475
  .jkl-logo--animated .jkl-logo__F {
3500
- transition: transform 250ms 75ms cubic-bezier(0.5, 0, 0.62, 1);
3476
+ transition: transform var(--jkl-motion-timing-expressive) var(--jkl-motion-timing-energetic) cubic-bezier(0.5, 0, 0.62, 1);
3501
3477
  }
3502
3478
  .jkl-logo--animated .jkl-logo__F-line {
3503
- transition: transform 250ms ease-in;
3479
+ transition: transform var(--jkl-motion-timing-expressive) ease-in;
3504
3480
  }
3505
3481
  .jkl-logo--animated .jkl-logo__fremtind {
3506
- transition: opacity 250ms 75ms ease-in, transform 250ms ease;
3482
+ transition: opacity var(--jkl-motion-timing-expressive) var(--jkl-motion-timing-energetic) ease-in, transform var(--jkl-motion-timing-expressive) ease;
3507
3483
  }
3508
3484
  .jkl-logo--centered.jkl-logo--symbol-only .jkl-logo__F {
3509
3485
  transform: translateX(35%) rotate(45deg);
@@ -3524,7 +3500,7 @@
3524
3500
  .jkl-logo-stamp--animated .jkl-logo-stamp__text {
3525
3501
  transform-origin: 256px 256px;
3526
3502
  transition-timing-function: cubic-bezier(0.75, 0, 0, 1);
3527
- transition-duration: 150ms;
3503
+ transition-duration: var(--jkl-motion-timing-productive);
3528
3504
  transition-property: transform;
3529
3505
  }
3530
3506
  .jkl-logo-stamp--animated[data-rotate=true] .jkl-logo-stamp__text {
@@ -3543,10 +3519,7 @@
3543
3519
  cursor: pointer;
3544
3520
  box-sizing: border-box;
3545
3521
  user-select: none;
3546
- font-size: var(--jkl-font-size-3);
3547
- line-height: var(--jkl-line-height-tight);
3548
- font-weight: 400;
3549
- --jkl-icon-weight: 300;
3522
+ font: var(--jkl-text-style-text-medium);
3550
3523
  display: flex;
3551
3524
  align-items: center;
3552
3525
  gap: var(--jkl-unit-10);
@@ -3606,28 +3579,16 @@
3606
3579
  width: 100%;
3607
3580
  margin-block: 0;
3608
3581
  border: none;
3609
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator);
3582
+ border-bottom: 0.0625rem solid var(--jkl-color-border-subdued);
3610
3583
  }
3611
3584
  }
3612
3585
  @layer jokul.components {
3613
- @media screen and (prefers-color-scheme: light) {
3614
- :root {
3615
- --jkl-menu-border-color: transparent;
3616
- }
3617
- }
3618
- [data-theme=light] {
3619
- --jkl-menu-border-color: transparent;
3620
- }
3621
- @media screen and (prefers-color-scheme: dark) {
3622
- :root {
3623
- --jkl-menu-border-color: var(--jkl-color-border-input-focus);
3624
- }
3625
- }
3626
- [data-theme=dark] {
3627
- --jkl-menu-border-color: var(--jkl-color-border-input-focus);
3628
- }
3629
3586
  .jkl-menu {
3630
- background-color: var(--jkl-color-background-container-high);
3587
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
3588
+ --border-color: transparent;
3589
+ --border-color: light-dark(transparent, var(--jkl-color-border-strong));
3590
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
3591
+ background-color: var(--jkl-color-background-container);
3631
3592
  width: 100%;
3632
3593
  max-width: 21rem;
3633
3594
  display: flex;
@@ -3636,7 +3597,7 @@
3636
3597
  flex-wrap: nowrap;
3637
3598
  box-shadow: 0 0.25rem 1.25rem rgba(49, 48, 48, 0.2);
3638
3599
  border-radius: 0.125rem;
3639
- border: 2px solid var(--jkl-menu-border-color);
3600
+ border: 2px solid var(--border-color);
3640
3601
  z-index: 7000;
3641
3602
  }
3642
3603
  .jkl-menu:focus-visible {
@@ -3650,7 +3611,7 @@
3650
3611
  .jkl-nav-link {
3651
3612
  color: var(--jkl-color-text-default);
3652
3613
  box-sizing: border-box;
3653
- font-weight: var(--jkl-typography-weight-normal);
3614
+ font-weight: var(--jkl-font-weight-normal);
3654
3615
  text-decoration: none;
3655
3616
  position: relative;
3656
3617
  padding-right: 0.15rem;
@@ -3680,7 +3641,7 @@
3680
3641
  color: var(--jkl-color-text-subdued);
3681
3642
  }
3682
3643
  .jkl-nav-link:focus-visible {
3683
- outline: 3px solid var(--jkl-color-border-action);
3644
+ outline: 3px solid var(--jkl-color-border-strong);
3684
3645
  outline-offset: 0;
3685
3646
  }
3686
3647
  .jkl-nav-link:focus-visible .jkl-nav-link__icon, .jkl-nav-link:hover:not(:focus) .jkl-nav-link__icon {
@@ -3690,13 +3651,13 @@
3690
3651
  margin-inline-start: 0.1em;
3691
3652
  margin-block-start: -0.1em;
3692
3653
  vertical-align: middle;
3693
- transition-timing-function: ease;
3694
- transition-duration: 150ms;
3654
+ transition-timing-function: var(--jkl-motion-easing-standard);
3655
+ transition-duration: var(--jkl-motion-timing-productive);
3695
3656
  transition-property: transform;
3696
3657
  }
3697
3658
  .jkl-nav-link--active {
3698
3659
  --jkl-icon-weight: 400;
3699
- font-weight: 700;
3660
+ font-weight: var(--jkl-font-weight-bold);
3700
3661
  letter-spacing: -0.014em;
3701
3662
  }
3702
3663
  .jkl-nav-link--back {
@@ -3715,22 +3676,19 @@
3715
3676
  }
3716
3677
  .jkl-navlink--beta {
3717
3678
  --border-radius: 4px;
3718
- --separator: 1px solid var(--jkl-color-border-separator);
3679
+ --separator: 1px solid var(--jkl-color-border-subdued);
3719
3680
  display: grid;
3720
3681
  grid-template-columns: 1fr auto;
3721
3682
  align-items: center;
3722
3683
  column-gap: 2em;
3723
3684
  color: inherit;
3724
3685
  text-decoration: none;
3725
- background-color: var(--jkl-color-background-container-low);
3686
+ background-color: var(--jkl-color-background-page);
3726
3687
  padding: var(--jkl-spacing-s);
3727
3688
  border-radius: 0;
3728
- font-size: var(--jkl-font-size-3);
3729
- line-height: var(--jkl-line-height-relaxed);
3730
- font-weight: 400;
3731
- --jkl-icon-weight: 300;
3732
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
3733
- transition-duration: 150ms;
3689
+ font: var(--jkl-text-style-paragraph-medium);
3690
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
3691
+ transition-duration: var(--jkl-motion-timing-productive);
3734
3692
  transition-property: background-color;
3735
3693
  }
3736
3694
  .jkl-navlink--beta .title,
@@ -3746,19 +3704,19 @@
3746
3704
  grid-row: 1/span 999;
3747
3705
  translate: 0;
3748
3706
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
3749
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
3707
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3750
3708
  font-feature-settings: "liga";
3751
3709
  -webkit-font-feature-settings: "liga";
3752
3710
  font-size: 1.3em;
3753
- font-weight: var(--jkl-icon-weight, 300);
3711
+ font-weight: 400;
3754
3712
  line-height: 1;
3755
3713
  display: inline-block;
3756
3714
  -webkit-font-smoothing: antialiased;
3757
- transition-timing-function: ease;
3758
- transition-duration: 75ms;
3715
+ transition-timing-function: var(--jkl-motion-easing-standard);
3716
+ transition-duration: var(--jkl-motion-timing-energetic);
3759
3717
  transition-property: font-variation-settings, transform;
3760
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
3761
- transition-duration: 150ms;
3718
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
3719
+ transition-duration: var(--jkl-motion-timing-productive);
3762
3720
  transition-property: translate;
3763
3721
  }
3764
3722
  .jkl-navlink--beta:hover, .jkl-navlink--beta:focus-visible {
@@ -3809,12 +3767,12 @@
3809
3767
  color: var(--jkl-color-text-interactive-hover);
3810
3768
  }
3811
3769
  .jkl-pagination-button:focus-visible {
3812
- outline: 3px solid var(--jkl-color-border-action);
3770
+ outline: 3px solid var(--jkl-color-border-strong);
3813
3771
  outline-offset: 3px;
3814
3772
  }
3815
3773
  .jkl-pagination-button--current {
3816
3774
  --jkl-icon-weight: 400;
3817
- font-weight: 700;
3775
+ font-weight: var(--jkl-font-weight-bold);
3818
3776
  letter-spacing: -0.014em;
3819
3777
  }
3820
3778
  .jkl-pagination-button--elipsis {
@@ -3862,7 +3820,7 @@
3862
3820
  outline: none;
3863
3821
  }
3864
3822
  .jkl-select .jkl-tooltip-question-button:focus {
3865
- outline: 3px solid var(--jkl-color-border-action);
3823
+ outline: 3px solid var(--jkl-color-border-strong);
3866
3824
  outline-offset: 0;
3867
3825
  }
3868
3826
  .jkl-select select {
@@ -3876,7 +3834,7 @@
3876
3834
  font-weight: normal;
3877
3835
  font-family: sans-serif;
3878
3836
  color: var(--jkl-color-text-subdued);
3879
- background-color: var(--jkl-color-background-container-high);
3837
+ background-color: var(--jkl-color-background-container);
3880
3838
  }
3881
3839
  .jkl-select__outer-wrapper {
3882
3840
  position: relative;
@@ -3897,7 +3855,7 @@
3897
3855
  cursor: pointer;
3898
3856
  height: var(--jkl-select-input-height);
3899
3857
  border-radius: var(--border-radius);
3900
- border: var(--border-width) solid var(--jkl-color-border-input);
3858
+ border: var(--border-width) solid var(--jkl-color-border-default);
3901
3859
  box-shadow: 0 0 0 0.0625rem transparent;
3902
3860
  text-align: left;
3903
3861
  width: 100%;
@@ -3905,19 +3863,16 @@
3905
3863
  /* Øk padding for å gi plass til ikonet */
3906
3864
  padding-inline-end: 2.05em;
3907
3865
  transition-property: color, border-color, box-shadow;
3908
- transition-timing-function: ease;
3909
- transition-duration: 150ms;
3910
- font-size: var(--jkl-font-size-3);
3911
- line-height: var(--jkl-line-height-tight);
3912
- font-weight: 400;
3913
- --jkl-icon-weight: 300;
3866
+ transition-timing-function: var(--jkl-motion-easing-standard);
3867
+ transition-duration: var(--jkl-motion-timing-productive);
3868
+ font: var(--jkl-text-style-text-medium);
3914
3869
  }
3915
3870
  .jkl-select__search-input--active-value, .jkl-select__button--active-value {
3916
3871
  color: var(--jkl-color-text-default);
3917
3872
  }
3918
3873
  .jkl-select__search-input:hover, .jkl-select__button:hover {
3919
- border-color: var(--jkl-color-border-input-focus);
3920
- box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-input-focus);
3874
+ border-color: var(--jkl-color-border-strong);
3875
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3921
3876
  }
3922
3877
  .jkl-select__search-input:hover ~ .jkl-select__arrow, .jkl-select__button:hover ~ .jkl-select__arrow {
3923
3878
  transform: translateY(calc(-50% + 0.1875rem));
@@ -3926,12 +3881,12 @@
3926
3881
  outline: none;
3927
3882
  }
3928
3883
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__search-input:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__search-input:has(:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__button:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__button:has(:focus-visible) {
3929
- outline: 3px solid var(--jkl-color-border-action);
3884
+ outline: 3px solid var(--jkl-color-border-strong);
3930
3885
  outline-offset: 3px;
3931
3886
  }
3932
3887
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__button,
3933
3888
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__search-input {
3934
- outline: 3px solid var(--jkl-color-border-action);
3889
+ outline: 3px solid var(--jkl-color-border-strong);
3935
3890
  outline-offset: 3px;
3936
3891
  }
3937
3892
  .jkl-select__arrow {
@@ -3942,8 +3897,8 @@
3942
3897
  color: var(--jkl-color-text-default);
3943
3898
  transform: translateY(-50%);
3944
3899
  transition-property: transform, color;
3945
- transition-timing-function: ease;
3946
- transition-duration: 150ms;
3900
+ transition-timing-function: var(--jkl-motion-easing-standard);
3901
+ transition-duration: var(--jkl-motion-timing-productive);
3947
3902
  }
3948
3903
  @media screen and (forced-colors: active) {
3949
3904
  .jkl-select__arrow {
@@ -3956,7 +3911,7 @@
3956
3911
  }
3957
3912
  }
3958
3913
  .jkl-select:has([aria-invalid=true]) .jkl-select__arrow {
3959
- color: var(--jkl-color-text-on-alert);
3914
+ color: var(--jkl-color-error-text-default);
3960
3915
  }
3961
3916
  .jkl-select__options-menu {
3962
3917
  position: absolute;
@@ -3964,16 +3919,16 @@
3964
3919
  right: -0.0625rem;
3965
3920
  top: 100%;
3966
3921
  z-index: 7000;
3967
- background-color: var(--jkl-color-background-container-high);
3968
- border: 0.125rem solid var(--jkl-color-border-input-focus);
3922
+ background-color: var(--jkl-color-background-container);
3923
+ border: 0.125rem solid var(--jkl-color-border-strong);
3969
3924
  border-top: none;
3970
3925
  border-radius: 0 0 var(--border-radius) var(--border-radius);
3971
3926
  box-sizing: border-box;
3972
3927
  overflow-y: auto;
3973
3928
  max-height: calc((var(--jkl-select-max-shown-options, 5) + 0.5) * var(--min-option-height));
3974
3929
  transition-property: height;
3975
- transition-timing-function: ease;
3976
- transition-duration: 150ms;
3930
+ transition-timing-function: var(--jkl-motion-easing-standard);
3931
+ transition-duration: var(--jkl-motion-timing-productive);
3977
3932
  }
3978
3933
  .jkl-select__option-wrapper {
3979
3934
  margin: 0;
@@ -3992,12 +3947,9 @@
3992
3947
  position: relative;
3993
3948
  padding: var(--option-padding);
3994
3949
  cursor: pointer;
3995
- transition-timing-function: ease;
3996
- transition-duration: 150ms;
3997
- font-size: var(--jkl-font-size-3);
3998
- line-height: var(--jkl-line-height-tight);
3999
- font-weight: 400;
4000
- --jkl-icon-weight: 300;
3950
+ transition-timing-function: var(--jkl-motion-easing-standard);
3951
+ transition-duration: var(--jkl-motion-timing-productive);
3952
+ font: var(--jkl-text-style-text-medium);
4001
3953
  /* For å unngå "dobbel" markering skrur vi av markering på hover i React-
4002
3954
  komponenten med data-focus="controlled". Uten dette satt vil valgene
4003
3955
  markeres ved hover som normalt. */
@@ -4010,10 +3962,7 @@
4010
3962
  color: var(--jkl-color-text-subdued);
4011
3963
  display: block;
4012
3964
  width: 100%;
4013
- font-size: var(--jkl-font-size-2);
4014
- line-height: var(--jkl-line-height-tight);
4015
- font-weight: 400;
4016
- --jkl-icon-weight: 300;
3965
+ font: var(--jkl-text-style-text-small);
4017
3966
  }
4018
3967
  .jkl-select {
4019
3968
  /* --------
@@ -4028,9 +3977,9 @@
4028
3977
  .jkl-select--open .jkl-select__button {
4029
3978
  border-bottom-left-radius: 0;
4030
3979
  border-bottom-right-radius: 0;
4031
- border-color: var(--jkl-color-border-input-focus);
4032
- background-color: var(--jkl-color-background-container-high);
4033
- box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-input-focus);
3980
+ border-color: var(--jkl-color-border-strong);
3981
+ background-color: var(--jkl-color-background-container);
3982
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
4034
3983
  }
4035
3984
  .jkl-select--open .jkl-select__search-input:hover ~ .jkl-select__arrow,
4036
3985
  .jkl-select--open .jkl-select__button:hover ~ .jkl-select__arrow {
@@ -4038,8 +3987,8 @@
4038
3987
  }
4039
3988
  .jkl-select--invalid .jkl-select__search-input,
4040
3989
  .jkl-select--invalid .jkl-select__button {
4041
- background-color: var(--jkl-color-background-alert-error);
4042
- color: var(--jkl-color-text-on-alert-subdued);
3990
+ background-color: var(--jkl-color-error-background-container);
3991
+ color: var(--jkl-color-error-text-subdued);
4043
3992
  }
4044
3993
  .jkl-select--invalid .jkl-select__search-input--active-value,
4045
3994
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -4064,15 +4013,15 @@
4064
4013
  border-top: 1px solid SelectedItem;
4065
4014
  border-bottom: 1px solid SelectedItem;
4066
4015
  --jkl-icon-weight: 400;
4067
- font-weight: 700;
4016
+ font-weight: var(--jkl-font-weight-bold);
4068
4017
  letter-spacing: -0.014em;
4069
4018
  }
4070
4019
  }
4071
4020
  }
4072
4021
  @layer jokul.components {
4073
4022
  .jkl-progress-bar {
4074
- --track-color: var(--jkl-color-border-separator);
4075
- --bar-color: var(--jkl-color-border-input-focus);
4023
+ --track-color: var(--jkl-color-border-subdued);
4024
+ --bar-color: var(--jkl-color-border-strong);
4076
4025
  --bar-height: 0.25rem;
4077
4026
  background-color: var(--track-color);
4078
4027
  border-radius: 6.25rem;
@@ -4093,12 +4042,36 @@
4093
4042
  background-color: CanvasText;
4094
4043
  }
4095
4044
  }
4045
+ .jkl-progress-bar {
4046
+ outline: 0;
4047
+ border-style: none;
4048
+ outline-style: none;
4049
+ }
4050
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4051
+ outline: 0;
4052
+ outline-style: none;
4053
+ }
4054
+ @media screen and (forced-colors: active) {
4055
+ .jkl-progress-bar {
4056
+ outline: revert;
4057
+ border-style: revert;
4058
+ outline-style: revert;
4059
+ }
4060
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4061
+ outline: revert;
4062
+ outline-style: revert;
4063
+ }
4064
+ }
4065
+ .jkl-progress-bar:focus-visible {
4066
+ outline: 3px solid var(--jkl-color-border-strong);
4067
+ outline-offset: 3px;
4068
+ }
4096
4069
  .jkl-progress-bar__tracker {
4097
4070
  transition-property: width;
4098
- transition-timing-function: ease;
4099
- transition-duration: 150ms;
4071
+ transition-timing-function: var(--jkl-motion-easing-standard);
4072
+ transition-duration: var(--jkl-motion-timing-productive);
4100
4073
  }
4101
- @keyframes jkl-downcount-uyjs53m {
4074
+ @keyframes jkl-downcount-ufcxakc {
4102
4075
  from {
4103
4076
  width: 100%;
4104
4077
  }
@@ -4112,15 +4085,18 @@
4112
4085
  /* Visuell justering pga. rundt ikon */
4113
4086
  margin-inline-start: -0.15em;
4114
4087
  }
4088
+ .jkl-radio-panel .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
4089
+ outline: none;
4090
+ }
4115
4091
  }
4116
4092
  .jkl-select--beta {
4117
- --border-color: var(--jkl-color-border-input);
4118
- --background-color: var(transparent);
4093
+ --border-color: var(--jkl-color-border-default);
4094
+ --background-color: transparent;
4119
4095
  --color: var(--jkl-color-text-default);
4120
4096
  --box-shadow: 0 0 0 jkl.rem(1px) transparent;
4121
4097
  --border-width: 0.0625rem;
4122
4098
  --button-padding: calc(var(--jkl-unit-15) - var(--border-width));
4123
- --arrow-right: calc(var(--jkl-unit-base) * 0.25);
4099
+ --arrow-right: var(--jkl-unit-02);
4124
4100
  display: block;
4125
4101
  position: relative;
4126
4102
  }
@@ -4148,7 +4124,7 @@
4148
4124
  outline: none;
4149
4125
  }
4150
4126
  .jkl-select--beta .jkl-tooltip-question-button:focus {
4151
- outline: 3px solid var(--jkl-color-border-action);
4127
+ outline: 3px solid var(--jkl-color-border-strong);
4152
4128
  outline-offset: 0;
4153
4129
  }
4154
4130
  .jkl-select--beta-wrapper {
@@ -4182,30 +4158,27 @@
4182
4158
  --color: var(--jkl-color-text-subdued);
4183
4159
  }
4184
4160
  .jkl-select--beta select:hover {
4185
- --border-color: var(--jkl-color-border-input-focus);
4186
- --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-input-focus);
4161
+ --border-color: var(--jkl-color-border-strong);
4162
+ --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-strong);
4187
4163
  }
4188
4164
  .jkl-select--beta select:invalid {
4189
- --background-color: var(--jkl-color-background-alert-error);
4190
- --color: var(--jkl-color-text-on-alert-subdued);
4165
+ --background-color: var(--jkl-color-error-background-container);
4166
+ --color: var(--jkl-color-error-text-subdued);
4191
4167
  }
4192
4168
  .jkl-select--beta select:focus-visible {
4193
4169
  outline: none;
4194
4170
  }
4195
4171
  .jkl-select--beta select {
4196
- transition-timing-function: ease;
4197
- transition-duration: 150ms;
4198
- font-size: var(--jkl-font-size-3);
4199
- line-height: var(--jkl-line-height-tight);
4200
- font-weight: 400;
4201
- --jkl-icon-weight: 300;
4172
+ transition-timing-function: var(--jkl-motion-easing-standard);
4173
+ transition-duration: var(--jkl-motion-timing-productive);
4174
+ font: var(--jkl-text-style-text-medium);
4202
4175
  }
4203
4176
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) {
4204
- outline: 3px solid var(--jkl-color-border-action);
4177
+ outline: 3px solid var(--jkl-color-border-strong);
4205
4178
  outline-offset: 3px;
4206
4179
  }
4207
4180
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) select {
4208
- outline: 3px solid var(--jkl-color-border-action);
4181
+ outline: 3px solid var(--jkl-color-border-strong);
4209
4182
  outline-offset: 3px;
4210
4183
  }
4211
4184
 
@@ -4219,12 +4192,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4219
4192
  --icon-size: var(--jkl-text-input-height);
4220
4193
  --border-radius: var(--jkl-border-radius-s);
4221
4194
  --border-width: 1px;
4222
- --border: var(--border-width) solid var(--jkl-color-border-input);
4195
+ --border: var(--border-width) solid var(--jkl-color-border-default);
4223
4196
  width: 100%;
4224
- font-size: var(--jkl-font-size-3);
4225
- line-height: var(--jkl-line-height-tight);
4226
- font-weight: 400;
4227
- --jkl-icon-weight: 300;
4197
+ font: var(--jkl-text-style-text-medium);
4228
4198
  }
4229
4199
  .jkl-search input[type=search] {
4230
4200
  appearance: none;
@@ -4254,10 +4224,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4254
4224
  }
4255
4225
  }
4256
4226
  .jkl-search input[type=search] {
4257
- font-size: var(--jkl-font-size-3);
4258
- line-height: var(--jkl-line-height-tight);
4259
- font-weight: 400;
4260
- --jkl-icon-weight: 300;
4227
+ font: var(--jkl-text-style-text-medium);
4261
4228
  }
4262
4229
  .jkl-search input[type=search]::-webkit-search-cancel-button, .jkl-search input[type=search]::-webkit-calendar-picker-indicator, .jkl-search input[type=search]::-webkit-search-results-button {
4263
4230
  appearance: none;
@@ -4311,16 +4278,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4311
4278
  grid-column: 1;
4312
4279
  z-index: 1;
4313
4280
  font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
4314
- font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
4281
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4315
4282
  font-feature-settings: "liga";
4316
4283
  -webkit-font-feature-settings: "liga";
4317
4284
  font-size: 1.3em;
4318
- font-weight: var(--jkl-icon-weight, 300);
4285
+ font-weight: 400;
4319
4286
  line-height: 1;
4320
4287
  display: inline-block;
4321
4288
  -webkit-font-smoothing: antialiased;
4322
- transition-timing-function: ease;
4323
- transition-duration: 75ms;
4289
+ transition-timing-function: var(--jkl-motion-easing-standard);
4290
+ transition-duration: var(--jkl-motion-timing-energetic);
4324
4291
  transition-property: font-variation-settings, transform;
4325
4292
  }
4326
4293
  .jkl-search .clear-button::after {
@@ -4331,15 +4298,15 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4331
4298
  background-color: var(--jkl-color-text-default);
4332
4299
  opacity: 0;
4333
4300
  border-radius: inherit;
4334
- transition-timing-function: ease;
4335
- transition-duration: 150ms;
4301
+ transition-timing-function: var(--jkl-motion-easing-standard);
4302
+ transition-duration: var(--jkl-motion-timing-productive);
4336
4303
  transition-property: opacity;
4337
4304
  }
4338
4305
  .jkl-search .clear-button:hover::after {
4339
4306
  opacity: 0.15;
4340
4307
  }
4341
4308
  .jkl-search .clear-button:focus-visible {
4342
- outline: 3px solid var(--jkl-color-border-action);
4309
+ outline: 3px solid var(--jkl-color-border-strong);
4343
4310
  outline-offset: 3px;
4344
4311
  }
4345
4312
 
@@ -4368,9 +4335,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4368
4335
  width: 1px;
4369
4336
  inset: 0;
4370
4337
  inset-block: 20%;
4371
- background-color: var(--jkl-color-border-separator);
4372
- transition-timing-function: ease;
4373
- transition-duration: 150ms;
4338
+ background-color: var(--jkl-color-border-subdued);
4339
+ transition-timing-function: var(--jkl-motion-easing-standard);
4340
+ transition-duration: var(--jkl-motion-timing-productive);
4374
4341
  transition-property: inset;
4375
4342
  }
4376
4343
  .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit:hover::before {
@@ -4393,12 +4360,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4393
4360
  display: inline-flex;
4394
4361
  align-items: center;
4395
4362
  background-color: var(--jkl-color-background-interactive);
4396
- border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-separator);
4363
+ border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-subdued);
4397
4364
  border-radius: 0;
4398
4365
  margin-inline-end: calc(var(--jkl-segmented-control-border-width) * -1);
4399
4366
  margin-block-end: 0.5lh;
4400
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
4401
- transition-duration: 250ms;
4367
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
4368
+ transition-duration: var(--jkl-motion-timing-expressive);
4402
4369
  transition-property: border background;
4403
4370
  }
4404
4371
  .jkl-segmented-control .jkl-segmented-control-item label {
@@ -4407,12 +4374,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4407
4374
  }
4408
4375
  .jkl-segmented-control .jkl-segmented-control-item:hover {
4409
4376
  background-color: var(--jkl-color-background-interactive-hover);
4410
- border-color: var(--jkl-color-border-separator-hover);
4377
+ border-color: var(--jkl-color-border-default);
4411
4378
  z-index: 2;
4412
4379
  }
4413
4380
  .jkl-segmented-control .jkl-segmented-control-item:has(input:checked) {
4414
- background-color: var(--jkl-color-background-container-high);
4415
- border-color: var(--jkl-color-border-separator);
4381
+ background-color: var(--jkl-color-background-container);
4382
+ border-color: var(--jkl-color-border-subdued);
4416
4383
  z-index: 1;
4417
4384
  }
4418
4385
  .jkl-segmented-control .jkl-segmented-control-item:has(input[data-separated=true]) {
@@ -4446,10 +4413,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4446
4413
  flex-direction: column;
4447
4414
  overflow-wrap: anywhere;
4448
4415
  width: 100%;
4449
- font-size: var(--jkl-font-size-3);
4450
- line-height: var(--jkl-line-height-tight);
4451
- font-weight: 400;
4452
- --jkl-icon-weight: 300;
4416
+ font: var(--jkl-text-style-text-medium);
4453
4417
  }
4454
4418
  .jkl-summary-table tr {
4455
4419
  display: flex;
@@ -4471,16 +4435,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4471
4435
  padding-right: 0;
4472
4436
  }
4473
4437
  .jkl-summary-table > tbody th {
4474
- font-weight: 400;
4438
+ font-weight: var(--jkl-font-weight-normal);
4475
4439
  }
4476
4440
  .jkl-summary-table > tfoot {
4477
- border-top: 0.0625rem solid var(--jkl-color-border-separator-strong);
4478
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator-strong);
4441
+ border-top: 0.0625rem solid var(--jkl-color-border-strong);
4442
+ border-bottom: 0.0625rem solid var(--jkl-color-border-strong);
4479
4443
  padding-top: var(--jkl-unit-10);
4480
4444
  }
4481
4445
  .jkl-summary-table > tfoot th,
4482
4446
  .jkl-summary-table > tfoot td {
4483
- font-weight: var(--jkl-typography-weight-bold);
4447
+ font-weight: var(--jkl-font-weight-bold);
4484
4448
  }
4485
4449
  }
4486
4450
  @layer jokul.components {
@@ -4491,12 +4455,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4491
4455
  --jkl-system-message-dismiss-button-size: var(--jkl-unit-40);
4492
4456
  --jkl-system-message-dismiss-button-margin: -0.40625rem -1.125rem -0.40625rem
4493
4457
  auto;
4494
- --jkl-system-message-message-margin: 0 var(--jkl-spacing-20);
4495
- --background-color: var(--jkl-color-background-alert-neutral);
4496
- --text-color: var(--jkl-color-text-on-alert);
4458
+ --jkl-system-message-message-margin: 0 var(--jkl-unit-20);
4459
+ --background-color: var(--jkl-color-background-container);
4460
+ --text-color: var(--jkl-color-text-default);
4461
+ --border-color: var(--jkl-color-border-subdued);
4497
4462
  width: 100%;
4498
4463
  background-color: var(--background-color);
4499
4464
  color: var(--text-color);
4465
+ border: 1px solid var(--border-color);
4500
4466
  transition-behavior: allow-discrete;
4501
4467
  box-sizing: border-box;
4502
4468
  }
@@ -4523,10 +4489,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4523
4489
  }
4524
4490
  }
4525
4491
  .jkl-system-message__message {
4526
- font-size: var(--jkl-font-size-3);
4527
- line-height: var(--jkl-line-height-tight);
4528
- font-weight: 400;
4529
- --jkl-icon-weight: 300;
4492
+ font: var(--jkl-text-style-text-medium);
4530
4493
  margin: var(--jkl-system-message-message-margin);
4531
4494
  }
4532
4495
  .jkl-system-message__dismiss-button {
@@ -4595,7 +4558,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4595
4558
  }
4596
4559
  }
4597
4560
  .jkl-system-message__dismiss-button:focus-visible {
4598
- outline: 3px solid var(--jkl-color-border-action);
4561
+ outline: 3px solid var(--jkl-color-border-strong);
4599
4562
  outline-offset: 3px;
4600
4563
  }
4601
4564
  @media screen and (forced-colors: active) {
@@ -4608,20 +4571,28 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4608
4571
  margin-bottom: 0;
4609
4572
  }
4610
4573
  .jkl-system-message--dismissed {
4611
- animation: jkl-dismiss-uyjs543 400ms forwards;
4612
- transition: block 400ms 400ms;
4574
+ animation: jkl-dismiss-ufcxalc var(--jkl-motion-timing-lazy) forwards;
4575
+ transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4613
4576
  }
4614
4577
  .jkl-system-message--info {
4615
- --background-color: var(--jkl-color-background-alert-info);
4578
+ --background-color: var(--jkl-color-info-background-container);
4579
+ --text-color: var(--jkl-color-info-text-default);
4580
+ --border-color: var(--jkl-color-info-border-subdued);
4616
4581
  }
4617
4582
  .jkl-system-message--warning {
4618
- --background-color: var(--jkl-color-background-alert-warning);
4583
+ --background-color: var(--jkl-color-warning-background-container);
4584
+ --text-color: var(--jkl-color-warning-text-default);
4585
+ --border-color: var(--jkl-color-warning-border-subdued);
4619
4586
  }
4620
4587
  .jkl-system-message--error {
4621
- --background-color: var(--jkl-color-background-alert-error);
4588
+ --background-color: var(--jkl-color-error-background-container);
4589
+ --text-color: var(--jkl-color-error-text-default);
4590
+ --border-color: var(--jkl-color-error-border-subdued);
4622
4591
  }
4623
4592
  .jkl-system-message--success {
4624
- --background-color: var(--jkl-color-background-alert-success);
4593
+ --background-color: var(--jkl-color-success-background-container);
4594
+ --text-color: var(--jkl-color-success-text-default);
4595
+ --border-color: var(--jkl-color-success-border-subdued);
4625
4596
  }
4626
4597
  @media screen and (forced-colors: active) {
4627
4598
  .jkl-system-message {
@@ -4638,7 +4609,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4638
4609
  border-width: 4px;
4639
4610
  }
4640
4611
  }
4641
- @keyframes jkl-dismiss-uyjs543 {
4612
+ @keyframes jkl-dismiss-ufcxalc {
4642
4613
  from {
4643
4614
  opacity: 1;
4644
4615
  transform: translateY(0);
@@ -4675,10 +4646,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4675
4646
  position: relative;
4676
4647
  text-align: left;
4677
4648
  vertical-align: top;
4678
- font-size: var(--jkl-font-size-3);
4679
- line-height: var(--jkl-line-height-tight);
4680
- font-weight: 400;
4681
- --jkl-icon-weight: 300;
4649
+ font: var(--jkl-text-style-text-medium);
4682
4650
  }
4683
4651
  .jkl-table-cell:has(.jkl-button) {
4684
4652
  --jkl-table-cell-padding: var(--jkl-unit-05);
@@ -4713,19 +4681,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4713
4681
  .jkl-table--collapse-to-list .jkl-table-cell[data-th]:not(.jkl-table-cell--expand-without-text)::before {
4714
4682
  content: attr(data-th);
4715
4683
  display: block;
4716
- font-size: var(--jkl-font-size-4);
4717
- line-height: var(--jkl-line-height-tight);
4718
- font-weight: 700;
4719
- --jkl-icon-weight: 400;
4684
+ font: var(--jkl-text-style-heading-5);
4720
4685
  }
4721
4686
  }
4722
4687
  .jkl-table--collapse-to-list[data-collapse] .jkl-table-cell:not(.jkl-table-cell--expand-without-text)::before {
4723
4688
  content: attr(data-th);
4724
4689
  display: block;
4725
- font-size: var(--jkl-font-size-4);
4726
- line-height: var(--jkl-line-height-tight);
4727
- font-weight: 700;
4728
- --jkl-icon-weight: 400;
4690
+ font: var(--jkl-text-style-heading-5);
4729
4691
  }
4730
4692
  @media (min-width: 680px) {
4731
4693
  .jkl-table--collapse-to-list:not([data-collapse]) .jkl-table-cell--expand-without-text .jkl-expand-button__text {
@@ -4745,22 +4707,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4745
4707
  }
4746
4708
  }
4747
4709
  @layer jokul.components {
4748
- @media screen and (prefers-color-scheme: light) {
4749
- :root {
4750
- --jkl-table-head-sticky-color: var(--jkl-background-color);
4751
- }
4752
- }
4753
- [data-theme=light] {
4754
- --jkl-table-head-sticky-color: var(--jkl-background-color);
4755
- }
4756
- @media screen and (prefers-color-scheme: dark) {
4757
- :root {
4758
- --jkl-table-head-sticky-color: var(--jkl-background-color);
4759
- }
4760
- }
4761
- [data-theme=dark] {
4762
- --jkl-table-head-sticky-color: var(--jkl-background-color);
4763
- }
4764
4710
  .jkl-table-head--sr-only {
4765
4711
  border: 0 !important;
4766
4712
  clip: rect(1px, 1px, 1px, 1px) !important; /* 1 */
@@ -4777,9 +4723,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4777
4723
  position: sticky;
4778
4724
  top: var(--jkl-table-head-sticky-offset, 0);
4779
4725
  z-index: 1;
4780
- background-color: var(--jkl-table-head-sticky-color);
4726
+ background-color: var(--jkl-table-head-sticky-color, var(--jkl-color-background-page));
4781
4727
  border-bottom: none;
4782
- box-shadow: inset 0 0 0 #000, inset 0 -0.0625rem 0 var(--jkl-color-border-separator-strong);
4728
+ box-shadow: inset 0 0 0 #000, inset 0 var(--jkl-border-width-1) 0 var(--jkl-color-border-strong);
4783
4729
  background-clip: padding-box;
4784
4730
  vertical-align: bottom;
4785
4731
  height: 2.3em;
@@ -4789,11 +4735,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4789
4735
  .jkl-table-header {
4790
4736
  --jkl-table-header-padding-inline: var(--jkl-unit-15);
4791
4737
  --jkl-table-header-padding-block: var(--jkl-unit-10);
4792
- font-size: var(--jkl-font-size-2);
4793
- line-height: var(--jkl-line-height-tight);
4794
- font-weight: 400;
4795
- --jkl-icon-weight: 300;
4796
- font-weight: 700;
4738
+ font: var(--jkl-text-style-text-small);
4739
+ font-weight: var(--jkl-font-weight-bold);
4797
4740
  padding-block: var(--jkl-table-header-padding-block);
4798
4741
  padding-inline: var(--jkl-table-header-padding-inline);
4799
4742
  text-align: left;
@@ -4806,7 +4749,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4806
4749
  text-align: right;
4807
4750
  }
4808
4751
  .jkl-table-header--bold {
4809
- font-weight: var(--jkl-typography-weight-bold);
4752
+ font-weight: var(--jkl-font-weight-bold);
4810
4753
  }
4811
4754
  .jkl-table-header__arrows {
4812
4755
  display: flex;
@@ -4878,7 +4821,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4878
4821
  flex-direction: column;
4879
4822
  justify-content: center;
4880
4823
  flex-wrap: wrap;
4881
- gap: calc(var(--jkl-unit-base) * 2);
4824
+ gap: var(--jkl-unit-20);
4882
4825
  }
4883
4826
  @media (min-width: 680px) {
4884
4827
  .jkl-table-pagination__nav {
@@ -4946,15 +4889,15 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4946
4889
  }
4947
4890
  .jkl-table-pagination__page--active {
4948
4891
  --jkl-icon-weight: 400;
4949
- font-weight: 700;
4892
+ font-weight: var(--jkl-font-weight-bold);
4950
4893
  letter-spacing: -0.014em;
4951
4894
  }
4952
4895
  }
4953
4896
  @layer jokul.components {
4954
4897
  .jkl-table-row {
4955
- --jkl-table-row-border-color: var(--jkl-color-border-separator);
4898
+ --jkl-table-row-border-color: var(--jkl-color-border-subdued);
4956
4899
  --jkl-table-row-border-none-color: transparent;
4957
- --jkl-table-row-hover-border-color: var(--jkl-color-border-separator-strong);
4900
+ --jkl-table-row-hover-border-color: var(--jkl-color-border-strong);
4958
4901
  --jkl-table-row-highlight-color: var(--jkl-color-background-interactive-selected);
4959
4902
  border-bottom: solid 0.0625rem var(--jkl-table-row-border-color);
4960
4903
  }
@@ -5007,8 +4950,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5007
4950
  }
5008
4951
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable {
5009
4952
  transition-property: border, padding;
5010
- transition-timing-function: ease;
5011
- transition-duration: 150ms;
4953
+ transition-timing-function: var(--jkl-motion-easing-standard);
4954
+ transition-duration: var(--jkl-motion-timing-productive);
5012
4955
  }
5013
4956
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable.jkl-table-row--expanded {
5014
4957
  border-bottom-color: var(--jkl-table-row-border-none-color);
@@ -5027,8 +4970,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5027
4970
  }
5028
4971
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable + tr .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable {
5029
4972
  transition-property: border;
5030
- transition-timing-function: ease;
5031
- transition-duration: 150ms;
4973
+ transition-timing-function: var(--jkl-motion-easing-standard);
4974
+ transition-duration: var(--jkl-motion-timing-productive);
5032
4975
  }
5033
4976
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable + [aria-hidden=false] .jkl-table-row {
5034
4977
  border-top-color: var(--jkl-table-row-border-none-color);
@@ -5088,13 +5031,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5088
5031
  }
5089
5032
  .jkl-expandable-table-row__expanded-row {
5090
5033
  display: none;
5091
- transition-timing-function: ease-in;
5092
- transition-duration: 250ms;
5034
+ transition-timing-function: var(--jkl-motion-easing-exit);
5035
+ transition-duration: var(--jkl-motion-timing-expressive);
5093
5036
  transition-property: height;
5094
5037
  }
5095
5038
  .jkl-expandable-table-row__expanded-row--expanded {
5096
- transition-timing-function: ease-out;
5097
- transition-duration: 400ms;
5039
+ transition-timing-function: var(--jkl-motion-easing-entrance);
5040
+ transition-duration: var(--jkl-motion-timing-lazy);
5098
5041
  display: block;
5099
5042
  }
5100
5043
  }
@@ -5159,16 +5102,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5159
5102
  @layer jokul.components {
5160
5103
  .jkl-table-of-contents {
5161
5104
  --ordered-item-padding: var(--jkl-unit-10);
5162
- --border: 1px solid var(--jkl-color-border-separator);
5105
+ --border: 1px solid var(--jkl-color-border-subdued);
5163
5106
  --text-color: var(--jkl-color-text-default);
5164
5107
  }
5165
5108
  .jkl-table-of-contents .jkl-table-of-contents-title {
5166
5109
  margin-block-end: var(--jkl-unit-05);
5167
- font-size: var(--jkl-font-size-2);
5168
- line-height: var(--jkl-line-height-relaxed);
5169
- font-weight: 400;
5170
- --jkl-icon-weight: 300;
5171
- --jkl-icon-size: 1.2em;
5110
+ font: var(--jkl-text-style-paragraph-small);
5172
5111
  }
5173
5112
  .jkl-table-of-contents .jkl-table-of-contents-item {
5174
5113
  display: flex;
@@ -5220,8 +5159,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5220
5159
  .jkl-table-of-contents ol .jkl-table-of-contents-link {
5221
5160
  padding-inline-end: var(--jkl-unit-20);
5222
5161
  padding-block: var(--ordered-item-padding);
5223
- transition-timing-function: ease;
5224
- transition-duration: 150ms;
5162
+ transition-timing-function: var(--jkl-motion-easing-standard);
5163
+ transition-duration: var(--jkl-motion-timing-productive);
5225
5164
  transition-property: color;
5226
5165
  }
5227
5166
  .jkl-table-of-contents ol .jkl-table-of-contents-link::before {
@@ -5238,8 +5177,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5238
5177
  .jkl-tablist {
5239
5178
  --padding-inline-end: var(--jkl-unit-50);
5240
5179
  --text-color: var(--jkl-color-text-interactive);
5241
- --line-color: var(--jkl-color-border-separator);
5242
- --indicator-color: var(--jkl-color-border-separator-hover);
5180
+ --line-color: var(--jkl-color-border-subdued);
5181
+ --indicator-color: var(--jkl-color-border-default);
5243
5182
  scroll-snap-type: x proximity;
5244
5183
  overflow: scroll hidden;
5245
5184
  scrollbar-width: none;
@@ -5270,16 +5209,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5270
5209
  inset-block-start: calc(anchor(end) - 2px);
5271
5210
  inset-inline-start: calc(anchor(--active-tab start));
5272
5211
  background-color: var(--indicator-color);
5273
- transition-timing-function: ease;
5274
- transition-duration: 400ms;
5212
+ transition-timing-function: var(--jkl-motion-easing-standard);
5213
+ transition-duration: var(--jkl-motion-timing-lazy);
5275
5214
  }
5276
5215
  }
5277
5216
  .jkl-tab {
5278
5217
  --padding-inline-end: var(--jkl-unit-50);
5279
- font-size: var(--jkl-font-size-3);
5280
- line-height: var(--jkl-line-height-tight);
5281
- font-weight: 400;
5282
- --jkl-icon-weight: 300;
5218
+ font: var(--jkl-text-style-text-medium);
5283
5219
  color: var(--text-color);
5284
5220
  padding: var(--jkl-unit-10) var(--padding-inline-end) var(--jkl-unit-10) var(--jkl-unit-05);
5285
5221
  border: none;
@@ -5315,13 +5251,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5315
5251
  --text-color: var(--jkl-color-text-interactive-hover);
5316
5252
  }
5317
5253
  .jkl-tab:focus-visible {
5318
- outline: 3px solid var(--jkl-color-border-action);
5254
+ outline: 3px solid var(--jkl-color-border-strong);
5319
5255
  outline-offset: -2px;
5320
5256
  }
5321
5257
  .jkl-tab[aria-selected=true] {
5322
5258
  anchor-name: --active-tab;
5323
5259
  --jkl-icon-weight: 400;
5324
- font-weight: 700;
5260
+ font-weight: var(--jkl-font-weight-bold);
5325
5261
  letter-spacing: -0.014em;
5326
5262
  }
5327
5263
  @supports not (position-anchor: --active-tab) {
@@ -5336,8 +5272,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5336
5272
  inset-block-end: 0;
5337
5273
  inset-inline-start: 0;
5338
5274
  background-color: var(--indicator-color);
5339
- transition-timing-function: ease;
5340
- transition-duration: 400ms;
5275
+ transition-timing-function: var(--jkl-motion-easing-standard);
5276
+ transition-duration: var(--jkl-motion-timing-lazy);
5341
5277
  }
5342
5278
  }
5343
5279
  }
@@ -5367,11 +5303,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5367
5303
  left: var(--jkl-unit-30);
5368
5304
  }
5369
5305
  .jkl-toast {
5370
- --background-color: var(--jkl-color-background-container-high);
5306
+ --background-color: var(--jkl-color-background-container);
5371
5307
  --text-color: var(--jkl-color-text-default);
5308
+ --border-color: transparent;
5372
5309
  --jkl-toast-padding: var(--jkl-unit-20);
5373
5310
  color: var(--text-color);
5374
5311
  background-color: var(--background-color);
5312
+ border: 1px solid var(--border-color);
5375
5313
  border-radius: 4px;
5376
5314
  box-sizing: border-box;
5377
5315
  align-items: start;
@@ -5379,10 +5317,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5379
5317
  width: clamp(15em, 100%, min(30rem, 85vw));
5380
5318
  padding: var(--jkl-toast-padding);
5381
5319
  position: relative;
5382
- font-size: var(--jkl-font-size-3);
5383
- line-height: var(--jkl-line-height-relaxed);
5384
- font-weight: 400;
5385
- --jkl-icon-weight: 300;
5320
+ font: var(--jkl-text-style-paragraph-medium);
5386
5321
  }
5387
5322
  .jkl-toast__progress {
5388
5323
  --bar-color: var(--text-color);
@@ -5413,10 +5348,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5413
5348
  margin-top: var(--jkl-unit-15);
5414
5349
  }
5415
5350
  .jkl-toast__title {
5416
- font-size: var(--jkl-font-size-4);
5417
- line-height: var(--jkl-line-height-tight);
5418
- font-weight: 700;
5419
- --jkl-icon-weight: 400;
5351
+ font: var(--jkl-text-style-heading-5);
5420
5352
  }
5421
5353
  .jkl-toast__dismiss-button {
5422
5354
  background-color: transparent;
@@ -5443,20 +5375,25 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5443
5375
  position: absolute;
5444
5376
  inset: calc((var(--tap-size) - 100%) / 2 * -1);
5445
5377
  }
5446
- .jkl-toast--info, .jkl-toast--warning, .jkl-toast--error, .jkl-toast--success {
5447
- --text-color: var(--jkl-color-text-on-alert);
5448
- }
5449
5378
  .jkl-toast--info {
5450
- --background-color: var(--jkl-color-background-alert-info);
5379
+ --background-color: var(--jkl-color-info-background-container);
5380
+ --text-color: var(--jkl-color-info-text-default);
5381
+ --border-color: var(--jkl-color-info-border-subdued);
5451
5382
  }
5452
5383
  .jkl-toast--warning {
5453
- --background-color: var(--jkl-color-background-alert-warning);
5384
+ --background-color: var(--jkl-color-warning-background-container);
5385
+ --text-color: var(--jkl-color-warning-text-default);
5386
+ --border-color: var(--jkl-color-warning-border-subdued);
5454
5387
  }
5455
5388
  .jkl-toast--error {
5456
- --background-color: var(--jkl-color-background-alert-error);
5389
+ --background-color: var(--jkl-color-error-background-container);
5390
+ --text-color: var(--jkl-color-error-text-default);
5391
+ --border-color: var(--jkl-color-error-border-subdued);
5457
5392
  }
5458
5393
  .jkl-toast--success {
5459
- --background-color: var(--jkl-color-background-alert-success);
5394
+ --background-color: var(--jkl-color-success-background-container);
5395
+ --text-color: var(--jkl-color-success-text-default);
5396
+ --border-color: var(--jkl-color-success-border-subdued);
5460
5397
  }
5461
5398
  @media screen and (forced-colors: active) {
5462
5399
  .jkl-toast {
@@ -5475,12 +5412,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5475
5412
  }
5476
5413
  .jkl-toast[data-animation=entering],
5477
5414
  .jkl-toast[data-animation=queued] {
5478
- animation: jkl-entering-uyjs54k 200ms ease-out forwards;
5415
+ animation: jkl-entering-ufcxall var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5479
5416
  }
5480
5417
  .jkl-toast[data-animation=exiting] {
5481
- animation: jkl-exiting-uyjs558 150ms ease-in forwards;
5418
+ animation: jkl-exiting-ufcxalu var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5482
5419
  }
5483
- @keyframes jkl-entering-uyjs54k {
5420
+ @keyframes jkl-entering-ufcxall {
5484
5421
  from {
5485
5422
  opacity: 0;
5486
5423
  transform: translate3d(0, 50%, 0);
@@ -5490,7 +5427,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5490
5427
  transform: translate3d(0, 0, 0);
5491
5428
  }
5492
5429
  }
5493
- @keyframes jkl-exiting-uyjs558 {
5430
+ @keyframes jkl-exiting-ufcxalu {
5494
5431
  from {
5495
5432
  opacity: 1;
5496
5433
  transform: translate3d(0, 0, 0);
@@ -6850,12 +6787,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
6850
6787
  }
6851
6788
  }
6852
6789
  .jkl-toggle-slider {
6853
- --jkl-slider-bg: var(--jkl-color-background-container-low);
6854
- --jkl-slider-pill: var(--jkl-color-background-container-high);
6790
+ --jkl-slider-bg: var(--jkl-color-background-page);
6791
+ --jkl-slider-pill: var(--jkl-color-background-container);
6855
6792
  --jkl-slider-text: var(--jkl-color-text-default);
6856
6793
  --jkl-slider-text--active: var(--jkl-color-text-default);
6857
- --jkl-slider-focus-color: var(--jkl-color-border-action);
6858
- --jkl-slider-hover-color: var(--jkl-color-border-action);
6794
+ --jkl-slider-focus-color: var(--jkl-color-border-strong);
6795
+ --jkl-slider-hover-color: var(--jkl-color-border-strong);
6859
6796
  font-size: var(--jkl-slider-font-size);
6860
6797
  line-height: var(--jkl-slider-line-height);
6861
6798
  font-weight: var(--jkl-slider-font-weight);
@@ -6871,7 +6808,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6871
6808
  box-shadow: inset 0 0 0 0.125rem var(--jkl-slider-focus-color);
6872
6809
  }
6873
6810
  .jkl-toggle-slider__legend {
6874
- margin-bottom: 0.5rem;
6811
+ margin-bottom: var(--jkl-spacing-8);
6875
6812
  font-size: var(--jkl-slider-legend-font-size);
6876
6813
  line-height: var(--jkl-slider-legend-line-height);
6877
6814
  font-weight: var(--jkl-slider-legend-font-weight);
@@ -6917,7 +6854,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6917
6854
  }
6918
6855
  .jkl-toggle-slider__label--selected {
6919
6856
  --jkl-icon-weight: 400;
6920
- font-weight: 700;
6857
+ font-weight: var(--jkl-font-weight-bold);
6921
6858
  letter-spacing: -0.014em;
6922
6859
  color: var(--jkl-slider-pill-text--active);
6923
6860
  }
@@ -6927,8 +6864,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6927
6864
  position: absolute;
6928
6865
  transition-property: width, transform;
6929
6866
  border-radius: 6.25rem;
6930
- transition-timing-function: ease;
6931
- transition-duration: 250ms;
6867
+ transition-timing-function: var(--jkl-motion-easing-standard);
6868
+ transition-duration: var(--jkl-motion-timing-expressive);
6932
6869
  }
6933
6870
  @media (min-width: 680px) {
6934
6871
  .jkl-toggle-slider {
@@ -6954,14 +6891,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6954
6891
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6955
6892
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6956
6893
  --border-width: 0.0625rem;
6957
- --switch-padding: 0.25rem;
6894
+ --switch-padding: var(--jkl-unit-05);
6958
6895
  --knob-position: 0;
6959
- --switch-border-color: var(--jkl-color-border-action);
6960
- --indicator-color: var(--jkl-color-background-container-high);
6961
- --knob-border-color: var(--jkl-color-border-action);
6962
- --knob-color: var(--jkl-color-background-container-high);
6896
+ --switch-border-color: var(--jkl-color-border-strong);
6897
+ --indicator-color: var(--jkl-color-background-container);
6898
+ --knob-border-color: var(--jkl-color-border-strong);
6899
+ --knob-color: var(--jkl-color-background-container);
6963
6900
  --text-color: var(--jkl-color-text-default);
6964
- --icon-color: var(--jkl-color-text-inverted);
6901
+ --icon-color: var(--jkl-color-text-on-action);
6965
6902
  background: transparent;
6966
6903
  color: var(--text-color);
6967
6904
  padding: 0;
@@ -6972,10 +6909,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6972
6909
  align-items: center;
6973
6910
  gap: var(--jkl-unit-10);
6974
6911
  touch-action: none;
6975
- font-size: var(--jkl-font-size-3);
6976
- line-height: var(--jkl-line-height-tight);
6977
- font-weight: 400;
6978
- --jkl-icon-weight: 300;
6912
+ font: var(--jkl-text-style-text-medium);
6979
6913
  }
6980
6914
  .jkl-toggle-switch {
6981
6915
  outline: 0;
@@ -7004,8 +6938,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7004
6938
  }
7005
6939
  }
7006
6940
  .jkl-toggle-switch[aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch {
7007
- --indicator-color: var(--jkl-color-background-container-inverted);
7008
- --knob-color: var(--jkl-color-text-inverted);
6941
+ --indicator-color: var(--jkl-color-background-action);
6942
+ --knob-color: var(--jkl-color-text-on-action);
7009
6943
  --knob-position: calc(
7010
6944
  var(--jkl-toggle-switch-width) - var(
7011
6945
  --jkl-toggle-switch-knob-size
@@ -7027,7 +6961,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7027
6961
  --jkl-toggle-switch-height: var(--jkl-unit-40);
7028
6962
  --jkl-toggle-switch-width: var(--jkl-unit-60);
7029
6963
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
7030
- --jkl-toggle-switch-indicator-spacing: 0;
7031
6964
  position: relative;
7032
6965
  box-sizing: border-box;
7033
6966
  display: flex;
@@ -7049,7 +6982,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7049
6982
  }
7050
6983
  }
7051
6984
  .jkl-toggle-switch:focus-visible .jkl-toggle-switch-widget {
7052
- outline: 3px solid var(--jkl-color-border-action);
6985
+ outline: 3px solid var(--jkl-color-border-strong);
7053
6986
  outline-offset: 3px;
7054
6987
  }
7055
6988
  .jkl-toggle-switch-widget__slider {
@@ -7059,8 +6992,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7059
6992
  width: var(--jkl-toggle-switch-knob-size);
7060
6993
  color: var(--icon-color);
7061
6994
  font-size: var(--jkl-font-size-1);
7062
- transition-timing-function: ease;
7063
- transition-duration: 150ms;
6995
+ transition-timing-function: var(--jkl-motion-easing-standard);
6996
+ transition-duration: var(--jkl-motion-timing-productive);
7064
6997
  transition-property: translate;
7065
6998
  translate: var(--knob-position);
7066
6999
  }
@@ -7075,13 +7008,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7075
7008
  position: absolute;
7076
7009
  top: 50%;
7077
7010
  right: 100%;
7078
- margin-right: var(--jkl-toggle-switch-indicator-spacing);
7011
+ font-size: var(--jkl-unit-20);
7079
7012
  transform: translate(0, -50%);
7080
7013
  }
7081
- .jkl-toggle-switch-widget__indicator > .jkl-icon__icon {
7082
- position: absolute;
7083
- inset: 0;
7084
- }
7085
7014
 
7086
7015
  @layer jokul.components {
7087
7016
  .jkl-help {
@@ -7110,8 +7039,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7110
7039
  padding: var(--jkl-unit-30);
7111
7040
  margin: var(--jkl-unit-05);
7112
7041
  position-anchor: --trigger;
7113
- background-color: var(--jkl-color-background-container-inverted);
7114
- color: var(--jkl-color-text-inverted);
7042
+ background-color: var(--jkl-color-background-action);
7043
+ color: var(--jkl-color-text-on-action);
7115
7044
  anchor-name: --help-box;
7116
7045
  }
7117
7046
  .jkl-help-popover[data-position=top] {