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

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 (739) hide show
  1. package/README.md +42 -23
  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/index.d.cts +1 -1
  22. package/build/cjs/components/card/types.cjs +1 -1
  23. package/build/cjs/components/card/types.cjs.map +1 -1
  24. package/build/cjs/components/card/types.d.cts +3 -6
  25. package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
  26. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  27. package/build/cjs/components/checkbox/types.d.cts +1 -1
  28. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  29. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  30. package/build/cjs/components/cookie-consent/CookieConsent.d.cts +1 -1
  31. package/build/cjs/components/cookie-consent/types.d.cts +5 -1
  32. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  33. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  34. package/build/cjs/components/datepicker/types.d.cts +1 -1
  35. package/build/cjs/components/description-list/index.cjs +1 -1
  36. package/build/cjs/components/description-list/index.d.cts +3 -3
  37. package/build/cjs/components/description-list/types.d.cts +1 -1
  38. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  39. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  40. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  41. package/build/cjs/components/feedback/feedbackContext.d.cts +1 -1
  42. package/build/cjs/components/feedback/followup/followupContext.cjs.map +1 -1
  43. package/build/cjs/components/feedback/followup/followupContext.d.cts +1 -1
  44. package/build/cjs/components/feedback/main-question/mainQuestionContext.cjs.map +1 -1
  45. package/build/cjs/components/feedback/main-question/mainQuestionContext.d.cts +1 -1
  46. package/build/cjs/components/feedback/questions/smileyUtils.cjs.map +1 -1
  47. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  48. package/build/cjs/components/file-input/internal/Dropzone.d.cts +1 -1
  49. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  50. package/build/cjs/components/file-input/internal/fileInputContext.d.cts +1 -1
  51. package/build/cjs/components/icon/development/internal/IconsExampleGrid.d.cts +1 -1
  52. package/build/cjs/components/input-group/InputGroup.d.cts +2 -2
  53. package/build/cjs/components/input-group/types.d.cts +1 -1
  54. package/build/cjs/components/link/Link.cjs +1 -1
  55. package/build/cjs/components/link/Link.cjs.map +1 -1
  56. package/build/cjs/components/link/Link.d.cts +2 -2
  57. package/build/cjs/components/link/types.d.cts +1 -4
  58. package/build/cjs/components/link-list/LinkList.d.cts +1 -1
  59. package/build/cjs/components/list/ListItem.cjs.map +1 -1
  60. package/build/cjs/components/list/ListItem.d.cts +1 -1
  61. package/build/cjs/components/logo/types.d.cts +1 -1
  62. package/build/cjs/components/menu/types.d.cts +1 -1
  63. package/build/cjs/components/modal/Modal.cjs +1 -1
  64. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  65. package/build/cjs/components/modal/Modal.d.cts +2 -9
  66. package/build/cjs/components/modal/index.d.cts +1 -1
  67. package/build/cjs/components/modal/types.d.cts +19 -1
  68. package/build/cjs/components/nav-link/index.cjs +1 -1
  69. package/build/cjs/components/nav-link/index.d.cts +2 -2
  70. package/build/cjs/components/popover/Popover.cjs +1 -1
  71. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  72. package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
  73. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  74. package/build/cjs/components/radio-button/radioGroupContext.cjs.map +1 -1
  75. package/build/cjs/components/radio-button/radioGroupContext.d.cts +1 -1
  76. package/build/cjs/components/screen-reader-only/types.d.cts +1 -1
  77. package/build/cjs/components/select/index.cjs +1 -1
  78. package/build/cjs/components/select/index.d.cts +2 -2
  79. package/build/cjs/components/select/types.d.cts +1 -1
  80. package/build/cjs/components/system-message/types.d.cts +1 -1
  81. package/build/cjs/components/table/types.d.cts +1 -1
  82. package/build/cjs/components/table-of-contents/TableOfContents.d.cts +1 -1
  83. package/build/cjs/components/tabs/types.d.cts +1 -1
  84. package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
  85. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  86. package/build/cjs/components/text-area/counter.cjs +2 -0
  87. package/build/cjs/components/text-area/counter.cjs.map +1 -0
  88. package/build/cjs/components/text-area/counter.d.cts +2 -0
  89. package/build/cjs/components/text-area/types.d.cts +21 -1
  90. package/build/cjs/components/toast/types.d.cts +1 -1
  91. package/build/cjs/components/toggle-switch/types.d.cts +1 -1
  92. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  93. package/build/cjs/components/tooltip/Tooltip.d.cts +1 -1
  94. package/build/cjs/components/typography/Text.cjs +2 -0
  95. package/build/cjs/components/typography/Text.cjs.map +1 -0
  96. package/build/cjs/components/typography/Text.d.cts +5 -0
  97. package/build/cjs/components/typography/Title.cjs +2 -0
  98. package/build/cjs/components/typography/Title.cjs.map +1 -0
  99. package/build/cjs/components/typography/Title.d.cts +5 -0
  100. package/build/cjs/components/typography/index.cjs +2 -0
  101. package/build/cjs/components/typography/index.d.cts +3 -0
  102. package/build/cjs/components/typography/types.d.cts +48 -0
  103. package/build/cjs/hooks/useAnimatedHeight/types.d.cts +1 -1
  104. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  105. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  106. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  107. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  108. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  109. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  110. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.d.cts +1 -1
  111. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.d.cts +1 -1
  112. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.cjs.map +1 -1
  113. package/build/cjs/hooks/useBrowserPreferences/useBrowserPreferences.d.cts +1 -1
  114. package/build/cjs/hooks/useScreen/useScreen.cjs +1 -1
  115. package/build/cjs/hooks/useScreen/useScreen.cjs.map +1 -1
  116. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs +1 -1
  117. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs.map +1 -1
  118. package/build/cjs/tailwind/tailwindPreset.cjs +1 -1
  119. package/build/cjs/tailwind/tailwindPreset.cjs.map +1 -1
  120. package/build/cjs/tokens.cjs +2 -0
  121. package/build/cjs/tokens.cjs.map +1 -0
  122. package/build/cjs/tokens.d.cts +228 -0
  123. package/build/cjs/utilities/getThemeAndSize.cjs +1 -1
  124. package/build/cjs/utilities/getThemeAndSize.cjs.map +1 -1
  125. package/build/cjs/utilities/getThemeAndSize.d.cts +1 -1
  126. package/build/cjs/utilities/index.d.cts +1 -0
  127. package/build/cjs/utilities/types.cjs +2 -0
  128. package/build/cjs/utilities/types.cjs.map +1 -0
  129. package/build/cjs/{core → utilities}/types.d.cts +1 -1
  130. package/build/es/components/beta/description-list/DescriptionList.js +2 -0
  131. package/build/es/components/beta/description-list/DescriptionList.js.map +1 -0
  132. package/build/es/components/beta/description-list/DescriptionListItem.js +2 -0
  133. package/build/es/components/beta/description-list/DescriptionListItem.js.map +1 -0
  134. package/build/es/{components-beta → components/beta}/description-list/index.d.ts +2 -2
  135. package/build/es/components/beta/nav-link/NavLink.js +2 -0
  136. package/build/es/components/beta/nav-link/NavLink.js.map +1 -0
  137. package/build/es/components/beta/nav-link/index.d.ts +1 -0
  138. package/build/es/{components-beta → components/beta}/nav-link/types.d.ts +1 -1
  139. package/build/es/components/beta/select/Select.js +2 -0
  140. package/build/es/components/beta/select/Select.js.map +1 -0
  141. package/build/es/components/beta/select/index.d.ts +2 -0
  142. package/build/es/{components-beta → components/beta}/select/types.d.ts +1 -1
  143. package/build/es/components/breadcrumb/types.d.ts +1 -1
  144. package/build/es/components/card/Card.js +1 -1
  145. package/build/es/components/card/Card.js.map +1 -1
  146. package/build/es/components/card/index.d.ts +1 -1
  147. package/build/es/components/card/types.d.ts +3 -6
  148. package/build/es/components/card/types.js +1 -1
  149. package/build/es/components/card/types.js.map +1 -1
  150. package/build/es/components/checkbox/Checkbox.js +1 -1
  151. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  152. package/build/es/components/checkbox/types.d.ts +1 -1
  153. package/build/es/components/cookie-consent/CookieConsent.d.ts +1 -1
  154. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  155. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  156. package/build/es/components/cookie-consent/types.d.ts +5 -1
  157. package/build/es/components/datepicker/DatePicker.js +1 -1
  158. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  159. package/build/es/components/datepicker/types.d.ts +1 -1
  160. package/build/es/components/description-list/index.d.ts +3 -3
  161. package/build/es/components/description-list/index.js +1 -1
  162. package/build/es/components/description-list/types.d.ts +1 -1
  163. package/build/es/components/expander/ExpandablePanel.js +1 -1
  164. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  165. package/build/es/components/feedback/feedbackContext.d.ts +1 -1
  166. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  167. package/build/es/components/feedback/followup/followupContext.d.ts +1 -1
  168. package/build/es/components/feedback/followup/followupContext.js.map +1 -1
  169. package/build/es/components/feedback/main-question/mainQuestionContext.d.ts +1 -1
  170. package/build/es/components/feedback/main-question/mainQuestionContext.js.map +1 -1
  171. package/build/es/components/feedback/questions/smileyUtils.js.map +1 -1
  172. package/build/es/components/file-input/internal/Dropzone.d.ts +1 -1
  173. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  174. package/build/es/components/file-input/internal/fileInputContext.d.ts +1 -1
  175. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  176. package/build/es/components/icon/development/internal/IconsExampleGrid.d.ts +1 -1
  177. package/build/es/components/input-group/InputGroup.d.ts +2 -2
  178. package/build/es/components/input-group/types.d.ts +1 -1
  179. package/build/es/components/link/Link.d.ts +2 -2
  180. package/build/es/components/link/Link.js +1 -1
  181. package/build/es/components/link/Link.js.map +1 -1
  182. package/build/es/components/link/types.d.ts +1 -4
  183. package/build/es/components/link-list/LinkList.d.ts +1 -1
  184. package/build/es/components/list/ListItem.d.ts +1 -1
  185. package/build/es/components/list/ListItem.js.map +1 -1
  186. package/build/es/components/logo/types.d.ts +1 -1
  187. package/build/es/components/menu/types.d.ts +1 -1
  188. package/build/es/components/modal/Modal.d.ts +2 -9
  189. package/build/es/components/modal/Modal.js +1 -1
  190. package/build/es/components/modal/Modal.js.map +1 -1
  191. package/build/es/components/modal/index.d.ts +1 -1
  192. package/build/es/components/modal/types.d.ts +19 -1
  193. package/build/es/components/nav-link/index.d.ts +2 -2
  194. package/build/es/components/nav-link/index.js +1 -1
  195. package/build/es/components/popover/Popover.js +1 -1
  196. package/build/es/components/popover/Popover.js.map +1 -1
  197. package/build/es/components/radio-button/BaseRadioButton.js +1 -1
  198. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  199. package/build/es/components/radio-button/radioGroupContext.d.ts +1 -1
  200. package/build/es/components/radio-button/radioGroupContext.js.map +1 -1
  201. package/build/es/components/screen-reader-only/types.d.ts +1 -1
  202. package/build/es/components/select/index.d.ts +2 -2
  203. package/build/es/components/select/index.js +1 -1
  204. package/build/es/components/select/types.d.ts +1 -1
  205. package/build/es/components/system-message/types.d.ts +1 -1
  206. package/build/es/components/table/types.d.ts +1 -1
  207. package/build/es/components/table-of-contents/TableOfContents.d.ts +1 -1
  208. package/build/es/components/tabs/types.d.ts +1 -1
  209. package/build/es/components/text-area/BaseTextArea.js +1 -1
  210. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  211. package/build/es/components/text-area/counter.d.ts +2 -0
  212. package/build/es/components/text-area/counter.js +2 -0
  213. package/build/es/components/text-area/counter.js.map +1 -0
  214. package/build/es/components/text-area/types.d.ts +21 -1
  215. package/build/es/components/toast/types.d.ts +1 -1
  216. package/build/es/components/toggle-switch/types.d.ts +1 -1
  217. package/build/es/components/tooltip/Tooltip.d.ts +1 -1
  218. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  219. package/build/es/components/typography/Text.d.ts +5 -0
  220. package/build/es/components/typography/Text.js +2 -0
  221. package/build/es/components/typography/Text.js.map +1 -0
  222. package/build/es/components/typography/Title.d.ts +5 -0
  223. package/build/es/components/typography/Title.js +2 -0
  224. package/build/es/components/typography/Title.js.map +1 -0
  225. package/build/es/components/typography/index.d.ts +3 -0
  226. package/build/es/components/typography/index.js +2 -0
  227. package/build/es/components/typography/types.d.ts +48 -0
  228. package/build/es/hooks/useAnimatedHeight/types.d.ts +1 -1
  229. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  230. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  231. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  232. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  233. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.d.ts +1 -1
  234. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  235. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  236. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.d.ts +1 -1
  237. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.d.ts +1 -1
  238. package/build/es/hooks/useBrowserPreferences/useBrowserPreferences.js.map +1 -1
  239. package/build/es/hooks/useScreen/useScreen.js +1 -1
  240. package/build/es/hooks/useScreen/useScreen.js.map +1 -1
  241. package/build/es/tailwind/plugins/jokulTypographyPlugin.js +1 -1
  242. package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
  243. package/build/es/tailwind/tailwindPreset.js +1 -1
  244. package/build/es/tailwind/tailwindPreset.js.map +1 -1
  245. package/build/es/tokens.d.ts +228 -0
  246. package/build/es/tokens.js +2 -0
  247. package/build/es/tokens.js.map +1 -0
  248. package/build/es/utilities/getThemeAndSize.d.ts +1 -1
  249. package/build/es/utilities/getThemeAndSize.js +1 -1
  250. package/build/es/utilities/getThemeAndSize.js.map +1 -1
  251. package/build/es/utilities/index.d.ts +1 -0
  252. package/build/es/{core → utilities}/types.d.ts +1 -1
  253. package/build/es/utilities/types.js +2 -0
  254. package/build/es/utilities/types.js.map +1 -0
  255. package/codemods/__tests__/import-paths.test.mjs +273 -0
  256. package/codemods/import-paths.mjs +527 -0
  257. package/package.json +13 -585
  258. package/src/fonts/InterVariable-Italic.woff2 +0 -0
  259. package/src/fonts/InterVariable.woff2 +0 -0
  260. package/src/fonts/brands/dnb/DNB-Bold.woff2 +0 -0
  261. package/src/fonts/brands/dnb/DNB-Medium.woff2 +0 -0
  262. package/src/fonts/brands/dnb/DNB-Regular.woff2 +0 -0
  263. package/src/fonts/brands/dnb/DNBMono-Regular.woff2 +0 -0
  264. package/src/fonts/brands/eika/OpenSans-Bold.woff2 +0 -0
  265. package/src/fonts/brands/eika/OpenSans-Light.woff2 +0 -0
  266. package/src/fonts/brands/eika/OpenSans-Regular.woff2 +0 -0
  267. package/src/fonts/brands/eika/OpenSans-SemiBold.woff2 +0 -0
  268. package/src/fonts/brands/fremtind/Fremtind-Material-Symbols.woff2 +0 -0
  269. package/src/fonts/brands/fremtind/InterVariable-Italic.woff2 +0 -0
  270. package/src/fonts/brands/fremtind/InterVariable.woff2 +0 -0
  271. package/src/fonts/brands/sparebank1/SpareBank1-Medium-Web.woff2 +0 -0
  272. package/src/fonts/brands/sparebank1/SpareBank1-Regular-Web.woff2 +0 -0
  273. package/src/fonts/brands/sparebank1/SpareBank1-Title-Medium-Web.woff2 +0 -0
  274. package/styles/base.css +2024 -0
  275. package/styles/base.min.css +2 -0
  276. package/styles/components/autosuggest/autosuggest.css +8 -14
  277. package/styles/components/autosuggest/autosuggest.min.css +1 -1
  278. package/styles/components/autosuggest/autosuggest.scss +5 -5
  279. package/styles/{components-beta → components/beta}/description-list/description-list.css +1 -1
  280. package/styles/{components-beta → components/beta}/description-list/description-list.min.css +1 -1
  281. package/styles/{components-beta → components/beta}/description-list/description-list.scss +2 -2
  282. package/styles/{components-beta → components/beta}/nav-link/navlink.css +13 -16
  283. package/styles/components/beta/nav-link/navlink.min.css +1 -0
  284. package/styles/{components-beta → components/beta}/nav-link/navlink.scss +8 -6
  285. package/styles/components/beta/select/_index.scss +3 -0
  286. package/styles/{components-beta → components/beta}/select/select.css +13 -16
  287. package/styles/components/beta/select/select.min.css +1 -0
  288. package/styles/{components-beta → components/beta}/select/select.scss +9 -9
  289. package/styles/components/breadcrumb/breadcrumb.css +1 -1
  290. package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
  291. package/styles/components/breadcrumb/breadcrumb.scss +1 -1
  292. package/styles/components/button/button.css +17 -16
  293. package/styles/components/button/button.min.css +1 -1
  294. package/styles/components/button/button.scss +16 -16
  295. package/styles/components/card/card.css +8 -13
  296. package/styles/components/card/card.min.css +1 -1
  297. package/styles/components/card/card.scss +6 -13
  298. package/styles/components/checkbox/checkbox.css +51 -44
  299. package/styles/components/checkbox/checkbox.min.css +1 -1
  300. package/styles/components/checkbox/checkbox.scss +36 -35
  301. package/styles/components/checkbox-panel/checkbox-panel.css +80 -74
  302. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  303. package/styles/components/checkbox-panel/checkbox-panel.scss +5 -1
  304. package/styles/components/checkbox-panel/development/styles.scss +1 -1
  305. package/styles/components/chip/chip.css +10 -13
  306. package/styles/components/chip/chip.min.css +1 -1
  307. package/styles/components/chip/chip.scss +8 -8
  308. package/styles/components/combobox/combobox.css +37 -47
  309. package/styles/components/combobox/combobox.min.css +1 -1
  310. package/styles/components/combobox/combobox.scss +16 -20
  311. package/styles/components/cookie-consent/cookie-consent.css +1 -5
  312. package/styles/components/cookie-consent/cookie-consent.min.css +1 -1
  313. package/styles/components/cookie-consent/cookie-consent.scss +1 -1
  314. package/styles/components/countdown/countdown.css +4 -4
  315. package/styles/components/countdown/countdown.min.css +1 -1
  316. package/styles/components/datepicker/_calendar-date-button.scss +13 -11
  317. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +3 -3
  318. package/styles/components/datepicker/_calendar-navigation.scss +1 -1
  319. package/styles/components/datepicker/_calendar-table.scss +1 -1
  320. package/styles/components/datepicker/_calendar.scss +7 -8
  321. package/styles/components/datepicker/datepicker.css +28 -32
  322. package/styles/components/datepicker/datepicker.min.css +1 -1
  323. package/styles/components/datepicker/datepicker.scss +1 -1
  324. package/styles/components/description-list/description-list.css +2 -2
  325. package/styles/components/description-list/description-list.min.css +1 -1
  326. package/styles/components/description-list/description-list.scss +3 -3
  327. package/styles/components/expander/expandable.css +24 -21
  328. package/styles/components/expander/expandable.min.css +1 -1
  329. package/styles/components/expander/expandable.scss +21 -21
  330. package/styles/components/feedback/_index.scss +1 -1
  331. package/styles/components/feedback/feedback.css +14 -20
  332. package/styles/components/feedback/feedback.min.css +1 -1
  333. package/styles/components/feedback/feedback.scss +5 -10
  334. package/styles/components/file/file.css +10 -18
  335. package/styles/components/file/file.min.css +1 -1
  336. package/styles/components/file/file.scss +7 -7
  337. package/styles/components/file-input/file-input.css +55 -73
  338. package/styles/components/file-input/file-input.min.css +1 -1
  339. package/styles/components/file-input/file-input.scss +4 -4
  340. package/styles/components/help/help.css +2 -2
  341. package/styles/components/help/help.min.css +1 -1
  342. package/styles/components/help/help.scss +5 -5
  343. package/styles/components/icon/_base-styles.scss +13 -17
  344. package/styles/components/icon/icon.css +14 -35
  345. package/styles/components/icon/icon.min.css +1 -1
  346. package/styles/components/icon/icon.scss +74 -88
  347. package/styles/components/icon-button/icon-button.css +4 -4
  348. package/styles/components/icon-button/icon-button.min.css +1 -1
  349. package/styles/components/icon-button/icon-button.scss +2 -2
  350. package/styles/components/image/image.css +2 -2
  351. package/styles/components/image/image.min.css +1 -1
  352. package/styles/components/image/image.scss +1 -1
  353. package/styles/components/input-group/_field-group.scss +1 -1
  354. package/styles/components/input-group/_labels.scss +1 -1
  355. package/styles/components/input-group/input-group.css +12 -27
  356. package/styles/components/input-group/input-group.min.css +1 -1
  357. package/styles/components/input-group/input-group.scss +1 -1
  358. package/styles/components/input-panel/input-panel.css +26 -30
  359. package/styles/components/input-panel/input-panel.min.css +1 -1
  360. package/styles/components/input-panel/input-panel.scss +23 -22
  361. package/styles/components/link/link.css +8 -9
  362. package/styles/components/link/link.min.css +1 -1
  363. package/styles/components/link/link.scss +1 -2
  364. package/styles/components/link-list/link-list.css +19 -25
  365. package/styles/components/link-list/link-list.min.css +1 -1
  366. package/styles/components/link-list/link-list.scss +8 -4
  367. package/styles/components/list/list.css +6 -27
  368. package/styles/components/list/list.min.css +1 -1
  369. package/styles/components/list/list.scss +11 -15
  370. package/styles/components/loader/loader.css +6 -6
  371. package/styles/components/loader/loader.min.css +1 -1
  372. package/styles/components/loader/loader.scss +1 -1
  373. package/styles/components/loader/skeleton-loader.css +4 -4
  374. package/styles/components/loader/skeleton-loader.min.css +1 -1
  375. package/styles/components/loader/skeleton-loader.scss +2 -2
  376. package/styles/components/logo/logo.css +4 -4
  377. package/styles/components/logo/logo.min.css +1 -1
  378. package/styles/components/logo/logo.scss +1 -1
  379. package/styles/components/menu/_menu-divider.scss +2 -2
  380. package/styles/components/menu/_menu-item.scss +3 -3
  381. package/styles/components/menu/menu.css +10 -25
  382. package/styles/components/menu/menu.min.css +1 -1
  383. package/styles/components/menu/menu.scss +8 -12
  384. package/styles/components/message/message.css +26 -28
  385. package/styles/components/message/message.min.css +1 -1
  386. package/styles/components/message/message.scss +20 -13
  387. package/styles/components/modal/_layout.scss +22 -0
  388. package/styles/components/modal/_modal-base.scss +32 -0
  389. package/styles/components/modal/_motion.scss +45 -0
  390. package/styles/components/modal/_overlay.scss +20 -0
  391. package/styles/components/modal/_parts.scss +33 -0
  392. package/styles/components/modal/_placement.scss +59 -0
  393. package/styles/components/modal/modal.css +120 -42
  394. package/styles/components/modal/modal.min.css +1 -1
  395. package/styles/components/modal/modal.scss +6 -95
  396. package/styles/components/nav-link/nav-link.css +5 -5
  397. package/styles/components/nav-link/nav-link.min.css +1 -1
  398. package/styles/components/nav-link/nav-link.scss +2 -2
  399. package/styles/components/pagination/development/styles.scss +1 -1
  400. package/styles/components/pagination/pagination.css +4 -4
  401. package/styles/components/pagination/pagination.min.css +1 -1
  402. package/styles/components/pagination/pagination.scss +3 -3
  403. package/styles/components/popover/popover.css +17 -18
  404. package/styles/components/popover/popover.min.css +1 -1
  405. package/styles/components/popover/popover.scss +21 -11
  406. package/styles/components/progress-bar/progress-bar.css +29 -5
  407. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  408. package/styles/components/progress-bar/progress-bar.scss +6 -1
  409. package/styles/components/radio-button/radio-button.css +55 -38
  410. package/styles/components/radio-button/radio-button.min.css +1 -1
  411. package/styles/components/radio-button/radio-button.scss +40 -31
  412. package/styles/components/radio-panel/development/styles.scss +1 -1
  413. package/styles/components/radio-panel/radio-panel.css +29 -30
  414. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  415. package/styles/components/radio-panel/radio-panel.scss +5 -1
  416. package/styles/components/search/search-with-submit-button.css +3 -3
  417. package/styles/components/search/search-with-submit-button.min.css +1 -1
  418. package/styles/components/search/search-with-submit-button.scss +2 -2
  419. package/styles/components/search/search.css +12 -18
  420. package/styles/components/search/search.min.css +1 -1
  421. package/styles/components/search/search.scss +4 -4
  422. package/styles/components/segmented-control/segmented-control.css +98 -121
  423. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  424. package/styles/components/segmented-control/segmented-control.scss +8 -8
  425. package/styles/components/select/select.css +29 -39
  426. package/styles/components/select/select.min.css +1 -1
  427. package/styles/components/select/select.scss +25 -31
  428. package/styles/components/summary-table/development/summary-table-example.scss +1 -1
  429. package/styles/components/summary-table/summary-table.css +5 -8
  430. package/styles/components/summary-table/summary-table.min.css +1 -1
  431. package/styles/components/summary-table/summary-table.scss +5 -5
  432. package/styles/components/system-message/system-message.css +25 -18
  433. package/styles/components/system-message/system-message.min.css +1 -1
  434. package/styles/components/system-message/system-message.scss +120 -110
  435. package/styles/components/table/_table-caption.scss +1 -1
  436. package/styles/components/table/_table-cell.scss +1 -1
  437. package/styles/components/table/_table-head.scss +3 -13
  438. package/styles/components/table/_table-header.scss +4 -4
  439. package/styles/components/table/_table-pagination.scss +1 -1
  440. package/styles/components/table/_table-row.scss +6 -4
  441. package/styles/components/table/table.css +23 -49
  442. package/styles/components/table/table.min.css +1 -1
  443. package/styles/components/table/table.scss +1 -1
  444. package/styles/components/table-of-contents/table-of-contents.css +5 -9
  445. package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
  446. package/styles/components/table-of-contents/table-of-contents.scss +4 -4
  447. package/styles/components/tabs/tabs.css +11 -14
  448. package/styles/components/tabs/tabs.min.css +1 -1
  449. package/styles/components/tabs/tabs.scss +6 -7
  450. package/styles/components/tag/tag.css +18 -11
  451. package/styles/components/tag/tag.min.css +1 -1
  452. package/styles/components/tag/tag.scss +20 -9
  453. package/styles/components/text-area/text-area.css +21 -30
  454. package/styles/components/text-area/text-area.min.css +1 -1
  455. package/styles/components/text-area/text-area.scss +1 -1
  456. package/styles/components/text-input/text-input.css +16 -22
  457. package/styles/components/text-input/text-input.min.css +1 -1
  458. package/styles/components/text-input/text-input.scss +2 -3
  459. package/styles/components/toast/toast.css +22 -21
  460. package/styles/components/toast/toast.min.css +1 -1
  461. package/styles/components/toast/toast.scss +20 -20
  462. package/styles/components/toggle-switch/_toggle-slider.scss +5 -5
  463. package/styles/components/toggle-switch/toggle-switch.css +22 -35
  464. package/styles/components/toggle-switch/toggle-switch.min.css +1 -3
  465. package/styles/components/toggle-switch/toggle-switch.scss +11 -23
  466. package/styles/components/tooltip/tooltip.css +9 -13
  467. package/styles/components/tooltip/tooltip.min.css +1 -1
  468. package/styles/components/tooltip/tooltip.scss +6 -6
  469. package/styles/components/typography/_index.scss +2 -0
  470. package/styles/components/typography/text.css +38 -0
  471. package/styles/components/typography/text.min.css +1 -0
  472. package/styles/components/typography/text.scss +54 -0
  473. package/styles/components/typography/title.css +55 -0
  474. package/styles/components/typography/title.min.css +1 -0
  475. package/styles/components/typography/title.scss +59 -0
  476. package/styles/{styles.css → components.css} +945 -939
  477. package/styles/components.min.css +1 -0
  478. package/styles/components.scss +53 -0
  479. package/styles/core/utility/_paragraphs.scss +11 -1
  480. package/styles/{core/global → global}/_base-class.scss +6 -4
  481. package/styles/hooks/stories/styles.scss +7 -9
  482. package/styles/{core/jkl/_theme.scss → jkl/_forced-colors.scss} +0 -49
  483. package/styles/{core/jkl → jkl}/_index.scss +3 -6
  484. package/styles/{core/jkl → jkl}/_motion.scss +8 -26
  485. package/styles/{core/jkl → jkl}/_ornaments.scss +1 -1
  486. package/styles/{core/jkl → jkl}/_reset.scss +2 -2
  487. package/styles/{core/jkl → jkl}/_spacing.scss +1 -6
  488. package/styles/jkl/_tokens.scss +380 -0
  489. package/styles/jkl/_typography.scss +95 -0
  490. package/styles/shared/input/shared-input-styles.scss +12 -16
  491. package/styles/shared/track/track.scss +3 -3
  492. package/styles/tailwind.css +215 -0
  493. package/styles/theme/_color-scheme.scss +131 -0
  494. package/styles/{core/theme → theme}/_dynamic-spacing.scss +7 -3
  495. package/styles/theme/_fonts.scss +97 -0
  496. package/styles/theme/_index.scss +9 -0
  497. package/styles/theme/_size.scss +53 -0
  498. package/styles/theme/_tokens.scss +94 -0
  499. package/styles/theme/brands/dnb/_color-scheme.scss +121 -0
  500. package/styles/theme/brands/dnb/_fonts.scss +46 -0
  501. package/styles/theme/brands/dnb/_index.scss +2 -0
  502. package/styles/theme/brands/eika/_color-scheme.scss +121 -0
  503. package/styles/theme/brands/eika/_fonts.scss +46 -0
  504. package/styles/theme/brands/eika/_index.scss +2 -0
  505. package/styles/theme/brands/fremtind/_color-scheme.scss +121 -0
  506. package/styles/theme/brands/fremtind/_fonts.scss +30 -0
  507. package/styles/theme/brands/fremtind/_index.scss +2 -0
  508. package/styles/theme/brands/sparebank1/_color-scheme.scss +121 -0
  509. package/styles/theme/brands/sparebank1/_fonts.scss +38 -0
  510. package/styles/theme/brands/sparebank1/_index.scss +2 -0
  511. package/styles/utility/_paragraphs.scss +24 -0
  512. package/styles/{core/utility → utility}/_spacing.scss +3 -2
  513. package/build/cjs/components-beta/description-list/DescriptionList.cjs +0 -2
  514. package/build/cjs/components-beta/description-list/DescriptionList.cjs.map +0 -1
  515. package/build/cjs/components-beta/description-list/DescriptionListItem.cjs +0 -2
  516. package/build/cjs/components-beta/description-list/DescriptionListItem.cjs.map +0 -1
  517. package/build/cjs/components-beta/nav-link/NavLink.cjs +0 -2
  518. package/build/cjs/components-beta/nav-link/NavLink.cjs.map +0 -1
  519. package/build/cjs/components-beta/nav-link/index.d.cts +0 -1
  520. package/build/cjs/components-beta/select/Select.cjs +0 -2
  521. package/build/cjs/components-beta/select/Select.cjs.map +0 -1
  522. package/build/cjs/components-beta/select/index.d.cts +0 -2
  523. package/build/cjs/core/index.cjs +0 -2
  524. package/build/cjs/core/index.d.cts +0 -2
  525. package/build/cjs/core/tokens/build-tailwind-4.cjs +0 -2
  526. package/build/cjs/core/tokens/build-tailwind-4.cjs.map +0 -1
  527. package/build/cjs/core/tokens/build-tailwind-4.d.cts +0 -1
  528. package/build/cjs/core/tokens/style-dictionary/build.cjs +0 -2
  529. package/build/cjs/core/tokens/style-dictionary/build.cjs.map +0 -1
  530. package/build/cjs/core/tokens/style-dictionary/build.d.cts +0 -0
  531. package/build/cjs/core/tokens/style-dictionary/config.cjs +0 -2
  532. package/build/cjs/core/tokens/style-dictionary/config.cjs.map +0 -1
  533. package/build/cjs/core/tokens/style-dictionary/config.d.cts +0 -4
  534. package/build/cjs/core/tokens/style-dictionary/filters/index.cjs +0 -2
  535. package/build/cjs/core/tokens/style-dictionary/filters/index.cjs.map +0 -1
  536. package/build/cjs/core/tokens/style-dictionary/filters/index.d.cts +0 -3
  537. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs +0 -2
  538. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.cjs.map +0 -1
  539. package/build/cjs/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.cts +0 -3
  540. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs +0 -2
  541. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.cjs.map +0 -1
  542. package/build/cjs/core/tokens/style-dictionary/formats/css-theme-variables.d.cts +0 -3
  543. package/build/cjs/core/tokens/style-dictionary/formats/index.cjs +0 -2
  544. package/build/cjs/core/tokens/style-dictionary/formats/index.cjs.map +0 -1
  545. package/build/cjs/core/tokens/style-dictionary/formats/index.d.cts +0 -6
  546. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs +0 -2
  547. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.cjs.map +0 -1
  548. package/build/cjs/core/tokens/style-dictionary/formats/javascript-esm.d.cts +0 -3
  549. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs +0 -2
  550. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.cjs.map +0 -1
  551. package/build/cjs/core/tokens/style-dictionary/formats/scss-theme-variables.d.cts +0 -3
  552. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs +0 -2
  553. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.cjs.map +0 -1
  554. package/build/cjs/core/tokens/style-dictionary/formats/tailwindcss-colors.d.cts +0 -3
  555. package/build/cjs/core/tokens/style-dictionary/register.cjs +0 -2
  556. package/build/cjs/core/tokens/style-dictionary/register.cjs.map +0 -1
  557. package/build/cjs/core/tokens/style-dictionary/register.d.cts +0 -1
  558. package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs +0 -2
  559. package/build/cjs/core/tokens/style-dictionary/transforms/index.cjs.map +0 -1
  560. package/build/cjs/core/tokens/style-dictionary/transforms/index.d.cts +0 -2
  561. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs +0 -2
  562. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.cjs.map +0 -1
  563. package/build/cjs/core/tokens/style-dictionary/transforms/strip-light-dark.d.cts +0 -3
  564. package/build/cjs/core/tokens.cjs +0 -2
  565. package/build/cjs/core/tokens.cjs.map +0 -1
  566. package/build/cjs/core/tokens.d.cts +0 -593
  567. package/build/cjs/index.cjs +0 -2
  568. package/build/cjs/index.cjs.map +0 -1
  569. package/build/cjs/index.d.cts +0 -3
  570. package/build/cjs/tailwind/colors.cjs +0 -2
  571. package/build/cjs/tailwind/colors.cjs.map +0 -1
  572. package/build/cjs/tailwind/colors.d.cts +0 -39
  573. package/build/es/components-beta/description-list/DescriptionList.js +0 -2
  574. package/build/es/components-beta/description-list/DescriptionList.js.map +0 -1
  575. package/build/es/components-beta/description-list/DescriptionListItem.js +0 -2
  576. package/build/es/components-beta/description-list/DescriptionListItem.js.map +0 -1
  577. package/build/es/components-beta/nav-link/NavLink.js +0 -2
  578. package/build/es/components-beta/nav-link/NavLink.js.map +0 -1
  579. package/build/es/components-beta/nav-link/index.d.ts +0 -1
  580. package/build/es/components-beta/select/Select.js +0 -2
  581. package/build/es/components-beta/select/Select.js.map +0 -1
  582. package/build/es/components-beta/select/index.d.ts +0 -2
  583. package/build/es/core/index.d.ts +0 -2
  584. package/build/es/core/index.js +0 -2
  585. package/build/es/core/tokens/build-tailwind-4.d.ts +0 -1
  586. package/build/es/core/tokens/build-tailwind-4.js +0 -2
  587. package/build/es/core/tokens/build-tailwind-4.js.map +0 -1
  588. package/build/es/core/tokens/style-dictionary/build.d.ts +0 -0
  589. package/build/es/core/tokens/style-dictionary/build.js +0 -2
  590. package/build/es/core/tokens/style-dictionary/build.js.map +0 -1
  591. package/build/es/core/tokens/style-dictionary/config.d.ts +0 -4
  592. package/build/es/core/tokens/style-dictionary/config.js +0 -2
  593. package/build/es/core/tokens/style-dictionary/config.js.map +0 -1
  594. package/build/es/core/tokens/style-dictionary/filters/index.d.ts +0 -3
  595. package/build/es/core/tokens/style-dictionary/filters/index.js +0 -2
  596. package/build/es/core/tokens/style-dictionary/filters/index.js.map +0 -1
  597. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.d.ts +0 -3
  598. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js +0 -2
  599. package/build/es/core/tokens/style-dictionary/formats/css-dynamic-color-variables.js.map +0 -1
  600. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.d.ts +0 -3
  601. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js +0 -2
  602. package/build/es/core/tokens/style-dictionary/formats/css-theme-variables.js.map +0 -1
  603. package/build/es/core/tokens/style-dictionary/formats/index.d.ts +0 -6
  604. package/build/es/core/tokens/style-dictionary/formats/index.js +0 -2
  605. package/build/es/core/tokens/style-dictionary/formats/index.js.map +0 -1
  606. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.d.ts +0 -3
  607. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js +0 -2
  608. package/build/es/core/tokens/style-dictionary/formats/javascript-esm.js.map +0 -1
  609. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.d.ts +0 -3
  610. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js +0 -2
  611. package/build/es/core/tokens/style-dictionary/formats/scss-theme-variables.js.map +0 -1
  612. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.d.ts +0 -3
  613. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js +0 -2
  614. package/build/es/core/tokens/style-dictionary/formats/tailwindcss-colors.js.map +0 -1
  615. package/build/es/core/tokens/style-dictionary/register.d.ts +0 -1
  616. package/build/es/core/tokens/style-dictionary/register.js +0 -2
  617. package/build/es/core/tokens/style-dictionary/register.js.map +0 -1
  618. package/build/es/core/tokens/style-dictionary/transforms/index.d.ts +0 -2
  619. package/build/es/core/tokens/style-dictionary/transforms/index.js +0 -2
  620. package/build/es/core/tokens/style-dictionary/transforms/index.js.map +0 -1
  621. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.d.ts +0 -3
  622. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js +0 -2
  623. package/build/es/core/tokens/style-dictionary/transforms/strip-light-dark.js.map +0 -1
  624. package/build/es/core/tokens.d.ts +0 -593
  625. package/build/es/core/tokens.js +0 -2
  626. package/build/es/core/tokens.js.map +0 -1
  627. package/build/es/index.d.ts +0 -3
  628. package/build/es/index.js +0 -2
  629. package/build/es/index.js.map +0 -1
  630. package/build/es/tailwind/colors.d.ts +0 -39
  631. package/build/es/tailwind/colors.js +0 -2
  632. package/build/es/tailwind/colors.js.map +0 -1
  633. package/build/index-Ck94bTpt.cjs +0 -2
  634. package/build/index-Ck94bTpt.cjs.map +0 -1
  635. package/build/index-DOHQmuhD.js +0 -2
  636. package/build/index-DOHQmuhD.js.map +0 -1
  637. package/src/fonts/FremtindGrotesk-Bold-Web.woff +0 -0
  638. package/src/fonts/FremtindGrotesk-Bold-Web.woff2 +0 -0
  639. package/src/fonts/FremtindGrotesk-BoldItalic-Web.woff +0 -0
  640. package/src/fonts/FremtindGrotesk-BoldItalic-Web.woff2 +0 -0
  641. package/src/fonts/FremtindGrotesk-Display-Web.woff +0 -0
  642. package/src/fonts/FremtindGrotesk-Display-Web.woff2 +0 -0
  643. package/src/fonts/FremtindGrotesk-Italic-Web.woff +0 -0
  644. package/src/fonts/FremtindGrotesk-Italic-Web.woff2 +0 -0
  645. package/src/fonts/FremtindGrotesk-Regular-Web.woff +0 -0
  646. package/src/fonts/FremtindGrotesk-Regular-Web.woff2 +0 -0
  647. package/src/fonts/FremtindGroteskMono-Regular-Web.woff +0 -0
  648. package/src/fonts/FremtindGroteskMono-Regular-Web.woff2 +0 -0
  649. package/src/fonts/styles/_index.scss +0 -1
  650. package/src/fonts/styles/webfonts.scss +0 -145
  651. package/src/tailwind/v4/jokul-tailwind.css +0 -266
  652. package/styles/components-beta/nav-link/navlink.min.css +0 -1
  653. package/styles/components-beta/select/_index.scss +0 -3
  654. package/styles/components-beta/select/select.min.css +0 -1
  655. package/styles/core/core.css +0 -1731
  656. package/styles/core/core.min.css +0 -2
  657. package/styles/core/jkl/_colors.scss +0 -26
  658. package/styles/core/jkl/_helpers.scss +0 -26
  659. package/styles/core/jkl/_tokens.scss +0 -59
  660. package/styles/core/jkl/_typography.scss +0 -196
  661. package/styles/core/jkl/legacy/_dynamic-colors.scss +0 -40
  662. package/styles/core/jkl/legacy/_index.scss +0 -2
  663. package/styles/core/jkl/legacy/_tokens.scss +0 -742
  664. package/styles/core/theme/_color-tokens.scss +0 -73
  665. package/styles/core/theme/_index.scss +0 -10
  666. package/styles/core/theme/_legacy-color-tokens.scss +0 -81
  667. package/styles/core/theme/_legacy-tokens.scss +0 -279
  668. package/styles/core/theme/_old-vars.scss +0 -21
  669. package/styles/core/theme/_shape.scss +0 -12
  670. package/styles/core/theme/_spacing-tokens.scss +0 -33
  671. package/styles/core/theme/_spacing.scss +0 -64
  672. package/styles/core/theme/_tokens.scss +0 -33
  673. package/styles/core/theme/_typography.scss +0 -38
  674. package/styles/fonts/_index.scss +0 -1
  675. package/styles/fonts/webfonts.css +0 -115
  676. package/styles/fonts/webfonts.min.css +0 -1
  677. package/styles/fonts/webfonts.scss +0 -145
  678. package/styles/styles.min.css +0 -3
  679. package/styles/styles.scss +0 -52
  680. /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionList.d.cts +0 -0
  681. /package/build/cjs/{components-beta → components/beta}/description-list/DescriptionListItem.d.cts +0 -0
  682. /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs +0 -0
  683. /package/build/cjs/{components-beta → components/beta}/description-list/index.cjs.map +0 -0
  684. /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs +0 -0
  685. /package/build/cjs/{components-beta → components/beta}/description-list/types.cjs.map +0 -0
  686. /package/build/cjs/{components-beta → components/beta}/description-list/types.d.cts +0 -0
  687. /package/build/cjs/{components-beta → components/beta}/nav-link/NavLink.d.cts +0 -0
  688. /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs +0 -0
  689. /package/build/cjs/{components-beta → components/beta}/nav-link/index.cjs.map +0 -0
  690. /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs +0 -0
  691. /package/build/cjs/{components-beta → components/beta}/nav-link/types.cjs.map +0 -0
  692. /package/build/cjs/{components-beta → components/beta}/select/Select.d.cts +0 -0
  693. /package/build/cjs/{components-beta → components/beta}/select/index.cjs +0 -0
  694. /package/build/cjs/{components-beta → components/beta}/select/index.cjs.map +0 -0
  695. /package/build/cjs/{components-beta → components/beta}/select/types.cjs +0 -0
  696. /package/build/cjs/{components-beta → components/beta}/select/types.cjs.map +0 -0
  697. /package/build/cjs/{core → components/typography}/index.cjs.map +0 -0
  698. /package/build/cjs/{core → components/typography}/types.cjs +0 -0
  699. /package/build/cjs/{core → components/typography}/types.cjs.map +0 -0
  700. /package/build/es/{components-beta → components/beta}/description-list/DescriptionList.d.ts +0 -0
  701. /package/build/es/{components-beta → components/beta}/description-list/DescriptionListItem.d.ts +0 -0
  702. /package/build/es/{components-beta → components/beta}/description-list/index.js +0 -0
  703. /package/build/es/{components-beta → components/beta}/description-list/index.js.map +0 -0
  704. /package/build/es/{components-beta → components/beta}/description-list/types.d.ts +0 -0
  705. /package/build/es/{components-beta → components/beta}/description-list/types.js +0 -0
  706. /package/build/es/{components-beta → components/beta}/description-list/types.js.map +0 -0
  707. /package/build/es/{components-beta → components/beta}/nav-link/NavLink.d.ts +0 -0
  708. /package/build/es/{components-beta → components/beta}/nav-link/index.js +0 -0
  709. /package/build/es/{components-beta → components/beta}/nav-link/index.js.map +0 -0
  710. /package/build/es/{components-beta → components/beta}/nav-link/types.js +0 -0
  711. /package/build/es/{components-beta → components/beta}/nav-link/types.js.map +0 -0
  712. /package/build/es/{components-beta → components/beta}/select/Select.d.ts +0 -0
  713. /package/build/es/{components-beta → components/beta}/select/index.js +0 -0
  714. /package/build/es/{components-beta → components/beta}/select/index.js.map +0 -0
  715. /package/build/es/{components-beta → components/beta}/select/types.js +0 -0
  716. /package/build/es/{components-beta → components/beta}/select/types.js.map +0 -0
  717. /package/build/es/{core → components/typography}/index.js.map +0 -0
  718. /package/build/es/{core → components/typography}/types.js +0 -0
  719. /package/build/es/{core → components/typography}/types.js.map +0 -0
  720. /package/styles/{core/_layers.scss → _layers.scss} +0 -0
  721. /package/styles/{core/core.scss → base.scss} +0 -0
  722. /package/styles/{components-beta → components/beta}/description-list/_index.scss +0 -0
  723. /package/styles/{components-beta → components/beta}/nav-link/_index.scss +0 -0
  724. /package/styles/{core/global → global}/_index.scss +0 -0
  725. /package/styles/{core/global → global}/_top-layer.scss +0 -0
  726. /package/styles/{core/jkl → jkl}/_convert.scss +0 -0
  727. /package/styles/{core/jkl → jkl}/_navigation.scss +0 -0
  728. /package/styles/{core/jkl → jkl}/_responsive-units.scss +0 -0
  729. /package/styles/{core/jkl → jkl}/_screenreader.scss +0 -0
  730. /package/styles/{core/jkl → jkl}/_screens.scss +0 -0
  731. /package/styles/{core/jkl → jkl}/_shadows.scss +0 -0
  732. /package/styles/{core/jkl → jkl}/_underline.scss +0 -0
  733. /package/styles/{core/jkl → jkl}/_z-index.scss +0 -0
  734. /package/styles/{core/resets → resets}/_index.scss +0 -0
  735. /package/styles/{core/resets → resets}/_normalize.scss +0 -0
  736. /package/styles/{core/resets → resets}/_reset.scss +0 -0
  737. /package/styles/{core/utility → utility}/_headings.scss +0 -0
  738. /package/styles/{core/utility → utility}/_index.scss +0 -0
  739. /package/styles/{core/utility → utility}/_screen-reader.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,19 +46,16 @@
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;
59
53
  border: 0;
60
- background-color: var(--jkl-color-background-interactive);
54
+ background-color: transparent;
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);
@@ -69,13 +63,12 @@
69
63
  }
70
64
  .jkl-autosuggest__item:focus, .jkl-autosuggest__item--active, .jkl-autosuggest__item:hover {
71
65
  color: var(--jkl-color-text-default);
72
- background-color: var(--jkl-color-background-interactive-hover);
66
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
73
67
  }
74
68
  }
75
69
  @layer jokul.components {
76
70
  .jkl-text-input-wrapper {
77
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
78
- var(--jkl-text-input-horizontal-padding);
71
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
79
72
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
80
73
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
81
74
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -83,8 +76,8 @@
83
76
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
84
77
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
85
78
  --text-color: var(--jkl-color-text-default);
86
- --background-color: var(--jkl-color-background-input-base);
87
- --border-color: var(--jkl-color-border-input);
79
+ --background-color: transparent;
80
+ --border-color: var(--jkl-color-border-default);
88
81
  --placeholder-color: var(--jkl-color-text-subdued);
89
82
  border-radius: var(--jkl-border-radius-s);
90
83
  box-sizing: border-box;
@@ -92,27 +85,25 @@
92
85
  position: relative;
93
86
  display: flex;
94
87
  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;
88
+ font: var(--jkl-text-style-text-medium);
89
+ transition-timing-function: var(--jkl-motion-easing-standard);
90
+ transition-duration: var(--jkl-motion-timing-productive);
101
91
  transition-property: color, box-shadow, background-color;
102
92
  background-color: var(--background-color);
103
93
  color: var(--text-color);
104
94
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
105
95
  }
106
96
  .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
107
- --background-color: var(--jkl-color-background-input-focus);
97
+ --background-color: var(--jkl-color-background-container);
108
98
  }
109
99
  .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);
112
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
100
+ --background-color: var(--jkl-color-error-background-container);
101
+ --text-color: var(--jkl-color-error-text-default);
102
+ --border-color: var(--jkl-color-error-border-default);
103
+ --placeholder-color: var(--jkl-color-error-text-subdued);
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) {
@@ -149,7 +140,7 @@
149
140
  width: var(--jkl-text-input-action-button-icon-size);
150
141
  }
151
142
  .jkl-text-input-wrapper > .jkl-text-input-action-button:hover {
152
- color: var(--jkl-color-text-interactive-hover);
143
+ color: var(--jkl-color-text-subdued);
153
144
  }
154
145
  @media screen and (forced-colors: active) {
155
146
  .jkl-text-input-wrapper > .jkl-text-input-action-button:hover {
@@ -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
- 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);
227
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
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-contrast);
248
+ --red-cross-path: var(--jkl-color-error-text-on-contrast);
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-contrast);
260
+ --green-check-path: var(--jkl-color-success-text-on-contrast);
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,11 +357,11 @@
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 {
397
- color: var(--jkl-color-text-interactive-hover);
364
+ color: var(--jkl-color-text-subdued);
398
365
  }
399
366
  @media screen and (forced-colors: active) {
400
367
  .jkl-icon-button {
@@ -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-ujgb841 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-ujgb841 {
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-contrast);
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-contrast);
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;
@@ -611,7 +559,7 @@
611
559
  padding: 0;
612
560
  display: inline-flex;
613
561
  align-items: baseline;
614
- color: var(--jkl-color-text-interactive);
562
+ color: var(--jkl-color-text-default);
615
563
  transform: translateY(min(0.25em, 0.375rem));
616
564
  border-radius: 9999px;
617
565
  }
@@ -636,10 +584,10 @@
636
584
  }
637
585
  }
638
586
  .jkl-tooltip-question-button:hover {
639
- --button-color: var(--jkl-color-text-interactive-hover);
587
+ color: var(--jkl-color-text-subdued);
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
- 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);
662
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
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
  }
@@ -845,8 +793,8 @@
845
793
  --border-radius: 999px;
846
794
  }
847
795
  .jkl-button--primary {
848
- --background-color: var(--jkl-color-background-action);
849
- --text-color: var(--jkl-color-text-on-action);
796
+ --background-color: var(--jkl-color-background-contrast);
797
+ --text-color: var(--jkl-color-text-on-contrast);
850
798
  }
851
799
  @media (forced-colors: active) {
852
800
  .jkl-button--primary {
@@ -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-ujgb84l;
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-ujgb84q;
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-ujgb85q;
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-ujgb84l {
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-ujgb84q {
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-ujgb85q {
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-ujgb86l;
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-ujgb86l;
1023
971
  }
1024
972
  }
1025
- @keyframes jkl-blink-uyjs506 {
973
+ @keyframes jkl-blink-ujgb86l {
1026
974
  0% {
1027
975
  opacity: 1;
1028
976
  }
@@ -1048,10 +996,10 @@
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
- --background-color: transparent;
1002
+ --background-color: var(--jkl-color-background-container);
1055
1003
  position: relative;
1056
1004
  overflow: hidden;
1057
1005
  display: block;
@@ -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,19 @@
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);
1101
- }
1102
1044
  .jkl-card--outlined {
1103
- --border-color: var(--jkl-color-border-separator);
1045
+ --border-color: var(--jkl-color-border-subdued);
1046
+ --background-color: transparent;
1104
1047
  }
1105
1048
  .jkl-card[data-clickable=true] {
1106
1049
  cursor: pointer;
1107
1050
  }
1108
1051
  .jkl-card[data-clickable=true]:hover {
1109
- --border-color: var(--jkl-color-border-separator-hover);
1052
+ --border-color: var(--jkl-color-border-strong);
1110
1053
  --border-width: 0.125rem;
1111
1054
  }
1112
1055
  .jkl-card[data-clickable=true]:focus-visible {
1113
- outline: 3px solid var(--jkl-color-border-action);
1056
+ outline: 3px solid var(--jkl-color-border-strong);
1114
1057
  outline-offset: 3px;
1115
1058
  }
1116
1059
  .jkl-card-image {
@@ -1140,8 +1083,8 @@
1140
1083
  filter: blur(20px);
1141
1084
  }
1142
1085
  .jkl-image__image {
1143
- transition-timing-function: ease;
1144
- transition-duration: 400ms;
1086
+ transition-timing-function: var(--jkl-motion-easing-standard);
1087
+ transition-duration: var(--jkl-motion-timing-lazy);
1145
1088
  transition-property: opacity;
1146
1089
  opacity: 1;
1147
1090
  }
@@ -1161,15 +1104,14 @@
1161
1104
  .jkl-tag {
1162
1105
  --padding: var(--jkl-unit-02) var(--jkl-unit-10);
1163
1106
  --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;
1107
+ --background-color: var(--jkl-color-background-container);
1108
+ --text-color: var(--jkl-color-text-default);
1109
+ --border-color: var(--jkl-color-border-subdued);
1110
+ font: var(--jkl-text-style-text-small);
1111
+ font-weight: var(--jkl-font-weight-bold);
1171
1112
  background-color: var(--background-color);
1172
1113
  color: var(--text-color);
1114
+ border: 1px solid var(--border-color);
1173
1115
  border-radius: 0.25rem;
1174
1116
  display: inline-flex;
1175
1117
  align-items: center;
@@ -1178,16 +1120,24 @@
1178
1120
  gap: var(--gap);
1179
1121
  }
1180
1122
  .jkl-tag--info {
1181
- --background-color: var(--jkl-color-background-alert-info);
1123
+ --background-color: var(--jkl-color-info-background-container);
1124
+ --text-color: var(--jkl-color-info-text-default);
1125
+ --border-color: var(--jkl-color-info-border-subdued);
1182
1126
  }
1183
1127
  .jkl-tag--warning {
1184
- --background-color: var(--jkl-color-background-alert-warning);
1128
+ --background-color: var(--jkl-color-warning-background-container);
1129
+ --text-color: var(--jkl-color-warning-text-default);
1130
+ --border-color: var(--jkl-color-warning-border-subdued);
1185
1131
  }
1186
1132
  .jkl-tag--error {
1187
- --background-color: var(--jkl-color-background-alert-error);
1133
+ --background-color: var(--jkl-color-error-background-container);
1134
+ --text-color: var(--jkl-color-error-text-default);
1135
+ --border-color: var(--jkl-color-error-border-subdued);
1188
1136
  }
1189
1137
  .jkl-tag--success {
1190
- --background-color: var(--jkl-color-background-alert-success);
1138
+ --background-color: var(--jkl-color-success-background-container);
1139
+ --text-color: var(--jkl-color-success-text-default);
1140
+ --border-color: var(--jkl-color-success-border-subdued);
1191
1141
  }
1192
1142
  @media screen and (forced-colors: active) {
1193
1143
  .jkl-tag {
@@ -1210,31 +1160,10 @@
1210
1160
  }
1211
1161
 
1212
1162
  @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
1163
  .jkl-checkbox {
1230
- --box-color: var(--jkl-color-border-action);
1231
- --check-color: var(--jkl-color-border-action);
1232
1164
  --text-color: var(--jkl-color-text-default);
1233
1165
  --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;
1166
+ font: var(--jkl-text-style-text-medium);
1238
1167
  display: flex;
1239
1168
  flex-wrap: wrap;
1240
1169
  color: var(--text-color);
@@ -1242,51 +1171,79 @@
1242
1171
  }
1243
1172
  .jkl-checkbox__input {
1244
1173
  position: absolute;
1245
- opacity: 0;
1246
- pointer-events: none;
1247
- inset: 0 auto 0 0;
1248
- width: 1lh;
1174
+ inset-block-start: 0;
1175
+ inset-inline-start: 0;
1176
+ block-size: 1lh;
1177
+ inline-size: 1lh;
1178
+ margin: 0;
1179
+ padding: 0;
1180
+ cursor: pointer;
1181
+ z-index: 1;
1182
+ appearance: none;
1183
+ background: transparent;
1184
+ border: 0;
1185
+ }
1186
+ .jkl-checkbox__input {
1187
+ outline: 0;
1188
+ border-style: none;
1189
+ outline-style: none;
1190
+ }
1191
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1192
+ outline: 0;
1193
+ outline-style: none;
1194
+ }
1195
+ @media screen and (forced-colors: active) {
1196
+ .jkl-checkbox__input {
1197
+ outline: revert;
1198
+ border-style: revert;
1199
+ outline-style: revert;
1200
+ }
1201
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1202
+ outline: revert;
1203
+ outline-style: revert;
1204
+ }
1249
1205
  }
1250
1206
  .jkl-checkbox__label {
1251
1207
  cursor: pointer;
1252
1208
  display: flex;
1253
- transition-timing-function: ease;
1254
- transition-duration: 150ms;
1209
+ transition-timing-function: var(--jkl-motion-easing-standard);
1210
+ transition-duration: var(--jkl-motion-timing-productive);
1255
1211
  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;
1212
+ font: var(--jkl-text-style-text-medium);
1263
1213
  }
1264
1214
  .jkl-checkbox__label::before {
1265
1215
  content: "check_box_outline_blank";
1266
1216
  margin-inline-end: 0.25em;
1267
- 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);
1217
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1218
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1269
1219
  font-feature-settings: "liga";
1270
1220
  -webkit-font-feature-settings: "liga";
1271
1221
  font-size: 1.3em;
1272
- font-weight: var(--jkl-icon-weight, 300);
1222
+ font-weight: 400;
1273
1223
  line-height: 1;
1274
1224
  display: inline-block;
1275
1225
  -webkit-font-smoothing: antialiased;
1276
- transition-timing-function: ease;
1277
- transition-duration: 75ms;
1226
+ transition-timing-function: var(--jkl-motion-easing-standard);
1227
+ transition-duration: var(--jkl-motion-timing-energetic);
1278
1228
  transition-property: font-variation-settings, transform;
1279
1229
  }
1280
- .jkl-checkbox__label:has(+ :checked)::before {
1230
+ .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1231
+ outline: 3px solid var(--jkl-color-border-strong);
1232
+ outline-offset: 3px;
1233
+ }
1234
+ .jkl-checkbox__input:is(:hover, :active) + .jkl-checkbox__label, .jkl-checkbox__label:hover, .jkl-checkbox__label:active {
1235
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
1236
+ }
1237
+ .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1281
1238
  content: "check_box";
1282
1239
  --jkl-icon-fill: 1;
1283
1240
  }
1284
- .jkl-checkbox__label:has(+ :indeterminate:not(:checked))::before {
1241
+ .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1285
1242
  content: "indeterminate_check_box";
1286
1243
  --jkl-icon-fill: 1;
1287
1244
  }
1288
- .jkl-checkbox__label:has(+ [aria-invalid=true])::before {
1289
- color: var(--jkl-checkbox-error-color);
1245
+ .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
1246
+ color: var(--jkl-color-error-background-contrast);
1290
1247
  }
1291
1248
  .jkl-checkbox + .jkl-checkbox {
1292
1249
  margin-top: 0.75em;
@@ -1300,7 +1257,7 @@
1300
1257
  }
1301
1258
  @layer jokul.components {
1302
1259
  .jkl-input-panel {
1303
- --outer-border-color: var(--jkl-color-border-input);
1260
+ --outer-border-color: var(--jkl-color-border-default);
1304
1261
  --outer-border-thickness: 0.0625rem;
1305
1262
  --background-color: transparent;
1306
1263
  --padding-inline: var(--jkl-unit-25);
@@ -1310,8 +1267,8 @@
1310
1267
  display: flex;
1311
1268
  flex-direction: column;
1312
1269
  interpolate-size: allow-keywords;
1313
- transition-timing-function: ease;
1314
- transition-duration: 150ms;
1270
+ transition-timing-function: var(--jkl-motion-easing-standard);
1271
+ transition-duration: var(--jkl-motion-timing-productive);
1315
1272
  transition-property: box-shadow;
1316
1273
  }
1317
1274
  .jkl-input-panel__header {
@@ -1323,28 +1280,27 @@
1323
1280
  position: relative;
1324
1281
  padding: var(--jkl-unit-20) var(--padding-inline);
1325
1282
  }
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
1283
  .jkl-input-panel__header .jkl-radio-button,
1338
1284
  .jkl-input-panel__header .jkl-checkbox {
1339
- position: unset;
1285
+ grid-column: 1/-1;
1286
+ grid-row: 1;
1287
+ inline-size: 100%;
1340
1288
  }
1341
- .jkl-input-panel__header label::after {
1342
- content: "";
1343
- position: absolute;
1344
- top: 0;
1345
- left: 0;
1289
+ .jkl-input-panel__header label {
1346
1290
  inline-size: 100%;
1347
- block-size: 100%;
1291
+ }
1292
+ .jkl-input-panel__header__amount {
1293
+ display: flex;
1294
+ height: 100%;
1295
+ align-items: center;
1296
+ grid-column: 2;
1297
+ grid-row: 1;
1298
+ justify-self: end;
1299
+ pointer-events: none;
1300
+ position: relative;
1301
+ z-index: 1;
1302
+ font: var(--jkl-text-style-text-medium);
1303
+ font-weight: var(--jkl-font-weight-bold);
1348
1304
  }
1349
1305
  .jkl-input-panel__description {
1350
1306
  height: 0;
@@ -1352,27 +1308,24 @@
1352
1308
  padding-inline: var(--padding-inline);
1353
1309
  padding-block-end: var(--jkl-spacing-none);
1354
1310
  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;
1311
+ font: var(--jkl-text-style-paragraph-medium);
1312
+ transition-timing-function: var(--jkl-motion-easing-standard);
1313
+ transition-duration: var(--jkl-motion-timing-productive);
1361
1314
  transition-property: height;
1362
1315
  }
1363
1316
  .jkl-input-panel:has(:focus-visible) {
1364
- outline: 3px solid var(--jkl-color-border-action);
1317
+ outline: 3px solid var(--jkl-color-border-strong);
1365
1318
  outline-offset: 3px;
1366
1319
  }
1367
1320
  .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);
1321
+ --background-color: var(--jkl-color-background-container);
1369
1322
  }
1370
1323
  .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
1324
  height: auto;
1372
1325
  padding-block-end: var(--jkl-unit-20);
1373
1326
  }
1374
1327
  .jkl-input-panel:has(input:hover) {
1375
- --outer-border-color: var(--jkl-color-border-separator-hover);
1328
+ --outer-border-color: var(--jkl-color-border-strong);
1376
1329
  --outer-border-thickness: 0.125rem;
1377
1330
  cursor: pointer;
1378
1331
  }
@@ -1382,6 +1335,9 @@
1382
1335
  /* Visuell justering ettersom ikonet ikke fyller bounding box helt */
1383
1336
  margin-inline-start: -0.1em;
1384
1337
  }
1338
+ .jkl-checkbox-panel .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1339
+ outline: none;
1340
+ }
1385
1341
  }
1386
1342
  .jkl-chip {
1387
1343
  --padding-inline: var(--jkl-unit-15);
@@ -1389,14 +1345,11 @@
1389
1345
  --height: var(--jkl-unit-40);
1390
1346
  --gap: var(--jkl-unit-05);
1391
1347
  --text-color: var(--jkl-color-text-default);
1392
- --border-color: var(--jkl-color-border-separator);
1393
- --background-color: transparent;
1348
+ --border-color: var(--jkl-color-border-subdued);
1349
+ --background-color: var(--jkl-color-background-container);
1394
1350
  --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;
1351
+ font: var(--jkl-text-style-text-small);
1352
+ font-weight: var(--jkl-font-weight-bold);
1400
1353
  cursor: pointer;
1401
1354
  position: relative;
1402
1355
  background-color: var(--background-color);
@@ -1424,21 +1377,21 @@
1424
1377
  inset: 0;
1425
1378
  border-radius: inherit;
1426
1379
  background-color: var(--text-color);
1427
- transition-timing-function: ease;
1428
- transition-duration: 150ms;
1380
+ transition-timing-function: var(--jkl-motion-easing-standard);
1381
+ transition-duration: var(--jkl-motion-timing-productive);
1429
1382
  transition-property: opacity;
1430
1383
  }
1431
1384
  .jkl-chip:focus-visible {
1432
- outline: 3px solid var(--jkl-color-border-action);
1385
+ outline: 3px solid var(--jkl-color-border-strong);
1433
1386
  outline-offset: 3px;
1434
1387
  }
1435
1388
  .jkl-chip:hover::after {
1436
1389
  opacity: 0.15;
1437
1390
  }
1438
1391
  .jkl-chip--filter[aria-pressed=true] {
1439
- --background-color: var(--jkl-color-background-action);
1440
- --text-color: var(--jkl-color-text-on-action);
1441
- --border-color: var(--text-color);
1392
+ --background-color: var(--jkl-color-background-contrast);
1393
+ --text-color: var(--jkl-color-text-on-contrast);
1394
+ --border-color: var(--jkl-color-border-strong);
1442
1395
  }
1443
1396
  @media screen and (forced-colors: active) {
1444
1397
  .jkl-chip--filter[aria-pressed=true] {
@@ -1454,8 +1407,7 @@
1454
1407
  @layer jokul.components {
1455
1408
  .jkl-combobox {
1456
1409
  --jkl-combobox-button-padding: var(--jkl-unit-10);
1457
- --jkl-combobox-button-active-value-padding: var(--jkl-unit-10)
1458
- var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1410
+ --jkl-combobox-button-active-value-padding: var(--jkl-unit-10) var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1459
1411
  --jkl-combobox-input-height: 3rem;
1460
1412
  --jkl-combobox-actions-right: var(--jkl-unit-10);
1461
1413
  --jkl-combobox-actions-top: var(--jkl-unit-05);
@@ -1503,8 +1455,7 @@
1503
1455
  display: flex;
1504
1456
  gap: 1ch;
1505
1457
  cursor: pointer;
1506
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
1507
- var(--jkl-text-input-horizontal-padding);
1458
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
1508
1459
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
1509
1460
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
1510
1461
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -1512,8 +1463,8 @@
1512
1463
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
1513
1464
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
1514
1465
  --text-color: var(--jkl-color-text-default);
1515
- --background-color: var(--jkl-color-background-input-base);
1516
- --border-color: var(--jkl-color-border-input);
1466
+ --background-color: transparent;
1467
+ --border-color: var(--jkl-color-border-default);
1517
1468
  --placeholder-color: var(--jkl-color-text-subdued);
1518
1469
  border-radius: var(--jkl-border-radius-s);
1519
1470
  box-sizing: border-box;
@@ -1521,27 +1472,25 @@
1521
1472
  position: relative;
1522
1473
  display: flex;
1523
1474
  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;
1475
+ font: var(--jkl-text-style-text-medium);
1476
+ transition-timing-function: var(--jkl-motion-easing-standard);
1477
+ transition-duration: var(--jkl-motion-timing-productive);
1530
1478
  transition-property: color, box-shadow, background-color;
1531
1479
  background-color: var(--background-color);
1532
1480
  color: var(--text-color);
1533
1481
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
1534
1482
  }
1535
1483
  .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1536
- --background-color: var(--jkl-color-background-input-focus);
1484
+ --background-color: var(--jkl-color-background-container);
1537
1485
  }
1538
1486
  .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);
1541
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
1487
+ --background-color: var(--jkl-color-error-background-container);
1488
+ --text-color: var(--jkl-color-error-text-default);
1489
+ --border-color: var(--jkl-color-error-border-default);
1490
+ --placeholder-color: var(--jkl-color-error-text-subdued);
1542
1491
  }
1543
1492
  .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);
1493
+ --border-color: var(--jkl-color-border-strong);
1545
1494
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
1546
1495
  }
1547
1496
  @media screen and (forced-colors: active) {
@@ -1550,11 +1499,11 @@
1550
1499
  }
1551
1500
  }
1552
1501
  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);
1502
+ outline: 3px solid var(--jkl-color-border-strong);
1554
1503
  outline-offset: 3px;
1555
1504
  }
1556
1505
  .jkl-combobox__wrapper > .jkl-icon-button:focus-visible {
1557
- outline: 3px solid var(--jkl-color-border-action);
1506
+ outline: 3px solid var(--jkl-color-border-strong);
1558
1507
  outline-offset: -8px;
1559
1508
  }
1560
1509
  @media screen and (forced-colors: active) {
@@ -1578,7 +1527,7 @@
1578
1527
  width: var(--jkl-text-input-action-button-icon-size);
1579
1528
  }
1580
1529
  .jkl-combobox__wrapper > .jkl-text-input-action-button:hover {
1581
- color: var(--jkl-color-text-interactive-hover);
1530
+ color: var(--jkl-color-text-subdued);
1582
1531
  }
1583
1532
  @media screen and (forced-colors: active) {
1584
1533
  .jkl-combobox__wrapper > .jkl-text-input-action-button:hover {
@@ -1597,9 +1546,9 @@
1597
1546
  padding: 0.46875rem;
1598
1547
  }
1599
1548
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(:focus-visible) {
1600
- outline: 3px solid var(--jkl-color-border-action);
1549
+ outline: 3px solid var(--jkl-color-border-strong);
1601
1550
  outline-offset: 3px;
1602
- background-color: var(--jkl-color-background-input-focus);
1551
+ background-color: var(--jkl-color-background-container);
1603
1552
  }
1604
1553
  .jkl-combobox__wrapper:has(.jkl-icon-button:focus-visible) {
1605
1554
  outline: none;
@@ -1612,14 +1561,12 @@
1612
1561
  outline: none;
1613
1562
  padding: 0;
1614
1563
  flex: 1 1 1ch;
1564
+ min-width: 0;
1615
1565
  max-height: var(--jkl-combobox-search-input-height);
1616
1566
  background: none;
1617
1567
  -webkit-appearance: none;
1618
1568
  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;
1569
+ font: var(--jkl-text-style-text-medium);
1623
1570
  }
1624
1571
  .jkl-combobox__search-input {
1625
1572
  outline: 0;
@@ -1664,8 +1611,8 @@
1664
1611
  .jkl-combobox__arrow {
1665
1612
  pointer-events: none;
1666
1613
  transform: translateY(-50%);
1667
- transition-timing-function: ease;
1668
- transition-duration: 150ms;
1614
+ transition-timing-function: var(--jkl-motion-easing-standard);
1615
+ transition-duration: var(--jkl-motion-timing-productive);
1669
1616
  transition-property: transform, color;
1670
1617
  }
1671
1618
  @media screen and (forced-colors: active) {
@@ -1679,8 +1626,8 @@
1679
1626
  }
1680
1627
  }
1681
1628
  .jkl-combobox__menu {
1682
- transition-timing-function: ease;
1683
- transition-duration: 150ms;
1629
+ transition-timing-function: var(--jkl-motion-easing-standard);
1630
+ transition-duration: var(--jkl-motion-timing-productive);
1684
1631
  transition-property: height;
1685
1632
  top: calc(100% - 1px);
1686
1633
  overflow-y: auto;
@@ -1688,24 +1635,21 @@
1688
1635
  z-index: 7000;
1689
1636
  left: -0.0625rem;
1690
1637
  right: -0.0625rem;
1691
- background-color: var(--jkl-color-background-container-high);
1692
- border: 0.125rem solid var(--jkl-color-border-input-focus);
1638
+ background-color: var(--jkl-color-background-container);
1639
+ border: 0.125rem solid var(--jkl-color-border-strong);
1693
1640
  border-radius: 0 0 0.1875rem 0.1875rem;
1694
1641
  box-sizing: border-box;
1695
1642
  max-height: calc((var(--jkl-combobox-max-shown-options, 5) + 0.5) * var(--jkl-combobox-input-height));
1696
1643
  }
1697
1644
  .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;
1645
+ font: var(--jkl-text-style-text-small);
1646
+ transition-timing-function: var(--jkl-motion-easing-standard);
1647
+ transition-duration: var(--jkl-motion-timing-productive);
1704
1648
  display: flex;
1705
1649
  align-items: center;
1706
1650
  border: 0;
1707
1651
  color: var(--jkl-color-text-default);
1708
- background-color: var(--jkl-color-background-interactive);
1652
+ background-color: transparent;
1709
1653
  transition-property: color, background-color;
1710
1654
  cursor: pointer;
1711
1655
  padding: var(--jkl-combobox-option-padding);
@@ -1714,13 +1658,10 @@
1714
1658
  line-height: var(--jkl-combobox-option-line-height);
1715
1659
  }
1716
1660
  .jkl-combobox__option:focus, .jkl-combobox__option:hover {
1717
- background-color: var(--jkl-color-background-interactive-hover);
1661
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
1718
1662
  }
1719
1663
  .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;
1664
+ font: var(--jkl-text-style-text-small);
1724
1665
  color: var(--jkl-color-text-subdued);
1725
1666
  display: block;
1726
1667
  width: 100%;
@@ -1733,10 +1674,12 @@
1733
1674
  }
1734
1675
  .jkl-combobox__chips {
1735
1676
  display: flex;
1677
+ flex: 1 1 auto;
1736
1678
  flex-wrap: wrap;
1737
1679
  align-items: center;
1738
1680
  gap: var(--jkl-combobox-chips-gap);
1739
- width: 100%;
1681
+ min-width: 0;
1682
+ box-sizing: border-box;
1740
1683
  padding: var(--jkl-text-input-padding);
1741
1684
  }
1742
1685
  .jkl-combobox__chips .jkl-chip {
@@ -1747,12 +1690,12 @@
1747
1690
  }
1748
1691
  .jkl-combobox--invalid .jkl-combobox__search-input,
1749
1692
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1750
- background-color: var(--jkl-color-background-alert-error);
1693
+ background-color: var(--jkl-color-error-background-container);
1751
1694
  }
1752
1695
  .jkl-combobox--invalid .jkl-combobox__search-input,
1753
1696
  .jkl-combobox--invalid .jkl-combobox__button,
1754
1697
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1755
- color: var(--jkl-color-text-on-alert);
1698
+ color: var(--jkl-color-error-text-default);
1756
1699
  }
1757
1700
  .jkl-combobox--menu-closed .jkl-combobox__search-input {
1758
1701
  position: absolute;
@@ -1786,46 +1729,21 @@
1786
1729
  transition: 0.2s;
1787
1730
  }
1788
1731
  .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;
1732
+ font: var(--jkl-text-style-paragraph-small);
1794
1733
  }
1795
1734
  .jkl-cookie-consent-modal__checkbox {
1796
1735
  margin-bottom: var(--jkl-unit-10);
1797
1736
  margin-top: var(--jkl-unit-30);
1798
1737
  }
1799
1738
  }
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
1739
  @layer jokul.components {
1828
1740
  .jkl-list {
1741
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1742
+ --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");
1743
+ --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"));
1744
+ --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");
1745
+ --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"));
1746
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1829
1747
  --list-text-color: var(--jkl-color-text-default);
1830
1748
  list-style-type: "•";
1831
1749
  padding-left: var(--jkl-unit-20);
@@ -1891,6 +1809,7 @@
1891
1809
  }
1892
1810
  }
1893
1811
  @layer jokul.components {
1812
+ /* Base layout */
1894
1813
  .jkl-modal-container,
1895
1814
  .jkl-modal-overlay {
1896
1815
  position: fixed;
@@ -1899,29 +1818,46 @@
1899
1818
  .jkl-modal-container {
1900
1819
  z-index: 9000;
1901
1820
  display: flex;
1821
+ align-items: center;
1822
+ justify-content: center;
1902
1823
  }
1903
1824
  .jkl-modal-container[aria-hidden=true] {
1904
- display: none;
1825
+ visibility: hidden;
1826
+ pointer-events: none;
1905
1827
  }
1828
+ }
1829
+ @layer jokul.components {
1906
1830
  .jkl-modal-overlay {
1907
1831
  background-color: rgba(27, 25, 23, 0.8);
1832
+ opacity: 0;
1833
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1834
+ transition-duration: var(--jkl-motion-timing-expressive);
1835
+ transition-property: opacity;
1836
+ }
1837
+ .jkl-modal-container:not([aria-hidden=true]) .jkl-modal-overlay {
1838
+ opacity: 1;
1908
1839
  }
1840
+ @media (prefers-reduced-motion: reduce) {
1841
+ .jkl-modal-overlay {
1842
+ transition-duration: 0ms;
1843
+ }
1844
+ }
1845
+ }
1846
+ @layer jokul.components {
1909
1847
  .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;
1848
+ --margin: var(--jkl-spacing-m);
1849
+ container-type: inline-size;
1850
+ box-sizing: border-box;
1851
+ margin: var(--margin);
1852
+ padding: var(--modal-padding, var(--jkl-unit-40));
1914
1853
  z-index: 9000;
1915
- position: relative;
1916
- background-color: var(--jkl-color-background-container-high);
1917
- border-radius: 0.125rem;
1854
+ background-color: var(--jkl-color-background-container);
1855
+ border-radius: var(--jkl-border-radius-l);
1918
1856
  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);
1857
+ width: min(100vw - 2 * var(--margin), var(--modal-width, 60ch));
1858
+ max-width: none;
1922
1859
  max-height: 90vh;
1923
1860
  overflow: auto;
1924
- padding: var(--jkl-modal-padding);
1925
1861
  display: flex;
1926
1862
  flex-direction: column;
1927
1863
  }
@@ -1930,54 +1866,114 @@
1930
1866
  border-color: CanvasText;
1931
1867
  }
1932
1868
  }
1933
- @media (width >= 0) and (max-width: 679px) {
1934
- .jkl-modal {
1935
- margin: auto var(--jkl-unit-30);
1936
- }
1869
+ }
1870
+ @layer jokul.components {
1871
+ .jkl-modal-container--slide-in {
1872
+ --jkl-modal-slide-x: 0px;
1873
+ --jkl-modal-slide-y: 12px;
1874
+ transition-timing-function: var(--jkl-motion-easing-exit);
1875
+ transition-duration: var(--jkl-motion-timing-expressive);
1876
+ transition-property: visibility;
1877
+ transition-duration: 0ms;
1878
+ }
1879
+ .jkl-modal-container--slide-in[aria-hidden=true] {
1880
+ display: flex;
1881
+ visibility: hidden;
1882
+ pointer-events: none;
1883
+ transition-delay: var(--jkl-motion-timing-expressive);
1937
1884
  }
1938
- .jkl-modal-header {
1939
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1885
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) {
1886
+ visibility: visible;
1887
+ transition-delay: 0ms;
1940
1888
  }
1941
- @media (width >= 0) and (max-width: 679px) {
1942
- .jkl-modal-header {
1943
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-15);
1889
+ .jkl-modal-container--slide-in .jkl-modal {
1890
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1891
+ transition-duration: var(--jkl-motion-timing-expressive);
1892
+ transition-property: transform, opacity;
1893
+ transform: translate(var(--jkl-modal-slide-x), var(--jkl-modal-slide-y));
1894
+ opacity: 0;
1895
+ will-change: transform, opacity;
1896
+ }
1897
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) .jkl-modal {
1898
+ transform: translate(0, 0);
1899
+ opacity: 1;
1900
+ }
1901
+ @media (prefers-reduced-motion: reduce) {
1902
+ .jkl-modal-container--slide-in .jkl-modal {
1903
+ transition-duration: 0ms;
1944
1904
  }
1945
1905
  }
1906
+ }
1907
+ @layer jokul.components {
1908
+ /* Placement: bottom */
1909
+ .jkl-modal-container--placement-bottom {
1910
+ align-items: flex-end;
1911
+ }
1912
+ .jkl-modal-container--placement-bottom.jkl-modal-container--slide-in {
1913
+ --jkl-modal-slide-x: 0px;
1914
+ --jkl-modal-slide-y: 24px;
1915
+ }
1916
+ .jkl-modal-container--placement-bottom .jkl-modal {
1917
+ --margin: 0px;
1918
+ width: min(100vw, var(--modal-width, 100vw));
1919
+ border-bottom-left-radius: 0;
1920
+ border-bottom-right-radius: 0;
1921
+ }
1922
+ /* Placement: left */
1923
+ .jkl-modal-container--placement-left {
1924
+ justify-content: flex-start;
1925
+ }
1926
+ .jkl-modal-container--placement-left.jkl-modal-container--slide-in {
1927
+ --jkl-modal-slide-x: -24px;
1928
+ --jkl-modal-slide-y: 0px;
1929
+ }
1930
+ .jkl-modal-container--placement-left .jkl-modal {
1931
+ height: 100%;
1932
+ max-height: 100%;
1933
+ margin-block: 0;
1934
+ margin-inline-start: 0;
1935
+ border-top-left-radius: 0;
1936
+ border-bottom-left-radius: 0;
1937
+ }
1938
+ /* Placement: right */
1939
+ .jkl-modal-container--placement-right {
1940
+ justify-content: flex-end;
1941
+ }
1942
+ .jkl-modal-container--placement-right.jkl-modal-container--slide-in {
1943
+ --jkl-modal-slide-x: 24px;
1944
+ --jkl-modal-slide-y: 0px;
1945
+ }
1946
+ .jkl-modal-container--placement-right .jkl-modal {
1947
+ height: 100%;
1948
+ max-height: 100%;
1949
+ margin-block: 0;
1950
+ margin-inline-end: 0;
1951
+ border-top-right-radius: 0;
1952
+ border-bottom-right-radius: 0;
1953
+ }
1954
+ }
1955
+ @layer jokul.components {
1946
1956
  .jkl-modal-header {
1957
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1947
1958
  display: flex;
1948
1959
  flex-direction: row;
1949
1960
  justify-content: space-between;
1950
1961
  align-items: center;
1951
1962
  margin: var(--jkl-modal-header-margin);
1952
- gap: var(--jkl-modal-gap);
1953
1963
  }
1954
1964
  .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;
1965
+ font: var(--jkl-text-style-paragraph-medium);
1959
1966
  }
1960
1967
  .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;
1968
+ font: var(--jkl-text-style-heading-3);
1965
1969
  }
1966
1970
  .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
- }
1973
- }
1974
- .jkl-modal-actions {
1975
- margin: var(--jkl-modal-actions-margin);
1971
+ margin-block-start: var(--jkl-unit-50);
1976
1972
  display: flex;
1977
1973
  flex-direction: column;
1978
- gap: var(--jkl-unit-20);
1974
+ gap: var(--jkl-unit-15) var(--jkl-unit-20);
1979
1975
  }
1980
- @media (min-width: 60ch) {
1976
+ @container (width > 35ch /* ~380px ved vanlig zoom/size */) {
1981
1977
  .jkl-modal-actions {
1982
1978
  flex-direction: row-reverse;
1983
1979
  align-self: flex-end;
@@ -1986,8 +1982,8 @@
1986
1982
  }
1987
1983
  @layer jokul.components {
1988
1984
  .jkl-countdown {
1989
- --track-color: var(--jkl-color-border-separator);
1990
- --bar-color: var(--jkl-color-border-input-focus);
1985
+ --track-color: var(--jkl-color-border-subdued);
1986
+ --bar-color: var(--jkl-color-border-strong);
1991
1987
  --bar-height: 0.25rem;
1992
1988
  background-color: var(--track-color);
1993
1989
  border-radius: 6.25rem;
@@ -2009,10 +2005,10 @@
2009
2005
  }
2010
2006
  }
2011
2007
  .jkl-countdown__tracker {
2012
- animation: jkl-downcount-uyjs51b var(--duration) linear forwards;
2008
+ animation: jkl-downcount-ujgb884 var(--duration) linear forwards;
2013
2009
  animation-play-state: var(--play-state, running);
2014
2010
  }
2015
- @keyframes jkl-downcount-uyjs51b {
2011
+ @keyframes jkl-downcount-ujgb884 {
2016
2012
  from {
2017
2013
  width: 100%;
2018
2014
  }
@@ -2022,14 +2018,18 @@
2022
2018
  }
2023
2019
  }
2024
2020
  @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
2021
  .jkl-calendar {
2029
2022
  --jkl-calendar-padding: var(--jkl-unit-15) var(--jkl-unit-20) var(--jkl-unit-20);
2030
2023
  --jkl-calendar-gap: var(--jkl-unit-15);
2024
+ }
2025
+ @media (width >= 0) and (max-width: 374px) {
2026
+ .jkl-calendar {
2027
+ --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
2028
+ }
2029
+ }
2030
+ .jkl-calendar {
2031
2031
  display: block;
2032
- background-color: var(--jkl-color-background-container-high);
2032
+ background-color: var(--jkl-color-background-container);
2033
2033
  color: var(--jkl-color);
2034
2034
  }
2035
2035
  .jkl-calendar__padding {
@@ -2067,11 +2067,8 @@
2067
2067
  }
2068
2068
  .jkl-calendar-navigation-dropdown__select {
2069
2069
  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;
2070
+ font: var(--jkl-text-style-text-small);
2071
+ font-weight: var(--jkl-font-weight-bold);
2075
2072
  background-color: transparent;
2076
2073
  color: inherit;
2077
2074
  border-radius: 0;
@@ -2105,11 +2102,11 @@
2105
2102
  }
2106
2103
  .jkl-calendar-navigation-dropdown__select option {
2107
2104
  color: var(--jkl-color-text-default);
2108
- background-color: var(--jkl-color-background-container-high);
2105
+ background-color: var(--jkl-color-background-container);
2109
2106
  text-align: left;
2110
2107
  }
2111
2108
  .jkl-calendar-navigation-dropdown__select:focus-visible {
2112
- outline: 3px solid var(--jkl-color-border-action);
2109
+ outline: 3px solid var(--jkl-color-border-strong);
2113
2110
  outline-offset: 3px;
2114
2111
  }
2115
2112
  .jkl-calendar-navigation-dropdown__chevron {
@@ -2122,10 +2119,7 @@
2122
2119
  }
2123
2120
  @layer jokul.components {
2124
2121
  .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;
2122
+ font: var(--jkl-text-style-text-small);
2129
2123
  padding-bottom: var(--jkl-unit-10);
2130
2124
  }
2131
2125
  .jkl-calendar-table td {
@@ -2140,15 +2134,16 @@
2140
2134
  }
2141
2135
  }
2142
2136
  @layer jokul.components {
2137
+ .jkl-calendar-date-button {
2138
+ --jkl-calendar-date-size: var(--jkl-unit-50);
2139
+ }
2143
2140
  @media (width >= 0) and (max-width: 374px) {
2144
- --jkl-calendar-date-size: var(--jkl-unit-40);
2141
+ .jkl-calendar-date-button {
2142
+ --jkl-calendar-date-size: var(--jkl-unit-40);
2143
+ }
2145
2144
  }
2146
2145
  .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;
2146
+ font: var(--jkl-text-style-text-small);
2152
2147
  appearance: none;
2153
2148
  position: relative;
2154
2149
  box-sizing: border-box;
@@ -2163,8 +2158,8 @@
2163
2158
  margin: var(--jkl-calendar-date-margin);
2164
2159
  padding: 0;
2165
2160
  padding-top: var(--jkl-unit-02);
2166
- transition-timing-function: ease-out;
2167
- transition-duration: 75ms;
2161
+ transition-timing-function: var(--jkl-motion-easing-entrance);
2162
+ transition-duration: var(--jkl-motion-timing-energetic);
2168
2163
  transition-property: color, background-color, box-shadow;
2169
2164
  }
2170
2165
  .jkl-calendar-date-button {
@@ -2188,23 +2183,20 @@
2188
2183
  }
2189
2184
  }
2190
2185
  .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;
2186
+ font: var(--jkl-text-style-text-small);
2195
2187
  padding: 0;
2196
2188
  color: var(--jkl-color-text-subdued);
2197
2189
  }
2198
2190
  .jkl-calendar-date-button[aria-current=date] {
2199
- font-weight: 700;
2191
+ font-weight: var(--jkl-font-weight-bold);
2200
2192
  }
2201
2193
  .jkl-calendar-date-button:hover:not(:disabled) {
2202
- background-color: var(--jkl-color-background-interactive-hover);
2194
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
2203
2195
  cursor: pointer;
2204
2196
  }
2205
2197
  .jkl-calendar-date-button[aria-pressed=true] {
2206
- background-color: var(--jkl-color-background-container-inverted);
2207
- color: var(--jkl-color-text-inverted);
2198
+ background-color: var(--jkl-color-background-contrast);
2199
+ color: var(--jkl-color-text-on-contrast);
2208
2200
  cursor: pointer;
2209
2201
  }
2210
2202
  .jkl-calendar-date-button[aria-pressed=true]:hover {
@@ -2214,7 +2206,7 @@
2214
2206
  color: color(from var(--jkl-color-text-subdued) srgb r g b/70%);
2215
2207
  }
2216
2208
  .jkl-calendar-date-button:focus-visible {
2217
- outline: 3px solid var(--jkl-color-border-action);
2209
+ outline: 3px solid var(--jkl-color-border-strong);
2218
2210
  outline-offset: 3px;
2219
2211
  }
2220
2212
  }
@@ -2271,29 +2263,28 @@
2271
2263
  }
2272
2264
  }
2273
2265
  @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
2266
  .jkl-popover {
2267
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
2268
+ --shadow-color: rgb(49 48 48 / 20%);
2269
+ --shadow-color: light-dark(rgb(49 48 48 / 20%), rgb(0 0 0 / 50%));
2270
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
2291
2271
  padding: var(--popover-padding, 0);
2292
2272
  z-index: 10000;
2293
- box-shadow: 0 4px 20px 0 var(--jkl-datepicker-box-shadow);
2294
- background-color: var(--jkl-color-background-container-high);
2273
+ box-shadow: 0 4px 20px 0 var(--shadow-color);
2274
+ background-color: var(--jkl-color-background-container);
2295
2275
  border-radius: var(--jkl-border-radius-s);
2296
2276
  }
2277
+ .jkl-popover:focus-visible {
2278
+ outline: 3px solid var(--jkl-color-border-strong);
2279
+ outline-offset: 3px;
2280
+ }
2281
+ .jkl-popover-trigger:focus {
2282
+ outline: 0;
2283
+ }
2284
+ .jkl-popover-trigger:focus-visible {
2285
+ outline: 3px solid var(--jkl-color-border-strong);
2286
+ outline-offset: 3px;
2287
+ }
2297
2288
  }
2298
2289
  @layer jokul.components {
2299
2290
  .jkl-description-list {
@@ -2314,7 +2305,7 @@
2314
2305
  display: unset;
2315
2306
  }
2316
2307
  .jkl-description-list__term {
2317
- font-weight: 700;
2308
+ font-weight: var(--jkl-font-weight-bold);
2318
2309
  }
2319
2310
  .jkl-description-list__detail {
2320
2311
  margin-left: 0;
@@ -2352,12 +2343,12 @@
2352
2343
  }
2353
2344
  .jkl-description-list[data-separators=true] .seperator:not(:first-of-type) {
2354
2345
  margin-block: var(--jkl-unit-15);
2355
- border-top: 1px solid var(--jkl-color-border-separator);
2346
+ border-top: 1px solid var(--jkl-color-border-subdued);
2356
2347
  }
2357
2348
  }
2358
2349
  @layer jokul.components {
2359
2350
  .jkl-expandable {
2360
- background-color: var(--jkl-color-background-container-low);
2351
+ background-color: var(--jkl-color-background-container);
2361
2352
  border: 1px solid transparent;
2362
2353
  border-radius: var(--border-radius);
2363
2354
  box-sizing: border-box;
@@ -2377,7 +2368,7 @@
2377
2368
  padding: var(--jkl-unit-20);
2378
2369
  }
2379
2370
  .jkl-expandable--stroke {
2380
- border-color: var(--jkl-color-border-separator);
2371
+ border-color: var(--jkl-color-border-subdued);
2381
2372
  background-color: transparent;
2382
2373
  border-radius: 0;
2383
2374
  border-radius: var(--border-top-left-radius) var(--border-top-right-radius) var(--border-bottom-right-radius) var(--border-bottom-left-radius);
@@ -2385,40 +2376,43 @@
2385
2376
  .jkl-expandable__wrapper {
2386
2377
  --border-radius: 0.25rem;
2387
2378
  --outline-offset: 3px;
2379
+ --stroke-outline-offset: 3px;
2380
+ --border-top-left-radius: var(--border-radius);
2381
+ --border-top-right-radius: var(--border-radius);
2382
+ --border-bottom-left-radius: var(--border-radius);
2383
+ --border-bottom-right-radius: var(--border-radius);
2384
+ position: relative;
2385
+ }
2386
+ .jkl-expandable__wrapper + .jkl-expandable__wrapper {
2388
2387
  --border-top-left-radius: 0;
2389
2388
  --border-top-right-radius: 0;
2390
- --border-bottom-left-radius: 0;
2391
- --border-bottom-right-radius: 0;
2392
- position: relative;
2389
+ --stroke-outline-offset: -1px;
2393
2390
  }
2394
2391
  .jkl-expandable__wrapper + .jkl-expandable__wrapper .jkl-expandable--stroke {
2395
2392
  border-top: none;
2396
2393
  }
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);
2394
+ .jkl-expandable__wrapper:has(+ .jkl-expandable__wrapper) {
2395
+ --border-bottom-left-radius: 0;
2396
+ --border-bottom-right-radius: 0;
2397
+ --stroke-outline-offset: -1px;
2404
2398
  }
2405
2399
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable--stroke) {
2406
- --outline-offset: -1px;
2400
+ --outline-offset: var(--stroke-outline-offset);
2407
2401
  }
2408
2402
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable__focus-container {
2409
- outline: 3px solid var(--jkl-color-border-action);
2403
+ outline: 3px solid var(--jkl-color-border-strong);
2410
2404
  outline-offset: 3px;
2411
2405
  outline-offset: var(--outline-offset);
2412
2406
  }
2413
- .jkl-expandable__wrapper:has(:focus-visible):first-child:last-child {
2414
- --outline-offset: 3px;
2415
- }
2416
2407
  .jkl-expandable__focus-container {
2417
2408
  border-radius: var(--border-radius);
2418
2409
  position: absolute;
2419
2410
  inset: 0;
2420
2411
  }
2421
2412
  .jkl-expander {
2413
+ --hover-background-color: color-mix(in srgb,
2414
+ currentColor 15%,
2415
+ transparent);
2422
2416
  box-sizing: border-box;
2423
2417
  background: none;
2424
2418
  appearance: none;
@@ -2448,17 +2442,17 @@
2448
2442
  }
2449
2443
  .jkl-expander--open .jkl-expander__label {
2450
2444
  --jkl-icon-weight: 400;
2451
- font-weight: 700;
2445
+ font-weight: var(--jkl-font-weight-bold);
2452
2446
  letter-spacing: -0.014em;
2453
2447
  }
2454
2448
  .jkl-expander--open .jkl-expander__chevron {
2455
2449
  transform: rotate(-0.5turn);
2456
- transition-timing-function: ease;
2457
- transition-duration: 100ms;
2450
+ transition-timing-function: var(--jkl-motion-easing-standard);
2451
+ transition-duration: var(--jkl-motion-timing-snappy);
2458
2452
  }
2459
2453
  @media (hover: hover) {
2460
2454
  .jkl-expander:hover {
2461
- background-color: var(--jkl-color-background-interactive-selected);
2455
+ background-color: var(--hover-background-color);
2462
2456
  }
2463
2457
  }
2464
2458
  .jkl-expander {
@@ -2489,8 +2483,8 @@
2489
2483
  .jkl-feedback__submit-wrapper {
2490
2484
  width: 100%;
2491
2485
  transition-property: height;
2492
- transition-timing-function: ease;
2493
- transition-duration: 250ms;
2486
+ transition-timing-function: var(--jkl-motion-easing-standard);
2487
+ transition-duration: var(--jkl-motion-timing-expressive);
2494
2488
  }
2495
2489
  .jkl-feedback__submit-wrapper--hidden {
2496
2490
  display: none;
@@ -2498,19 +2492,15 @@
2498
2492
  .jkl-feedback__step-counter {
2499
2493
  color: var(--jkl-color-text-subdued);
2500
2494
  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;
2495
+ font: var(--jkl-text-style-paragraph-small);
2506
2496
  }
2507
2497
  .jkl-feedback__fade-in {
2508
- animation: jkl-show-uyjs52a 0.25s ease-out;
2498
+ animation: jkl-show-ujgb88p 0.25s ease-out;
2509
2499
  }
2510
2500
  .jkl-feedback__buttons {
2511
2501
  display: flex;
2512
2502
  }
2513
- @keyframes jkl-show-uyjs52a {
2503
+ @keyframes jkl-show-ujgb88p {
2514
2504
  from {
2515
2505
  transform: translate3d(0, 0.5rem, 0);
2516
2506
  opacity: 0;
@@ -2523,7 +2513,7 @@
2523
2513
  width: 100%;
2524
2514
  max-width: 22.5rem;
2525
2515
  flex-wrap: nowrap;
2526
- gap: 0.75rem;
2516
+ gap: var(--jkl-spacing-12);
2527
2517
  }
2528
2518
  .jkl-feedback-smiley-option {
2529
2519
  display: inline-block;
@@ -2533,8 +2523,8 @@
2533
2523
  width: 2.5rem;
2534
2524
  color: var(--jkl-color-text-subdued);
2535
2525
  transform: translate3d(0, 0, 0);
2536
- transition-timing-function: ease;
2537
- transition-duration: 150ms;
2526
+ transition-timing-function: var(--jkl-motion-easing-standard);
2527
+ transition-duration: var(--jkl-motion-timing-productive);
2538
2528
  transition-property: transform, color;
2539
2529
  }
2540
2530
  @media screen and (forced-colors: active) {
@@ -2552,14 +2542,10 @@
2552
2542
  position: absolute;
2553
2543
  border-radius: 50%;
2554
2544
  opacity: 0;
2555
- transition-timing-function: ease;
2556
- transition-duration: 150ms;
2545
+ transition-timing-function: var(--jkl-motion-easing-standard);
2546
+ transition-duration: var(--jkl-motion-timing-productive);
2557
2547
  transition-property: opacity;
2558
2548
  }
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
2549
  .jkl-feedback-smiley-option::before {
2564
2550
  inset: 0;
2565
2551
  box-shadow: 0 0.125rem 1.875rem rgba(0, 0, 0, 0.1);
@@ -2574,8 +2560,10 @@
2574
2560
  input:checked + .jkl-feedback-smiley-option::before {
2575
2561
  opacity: 1;
2576
2562
  }
2577
- html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus + .jkl-feedback-smiley-option::after {
2578
- opacity: 1;
2563
+ input:focus-visible + .jkl-feedback-smiley-option {
2564
+ border-radius: var(--jkl-border-radius-full);
2565
+ outline: 3px solid var(--jkl-color-border-strong);
2566
+ outline-offset: 3px;
2579
2567
  }
2580
2568
  }
2581
2569
  @layer jokul.components {
@@ -2586,29 +2574,25 @@
2586
2574
  --jkl-message-dismiss-button-size: var(--jkl-unit-50);
2587
2575
  --jkl-message-gap: var(--jkl-unit-20);
2588
2576
  --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);
2577
+ --background-color: var(--jkl-color-background-container);
2578
+ --text-color: var(--jkl-color-text-default);
2579
+ --border-color: var(--jkl-color-border-subdued);
2591
2580
  width: 100%;
2592
2581
  max-width: 35rem;
2593
2582
  padding: var(--jkl-message-padding);
2594
2583
  background-color: var(--background-color);
2595
2584
  color: var(--text-color);
2585
+ border: 1px solid var(--border-color);
2596
2586
  border-radius: 0.25rem;
2597
2587
  box-sizing: border-box;
2598
2588
  display: grid;
2599
2589
  align-items: start;
2600
2590
  grid-template-areas: "icon content dismiss";
2601
2591
  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;
2592
+ font: var(--jkl-text-style-paragraph-medium);
2606
2593
  }
2607
2594
  .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;
2595
+ font: var(--jkl-text-style-heading-5);
2612
2596
  }
2613
2597
  .jkl-message__icon {
2614
2598
  grid-area: icon;
@@ -2626,17 +2610,11 @@
2626
2610
  grid-area: content;
2627
2611
  }
2628
2612
  .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;
2613
+ font: var(--jkl-text-style-paragraph-medium);
2633
2614
  margin-top: -0.125rem;
2634
2615
  }
2635
2616
  .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;
2617
+ font: var(--jkl-text-style-heading-5);
2640
2618
  margin: var(--jkl-message-title-margin);
2641
2619
  }
2642
2620
  .jkl-message__title ~ .jkl-message__message {
@@ -2697,7 +2675,7 @@
2697
2675
  transform: translate(-50%, -50%);
2698
2676
  }
2699
2677
  .jkl-message__dismiss-button:hover {
2700
- color: var(--jkl-color-text-interactive-hover);
2678
+ color: var(--jkl-color-text-subdued);
2701
2679
  }
2702
2680
  @media screen and (forced-colors: active) {
2703
2681
  .jkl-message__dismiss-button:hover {
@@ -2708,27 +2686,35 @@
2708
2686
  }
2709
2687
  }
2710
2688
  .jkl-message__dismiss-button:focus-visible {
2711
- outline: 3px solid var(--jkl-color-border-action);
2689
+ outline: 3px solid var(--jkl-color-border-strong);
2712
2690
  outline-offset: 3px;
2713
2691
  }
2714
2692
  .jkl-message--full {
2715
2693
  max-width: 100%;
2716
2694
  }
2717
2695
  .jkl-message--info {
2718
- --background-color: var(--jkl-color-background-alert-info);
2696
+ --background-color: var(--jkl-color-info-background-container);
2697
+ --text-color: var(--jkl-color-info-text-default);
2698
+ --border-color: var(--jkl-color-info-border-subdued);
2719
2699
  }
2720
2700
  .jkl-message--warning {
2721
- --background-color: var(--jkl-color-background-alert-warning);
2701
+ --background-color: var(--jkl-color-warning-background-container);
2702
+ --text-color: var(--jkl-color-warning-text-default);
2703
+ --border-color: var(--jkl-color-warning-border-subdued);
2722
2704
  }
2723
2705
  .jkl-message--error {
2724
- --background-color: var(--jkl-color-background-alert-error);
2706
+ --background-color: var(--jkl-color-error-background-container);
2707
+ --text-color: var(--jkl-color-error-text-default);
2708
+ --border-color: var(--jkl-color-error-border-subdued);
2725
2709
  }
2726
2710
  .jkl-message--success {
2727
- --background-color: var(--jkl-color-background-alert-success);
2711
+ --background-color: var(--jkl-color-success-background-container);
2712
+ --text-color: var(--jkl-color-success-text-default);
2713
+ --border-color: var(--jkl-color-success-border-subdued);
2728
2714
  }
2729
2715
  .jkl-message--dismissed {
2730
- animation: jkl-dismiss-uyjs532 400ms ease-in-out forwards;
2731
- transition: visibility 0ms 400ms;
2716
+ animation: jkl-dismiss-ujgb893 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2717
+ transition: visibility 0ms var(--jkl-motion-timing-lazy);
2732
2718
  visibility: hidden;
2733
2719
  }
2734
2720
  @media screen and (forced-colors: active) {
@@ -2747,9 +2733,9 @@
2747
2733
  }
2748
2734
  }
2749
2735
  .jkl-form-error-message {
2750
- padding-bottom: calc(var(--jkl-unit-base) * 5);
2736
+ padding-bottom: var(--jkl-unit-50);
2751
2737
  }
2752
- @keyframes jkl-dismiss-uyjs532 {
2738
+ @keyframes jkl-dismiss-ujgb893 {
2753
2739
  from {
2754
2740
  opacity: 1;
2755
2741
  transform: translate3d(0, 0, 0);
@@ -2761,23 +2747,11 @@
2761
2747
  }
2762
2748
  }
2763
2749
  @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
2750
  .jkl-radio-button {
2751
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
2752
+ --jkl-radio-button-error-color: #ab2e43;
2753
+ --jkl-radio-button-error-color: light-dark(#ab2e43, #d79ba5);
2754
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
2781
2755
  display: flex;
2782
2756
  position: relative;
2783
2757
  }
@@ -2803,46 +2777,75 @@
2803
2777
  }
2804
2778
  .jkl-radio-button__input {
2805
2779
  position: absolute;
2806
- opacity: 0;
2807
- pointer-events: none;
2808
- inset: 0 auto 0 0;
2809
- width: 1lh;
2780
+ inset-block-start: 0;
2781
+ inset-inline-start: 0;
2782
+ block-size: 1lh;
2783
+ inline-size: 1lh;
2784
+ margin: 0;
2785
+ padding: 0;
2786
+ cursor: pointer;
2787
+ z-index: 1;
2788
+ appearance: none;
2789
+ background: transparent;
2790
+ border: 0;
2791
+ }
2792
+ .jkl-radio-button__input {
2793
+ outline: 0;
2794
+ border-style: none;
2795
+ outline-style: none;
2796
+ }
2797
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2798
+ outline: 0;
2799
+ outline-style: none;
2800
+ }
2801
+ @media screen and (forced-colors: active) {
2802
+ .jkl-radio-button__input {
2803
+ outline: revert;
2804
+ border-style: revert;
2805
+ outline-style: revert;
2806
+ }
2807
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2808
+ outline: revert;
2809
+ outline-style: revert;
2810
+ }
2810
2811
  }
2811
2812
  .jkl-radio-button__label {
2812
2813
  cursor: pointer;
2813
2814
  display: flex;
2814
- transition-timing-function: ease;
2815
- transition-duration: 150ms;
2815
+ transition-timing-function: var(--jkl-motion-easing-standard);
2816
+ transition-duration: var(--jkl-motion-timing-productive);
2816
2817
  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;
2818
+ font: var(--jkl-text-style-text-medium);
2824
2819
  }
2825
2820
  .jkl-radio-button__label::before {
2826
2821
  content: "radio_button_unchecked";
2827
2822
  margin-inline-end: 0.25em;
2828
- 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);
2823
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
2824
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
2830
2825
  font-feature-settings: "liga";
2831
2826
  -webkit-font-feature-settings: "liga";
2832
2827
  font-size: 1.3em;
2833
- font-weight: var(--jkl-icon-weight, 300);
2828
+ font-weight: 400;
2834
2829
  line-height: 1;
2835
2830
  display: inline-block;
2836
2831
  -webkit-font-smoothing: antialiased;
2837
- transition-timing-function: ease;
2838
- transition-duration: 75ms;
2832
+ transition-timing-function: var(--jkl-motion-easing-standard);
2833
+ transition-duration: var(--jkl-motion-timing-energetic);
2839
2834
  transition-property: font-variation-settings, transform;
2840
2835
  }
2841
- .jkl-radio-button__label:has(+ :checked)::before {
2836
+ .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
2837
+ border-radius: var(--jkl-border-radius-full);
2838
+ outline: 3px solid var(--jkl-color-border-strong);
2839
+ outline-offset: 3px;
2840
+ }
2841
+ .jkl-radio-button__input:is(:hover, :active) + .jkl-radio-button__label, .jkl-radio-button__label:hover, .jkl-radio-button__label:active {
2842
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
2843
+ }
2844
+ .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2842
2845
  content: "radio_button_checked";
2843
2846
  }
2844
- .jkl-radio-button__label:has(+ [aria-invalid=true])::before {
2845
- color: var(--jkl-radio-button-error-color);
2847
+ .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2848
+ color: var(--jkl-color-error-text-default);
2846
2849
  }
2847
2850
  .jkl-radio-button + .jkl-radio-button, .jkl-dormant-form-support-label + .jkl-radio-button, .jkl-form-support-label + .jkl-radio-button {
2848
2851
  margin-top: 0.75lh;
@@ -2857,14 +2860,13 @@
2857
2860
  .jkl-radio-button + .jkl-form-support-label {
2858
2861
  margin-left: 1.75em;
2859
2862
  margin-top: 0.25lh;
2860
- margin-bottom: var(--jkl-unit-base);
2863
+ margin-bottom: var(--jkl-unit-10);
2861
2864
  }
2862
2865
  }
2863
2866
  @layer jokul.components {
2864
2867
  .jkl-text-area-wrapper {
2865
2868
  overflow: hidden;
2866
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
2867
- var(--jkl-text-input-horizontal-padding);
2869
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
2868
2870
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
2869
2871
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
2870
2872
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -2872,8 +2874,8 @@
2872
2874
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
2873
2875
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
2874
2876
  --text-color: var(--jkl-color-text-default);
2875
- --background-color: var(--jkl-color-background-input-base);
2876
- --border-color: var(--jkl-color-border-input);
2877
+ --background-color: transparent;
2878
+ --border-color: var(--jkl-color-border-default);
2877
2879
  --placeholder-color: var(--jkl-color-text-subdued);
2878
2880
  border-radius: var(--jkl-border-radius-s);
2879
2881
  box-sizing: border-box;
@@ -2881,27 +2883,25 @@
2881
2883
  position: relative;
2882
2884
  display: flex;
2883
2885
  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;
2886
+ font: var(--jkl-text-style-text-medium);
2887
+ transition-timing-function: var(--jkl-motion-easing-standard);
2888
+ transition-duration: var(--jkl-motion-timing-productive);
2890
2889
  transition-property: color, box-shadow, background-color;
2891
2890
  background-color: var(--background-color);
2892
2891
  color: var(--text-color);
2893
2892
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
2894
2893
  }
2895
2894
  .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2896
- --background-color: var(--jkl-color-background-input-focus);
2895
+ --background-color: var(--jkl-color-background-container);
2897
2896
  }
2898
2897
  .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);
2901
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
2898
+ --background-color: var(--jkl-color-error-background-container);
2899
+ --text-color: var(--jkl-color-error-text-default);
2900
+ --border-color: var(--jkl-color-error-border-default);
2901
+ --placeholder-color: var(--jkl-color-error-text-subdued);
2902
2902
  }
2903
2903
  .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);
2904
+ --border-color: var(--jkl-color-border-strong);
2905
2905
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
2906
2906
  }
2907
2907
  @media screen and (forced-colors: active) {
@@ -2910,11 +2910,11 @@
2910
2910
  }
2911
2911
  }
2912
2912
  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);
2913
+ outline: 3px solid var(--jkl-color-border-strong);
2914
2914
  outline-offset: 3px;
2915
2915
  }
2916
2916
  .jkl-text-area-wrapper > .jkl-icon-button:focus-visible {
2917
- outline: 3px solid var(--jkl-color-border-action);
2917
+ outline: 3px solid var(--jkl-color-border-strong);
2918
2918
  outline-offset: -8px;
2919
2919
  }
2920
2920
  @media screen and (forced-colors: active) {
@@ -2938,7 +2938,7 @@
2938
2938
  width: var(--jkl-text-input-action-button-icon-size);
2939
2939
  }
2940
2940
  .jkl-text-area-wrapper > .jkl-text-input-action-button:hover {
2941
- color: var(--jkl-color-text-interactive-hover);
2941
+ color: var(--jkl-color-text-subdued);
2942
2942
  }
2943
2943
  @media screen and (forced-colors: active) {
2944
2944
  .jkl-text-area-wrapper > .jkl-text-input-action-button:hover {
@@ -2965,16 +2965,13 @@
2965
2965
  max-height: var(--text-input-height);
2966
2966
  height: var(--text-input-height);
2967
2967
  min-height: var(--text-input-height);
2968
- transition-timing-function: ease;
2969
- transition-duration: 150ms;
2968
+ transition-timing-function: var(--jkl-motion-easing-standard);
2969
+ transition-duration: var(--jkl-motion-timing-productive);
2970
2970
  transition-property: height, min-height, max-height, padding;
2971
2971
  background: none;
2972
2972
  -webkit-appearance: none;
2973
2973
  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;
2974
+ font: var(--jkl-text-style-text-medium);
2978
2975
  }
2979
2976
  .jkl-text-area__text-area {
2980
2977
  outline: 0;
@@ -3040,10 +3037,7 @@
3040
3037
  .jkl-text-area:has(.jkl-text-area__counter) .jkl-text-area__counter-count {
3041
3038
  padding: var(--jkl-text-input-padding);
3042
3039
  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;
3040
+ font: var(--jkl-text-style-text-small);
3047
3041
  }
3048
3042
  .jkl-text-area:has(.jkl-text-area__counter) .jkl-text-area__counter-progress {
3049
3043
  background-color: transparent;
@@ -3058,8 +3052,8 @@
3058
3052
  height: var(--progress-bar-height);
3059
3053
  background-color: var(--border-color);
3060
3054
  transition-property: width;
3061
- transition-timing-function: ease;
3062
- transition-duration: 400ms;
3055
+ transition-timing-function: var(--jkl-motion-easing-standard);
3056
+ transition-duration: var(--jkl-motion-timing-lazy);
3063
3057
  }
3064
3058
  .jkl-text-area__text-area--3-rows:focus,
3065
3059
  .jkl-text-area__text-area--3-rows:not(:placeholder-shown),
@@ -3143,14 +3137,14 @@
3143
3137
  --jkl-file-gap: var(--jkl-unit-10) var(--jkl-unit-20);
3144
3138
  --jkl-file-button-width: var(--jkl-unit-50);
3145
3139
  --text-color: var(--jkl-color-text-default);
3146
- --border: 1px solid var(--jkl-color-border-separator);
3140
+ --border: 1px solid var(--jkl-color-border-subdued);
3147
3141
  --border-radius: 2px;
3148
3142
  --bg: transparent;
3149
- --transition-time: 250ms;
3143
+ --transition-time: var(--jkl-motion-timing-expressive);
3150
3144
  }
3151
3145
  .jkl-file__content {
3152
- transition-timing-function: ease;
3153
- transition-duration: 100ms;
3146
+ transition-timing-function: var(--jkl-motion-easing-standard);
3147
+ transition-duration: var(--jkl-motion-timing-snappy);
3154
3148
  transition-property: background-color, border-color, color;
3155
3149
  color: var(--jkl-color-text-default);
3156
3150
  padding: var(--jkl-file-padding);
@@ -3165,11 +3159,7 @@
3165
3159
  height: fit-content;
3166
3160
  }
3167
3161
  .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;
3162
+ font: var(--jkl-text-style-paragraph-small);
3173
3163
  grid-area: text;
3174
3164
  /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated */
3175
3165
  word-break: break-word;
@@ -3191,7 +3181,7 @@
3191
3181
  display: flex;
3192
3182
  align-items: center;
3193
3183
  justify-content: center;
3194
- background: var(--jkl-color-background-container-low);
3184
+ background: var(--jkl-color-background-page);
3195
3185
  border-radius: 2px;
3196
3186
  overflow: hidden;
3197
3187
  container-type: inline-size;
@@ -3239,11 +3229,7 @@
3239
3229
  grid-template-areas: "image image" "text button";
3240
3230
  }
3241
3231
  .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;
3232
+ font: var(--jkl-text-style-paragraph-small);
3247
3233
  content: attr(data-filetype);
3248
3234
  }
3249
3235
  .jkl-file[data-state=loading]:not(:has(.jkl-file__support-label)) .jkl-file__content__thumbnail img {
@@ -3254,16 +3240,16 @@
3254
3240
  scale: 1;
3255
3241
  }
3256
3242
  .jkl-file[data-state=error] {
3257
- --bg: var(--jkl-color-functional-error);
3243
+ --bg: var(--jkl-color-error-background-container);
3258
3244
  }
3259
3245
  .jkl-file[data-state=error],
3260
3246
  .jkl-file[data-state=error] a,
3261
3247
  .jkl-file[data-state=error] a:hover,
3262
3248
  .jkl-file[data-state=error] button,
3263
3249
  .jkl-file[data-state=error] span {
3264
- --text-color: var(--jkl-color-text-on-alert);
3250
+ --text-color: var(--jkl-color-error-text-default);
3265
3251
  --link-color: var(--text-color);
3266
- --jkl-color-border-action: currentColor;
3252
+ --jkl-color-border-strong: currentColor;
3267
3253
  }
3268
3254
  @keyframes spin {
3269
3255
  from {
@@ -3283,7 +3269,7 @@
3283
3269
  --jkl-file-list-gap: var(--jkl-unit-10);
3284
3270
  }
3285
3271
  .jkl-file-input__dropzone {
3286
- --border-color: var(--jkl-color-border-input);
3272
+ --border-color: var(--jkl-color-border-default);
3287
3273
  --background-color: transparent;
3288
3274
  border: var(--border-color) 1px dashed;
3289
3275
  border-radius: 0.25rem;
@@ -3294,22 +3280,18 @@
3294
3280
  flex-direction: column;
3295
3281
  flex-wrap: nowrap;
3296
3282
  gap: var(--jkl-file-input-dropzone-gap);
3297
- transition-timing-function: ease;
3298
- transition-duration: 150ms;
3283
+ transition-timing-function: var(--jkl-motion-easing-standard);
3284
+ transition-duration: var(--jkl-motion-timing-productive);
3299
3285
  transition-property: background-color;
3300
3286
  background-color: var(--background-color);
3301
3287
  }
3302
3288
  .jkl-file-input__dropzone--enter {
3303
- --border-color: var(--jkl-color-border-input-focus);
3304
- --background-color: var(--jkl-color-background-container-high);
3289
+ --border-color: var(--jkl-color-border-strong);
3290
+ --background-color: var(--jkl-color-background-container);
3305
3291
  border-style: solid;
3306
3292
  }
3307
3293
  .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;
3294
+ font: var(--jkl-text-style-paragraph-small);
3313
3295
  }
3314
3296
  @media (width >= 0) and (max-width: 679px) {
3315
3297
  .jkl-file-input__dropzone__drag-text {
@@ -3325,7 +3307,7 @@
3325
3307
  }
3326
3308
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button {
3327
3309
  transform: scale(1.05);
3328
- outline: 3px solid var(--jkl-color-border-action);
3310
+ outline: 3px solid var(--jkl-color-border-strong);
3329
3311
  outline-offset: 3px;
3330
3312
  }
3331
3313
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button:active {
@@ -3338,10 +3320,7 @@
3338
3320
  display: none;
3339
3321
  }
3340
3322
  .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;
3323
+ font: var(--jkl-text-style-text-small);
3345
3324
  color: var(--jkl-color-text-subdued);
3346
3325
  margin-top: var(--jkl-unit-30);
3347
3326
  }
@@ -3366,11 +3345,8 @@
3366
3345
  max-width: fit-content;
3367
3346
  }
3368
3347
  .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);
3348
+ font: var(--jkl-text-style-text-small);
3349
+ gap: var(--jkl-unit-15);
3374
3350
  flex-direction: row;
3375
3351
  justify-content: flex-start;
3376
3352
  }
@@ -3381,20 +3357,13 @@
3381
3357
  }
3382
3358
  @layer jokul.components {
3383
3359
  .jkl-link-list {
3384
- --border: 1px solid var(--jkl-color-border-separator);
3360
+ --border: 1px solid var(--jkl-color-border-subdued);
3385
3361
  --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;
3362
+ font: var(--jkl-text-style-paragraph-medium);
3390
3363
  }
3391
3364
  .jkl-link-list .jkl-link-list-title {
3392
3365
  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;
3366
+ font: var(--jkl-text-style-paragraph-small);
3398
3367
  }
3399
3368
  .jkl-link-list ul {
3400
3369
  display: flex;
@@ -3405,7 +3374,7 @@
3405
3374
  height: min-content;
3406
3375
  border-radius: var(--jkl-unit-05);
3407
3376
  overflow: hidden;
3408
- background: var(--jkl-color-background-container-low);
3377
+ background-color: var(--jkl-color-background-container);
3409
3378
  }
3410
3379
  .jkl-link-list ul .jkl-link-list-link {
3411
3380
  display: flex;
@@ -3418,38 +3387,39 @@
3418
3387
  text-wrap: balance;
3419
3388
  box-sizing: border-box;
3420
3389
  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;
3390
+ font: var(--jkl-text-style-text-medium);
3391
+ transition-timing-function: var(--jkl-motion-easing-standard);
3392
+ transition-duration: var(--jkl-motion-timing-productive);
3427
3393
  transition-property: background;
3428
3394
  }
3429
3395
  .jkl-link-list ul .jkl-link-list-link::after {
3430
3396
  content: "arrow_forward"/"";
3431
- 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);
3397
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3398
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3433
3399
  font-feature-settings: "liga";
3434
3400
  -webkit-font-feature-settings: "liga";
3435
3401
  font-size: 1.3em;
3436
- font-weight: var(--jkl-icon-weight, 300);
3402
+ font-weight: 400;
3437
3403
  line-height: 1;
3438
3404
  display: inline-block;
3439
3405
  -webkit-font-smoothing: antialiased;
3440
- transition-timing-function: ease;
3441
- transition-duration: 75ms;
3406
+ transition-timing-function: var(--jkl-motion-easing-standard);
3407
+ transition-duration: var(--jkl-motion-timing-energetic);
3442
3408
  transition-property: font-variation-settings, transform;
3443
- transition-timing-function: ease;
3444
- transition-duration: 150ms;
3409
+ transition-timing-function: var(--jkl-motion-easing-standard);
3410
+ transition-duration: var(--jkl-motion-timing-productive);
3445
3411
  transition-property: translate;
3446
3412
  }
3447
3413
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible) {
3448
- background: var(--jkl-color-background-interactive-selected);
3414
+ background-color: color-mix(in srgb, var(--text-color) 15%);
3449
3415
  }
3450
3416
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible)::after {
3451
3417
  translate: 4px 0;
3452
3418
  }
3419
+ .jkl-link-list ul .jkl-link-list-link:focus-visible {
3420
+ outline: 3px solid var(--jkl-color-border-strong);
3421
+ outline-offset: 3px;
3422
+ }
3453
3423
  .jkl-link-list .jkl-link-list-item {
3454
3424
  display: flex;
3455
3425
  }
@@ -3497,13 +3467,13 @@
3497
3467
  transform: translateX(-5%);
3498
3468
  }
3499
3469
  .jkl-logo--animated .jkl-logo__F {
3500
- transition: transform 250ms 75ms cubic-bezier(0.5, 0, 0.62, 1);
3470
+ transition: transform var(--jkl-motion-timing-expressive) var(--jkl-motion-timing-energetic) cubic-bezier(0.5, 0, 0.62, 1);
3501
3471
  }
3502
3472
  .jkl-logo--animated .jkl-logo__F-line {
3503
- transition: transform 250ms ease-in;
3473
+ transition: transform var(--jkl-motion-timing-expressive) ease-in;
3504
3474
  }
3505
3475
  .jkl-logo--animated .jkl-logo__fremtind {
3506
- transition: opacity 250ms 75ms ease-in, transform 250ms ease;
3476
+ transition: opacity var(--jkl-motion-timing-expressive) var(--jkl-motion-timing-energetic) ease-in, transform var(--jkl-motion-timing-expressive) ease;
3507
3477
  }
3508
3478
  .jkl-logo--centered.jkl-logo--symbol-only .jkl-logo__F {
3509
3479
  transform: translateX(35%) rotate(45deg);
@@ -3524,7 +3494,7 @@
3524
3494
  .jkl-logo-stamp--animated .jkl-logo-stamp__text {
3525
3495
  transform-origin: 256px 256px;
3526
3496
  transition-timing-function: cubic-bezier(0.75, 0, 0, 1);
3527
- transition-duration: 150ms;
3497
+ transition-duration: var(--jkl-motion-timing-productive);
3528
3498
  transition-property: transform;
3529
3499
  }
3530
3500
  .jkl-logo-stamp--animated[data-rotate=true] .jkl-logo-stamp__text {
@@ -3536,17 +3506,14 @@
3536
3506
  .jkl-menu-item {
3537
3507
  --jkl-menu-item-height: var(--jkl-unit-60);
3538
3508
  --jkl-menu-item-padding: var(--jkl-unit-15) var(--jkl-unit-30);
3539
- --background-color: var(--jkl-color-background-interactive);
3509
+ --background-color: transparent;
3540
3510
  background-color: var(--background-color);
3541
3511
  color: var(--jkl-color-text-default);
3542
3512
  text-decoration: none;
3543
3513
  cursor: pointer;
3544
3514
  box-sizing: border-box;
3545
3515
  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;
3516
+ font: var(--jkl-text-style-text-medium);
3550
3517
  display: flex;
3551
3518
  align-items: center;
3552
3519
  gap: var(--jkl-unit-10);
@@ -3598,7 +3565,7 @@
3598
3565
  flex-shrink: 0;
3599
3566
  }
3600
3567
  .jkl-menu-item:hover, .jkl-menu-item:focus-visible {
3601
- --background-color: var(--jkl-color-background-interactive-hover);
3568
+ --background-color: color-mix(in srgb, currentColor 18%, transparent);
3602
3569
  }
3603
3570
  }
3604
3571
  @layer jokul.components {
@@ -3606,28 +3573,16 @@
3606
3573
  width: 100%;
3607
3574
  margin-block: 0;
3608
3575
  border: none;
3609
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator);
3576
+ border-bottom: 0.0625rem solid var(--jkl-color-border-subdued);
3610
3577
  }
3611
3578
  }
3612
3579
  @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
3580
  .jkl-menu {
3630
- background-color: var(--jkl-color-background-container-high);
3581
+ /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
3582
+ --border-color: transparent;
3583
+ --border-color: light-dark(transparent, var(--jkl-color-border-strong));
3584
+ /* stylelint-enable declaration-block-no-duplicate-custom-properties */
3585
+ background-color: var(--jkl-color-background-container);
3631
3586
  width: 100%;
3632
3587
  max-width: 21rem;
3633
3588
  display: flex;
@@ -3636,7 +3591,7 @@
3636
3591
  flex-wrap: nowrap;
3637
3592
  box-shadow: 0 0.25rem 1.25rem rgba(49, 48, 48, 0.2);
3638
3593
  border-radius: 0.125rem;
3639
- border: 2px solid var(--jkl-menu-border-color);
3594
+ border: 2px solid var(--border-color);
3640
3595
  z-index: 7000;
3641
3596
  }
3642
3597
  .jkl-menu:focus-visible {
@@ -3650,7 +3605,7 @@
3650
3605
  .jkl-nav-link {
3651
3606
  color: var(--jkl-color-text-default);
3652
3607
  box-sizing: border-box;
3653
- font-weight: var(--jkl-typography-weight-normal);
3608
+ font-weight: var(--jkl-font-weight-normal);
3654
3609
  text-decoration: none;
3655
3610
  position: relative;
3656
3611
  padding-right: 0.15rem;
@@ -3680,7 +3635,7 @@
3680
3635
  color: var(--jkl-color-text-subdued);
3681
3636
  }
3682
3637
  .jkl-nav-link:focus-visible {
3683
- outline: 3px solid var(--jkl-color-border-action);
3638
+ outline: 3px solid var(--jkl-color-border-strong);
3684
3639
  outline-offset: 0;
3685
3640
  }
3686
3641
  .jkl-nav-link:focus-visible .jkl-nav-link__icon, .jkl-nav-link:hover:not(:focus) .jkl-nav-link__icon {
@@ -3690,13 +3645,13 @@
3690
3645
  margin-inline-start: 0.1em;
3691
3646
  margin-block-start: -0.1em;
3692
3647
  vertical-align: middle;
3693
- transition-timing-function: ease;
3694
- transition-duration: 150ms;
3648
+ transition-timing-function: var(--jkl-motion-easing-standard);
3649
+ transition-duration: var(--jkl-motion-timing-productive);
3695
3650
  transition-property: transform;
3696
3651
  }
3697
3652
  .jkl-nav-link--active {
3698
3653
  --jkl-icon-weight: 400;
3699
- font-weight: 700;
3654
+ font-weight: var(--jkl-font-weight-bold);
3700
3655
  letter-spacing: -0.014em;
3701
3656
  }
3702
3657
  .jkl-nav-link--back {
@@ -3715,22 +3670,19 @@
3715
3670
  }
3716
3671
  .jkl-navlink--beta {
3717
3672
  --border-radius: 4px;
3718
- --separator: 1px solid var(--jkl-color-border-separator);
3673
+ --separator: 1px solid var(--jkl-color-border-subdued);
3719
3674
  display: grid;
3720
3675
  grid-template-columns: 1fr auto;
3721
3676
  align-items: center;
3722
3677
  column-gap: 2em;
3723
3678
  color: inherit;
3724
3679
  text-decoration: none;
3725
- background-color: var(--jkl-color-background-container-low);
3680
+ background-color: var(--jkl-color-background-page);
3726
3681
  padding: var(--jkl-spacing-s);
3727
3682
  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;
3683
+ font: var(--jkl-text-style-paragraph-medium);
3684
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
3685
+ transition-duration: var(--jkl-motion-timing-productive);
3734
3686
  transition-property: background-color;
3735
3687
  }
3736
3688
  .jkl-navlink--beta .title,
@@ -3745,24 +3697,24 @@
3745
3697
  grid-column: 2;
3746
3698
  grid-row: 1/span 999;
3747
3699
  translate: 0;
3748
- 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);
3700
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3701
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3750
3702
  font-feature-settings: "liga";
3751
3703
  -webkit-font-feature-settings: "liga";
3752
3704
  font-size: 1.3em;
3753
- font-weight: var(--jkl-icon-weight, 300);
3705
+ font-weight: 400;
3754
3706
  line-height: 1;
3755
3707
  display: inline-block;
3756
3708
  -webkit-font-smoothing: antialiased;
3757
- transition-timing-function: ease;
3758
- transition-duration: 75ms;
3709
+ transition-timing-function: var(--jkl-motion-easing-standard);
3710
+ transition-duration: var(--jkl-motion-timing-energetic);
3759
3711
  transition-property: font-variation-settings, transform;
3760
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
3761
- transition-duration: 150ms;
3712
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
3713
+ transition-duration: var(--jkl-motion-timing-productive);
3762
3714
  transition-property: translate;
3763
3715
  }
3764
3716
  .jkl-navlink--beta:hover, .jkl-navlink--beta:focus-visible {
3765
- background-color: var(--jkl-color-background-interactive-selected);
3717
+ background-color: color-mix(in srgb, currentColor 15%, transparent);
3766
3718
  }
3767
3719
  .jkl-navlink--beta:hover::after, .jkl-navlink--beta:focus-visible::after {
3768
3720
  translate: 4px 0;
@@ -3803,18 +3755,18 @@
3803
3755
  cursor: pointer;
3804
3756
  user-select: none;
3805
3757
  border-radius: 0.1875rem;
3806
- color: var(--jkl-color-text-interactive);
3758
+ color: var(--jkl-color-text-default);
3807
3759
  }
3808
3760
  .jkl-pagination-button:hover:not(:focus) {
3809
- color: var(--jkl-color-text-interactive-hover);
3761
+ color: var(--jkl-color-text-subdued);
3810
3762
  }
3811
3763
  .jkl-pagination-button:focus-visible {
3812
- outline: 3px solid var(--jkl-color-border-action);
3764
+ outline: 3px solid var(--jkl-color-border-strong);
3813
3765
  outline-offset: 3px;
3814
3766
  }
3815
3767
  .jkl-pagination-button--current {
3816
3768
  --jkl-icon-weight: 400;
3817
- font-weight: 700;
3769
+ font-weight: var(--jkl-font-weight-bold);
3818
3770
  letter-spacing: -0.014em;
3819
3771
  }
3820
3772
  .jkl-pagination-button--elipsis {
@@ -3832,8 +3784,7 @@
3832
3784
  --border-radius: var(--jkl-border-radius-s);
3833
3785
  --min-option-height: min(var(--jkl-unit-60), 3rem);
3834
3786
  /* Vi må trekke fra bredden til rammen for å få riktig høyde */
3835
- --button-padding: calc(var(--jkl-unit-15) - var(--border-width))
3836
- calc(0.75em - var(--border-width));
3787
+ --button-padding: calc(var(--jkl-unit-15) - var(--border-width)) calc(0.75em - var(--border-width));
3837
3788
  --option-padding: var(--jkl-unit-05) 0.75em;
3838
3789
  display: block;
3839
3790
  position: relative;
@@ -3862,7 +3813,7 @@
3862
3813
  outline: none;
3863
3814
  }
3864
3815
  .jkl-select .jkl-tooltip-question-button:focus {
3865
- outline: 3px solid var(--jkl-color-border-action);
3816
+ outline: 3px solid var(--jkl-color-border-strong);
3866
3817
  outline-offset: 0;
3867
3818
  }
3868
3819
  .jkl-select select {
@@ -3876,7 +3827,7 @@
3876
3827
  font-weight: normal;
3877
3828
  font-family: sans-serif;
3878
3829
  color: var(--jkl-color-text-subdued);
3879
- background-color: var(--jkl-color-background-container-high);
3830
+ background-color: var(--jkl-color-background-container);
3880
3831
  }
3881
3832
  .jkl-select__outer-wrapper {
3882
3833
  position: relative;
@@ -3897,7 +3848,7 @@
3897
3848
  cursor: pointer;
3898
3849
  height: var(--jkl-select-input-height);
3899
3850
  border-radius: var(--border-radius);
3900
- border: var(--border-width) solid var(--jkl-color-border-input);
3851
+ border: var(--border-width) solid var(--jkl-color-border-default);
3901
3852
  box-shadow: 0 0 0 0.0625rem transparent;
3902
3853
  text-align: left;
3903
3854
  width: 100%;
@@ -3905,19 +3856,16 @@
3905
3856
  /* Øk padding for å gi plass til ikonet */
3906
3857
  padding-inline-end: 2.05em;
3907
3858
  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;
3859
+ transition-timing-function: var(--jkl-motion-easing-standard);
3860
+ transition-duration: var(--jkl-motion-timing-productive);
3861
+ font: var(--jkl-text-style-text-medium);
3914
3862
  }
3915
3863
  .jkl-select__search-input--active-value, .jkl-select__button--active-value {
3916
3864
  color: var(--jkl-color-text-default);
3917
3865
  }
3918
3866
  .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);
3867
+ border-color: var(--jkl-color-border-strong);
3868
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3921
3869
  }
3922
3870
  .jkl-select__search-input:hover ~ .jkl-select__arrow, .jkl-select__button:hover ~ .jkl-select__arrow {
3923
3871
  transform: translateY(calc(-50% + 0.1875rem));
@@ -3926,12 +3874,12 @@
3926
3874
  outline: none;
3927
3875
  }
3928
3876
  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);
3877
+ outline: 3px solid var(--jkl-color-border-strong);
3930
3878
  outline-offset: 3px;
3931
3879
  }
3932
3880
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__button,
3933
3881
  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);
3882
+ outline: 3px solid var(--jkl-color-border-strong);
3935
3883
  outline-offset: 3px;
3936
3884
  }
3937
3885
  .jkl-select__arrow {
@@ -3942,8 +3890,8 @@
3942
3890
  color: var(--jkl-color-text-default);
3943
3891
  transform: translateY(-50%);
3944
3892
  transition-property: transform, color;
3945
- transition-timing-function: ease;
3946
- transition-duration: 150ms;
3893
+ transition-timing-function: var(--jkl-motion-easing-standard);
3894
+ transition-duration: var(--jkl-motion-timing-productive);
3947
3895
  }
3948
3896
  @media screen and (forced-colors: active) {
3949
3897
  .jkl-select__arrow {
@@ -3956,7 +3904,7 @@
3956
3904
  }
3957
3905
  }
3958
3906
  .jkl-select:has([aria-invalid=true]) .jkl-select__arrow {
3959
- color: var(--jkl-color-text-on-alert);
3907
+ color: var(--jkl-color-error-text-default);
3960
3908
  }
3961
3909
  .jkl-select__options-menu {
3962
3910
  position: absolute;
@@ -3964,16 +3912,16 @@
3964
3912
  right: -0.0625rem;
3965
3913
  top: 100%;
3966
3914
  z-index: 7000;
3967
- background-color: var(--jkl-color-background-container-high);
3968
- border: 0.125rem solid var(--jkl-color-border-input-focus);
3915
+ background-color: var(--jkl-color-background-container);
3916
+ border: 0.125rem solid var(--jkl-color-border-strong);
3969
3917
  border-top: none;
3970
3918
  border-radius: 0 0 var(--border-radius) var(--border-radius);
3971
3919
  box-sizing: border-box;
3972
3920
  overflow-y: auto;
3973
3921
  max-height: calc((var(--jkl-select-max-shown-options, 5) + 0.5) * var(--min-option-height));
3974
3922
  transition-property: height;
3975
- transition-timing-function: ease;
3976
- transition-duration: 150ms;
3923
+ transition-timing-function: var(--jkl-motion-easing-standard);
3924
+ transition-duration: var(--jkl-motion-timing-productive);
3977
3925
  }
3978
3926
  .jkl-select__option-wrapper {
3979
3927
  margin: 0;
@@ -3992,28 +3940,22 @@
3992
3940
  position: relative;
3993
3941
  padding: var(--option-padding);
3994
3942
  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;
3943
+ transition-timing-function: var(--jkl-motion-easing-standard);
3944
+ transition-duration: var(--jkl-motion-timing-productive);
3945
+ font: var(--jkl-text-style-text-medium);
4001
3946
  /* For å unngå "dobbel" markering skrur vi av markering på hover i React-
4002
3947
  komponenten med data-focus="controlled". Uten dette satt vil valgene
4003
3948
  markeres ved hover som normalt. */
4004
3949
  }
4005
3950
  .jkl-select__option:focus, :not([data-focus=controlled]) > .jkl-select__option:hover {
4006
3951
  color: var(--jkl-color-text-default);
4007
- background-color: var(--jkl-color-background-interactive-hover);
3952
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
4008
3953
  }
4009
3954
  .jkl-select__option-description {
4010
3955
  color: var(--jkl-color-text-subdued);
4011
3956
  display: block;
4012
3957
  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;
3958
+ font: var(--jkl-text-style-text-small);
4017
3959
  }
4018
3960
  .jkl-select {
4019
3961
  /* --------
@@ -4028,9 +3970,9 @@
4028
3970
  .jkl-select--open .jkl-select__button {
4029
3971
  border-bottom-left-radius: 0;
4030
3972
  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);
3973
+ border-color: var(--jkl-color-border-strong);
3974
+ background-color: var(--jkl-color-background-container);
3975
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
4034
3976
  }
4035
3977
  .jkl-select--open .jkl-select__search-input:hover ~ .jkl-select__arrow,
4036
3978
  .jkl-select--open .jkl-select__button:hover ~ .jkl-select__arrow {
@@ -4038,8 +3980,8 @@
4038
3980
  }
4039
3981
  .jkl-select--invalid .jkl-select__search-input,
4040
3982
  .jkl-select--invalid .jkl-select__button {
4041
- background-color: var(--jkl-color-background-alert-error);
4042
- color: var(--jkl-color-text-on-alert-subdued);
3983
+ background-color: var(--jkl-color-error-background-container);
3984
+ color: var(--jkl-color-error-text-subdued);
4043
3985
  }
4044
3986
  .jkl-select--invalid .jkl-select__search-input--active-value,
4045
3987
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -4064,15 +4006,15 @@
4064
4006
  border-top: 1px solid SelectedItem;
4065
4007
  border-bottom: 1px solid SelectedItem;
4066
4008
  --jkl-icon-weight: 400;
4067
- font-weight: 700;
4009
+ font-weight: var(--jkl-font-weight-bold);
4068
4010
  letter-spacing: -0.014em;
4069
4011
  }
4070
4012
  }
4071
4013
  }
4072
4014
  @layer jokul.components {
4073
4015
  .jkl-progress-bar {
4074
- --track-color: var(--jkl-color-border-separator);
4075
- --bar-color: var(--jkl-color-border-input-focus);
4016
+ --track-color: var(--jkl-color-border-subdued);
4017
+ --bar-color: var(--jkl-color-border-strong);
4076
4018
  --bar-height: 0.25rem;
4077
4019
  background-color: var(--track-color);
4078
4020
  border-radius: 6.25rem;
@@ -4093,12 +4035,36 @@
4093
4035
  background-color: CanvasText;
4094
4036
  }
4095
4037
  }
4038
+ .jkl-progress-bar {
4039
+ outline: 0;
4040
+ border-style: none;
4041
+ outline-style: none;
4042
+ }
4043
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4044
+ outline: 0;
4045
+ outline-style: none;
4046
+ }
4047
+ @media screen and (forced-colors: active) {
4048
+ .jkl-progress-bar {
4049
+ outline: revert;
4050
+ border-style: revert;
4051
+ outline-style: revert;
4052
+ }
4053
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4054
+ outline: revert;
4055
+ outline-style: revert;
4056
+ }
4057
+ }
4058
+ .jkl-progress-bar:focus-visible {
4059
+ outline: 3px solid var(--jkl-color-border-strong);
4060
+ outline-offset: 3px;
4061
+ }
4096
4062
  .jkl-progress-bar__tracker {
4097
4063
  transition-property: width;
4098
- transition-timing-function: ease;
4099
- transition-duration: 150ms;
4064
+ transition-timing-function: var(--jkl-motion-easing-standard);
4065
+ transition-duration: var(--jkl-motion-timing-productive);
4100
4066
  }
4101
- @keyframes jkl-downcount-uyjs53m {
4067
+ @keyframes jkl-downcount-ujgb89n {
4102
4068
  from {
4103
4069
  width: 100%;
4104
4070
  }
@@ -4112,15 +4078,18 @@
4112
4078
  /* Visuell justering pga. rundt ikon */
4113
4079
  margin-inline-start: -0.15em;
4114
4080
  }
4081
+ .jkl-radio-panel .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
4082
+ outline: none;
4083
+ }
4115
4084
  }
4116
4085
  .jkl-select--beta {
4117
- --border-color: var(--jkl-color-border-input);
4118
- --background-color: var(transparent);
4086
+ --border-color: var(--jkl-color-border-default);
4087
+ --background-color: transparent;
4119
4088
  --color: var(--jkl-color-text-default);
4120
4089
  --box-shadow: 0 0 0 jkl.rem(1px) transparent;
4121
4090
  --border-width: 0.0625rem;
4122
4091
  --button-padding: calc(var(--jkl-unit-15) - var(--border-width));
4123
- --arrow-right: calc(var(--jkl-unit-base) * 0.25);
4092
+ --arrow-right: var(--jkl-unit-02);
4124
4093
  display: block;
4125
4094
  position: relative;
4126
4095
  }
@@ -4148,7 +4117,7 @@
4148
4117
  outline: none;
4149
4118
  }
4150
4119
  .jkl-select--beta .jkl-tooltip-question-button:focus {
4151
- outline: 3px solid var(--jkl-color-border-action);
4120
+ outline: 3px solid var(--jkl-color-border-strong);
4152
4121
  outline-offset: 0;
4153
4122
  }
4154
4123
  .jkl-select--beta-wrapper {
@@ -4182,30 +4151,27 @@
4182
4151
  --color: var(--jkl-color-text-subdued);
4183
4152
  }
4184
4153
  .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);
4154
+ --border-color: var(--jkl-color-border-strong);
4155
+ --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-strong);
4187
4156
  }
4188
4157
  .jkl-select--beta select:invalid {
4189
- --background-color: var(--jkl-color-background-alert-error);
4190
- --color: var(--jkl-color-text-on-alert-subdued);
4158
+ --background-color: var(--jkl-color-error-background-container);
4159
+ --color: var(--jkl-color-error-text-subdued);
4191
4160
  }
4192
4161
  .jkl-select--beta select:focus-visible {
4193
4162
  outline: none;
4194
4163
  }
4195
4164
  .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;
4165
+ transition-timing-function: var(--jkl-motion-easing-standard);
4166
+ transition-duration: var(--jkl-motion-timing-productive);
4167
+ font: var(--jkl-text-style-text-medium);
4202
4168
  }
4203
4169
  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);
4170
+ outline: 3px solid var(--jkl-color-border-strong);
4205
4171
  outline-offset: 3px;
4206
4172
  }
4207
4173
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) select {
4208
- outline: 3px solid var(--jkl-color-border-action);
4174
+ outline: 3px solid var(--jkl-color-border-strong);
4209
4175
  outline-offset: 3px;
4210
4176
  }
4211
4177
 
@@ -4219,12 +4185,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4219
4185
  --icon-size: var(--jkl-text-input-height);
4220
4186
  --border-radius: var(--jkl-border-radius-s);
4221
4187
  --border-width: 1px;
4222
- --border: var(--border-width) solid var(--jkl-color-border-input);
4188
+ --border: var(--border-width) solid var(--jkl-color-border-default);
4223
4189
  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;
4190
+ font: var(--jkl-text-style-text-medium);
4228
4191
  }
4229
4192
  .jkl-search input[type=search] {
4230
4193
  appearance: none;
@@ -4254,10 +4217,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4254
4217
  }
4255
4218
  }
4256
4219
  .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;
4220
+ font: var(--jkl-text-style-text-medium);
4261
4221
  }
4262
4222
  .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
4223
  appearance: none;
@@ -4280,7 +4240,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4280
4240
  justify-content: center;
4281
4241
  height: 100%;
4282
4242
  grid-column: 1;
4283
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", monospace;
4243
+ font-family: "Jokul Icons", "Jokul Icons Fallback", monospace;
4284
4244
  }
4285
4245
  .jkl-search .input-wrapper:has(.clear-button) {
4286
4246
  grid-template-columns: 1.3em 1fr 1.3em;
@@ -4310,17 +4270,17 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4310
4270
  grid-row: 1;
4311
4271
  grid-column: 1;
4312
4272
  z-index: 1;
4313
- 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);
4273
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4274
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4315
4275
  font-feature-settings: "liga";
4316
4276
  -webkit-font-feature-settings: "liga";
4317
4277
  font-size: 1.3em;
4318
- font-weight: var(--jkl-icon-weight, 300);
4278
+ font-weight: 400;
4319
4279
  line-height: 1;
4320
4280
  display: inline-block;
4321
4281
  -webkit-font-smoothing: antialiased;
4322
- transition-timing-function: ease;
4323
- transition-duration: 75ms;
4282
+ transition-timing-function: var(--jkl-motion-easing-standard);
4283
+ transition-duration: var(--jkl-motion-timing-energetic);
4324
4284
  transition-property: font-variation-settings, transform;
4325
4285
  }
4326
4286
  .jkl-search .clear-button::after {
@@ -4331,15 +4291,15 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4331
4291
  background-color: var(--jkl-color-text-default);
4332
4292
  opacity: 0;
4333
4293
  border-radius: inherit;
4334
- transition-timing-function: ease;
4335
- transition-duration: 150ms;
4294
+ transition-timing-function: var(--jkl-motion-easing-standard);
4295
+ transition-duration: var(--jkl-motion-timing-productive);
4336
4296
  transition-property: opacity;
4337
4297
  }
4338
4298
  .jkl-search .clear-button:hover::after {
4339
4299
  opacity: 0.15;
4340
4300
  }
4341
4301
  .jkl-search .clear-button:focus-visible {
4342
- outline: 3px solid var(--jkl-color-border-action);
4302
+ outline: 3px solid var(--jkl-color-border-strong);
4343
4303
  outline-offset: 3px;
4344
4304
  }
4345
4305
 
@@ -4368,9 +4328,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4368
4328
  width: 1px;
4369
4329
  inset: 0;
4370
4330
  inset-block: 20%;
4371
- background-color: var(--jkl-color-border-separator);
4372
- transition-timing-function: ease;
4373
- transition-duration: 150ms;
4331
+ background-color: var(--jkl-color-border-subdued);
4332
+ transition-timing-function: var(--jkl-motion-easing-standard);
4333
+ transition-duration: var(--jkl-motion-timing-productive);
4374
4334
  transition-property: inset;
4375
4335
  }
4376
4336
  .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit:hover::before {
@@ -4392,13 +4352,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4392
4352
  position: relative;
4393
4353
  display: inline-flex;
4394
4354
  align-items: center;
4395
- background-color: var(--jkl-color-background-interactive);
4396
- border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-separator);
4355
+ background-color: transparent;
4356
+ border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-subdued);
4397
4357
  border-radius: 0;
4398
4358
  margin-inline-end: calc(var(--jkl-segmented-control-border-width) * -1);
4399
4359
  margin-block-end: 0.5lh;
4400
- transition-timing-function: cubic-bezier(0, 0, 0.375, 1.17);
4401
- transition-duration: 250ms;
4360
+ transition-timing-function: var(--jkl-motion-easing-ease-in-bounce-out);
4361
+ transition-duration: var(--jkl-motion-timing-expressive);
4402
4362
  transition-property: border background;
4403
4363
  }
4404
4364
  .jkl-segmented-control .jkl-segmented-control-item label {
@@ -4406,13 +4366,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4406
4366
  padding: var(--jkl-segmented-controls-padding);
4407
4367
  }
4408
4368
  .jkl-segmented-control .jkl-segmented-control-item:hover {
4409
- background-color: var(--jkl-color-background-interactive-hover);
4410
- border-color: var(--jkl-color-border-separator-hover);
4369
+ background-color: color-mix(in srgb, currentColor 6%, transparent);
4370
+ border-color: var(--jkl-color-border-default);
4411
4371
  z-index: 2;
4412
4372
  }
4413
4373
  .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);
4374
+ background-color: var(--jkl-color-background-container);
4375
+ border-color: var(--jkl-color-border-subdued);
4416
4376
  z-index: 1;
4417
4377
  }
4418
4378
  .jkl-segmented-control .jkl-segmented-control-item:has(input[data-separated=true]) {
@@ -4446,10 +4406,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4446
4406
  flex-direction: column;
4447
4407
  overflow-wrap: anywhere;
4448
4408
  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;
4409
+ font: var(--jkl-text-style-text-medium);
4453
4410
  }
4454
4411
  .jkl-summary-table tr {
4455
4412
  display: flex;
@@ -4471,16 +4428,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4471
4428
  padding-right: 0;
4472
4429
  }
4473
4430
  .jkl-summary-table > tbody th {
4474
- font-weight: 400;
4431
+ font-weight: var(--jkl-font-weight-normal);
4475
4432
  }
4476
4433
  .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);
4434
+ border-top: 0.0625rem solid var(--jkl-color-border-strong);
4435
+ border-bottom: 0.0625rem solid var(--jkl-color-border-strong);
4479
4436
  padding-top: var(--jkl-unit-10);
4480
4437
  }
4481
4438
  .jkl-summary-table > tfoot th,
4482
4439
  .jkl-summary-table > tfoot td {
4483
- font-weight: var(--jkl-typography-weight-bold);
4440
+ font-weight: var(--jkl-font-weight-bold);
4484
4441
  }
4485
4442
  }
4486
4443
  @layer jokul.components {
@@ -4489,14 +4446,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4489
4446
  --jkl-system-message-icon-padding: 0.1875rem 0 0 0;
4490
4447
  --jkl-system-message-content-padding: var(--jkl-unit-30);
4491
4448
  --jkl-system-message-dismiss-button-size: var(--jkl-unit-40);
4492
- --jkl-system-message-dismiss-button-margin: -0.40625rem -1.125rem -0.40625rem
4493
- 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);
4449
+ --jkl-system-message-dismiss-button-margin: -0.40625rem
4450
+ -1.125rem -0.40625rem auto;
4451
+ --jkl-system-message-message-margin: 0 var(--jkl-unit-20);
4452
+ --background-color: var(--jkl-color-background-container);
4453
+ --text-color: var(--jkl-color-text-default);
4454
+ --border-color: var(--jkl-color-border-subdued);
4497
4455
  width: 100%;
4498
4456
  background-color: var(--background-color);
4499
4457
  color: var(--text-color);
4458
+ border: 1px solid var(--border-color);
4500
4459
  transition-behavior: allow-discrete;
4501
4460
  box-sizing: border-box;
4502
4461
  }
@@ -4523,10 +4482,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4523
4482
  }
4524
4483
  }
4525
4484
  .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;
4485
+ font: var(--jkl-text-style-text-medium);
4530
4486
  margin: var(--jkl-system-message-message-margin);
4531
4487
  }
4532
4488
  .jkl-system-message__dismiss-button {
@@ -4584,7 +4540,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4584
4540
  }
4585
4541
  }
4586
4542
  .jkl-system-message__dismiss-button:hover {
4587
- color: var(--jkl-color-text-interactive-hover);
4543
+ color: var(--jkl-color-text-subdued);
4588
4544
  }
4589
4545
  @media screen and (forced-colors: active) {
4590
4546
  .jkl-system-message__dismiss-button:hover {
@@ -4595,7 +4551,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4595
4551
  }
4596
4552
  }
4597
4553
  .jkl-system-message__dismiss-button:focus-visible {
4598
- outline: 3px solid var(--jkl-color-border-action);
4554
+ outline: 3px solid var(--jkl-color-border-strong);
4599
4555
  outline-offset: 3px;
4600
4556
  }
4601
4557
  @media screen and (forced-colors: active) {
@@ -4608,20 +4564,28 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4608
4564
  margin-bottom: 0;
4609
4565
  }
4610
4566
  .jkl-system-message--dismissed {
4611
- animation: jkl-dismiss-uyjs543 400ms forwards;
4612
- transition: block 400ms 400ms;
4567
+ animation: jkl-dismiss-ujgb8aj var(--jkl-motion-timing-lazy) forwards;
4568
+ transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4613
4569
  }
4614
4570
  .jkl-system-message--info {
4615
- --background-color: var(--jkl-color-background-alert-info);
4571
+ --background-color: var(--jkl-color-info-background-container);
4572
+ --text-color: var(--jkl-color-info-text-default);
4573
+ --border-color: var(--jkl-color-info-border-subdued);
4616
4574
  }
4617
4575
  .jkl-system-message--warning {
4618
- --background-color: var(--jkl-color-background-alert-warning);
4576
+ --background-color: var(--jkl-color-warning-background-container);
4577
+ --text-color: var(--jkl-color-warning-text-default);
4578
+ --border-color: var(--jkl-color-warning-border-subdued);
4619
4579
  }
4620
4580
  .jkl-system-message--error {
4621
- --background-color: var(--jkl-color-background-alert-error);
4581
+ --background-color: var(--jkl-color-error-background-container);
4582
+ --text-color: var(--jkl-color-error-text-default);
4583
+ --border-color: var(--jkl-color-error-border-subdued);
4622
4584
  }
4623
4585
  .jkl-system-message--success {
4624
- --background-color: var(--jkl-color-background-alert-success);
4586
+ --background-color: var(--jkl-color-success-background-container);
4587
+ --text-color: var(--jkl-color-success-text-default);
4588
+ --border-color: var(--jkl-color-success-border-subdued);
4625
4589
  }
4626
4590
  @media screen and (forced-colors: active) {
4627
4591
  .jkl-system-message {
@@ -4638,7 +4602,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4638
4602
  border-width: 4px;
4639
4603
  }
4640
4604
  }
4641
- @keyframes jkl-dismiss-uyjs543 {
4605
+ @keyframes jkl-dismiss-ujgb8aj {
4642
4606
  from {
4643
4607
  opacity: 1;
4644
4608
  transform: translateY(0);
@@ -4675,10 +4639,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4675
4639
  position: relative;
4676
4640
  text-align: left;
4677
4641
  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;
4642
+ font: var(--jkl-text-style-text-medium);
4682
4643
  }
4683
4644
  .jkl-table-cell:has(.jkl-button) {
4684
4645
  --jkl-table-cell-padding: var(--jkl-unit-05);
@@ -4713,19 +4674,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4713
4674
  .jkl-table--collapse-to-list .jkl-table-cell[data-th]:not(.jkl-table-cell--expand-without-text)::before {
4714
4675
  content: attr(data-th);
4715
4676
  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;
4677
+ font: var(--jkl-text-style-heading-5);
4720
4678
  }
4721
4679
  }
4722
4680
  .jkl-table--collapse-to-list[data-collapse] .jkl-table-cell:not(.jkl-table-cell--expand-without-text)::before {
4723
4681
  content: attr(data-th);
4724
4682
  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;
4683
+ font: var(--jkl-text-style-heading-5);
4729
4684
  }
4730
4685
  @media (min-width: 680px) {
4731
4686
  .jkl-table--collapse-to-list:not([data-collapse]) .jkl-table-cell--expand-without-text .jkl-expand-button__text {
@@ -4745,22 +4700,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4745
4700
  }
4746
4701
  }
4747
4702
  @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
4703
  .jkl-table-head--sr-only {
4765
4704
  border: 0 !important;
4766
4705
  clip: rect(1px, 1px, 1px, 1px) !important; /* 1 */
@@ -4777,9 +4716,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4777
4716
  position: sticky;
4778
4717
  top: var(--jkl-table-head-sticky-offset, 0);
4779
4718
  z-index: 1;
4780
- background-color: var(--jkl-table-head-sticky-color);
4719
+ background-color: var(--jkl-table-head-sticky-color, var(--jkl-color-background-page));
4781
4720
  border-bottom: none;
4782
- box-shadow: inset 0 0 0 #000, inset 0 -0.0625rem 0 var(--jkl-color-border-separator-strong);
4721
+ box-shadow: inset 0 0 0 #000, inset 0 var(--jkl-border-width-1) 0 var(--jkl-color-border-strong);
4783
4722
  background-clip: padding-box;
4784
4723
  vertical-align: bottom;
4785
4724
  height: 2.3em;
@@ -4789,11 +4728,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4789
4728
  .jkl-table-header {
4790
4729
  --jkl-table-header-padding-inline: var(--jkl-unit-15);
4791
4730
  --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;
4731
+ font: var(--jkl-text-style-text-small);
4732
+ font-weight: var(--jkl-font-weight-bold);
4797
4733
  padding-block: var(--jkl-table-header-padding-block);
4798
4734
  padding-inline: var(--jkl-table-header-padding-inline);
4799
4735
  text-align: left;
@@ -4806,7 +4742,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4806
4742
  text-align: right;
4807
4743
  }
4808
4744
  .jkl-table-header--bold {
4809
- font-weight: var(--jkl-typography-weight-bold);
4745
+ font-weight: var(--jkl-font-weight-bold);
4810
4746
  }
4811
4747
  .jkl-table-header__arrows {
4812
4748
  display: flex;
@@ -4878,7 +4814,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4878
4814
  flex-direction: column;
4879
4815
  justify-content: center;
4880
4816
  flex-wrap: wrap;
4881
- gap: calc(var(--jkl-unit-base) * 2);
4817
+ gap: var(--jkl-unit-20);
4882
4818
  }
4883
4819
  @media (min-width: 680px) {
4884
4820
  .jkl-table-pagination__nav {
@@ -4946,16 +4882,18 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4946
4882
  }
4947
4883
  .jkl-table-pagination__page--active {
4948
4884
  --jkl-icon-weight: 400;
4949
- font-weight: 700;
4885
+ font-weight: var(--jkl-font-weight-bold);
4950
4886
  letter-spacing: -0.014em;
4951
4887
  }
4952
4888
  }
4953
4889
  @layer jokul.components {
4954
4890
  .jkl-table-row {
4955
- --jkl-table-row-border-color: var(--jkl-color-border-separator);
4891
+ --jkl-table-row-border-color: var(--jkl-color-border-subdued);
4956
4892
  --jkl-table-row-border-none-color: transparent;
4957
- --jkl-table-row-hover-border-color: var(--jkl-color-border-separator-strong);
4958
- --jkl-table-row-highlight-color: var(--jkl-color-background-interactive-selected);
4893
+ --jkl-table-row-hover-border-color: var(--jkl-color-border-strong);
4894
+ --jkl-table-row-highlight-color: color-mix(in srgb,
4895
+ currentColor 15%,
4896
+ transparent);
4959
4897
  border-bottom: solid 0.0625rem var(--jkl-table-row-border-color);
4960
4898
  }
4961
4899
  .jkl-table-head > .jkl-table-row {
@@ -5007,8 +4945,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5007
4945
  }
5008
4946
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable {
5009
4947
  transition-property: border, padding;
5010
- transition-timing-function: ease;
5011
- transition-duration: 150ms;
4948
+ transition-timing-function: var(--jkl-motion-easing-standard);
4949
+ transition-duration: var(--jkl-motion-timing-productive);
5012
4950
  }
5013
4951
  .jkl-table--collapse-to-list[data-collapse] :not(.jkl-table-head) > .jkl-table-row.jkl-table-row--expandable.jkl-table-row--expanded {
5014
4952
  border-bottom-color: var(--jkl-table-row-border-none-color);
@@ -5027,8 +4965,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5027
4965
  }
5028
4966
  .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
4967
  transition-property: border;
5030
- transition-timing-function: ease;
5031
- transition-duration: 150ms;
4968
+ transition-timing-function: var(--jkl-motion-easing-standard);
4969
+ transition-duration: var(--jkl-motion-timing-productive);
5032
4970
  }
5033
4971
  .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
4972
  border-top-color: var(--jkl-table-row-border-none-color);
@@ -5088,13 +5026,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5088
5026
  }
5089
5027
  .jkl-expandable-table-row__expanded-row {
5090
5028
  display: none;
5091
- transition-timing-function: ease-in;
5092
- transition-duration: 250ms;
5029
+ transition-timing-function: var(--jkl-motion-easing-exit);
5030
+ transition-duration: var(--jkl-motion-timing-expressive);
5093
5031
  transition-property: height;
5094
5032
  }
5095
5033
  .jkl-expandable-table-row__expanded-row--expanded {
5096
- transition-timing-function: ease-out;
5097
- transition-duration: 400ms;
5034
+ transition-timing-function: var(--jkl-motion-easing-entrance);
5035
+ transition-duration: var(--jkl-motion-timing-lazy);
5098
5036
  display: block;
5099
5037
  }
5100
5038
  }
@@ -5159,16 +5097,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5159
5097
  @layer jokul.components {
5160
5098
  .jkl-table-of-contents {
5161
5099
  --ordered-item-padding: var(--jkl-unit-10);
5162
- --border: 1px solid var(--jkl-color-border-separator);
5100
+ --border: 1px solid var(--jkl-color-border-subdued);
5163
5101
  --text-color: var(--jkl-color-text-default);
5164
5102
  }
5165
5103
  .jkl-table-of-contents .jkl-table-of-contents-title {
5166
5104
  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;
5105
+ font: var(--jkl-text-style-paragraph-small);
5172
5106
  }
5173
5107
  .jkl-table-of-contents .jkl-table-of-contents-item {
5174
5108
  display: flex;
@@ -5220,13 +5154,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5220
5154
  .jkl-table-of-contents ol .jkl-table-of-contents-link {
5221
5155
  padding-inline-end: var(--jkl-unit-20);
5222
5156
  padding-block: var(--ordered-item-padding);
5223
- transition-timing-function: ease;
5224
- transition-duration: 150ms;
5157
+ transition-timing-function: var(--jkl-motion-easing-standard);
5158
+ transition-duration: var(--jkl-motion-timing-productive);
5225
5159
  transition-property: color;
5226
5160
  }
5227
5161
  .jkl-table-of-contents ol .jkl-table-of-contents-link::before {
5228
5162
  content: counter(table-of-contents, decimal-leading-zero);
5229
- font-family: "Fremtind Grotesk Mono", "Adjusted Courier New Fallback", -apple-system, BlinkMacSystemFont, monospace;
5163
+ font-family: var(--jkl-font-family-mono);
5230
5164
  color: inherit;
5231
5165
  font-size: var(--jkl-small-font-size);
5232
5166
  }
@@ -5237,9 +5171,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5237
5171
  }
5238
5172
  .jkl-tablist {
5239
5173
  --padding-inline-end: var(--jkl-unit-50);
5240
- --text-color: var(--jkl-color-text-interactive);
5241
- --line-color: var(--jkl-color-border-separator);
5242
- --indicator-color: var(--jkl-color-border-separator-hover);
5174
+ --text-color: var(--jkl-color-text-default);
5175
+ --line-color: var(--jkl-color-border-subdued);
5176
+ --indicator-color: var(--jkl-color-border-default);
5243
5177
  scroll-snap-type: x proximity;
5244
5178
  overflow: scroll hidden;
5245
5179
  scrollbar-width: none;
@@ -5270,16 +5204,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5270
5204
  inset-block-start: calc(anchor(end) - 2px);
5271
5205
  inset-inline-start: calc(anchor(--active-tab start));
5272
5206
  background-color: var(--indicator-color);
5273
- transition-timing-function: ease;
5274
- transition-duration: 400ms;
5207
+ transition-timing-function: var(--jkl-motion-easing-standard);
5208
+ transition-duration: var(--jkl-motion-timing-lazy);
5275
5209
  }
5276
5210
  }
5277
5211
  .jkl-tab {
5278
5212
  --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;
5213
+ font: var(--jkl-text-style-text-medium);
5283
5214
  color: var(--text-color);
5284
5215
  padding: var(--jkl-unit-10) var(--padding-inline-end) var(--jkl-unit-10) var(--jkl-unit-05);
5285
5216
  border: none;
@@ -5312,16 +5243,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5312
5243
  }
5313
5244
  }
5314
5245
  .jkl-tab:hover {
5315
- --text-color: var(--jkl-color-text-interactive-hover);
5246
+ --text-color: var(--jkl-color-text-subdued);
5316
5247
  }
5317
5248
  .jkl-tab:focus-visible {
5318
- outline: 3px solid var(--jkl-color-border-action);
5249
+ outline: 3px solid var(--jkl-color-border-strong);
5319
5250
  outline-offset: -2px;
5320
5251
  }
5321
5252
  .jkl-tab[aria-selected=true] {
5322
5253
  anchor-name: --active-tab;
5323
5254
  --jkl-icon-weight: 400;
5324
- font-weight: 700;
5255
+ font-weight: var(--jkl-font-weight-bold);
5325
5256
  letter-spacing: -0.014em;
5326
5257
  }
5327
5258
  @supports not (position-anchor: --active-tab) {
@@ -5336,8 +5267,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5336
5267
  inset-block-end: 0;
5337
5268
  inset-inline-start: 0;
5338
5269
  background-color: var(--indicator-color);
5339
- transition-timing-function: ease;
5340
- transition-duration: 400ms;
5270
+ transition-timing-function: var(--jkl-motion-easing-standard);
5271
+ transition-duration: var(--jkl-motion-timing-lazy);
5341
5272
  }
5342
5273
  }
5343
5274
  }
@@ -5367,11 +5298,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5367
5298
  left: var(--jkl-unit-30);
5368
5299
  }
5369
5300
  .jkl-toast {
5370
- --background-color: var(--jkl-color-background-container-high);
5301
+ --background-color: var(--jkl-color-background-container);
5371
5302
  --text-color: var(--jkl-color-text-default);
5303
+ --border-color: transparent;
5372
5304
  --jkl-toast-padding: var(--jkl-unit-20);
5373
5305
  color: var(--text-color);
5374
5306
  background-color: var(--background-color);
5307
+ border: 1px solid var(--border-color);
5375
5308
  border-radius: 4px;
5376
5309
  box-sizing: border-box;
5377
5310
  align-items: start;
@@ -5379,13 +5312,10 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5379
5312
  width: clamp(15em, 100%, min(30rem, 85vw));
5380
5313
  padding: var(--jkl-toast-padding);
5381
5314
  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;
5315
+ font: var(--jkl-text-style-paragraph-medium);
5386
5316
  }
5387
5317
  .jkl-toast__progress {
5388
- --bar-color: var(--text-color);
5318
+ --bar-color: var(--jkl-color-background-contrast);
5389
5319
  --track-color: transparent;
5390
5320
  border-radius: 0;
5391
5321
  position: absolute;
@@ -5413,10 +5343,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5413
5343
  margin-top: var(--jkl-unit-15);
5414
5344
  }
5415
5345
  .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;
5346
+ font: var(--jkl-text-style-heading-5);
5420
5347
  }
5421
5348
  .jkl-toast__dismiss-button {
5422
5349
  background-color: transparent;
@@ -5443,20 +5370,25 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5443
5370
  position: absolute;
5444
5371
  inset: calc((var(--tap-size) - 100%) / 2 * -1);
5445
5372
  }
5446
- .jkl-toast--info, .jkl-toast--warning, .jkl-toast--error, .jkl-toast--success {
5447
- --text-color: var(--jkl-color-text-on-alert);
5448
- }
5449
5373
  .jkl-toast--info {
5450
- --background-color: var(--jkl-color-background-alert-info);
5374
+ --background-color: var(--jkl-color-info-background-container);
5375
+ --text-color: var(--jkl-color-info-text-default);
5376
+ --border-color: var(--jkl-color-info-border-subdued);
5451
5377
  }
5452
5378
  .jkl-toast--warning {
5453
- --background-color: var(--jkl-color-background-alert-warning);
5379
+ --background-color: var(--jkl-color-warning-background-container);
5380
+ --text-color: var(--jkl-color-warning-text-default);
5381
+ --border-color: var(--jkl-color-warning-border-subdued);
5454
5382
  }
5455
5383
  .jkl-toast--error {
5456
- --background-color: var(--jkl-color-background-alert-error);
5384
+ --background-color: var(--jkl-color-error-background-container);
5385
+ --text-color: var(--jkl-color-error-text-default);
5386
+ --border-color: var(--jkl-color-error-border-subdued);
5457
5387
  }
5458
5388
  .jkl-toast--success {
5459
- --background-color: var(--jkl-color-background-alert-success);
5389
+ --background-color: var(--jkl-color-success-background-container);
5390
+ --text-color: var(--jkl-color-success-text-default);
5391
+ --border-color: var(--jkl-color-success-border-subdued);
5460
5392
  }
5461
5393
  @media screen and (forced-colors: active) {
5462
5394
  .jkl-toast {
@@ -5475,12 +5407,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5475
5407
  }
5476
5408
  .jkl-toast[data-animation=entering],
5477
5409
  .jkl-toast[data-animation=queued] {
5478
- animation: jkl-entering-uyjs54k 200ms ease-out forwards;
5410
+ animation: jkl-entering-ujgb8ay var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5479
5411
  }
5480
5412
  .jkl-toast[data-animation=exiting] {
5481
- animation: jkl-exiting-uyjs558 150ms ease-in forwards;
5413
+ animation: jkl-exiting-ujgb8bf var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5482
5414
  }
5483
- @keyframes jkl-entering-uyjs54k {
5415
+ @keyframes jkl-entering-ujgb8ay {
5484
5416
  from {
5485
5417
  opacity: 0;
5486
5418
  transform: translate3d(0, 50%, 0);
@@ -5490,7 +5422,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5490
5422
  transform: translate3d(0, 0, 0);
5491
5423
  }
5492
5424
  }
5493
- @keyframes jkl-exiting-uyjs558 {
5425
+ @keyframes jkl-exiting-ujgb8bf {
5494
5426
  from {
5495
5427
  opacity: 1;
5496
5428
  transform: translate3d(0, 0, 0);
@@ -6850,12 +6782,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
6850
6782
  }
6851
6783
  }
6852
6784
  .jkl-toggle-slider {
6853
- --jkl-slider-bg: var(--jkl-color-background-container-low);
6854
- --jkl-slider-pill: var(--jkl-color-background-container-high);
6785
+ --jkl-slider-bg: var(--jkl-color-background-page);
6786
+ --jkl-slider-pill: var(--jkl-color-background-container);
6855
6787
  --jkl-slider-text: var(--jkl-color-text-default);
6856
6788
  --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);
6789
+ --jkl-slider-focus-color: var(--jkl-color-border-strong);
6790
+ --jkl-slider-hover-color: var(--jkl-color-border-strong);
6859
6791
  font-size: var(--jkl-slider-font-size);
6860
6792
  line-height: var(--jkl-slider-line-height);
6861
6793
  font-weight: var(--jkl-slider-font-weight);
@@ -6871,7 +6803,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6871
6803
  box-shadow: inset 0 0 0 0.125rem var(--jkl-slider-focus-color);
6872
6804
  }
6873
6805
  .jkl-toggle-slider__legend {
6874
- margin-bottom: 0.5rem;
6806
+ margin-bottom: var(--jkl-spacing-8);
6875
6807
  font-size: var(--jkl-slider-legend-font-size);
6876
6808
  line-height: var(--jkl-slider-legend-line-height);
6877
6809
  font-weight: var(--jkl-slider-legend-font-weight);
@@ -6917,7 +6849,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6917
6849
  }
6918
6850
  .jkl-toggle-slider__label--selected {
6919
6851
  --jkl-icon-weight: 400;
6920
- font-weight: 700;
6852
+ font-weight: var(--jkl-font-weight-bold);
6921
6853
  letter-spacing: -0.014em;
6922
6854
  color: var(--jkl-slider-pill-text--active);
6923
6855
  }
@@ -6927,8 +6859,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6927
6859
  position: absolute;
6928
6860
  transition-property: width, transform;
6929
6861
  border-radius: 6.25rem;
6930
- transition-timing-function: ease;
6931
- transition-duration: 250ms;
6862
+ transition-timing-function: var(--jkl-motion-easing-standard);
6863
+ transition-duration: var(--jkl-motion-timing-expressive);
6932
6864
  }
6933
6865
  @media (min-width: 680px) {
6934
6866
  .jkl-toggle-slider {
@@ -6954,14 +6886,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6954
6886
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6955
6887
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6956
6888
  --border-width: 0.0625rem;
6957
- --switch-padding: 0.25rem;
6889
+ --switch-padding: var(--jkl-unit-05);
6958
6890
  --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);
6891
+ --switch-border-color: var(--jkl-color-border-strong);
6892
+ --indicator-color: var(--jkl-color-background-container);
6893
+ --knob-border-color: var(--jkl-color-border-strong);
6894
+ --knob-color: var(--jkl-color-background-container);
6963
6895
  --text-color: var(--jkl-color-text-default);
6964
- --icon-color: var(--jkl-color-text-inverted);
6896
+ --icon-color: var(--jkl-color-text-on-contrast);
6965
6897
  background: transparent;
6966
6898
  color: var(--text-color);
6967
6899
  padding: 0;
@@ -6972,10 +6904,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6972
6904
  align-items: center;
6973
6905
  gap: var(--jkl-unit-10);
6974
6906
  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;
6907
+ font: var(--jkl-text-style-text-medium);
6979
6908
  }
6980
6909
  .jkl-toggle-switch {
6981
6910
  outline: 0;
@@ -7004,14 +6933,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7004
6933
  }
7005
6934
  }
7006
6935
  .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);
7009
- --knob-position: calc(
7010
- var(--jkl-toggle-switch-width) - var(
7011
- --jkl-toggle-switch-knob-size
7012
- ) - var(--switch-padding) *
7013
- 2
7014
- );
6936
+ --indicator-color: var(--jkl-color-background-contrast);
6937
+ --knob-color: var(--jkl-color-text-on-contrast);
6938
+ --knob-position: calc(var(--jkl-toggle-switch-width) - var(--jkl-toggle-switch-knob-size) - var(--switch-padding) * 2);
7015
6939
  }
7016
6940
  .jkl-toggle-switch[disabled] {
7017
6941
  cursor: revert;
@@ -7027,7 +6951,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7027
6951
  --jkl-toggle-switch-height: var(--jkl-unit-40);
7028
6952
  --jkl-toggle-switch-width: var(--jkl-unit-60);
7029
6953
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
7030
- --jkl-toggle-switch-indicator-spacing: 0;
7031
6954
  position: relative;
7032
6955
  box-sizing: border-box;
7033
6956
  display: flex;
@@ -7049,7 +6972,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7049
6972
  }
7050
6973
  }
7051
6974
  .jkl-toggle-switch:focus-visible .jkl-toggle-switch-widget {
7052
- outline: 3px solid var(--jkl-color-border-action);
6975
+ outline: 3px solid var(--jkl-color-border-strong);
7053
6976
  outline-offset: 3px;
7054
6977
  }
7055
6978
  .jkl-toggle-switch-widget__slider {
@@ -7059,8 +6982,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7059
6982
  width: var(--jkl-toggle-switch-knob-size);
7060
6983
  color: var(--icon-color);
7061
6984
  font-size: var(--jkl-font-size-1);
7062
- transition-timing-function: ease;
7063
- transition-duration: 150ms;
6985
+ transition-timing-function: var(--jkl-motion-easing-standard);
6986
+ transition-duration: var(--jkl-motion-timing-productive);
7064
6987
  transition-property: translate;
7065
6988
  translate: var(--knob-position);
7066
6989
  }
@@ -7075,14 +6998,97 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7075
6998
  position: absolute;
7076
6999
  top: 50%;
7077
7000
  right: 100%;
7078
- margin-right: var(--jkl-toggle-switch-indicator-spacing);
7001
+ font-size: var(--jkl-unit-20);
7079
7002
  transform: translate(0, -50%);
7080
7003
  }
7081
- .jkl-toggle-switch-widget__indicator > .jkl-icon__icon {
7082
- position: absolute;
7083
- inset: 0;
7084
- }
7085
7004
 
7005
+ @layer jokul.components {
7006
+ :where(.jkl-text) {
7007
+ font-weight: var(--jkl-typography-weight-normal);
7008
+ line-height: var(--jkl-line-height-relaxed);
7009
+ }
7010
+ .jkl-text[data-text-size] {
7011
+ margin-block: 0;
7012
+ }
7013
+ .jkl-text[data-text-size=xs] {
7014
+ font: var(--jkl-text-style-text-micro);
7015
+ }
7016
+ .jkl-text[data-text-size=s] {
7017
+ font: var(--jkl-text-style-paragraph-small);
7018
+ }
7019
+ .jkl-text[data-text-size=m] {
7020
+ font: var(--jkl-text-style-paragraph-medium);
7021
+ }
7022
+ .jkl-text[data-text-size=l] {
7023
+ font: var(--jkl-text-style-paragraph-large);
7024
+ }
7025
+ .jkl-text[data-bold],
7026
+ strong.jkl-text[data-text-size] {
7027
+ font-weight: var(--jkl-typography-weight-bold);
7028
+ }
7029
+ .jkl-text[data-short] {
7030
+ line-height: var(--jkl-line-height-tight);
7031
+ }
7032
+ :is(code, kbd, samp, var).jkl-text {
7033
+ font-family: var(--jkl-font-family-mono);
7034
+ }
7035
+ label.jkl-text {
7036
+ display: block;
7037
+ margin-block-end: var(--jkl-spacing-8);
7038
+ }
7039
+ }
7040
+ @layer jokul.components {
7041
+ :where(.jkl-title) {
7042
+ font-weight: var(--jkl-typography-weight-normal);
7043
+ line-height: var(--jkl-line-height-tight);
7044
+ }
7045
+ .jkl-title[data-text-size] {
7046
+ margin-block: 0;
7047
+ }
7048
+ .jkl-title[data-text-size=xs],
7049
+ .jkl-heading-xs {
7050
+ font: var(--jkl-text-style-heading-5);
7051
+ }
7052
+ :where(.jkl-heading-xs) {
7053
+ margin-block: 0;
7054
+ }
7055
+ .jkl-title[data-text-size=s],
7056
+ .jkl-heading-s {
7057
+ font: var(--jkl-text-style-heading-4);
7058
+ }
7059
+ :where(.jkl-heading-s) {
7060
+ margin-block: 0;
7061
+ }
7062
+ .jkl-title[data-text-size=m],
7063
+ .jkl-heading-m {
7064
+ font: var(--jkl-text-style-heading-3);
7065
+ }
7066
+ :where(.jkl-heading-m) {
7067
+ margin-block: 0;
7068
+ }
7069
+ .jkl-title[data-text-size=l],
7070
+ .jkl-heading-l {
7071
+ font: var(--jkl-text-style-heading-2);
7072
+ }
7073
+ :where(.jkl-heading-l) {
7074
+ margin-block: 0;
7075
+ }
7076
+ .jkl-title[data-text-size=xl],
7077
+ .jkl-heading-xl {
7078
+ font: var(--jkl-text-style-heading-1);
7079
+ }
7080
+ :where(.jkl-heading-xl) {
7081
+ margin-block: 0;
7082
+ }
7083
+ :is(label, legend).jkl-title[data-text-size] {
7084
+ font-weight: var(--jkl-typography-weight-normal);
7085
+ line-height: var(--jkl-line-height-relaxed);
7086
+ }
7087
+ label.jkl-title[data-text-size] {
7088
+ display: block;
7089
+ margin-block-end: var(--jkl-spacing-8);
7090
+ }
7091
+ }
7086
7092
  @layer jokul.components {
7087
7093
  .jkl-help {
7088
7094
  anchor-scope: all;
@@ -7110,8 +7116,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7110
7116
  padding: var(--jkl-unit-30);
7111
7117
  margin: var(--jkl-unit-05);
7112
7118
  position-anchor: --trigger;
7113
- background-color: var(--jkl-color-background-container-inverted);
7114
- color: var(--jkl-color-text-inverted);
7119
+ background-color: var(--jkl-color-background-contrast);
7120
+ color: var(--jkl-color-text-on-contrast);
7115
7121
  anchor-name: --help-box;
7116
7122
  }
7117
7123
  .jkl-help-popover[data-position=top] {