@fremtind/jokul 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/README.md +15 -2
  2. package/build/build-stats.html +1 -1
  3. package/build/cjs/components/menu/Menu.cjs +1 -1
  4. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  5. package/build/cjs/components/text-input/BaseTextInput.cjs +1 -1
  6. package/build/cjs/components/text-input/BaseTextInput.cjs.map +1 -1
  7. package/build/cjs/core/tokens/style-dictionary/build.cjs +1 -1
  8. package/build/cjs/core/tokens/style-dictionary/build.cjs.map +1 -1
  9. package/build/cjs/core/tokens.cjs +1 -1
  10. package/build/cjs/core/tokens.cjs.map +1 -1
  11. package/build/cjs/core/tokens.d.cts +114 -0
  12. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs +1 -1
  13. package/build/cjs/tailwind/plugins/jokulTypographyPlugin.cjs.map +1 -1
  14. package/build/es/components/menu/Menu.js +1 -1
  15. package/build/es/components/menu/Menu.js.map +1 -1
  16. package/build/es/components/text-input/BaseTextInput.js +1 -1
  17. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  18. package/build/es/core/tokens/style-dictionary/build.js +1 -1
  19. package/build/es/core/tokens/style-dictionary/build.js.map +1 -1
  20. package/build/es/core/tokens.d.ts +114 -0
  21. package/build/es/core/tokens.js +1 -1
  22. package/build/es/core/tokens.js.map +1 -1
  23. package/build/es/tailwind/plugins/jokulTypographyPlugin.js +1 -1
  24. package/build/es/tailwind/plugins/jokulTypographyPlugin.js.map +1 -1
  25. package/package.json +4 -2
  26. package/styles/components/autosuggest/_index.scss +2 -0
  27. package/styles/components/autosuggest/autosuggest.scss +87 -0
  28. package/styles/components/breadcrumb/_index.scss +2 -0
  29. package/styles/components/breadcrumb/breadcrumb.scss +38 -0
  30. package/styles/components/button/_index.scss +2 -0
  31. package/styles/components/button/button.scss +169 -0
  32. package/styles/components/card/_index.scss +3 -0
  33. package/styles/components/card/card.scss +105 -0
  34. package/styles/components/checkbox/_index.scss +1 -0
  35. package/styles/components/checkbox/checkbox.css +4 -4
  36. package/styles/components/checkbox/checkbox.min.css +1 -1
  37. package/styles/components/checkbox/checkbox.scss +248 -0
  38. package/styles/components/checkbox-panel/_index.scss +1 -0
  39. package/styles/components/checkbox-panel/checkbox-panel.css +6 -6
  40. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  41. package/styles/components/checkbox-panel/checkbox-panel.scss +95 -0
  42. package/styles/components/checkbox-panel/development/styles.scss +27 -0
  43. package/styles/components/chip/_index.scss +2 -0
  44. package/styles/components/chip/chip.scss +104 -0
  45. package/styles/components/combobox/_index.scss +6 -0
  46. package/styles/components/combobox/combobox.scss +238 -0
  47. package/styles/components/cookie-consent/_index.scss +5 -0
  48. package/styles/components/cookie-consent/cookie-consent.scss +31 -0
  49. package/styles/components/countdown/_index.scss +1 -0
  50. package/styles/components/countdown/countdown.css +2 -2
  51. package/styles/components/countdown/countdown.min.css +1 -1
  52. package/styles/components/countdown/countdown.scss +25 -0
  53. package/styles/components/datepicker/_calendar-date-button.scss +85 -0
  54. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +52 -0
  55. package/styles/components/datepicker/_calendar-navigation.scss +12 -0
  56. package/styles/components/datepicker/_calendar-table.scss +27 -0
  57. package/styles/components/datepicker/_calendar.scss +36 -0
  58. package/styles/components/datepicker/_index.scss +6 -0
  59. package/styles/components/datepicker/datepicker.scss +47 -0
  60. package/styles/components/description-list/_index.scss +1 -0
  61. package/styles/components/description-list/description-list.scss +58 -0
  62. package/styles/components/expander/_index.scss +4 -0
  63. package/styles/components/expander/expandable.scss +141 -0
  64. package/styles/components/feedback/_index.scss +10 -0
  65. package/styles/components/feedback/feedback.css +2 -2
  66. package/styles/components/feedback/feedback.min.css +1 -1
  67. package/styles/components/feedback/feedback.scss +113 -0
  68. package/styles/components/file/_index.scss +3 -0
  69. package/styles/components/file/file.scss +164 -0
  70. package/styles/components/file-input/_index.scss +5 -0
  71. package/styles/components/file-input/file-input.css +9 -9
  72. package/styles/components/file-input/file-input.min.css +1 -1
  73. package/styles/components/file-input/file-input.scss +130 -0
  74. package/styles/components/flex/_index.scss +1 -0
  75. package/styles/components/flex/flex.scss +252 -0
  76. package/styles/components/help/_index.scss +2 -0
  77. package/styles/components/help/help.scss +47 -0
  78. package/styles/components/icon/_base-styles.scss +21 -0
  79. package/styles/components/icon/_index.scss +1 -0
  80. package/styles/components/icon/development/internal/icons-example-grid.scss +13 -0
  81. package/styles/components/icon/icon.scss +139 -0
  82. package/styles/components/icon-button/_index.scss +1 -0
  83. package/styles/components/icon-button/icon-button.scss +38 -0
  84. package/styles/components/image/_index.scss +1 -0
  85. package/styles/components/image/development/style.scss +9 -0
  86. package/styles/components/image/image.scss +37 -0
  87. package/styles/components/image/stories/styles.scss +9 -0
  88. package/styles/components/input-group/_field-group.scss +5 -0
  89. package/styles/components/input-group/_index.scss +3 -0
  90. package/styles/components/input-group/_labels.scss +159 -0
  91. package/styles/components/input-group/input-group.css +2 -2
  92. package/styles/components/input-group/input-group.min.css +1 -1
  93. package/styles/components/input-group/input-group.scss +11 -0
  94. package/styles/components/input-panel/input-panel.scss +84 -0
  95. package/styles/components/link/_index.scss +1 -0
  96. package/styles/components/link/link.scss +62 -0
  97. package/styles/components/link-list/_index.scss +2 -0
  98. package/styles/components/link-list/link-list.scss +94 -0
  99. package/styles/components/list/_index.scss +1 -0
  100. package/styles/components/list/list.scss +98 -0
  101. package/styles/components/loader/_index.scss +2 -0
  102. package/styles/components/loader/development/styles.scss +11 -0
  103. package/styles/components/loader/loader.css +6 -6
  104. package/styles/components/loader/loader.min.css +1 -1
  105. package/styles/components/loader/loader.scss +139 -0
  106. package/styles/components/loader/skeleton-loader.css +3 -3
  107. package/styles/components/loader/skeleton-loader.min.css +1 -1
  108. package/styles/components/loader/skeleton-loader.scss +137 -0
  109. package/styles/components/logo/_index.scss +1 -0
  110. package/styles/components/logo/development/styles.scss +9 -0
  111. package/styles/components/logo/logo.scss +90 -0
  112. package/styles/components/menu/_index.scss +1 -0
  113. package/styles/components/menu/_menu-divider.scss +10 -0
  114. package/styles/components/menu/_menu-item.scss +71 -0
  115. package/styles/components/menu/menu.scss +40 -0
  116. package/styles/components/message/_index.scss +2 -0
  117. package/styles/components/message/message.css +2 -2
  118. package/styles/components/message/message.min.css +1 -1
  119. package/styles/components/message/message.scss +187 -0
  120. package/styles/components/modal/_index.scss +3 -0
  121. package/styles/components/modal/modal.scss +107 -0
  122. package/styles/components/nav-link/_index.scss +1 -0
  123. package/styles/components/nav-link/nav-link.scss +66 -0
  124. package/styles/components/pagination/_index.scss +5 -0
  125. package/styles/components/pagination/development/styles.scss +35 -0
  126. package/styles/components/pagination/pagination.scss +49 -0
  127. package/styles/components/popover/_index.scss +1 -0
  128. package/styles/components/popover/popover.scss +19 -0
  129. package/styles/components/progress-bar/_index.scss +1 -0
  130. package/styles/components/progress-bar/progress-bar.css +1 -1
  131. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  132. package/styles/components/progress-bar/progress-bar.scss +27 -0
  133. package/styles/components/radio-button/_index.scss +2 -0
  134. package/styles/components/radio-button/radio-button.css +2 -2
  135. package/styles/components/radio-button/radio-button.min.css +1 -1
  136. package/styles/components/radio-button/radio-button.scss +219 -0
  137. package/styles/components/radio-panel/_index.scss +1 -0
  138. package/styles/components/radio-panel/development/styles.scss +27 -0
  139. package/styles/components/radio-panel/radio-panel.css +2 -2
  140. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  141. package/styles/components/radio-panel/radio-panel.scss +82 -0
  142. package/styles/components/segmented-control/_index.scss +3 -0
  143. package/styles/components/segmented-control/segmented-control.css +4 -4
  144. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  145. package/styles/components/segmented-control/segmented-control.scss +99 -0
  146. package/styles/components/select/_index.scss +3 -0
  147. package/styles/components/select/select.scss +299 -0
  148. package/styles/components/summary-table/_index.scss +1 -0
  149. package/styles/components/summary-table/development/summary-table-example.scss +10 -0
  150. package/styles/components/summary-table/summary-table.scss +49 -0
  151. package/styles/components/system-message/_index.scss +2 -0
  152. package/styles/components/system-message/system-message.css +2 -2
  153. package/styles/components/system-message/system-message.min.css +1 -1
  154. package/styles/components/system-message/system-message.scss +177 -0
  155. package/styles/components/table/_index.scss +6 -0
  156. package/styles/components/table/_table-caption.scss +7 -0
  157. package/styles/components/table/_table-cell.scss +90 -0
  158. package/styles/components/table/_table-head.scss +36 -0
  159. package/styles/components/table/_table-header.scss +65 -0
  160. package/styles/components/table/_table-pagination.scss +126 -0
  161. package/styles/components/table/_table-row.scss +177 -0
  162. package/styles/components/table/table.css +4 -0
  163. package/styles/components/table/table.min.css +1 -1
  164. package/styles/components/table/table.scss +53 -0
  165. package/styles/components/table-of-contents/_index.scss +1 -0
  166. package/styles/components/tabs/_index.scss +1 -0
  167. package/styles/components/tabs/tabs.scss +114 -0
  168. package/styles/components/tag/_index.scss +3 -0
  169. package/styles/components/tag/tag.scss +65 -0
  170. package/styles/components/text-area/_index.scss +4 -0
  171. package/styles/components/text-area/text-area.scss +111 -0
  172. package/styles/components/text-input/_index.scss +4 -0
  173. package/styles/components/text-input/text-input.scss +43 -0
  174. package/styles/components/toast/_index.scss +4 -0
  175. package/styles/components/toast/toast.css +4 -4
  176. package/styles/components/toast/toast.min.css +1 -1
  177. package/styles/components/toast/toast.scss +219 -0
  178. package/styles/components/toggle-switch/_index.scss +2 -0
  179. package/styles/components/toggle-switch/_toggle-slider.scss +123 -0
  180. package/styles/components/toggle-switch/toggle-switch.scss +137 -0
  181. package/styles/components/tooltip/_index.scss +3 -0
  182. package/styles/components/tooltip/popuptip.scss +5 -0
  183. package/styles/components/tooltip/tooltip.scss +87 -0
  184. package/styles/components-beta/description-list/_index.scss +1 -0
  185. package/styles/components-beta/description-list/description-list.scss +80 -0
  186. package/styles/components-beta/link-list/_index.scss +2 -0
  187. package/styles/components-beta/link-list/link-list.scss +81 -0
  188. package/styles/components-beta/nav-link/_index.scss +1 -0
  189. package/styles/components-beta/nav-link/navlink.scss +66 -0
  190. package/styles/components-beta/search/_index.scss +4 -0
  191. package/styles/components-beta/search/search-with-submit-button.scss +37 -0
  192. package/styles/components-beta/search/search.scss +106 -0
  193. package/styles/components-beta/select/_index.scss +3 -0
  194. package/styles/components-beta/select/select.scss +128 -0
  195. package/styles/components-beta/table-of-contents/_index.scss +2 -0
  196. package/styles/components-beta/table-of-contents/table-of-contents.scss +88 -0
  197. package/styles/core/_layers.scss +3 -0
  198. package/styles/core/core.css +61 -3
  199. package/styles/core/core.min.css +1 -1
  200. package/styles/core/core.scss +6 -0
  201. package/styles/core/global/_base-class.scss +38 -0
  202. package/styles/core/global/_index.scss +2 -0
  203. package/styles/core/global/_top-layer.scss +20 -0
  204. package/styles/core/jkl/_colors.scss +26 -0
  205. package/styles/core/jkl/_convert.scss +102 -0
  206. package/styles/core/jkl/_helpers.scss +26 -0
  207. package/styles/core/jkl/_index.scss +18 -0
  208. package/styles/core/jkl/_motion.scss +63 -0
  209. package/styles/core/jkl/_navigation.scss +9 -0
  210. package/styles/core/jkl/_ornaments.scss +28 -0
  211. package/styles/core/jkl/_reset.scss +45 -0
  212. package/styles/core/jkl/_responsive-units.scss +30 -0
  213. package/styles/core/jkl/_screenreader.scss +59 -0
  214. package/styles/core/jkl/_screens.scss +135 -0
  215. package/styles/core/jkl/_shadows.scss +25 -0
  216. package/styles/core/jkl/_spacing.scss +149 -0
  217. package/styles/core/jkl/_theme.scss +119 -0
  218. package/styles/core/jkl/_tokens.scss +58 -0
  219. package/styles/core/jkl/_typography.scss +269 -0
  220. package/styles/core/jkl/_underline.scss +16 -0
  221. package/styles/core/jkl/_z-index.scss +23 -0
  222. package/styles/core/jkl/legacy/_dynamic-colors.scss +40 -0
  223. package/styles/core/jkl/legacy/_index.scss +2 -0
  224. package/styles/core/jkl/legacy/_tokens.scss +566 -0
  225. package/styles/core/resets/_index.scss +2 -0
  226. package/styles/core/resets/_normalize.scss +251 -0
  227. package/styles/core/resets/_reset.scss +68 -0
  228. package/styles/core/theme/_color-tokens.scss +73 -0
  229. package/styles/core/theme/_dynamic-spacing.scss +55 -0
  230. package/styles/core/theme/_index.scss +8 -0
  231. package/styles/core/theme/_legacy-color-tokens.scss +81 -0
  232. package/styles/core/theme/_legacy-tokens.scss +215 -0
  233. package/styles/core/theme/_old-vars.scss +30 -0
  234. package/styles/core/theme/_spacing-tokens.scss +32 -0
  235. package/styles/core/theme/_tokens.scss +32 -0
  236. package/styles/core/theme/_typography.scss +27 -0
  237. package/styles/core/utility/_headings.scss +31 -0
  238. package/styles/core/utility/_index.scss +4 -0
  239. package/styles/core/utility/_paragraphs.scss +18 -0
  240. package/styles/core/utility/_screen-reader.scss +11 -0
  241. package/styles/core/utility/_spacing.scss +49 -0
  242. package/styles/hooks/stories/styles.scss +78 -0
  243. package/styles/shared/input/shared-input-styles.scss +181 -0
  244. package/styles/shared/track/track.scss +27 -0
  245. package/styles/styles.css +38 -34
  246. package/styles/styles.min.css +2 -2
  247. package/styles/styles.scss +52 -0
  248. package/styles/components/checkbox/development/public/fonts/webfonts.css +0 -115
  249. package/styles/components/checkbox/development/public/fonts/webfonts.min.css +0 -1
  250. package/styles/components/file-input/development/public/fonts/_index.scss +0 -1
  251. package/styles/components/file-input/development/public/fonts/webfonts.css +0 -108
  252. package/styles/components/file-input/development/public/fonts/webfonts.min.css +0 -1
  253. package/styles/components/file-input/development/public/fonts/webfonts.scss +0 -137
  254. package/styles/components/menu/development/public/fonts/_index.scss +0 -1
  255. package/styles/components/menu/development/public/fonts/webfonts.css +0 -108
  256. package/styles/components/menu/development/public/fonts/webfonts.min.css +0 -1
  257. package/styles/components/menu/development/public/fonts/webfonts.scss +0 -137
  258. package/styles/components/radio-button/development/public/fonts/_index.scss +0 -1
  259. package/styles/components/radio-button/development/public/fonts/webfonts.css +0 -115
  260. package/styles/components/radio-button/development/public/fonts/webfonts.min.css +0 -1
  261. package/styles/components/radio-button/development/public/fonts/webfonts.scss +0 -145
  262. package/styles/components/text-input/development/public/fonts/_index.scss +0 -1
  263. package/styles/components/text-input/development/public/fonts/webfonts.css +0 -115
  264. package/styles/components/text-input/development/public/fonts/webfonts.min.css +0 -1
  265. package/styles/components/text-input/development/public/fonts/webfonts.scss +0 -145
  266. package/styles/components/toggle-switch/development/public/fonts/_index.scss +0 -1
  267. package/styles/components/toggle-switch/development/public/fonts/webfonts.css +0 -115
  268. package/styles/components/toggle-switch/development/public/fonts/webfonts.min.css +0 -1
  269. package/styles/components/toggle-switch/development/public/fonts/webfonts.scss +0 -145
  270. /package/styles/{components/checkbox/development/public/fonts → fonts}/_index.scss +0 -0
  271. /package/styles/{components/checkbox/development/public/fonts → fonts}/webfonts.scss +0 -0
@@ -0,0 +1,94 @@
1
+ @use "../../core/jkl";
2
+
3
+ @include jkl.comfortable-density-variables {
4
+ --jkl-link-list-padding: var(--jkl-unit-10);
5
+ }
6
+
7
+ @include jkl.compact-density-variables {
8
+ --jkl-link-list-padding: var(--jkl-unit-05);
9
+ }
10
+
11
+ .jkl-link-list {
12
+ --border-color: var(--jkl-color-border-separator);
13
+
14
+ display: flex;
15
+ flex-direction: column;
16
+ width: 100%;
17
+ padding: 0;
18
+ margin: 0;
19
+ border-bottom: jkl.rem(1px) solid var(--border-color);
20
+ height: min-content;
21
+ counter-reset: link-list;
22
+
23
+ @media (hover: hover) {
24
+ &:has(:focus-visible),
25
+ &:has(:hover) {
26
+ .jkl-link-list-link:not(:hover):not(:focus-visible) {
27
+ --text-color: var(--jkl-color-border-separator);
28
+ }
29
+ }
30
+ }
31
+ }
32
+
33
+ .jkl-link-list-item {
34
+ display: flex;
35
+ counter-increment: link-list;
36
+ }
37
+
38
+ .jkl-link-list-link {
39
+ --text-color: var(--jkl-color-text-default);
40
+ --icon-background: transparent;
41
+
42
+ display: flex;
43
+ justify-content: space-between;
44
+ align-items: first baseline;
45
+ gap: var(--jkl-unit-20);
46
+ padding: var(--jkl-link-list-padding) 0;
47
+ border-top: jkl.rem(1px) solid var(--border-color);
48
+ width: 100%;
49
+ text-decoration: none;
50
+ color: var(--text-color);
51
+ cursor: pointer;
52
+
53
+ @include jkl.motion("standard", "productive");
54
+ transition-property: color, border-color;
55
+
56
+ &:hover,
57
+ &:focus-visible {
58
+ --icon-background: var(--jkl-color-background-interactive-selected);
59
+ }
60
+
61
+ &:focus-visible {
62
+ --border-color: transparent;
63
+ z-index: 1;
64
+
65
+ @include jkl.focus-outline($offset: 0);
66
+ }
67
+
68
+ &__arrow {
69
+ border-radius: 100%;
70
+ background-color: var(--icon-background);
71
+ // Justér ikonet i forhold til tekstens baseline
72
+ translate: 0 17%;
73
+
74
+ @include jkl.motion("standard", "productive");
75
+ transition-property: color, background-color;
76
+ }
77
+
78
+ .jkl-link-list--ordered & {
79
+ justify-content: flex-start;
80
+ align-items: unset;
81
+
82
+ &__arrow {
83
+ display: none;
84
+ }
85
+
86
+ &::before {
87
+ content: counter(link-list, decimal-leading-zero);
88
+
89
+ @include jkl.use-font-family("Fremtind Grotesk Mono");
90
+ color: var(--text-color);
91
+ font-size: var(--jkl-small-font-size);
92
+ }
93
+ }
94
+ }
@@ -0,0 +1 @@
1
+ @forward "list";
@@ -0,0 +1,98 @@
1
+ @charset "UTF-8";
2
+ @use "../../core/jkl";
3
+
4
+ /*
5
+ * NOTE: These icon also exists as a copy in the jkl-icons-react package.
6
+ * If you're here to change them, consider changing them there as well, or
7
+ * finding a technical solution to sharing the SVG markup
8
+ */
9
+ @include jkl.light-mode-variables {
10
+ --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");
11
+ --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");
12
+ }
13
+
14
+ @include jkl.dark-mode-variables {
15
+ --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");
16
+ --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");
17
+ }
18
+
19
+ @layer jokul.components {
20
+ .jkl-list {
21
+ --list-text-color: var(--jkl-color-text-default);
22
+
23
+ list-style-type: "\2022";
24
+ padding-left: jkl.$unit-20;
25
+ margin: 0;
26
+
27
+ & > .jkl-list__item {
28
+ & > .jkl-list {
29
+ margin: jkl.$unit-10 0;
30
+ }
31
+ }
32
+
33
+ &:has(.jkl-list__item--iconed) {
34
+ padding: 0;
35
+ }
36
+
37
+ &--ordered {
38
+ padding-left: revert;
39
+
40
+ & > .jkl-list__item {
41
+ padding-left: revert;
42
+ list-style: decimal;
43
+ }
44
+
45
+ & & > .jkl-list__item {
46
+ list-style: lower-alpha;
47
+ }
48
+ }
49
+
50
+ &__item {
51
+ color: var(--jkl-list-text-color);
52
+ padding-left: jkl.$unit-15;
53
+
54
+ &::marker {
55
+ color: var(--jkl-list-text-color);
56
+ }
57
+
58
+ &--iconed {
59
+ display: flex;
60
+ list-style: none;
61
+ position: relative;
62
+ padding-left: 0;
63
+
64
+ &::before {
65
+ text-indent: -9999px;
66
+ background-size: contain;
67
+ width: 1em;
68
+ height: 1em;
69
+ flex-shrink: 0;
70
+ margin-right: 0.5em;
71
+ margin-top: 0.2em; // Vertical offset (using em for font-size scaling) to align icon properly with the first line.
72
+ }
73
+ }
74
+
75
+ &--check::before {
76
+ @include jkl.decorative($content: "\2713");
77
+ background-image: var(--jkl-list-marker-check);
78
+ }
79
+
80
+ &--cross::before {
81
+ @include jkl.decorative($content: "\274C");
82
+ background-image: var(--jkl-list-marker-cross);
83
+ }
84
+ }
85
+
86
+ @include jkl.forced-colors-mode {
87
+ & .jkl-list__item {
88
+ &--check::before {
89
+ background-image: _check(CanvasText, Canvas);
90
+ }
91
+
92
+ &--cross::before {
93
+ background-image: _cross(CanvasText, Canvas);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,2 @@
1
+ @forward "loader";
2
+ @forward "skeleton-loader";
@@ -0,0 +1,11 @@
1
+ .jkl-skeleton-loader-example,
2
+ .jkl-loader-example {
3
+ display: flex;
4
+ flex-direction: column;
5
+ justify-content: space-between;
6
+ width: 100%;
7
+
8
+ > *:not(:last-child) {
9
+ margin-bottom: 2rem;
10
+ }
11
+ }
@@ -17,15 +17,15 @@
17
17
  animation: 2500ms linear infinite;
18
18
  }
19
19
  .jkl-loader__dot--left {
20
- animation-name: jkl-loader-left-spin-usj2dq5;
20
+ animation-name: jkl-loader-left-spin-ubl6d1x;
21
21
  margin-right: 1.71em;
22
22
  }
23
23
  .jkl-loader__dot--middle {
24
- animation-name: jkl-loader-middle-spin-usj2dr2;
24
+ animation-name: jkl-loader-middle-spin-ubl6d2q;
25
25
  margin-right: 1.9em;
26
26
  }
27
27
  .jkl-loader__dot--right {
28
- animation-name: jkl-loader-right-spin-usj2drv;
28
+ animation-name: jkl-loader-right-spin-ubl6d2u;
29
29
  }
30
30
  @media screen and (forced-colors: active) {
31
31
  .jkl-loader__dot {
@@ -52,7 +52,7 @@
52
52
  .jkl-loader--small > .jkl-loader__dot--middle {
53
53
  margin-right: 0.3em;
54
54
  }
55
- @keyframes jkl-loader-left-spin-usj2dq5 {
55
+ @keyframes jkl-loader-left-spin-ubl6d1x {
56
56
  0% {
57
57
  transform: rotate(0) scale(0);
58
58
  }
@@ -66,7 +66,7 @@
66
66
  transform: rotate(180deg) scale(0);
67
67
  }
68
68
  }
69
- @keyframes jkl-loader-middle-spin-usj2dr2 {
69
+ @keyframes jkl-loader-middle-spin-ubl6d2q {
70
70
  0% {
71
71
  transform: rotate(20deg) scale(0);
72
72
  }
@@ -83,7 +83,7 @@
83
83
  transform: rotate(200deg) scale(0);
84
84
  }
85
85
  }
86
- @keyframes jkl-loader-right-spin-usj2drv {
86
+ @keyframes jkl-loader-right-spin-ubl6d2u {
87
87
  0% {
88
88
  transform: rotate(40deg) scale(0);
89
89
  }
@@ -1 +1 @@
1
- @layer jokul.components{.jkl-loader{display:flex}.jkl-loader--inline{display:inline-flex}.jkl-loader__dot{animation:2.5s linear infinite;background-color:currentColor;display:block;height:.9em;transform-origin:center;width:.9em}.jkl-loader__dot--left{animation-name:jkl-loader-left-spin-usj2dq5;margin-right:1.71em}.jkl-loader__dot--middle{animation-name:jkl-loader-middle-spin-usj2dr2;margin-right:1.9em}.jkl-loader__dot--right{animation-name:jkl-loader-right-spin-usj2drv}@media screen and (forced-colors:active){.jkl-loader__dot{background-color:CanvasText}}.jkl-button .jkl-loader>.jkl-loader__dot,.jkl-loader--medium>.jkl-loader__dot{height:.35em;width:.35em}.jkl-button .jkl-loader>.jkl-loader__dot--left,.jkl-loader--medium>.jkl-loader__dot--left{margin-right:.585em}.jkl-button .jkl-loader>.jkl-loader__dot--middle,.jkl-loader--medium>.jkl-loader__dot--middle{margin-right:.65em}.jkl-loader--small>.jkl-loader__dot{height:.25em;width:.25em}.jkl-loader--small>.jkl-loader__dot--left{margin-right:.27em}.jkl-loader--small>.jkl-loader__dot--middle{margin-right:.3em}@keyframes jkl-loader-left-spin-usj2dq5{0%{transform:rotate(0) scale(0)}30%{transform:rotate(90deg) scale(1)}70%{transform:rotate(180deg) scale(0)}to{transform:rotate(180deg) scale(0)}}@keyframes jkl-loader-middle-spin-usj2dr2{0%{transform:rotate(20deg) scale(0)}10%{transform:rotate(20deg) scale(0)}40%{transform:rotate(110deg) scale(1.4)}85%{transform:rotate(200deg) scale(0)}to{transform:rotate(200deg) scale(0)}}@keyframes jkl-loader-right-spin-usj2drv{0%{transform:rotate(40deg) scale(0)}20%{transform:rotate(40deg) scale(0)}50%{transform:rotate(130deg) scale(1)}to{transform:rotate(220deg) scale(0)}}}
1
+ @layer jokul.components{.jkl-loader{display:flex}.jkl-loader--inline{display:inline-flex}.jkl-loader__dot{animation:2.5s linear infinite;background-color:currentColor;display:block;height:.9em;transform-origin:center;width:.9em}.jkl-loader__dot--left{animation-name:jkl-loader-left-spin-ubl6d1x;margin-right:1.71em}.jkl-loader__dot--middle{animation-name:jkl-loader-middle-spin-ubl6d2q;margin-right:1.9em}.jkl-loader__dot--right{animation-name:jkl-loader-right-spin-ubl6d2u}@media screen and (forced-colors:active){.jkl-loader__dot{background-color:CanvasText}}.jkl-button .jkl-loader>.jkl-loader__dot,.jkl-loader--medium>.jkl-loader__dot{height:.35em;width:.35em}.jkl-button .jkl-loader>.jkl-loader__dot--left,.jkl-loader--medium>.jkl-loader__dot--left{margin-right:.585em}.jkl-button .jkl-loader>.jkl-loader__dot--middle,.jkl-loader--medium>.jkl-loader__dot--middle{margin-right:.65em}.jkl-loader--small>.jkl-loader__dot{height:.25em;width:.25em}.jkl-loader--small>.jkl-loader__dot--left{margin-right:.27em}.jkl-loader--small>.jkl-loader__dot--middle{margin-right:.3em}@keyframes jkl-loader-left-spin-ubl6d1x{0%{transform:rotate(0) scale(0)}30%{transform:rotate(90deg) scale(1)}70%{transform:rotate(180deg) scale(0)}to{transform:rotate(180deg) scale(0)}}@keyframes jkl-loader-middle-spin-ubl6d2q{0%{transform:rotate(20deg) scale(0)}10%{transform:rotate(20deg) scale(0)}40%{transform:rotate(110deg) scale(1.4)}85%{transform:rotate(200deg) scale(0)}to{transform:rotate(200deg) scale(0)}}@keyframes jkl-loader-right-spin-ubl6d2u{0%{transform:rotate(40deg) scale(0)}20%{transform:rotate(40deg) scale(0)}50%{transform:rotate(130deg) scale(1)}to{transform:rotate(220deg) scale(0)}}}
@@ -0,0 +1,139 @@
1
+ @charset "UTF-8";
2
+ @use "sass:string";
3
+ @use "../../core/jkl";
4
+
5
+ $_loader-dot-size--large: 0.9em;
6
+ $_loader-dot-size--medium: 0.35em;
7
+ $_loader-dot-size--small: 0.25em;
8
+
9
+ $_loader-spacing--large: 1.9em;
10
+ $_loader-spacing--medium: 0.65em;
11
+ $_loader-spacing--small: 0.3em;
12
+
13
+ $_loader-animation-properties: 2500ms linear infinite;
14
+ $_loader-left-animation-name: jkl-loader-left-spin-#{string.unique-id()};
15
+ $_loader-middle-animation-name: jkl-loader-middle-spin-#{string.unique-id()};
16
+ $_loader-right-animation-name: jkl-loader-right-spin-#{string.unique-id()};
17
+
18
+ @layer jokul.components {
19
+ .jkl-loader {
20
+ display: flex;
21
+
22
+ &--inline {
23
+ display: inline-flex;
24
+ }
25
+
26
+ &__dot {
27
+ display: block;
28
+ transform-origin: center;
29
+ background-color: currentColor;
30
+ height: $_loader-dot-size--large;
31
+ width: $_loader-dot-size--large;
32
+ animation: $_loader-animation-properties;
33
+
34
+ &--left {
35
+ animation-name: $_loader-left-animation-name;
36
+ margin-right: $_loader-spacing--large
37
+ * 0.9; // for visual balance
38
+ }
39
+
40
+ &--middle {
41
+ animation-name: $_loader-middle-animation-name;
42
+ margin-right: $_loader-spacing--large;
43
+ }
44
+
45
+ &--right {
46
+ animation-name: $_loader-right-animation-name;
47
+ }
48
+
49
+ @include jkl.forced-colors-mode {
50
+ background-color: CanvasText;
51
+ }
52
+ }
53
+
54
+ .jkl-button & > .jkl-loader__dot,
55
+ &--medium > .jkl-loader__dot {
56
+ height: $_loader-dot-size--medium;
57
+ width: $_loader-dot-size--medium;
58
+
59
+ &--left {
60
+ margin-right: $_loader-spacing--medium * 0.9;
61
+ }
62
+
63
+ &--middle {
64
+ margin-right: $_loader-spacing--medium;
65
+ }
66
+ }
67
+
68
+ &--small > .jkl-loader__dot {
69
+ height: $_loader-dot-size--small;
70
+ width: $_loader-dot-size--small;
71
+
72
+ &--left {
73
+ margin-right: $_loader-spacing--small * 0.9;
74
+ }
75
+
76
+ &--middle {
77
+ margin-right: $_loader-spacing--small;
78
+ }
79
+ }
80
+ }
81
+
82
+ @keyframes #{$_loader-left-animation-name} {
83
+ 0% {
84
+ transform: rotate(0) scale(0);
85
+ }
86
+
87
+ 30% {
88
+ transform: rotate(90deg) scale(1);
89
+ }
90
+
91
+ 70% {
92
+ transform: rotate(180deg) scale(0);
93
+ }
94
+
95
+ 100% {
96
+ transform: rotate(180deg) scale(0);
97
+ }
98
+ }
99
+
100
+ @keyframes #{$_loader-middle-animation-name} {
101
+ 0% {
102
+ transform: rotate(20deg) scale(0);
103
+ }
104
+
105
+ 10% {
106
+ transform: rotate(20deg) scale(0);
107
+ }
108
+
109
+ 40% {
110
+ transform: rotate(110deg) scale(1.4);
111
+ }
112
+
113
+ 85% {
114
+ transform: rotate(200deg) scale(0);
115
+ }
116
+
117
+ 100% {
118
+ transform: rotate(200deg) scale(0);
119
+ }
120
+ }
121
+
122
+ @keyframes #{$_loader-right-animation-name} {
123
+ 0% {
124
+ transform: rotate(40deg) scale(0);
125
+ }
126
+
127
+ 20% {
128
+ transform: rotate(40deg) scale(0);
129
+ }
130
+
131
+ 50% {
132
+ transform: rotate(130deg) scale(1);
133
+ }
134
+
135
+ 100% {
136
+ transform: rotate(220deg) scale(0);
137
+ }
138
+ }
139
+ }
@@ -34,7 +34,7 @@
34
34
  @media screen and (forced-colors: active) {
35
35
  .jkl-skeleton-element {
36
36
  border: 1px solid CanvasText;
37
- animation: 2s ease infinite jkl-blink-u03z0v3;
37
+ animation: 2s ease infinite jkl-blink-ukukdw9;
38
38
  }
39
39
  }
40
40
  .jkl-skeleton-input {
@@ -88,10 +88,10 @@
88
88
  }
89
89
  @media screen and (forced-colors: active) {
90
90
  .jkl-skeleton-table {
91
- animation: 2s ease-in-out infinite jkl-blink-u03z0v3;
91
+ animation: 2s ease-in-out infinite jkl-blink-ukukdw9;
92
92
  }
93
93
  }
94
- @keyframes jkl-blink-u03z0v3 {
94
+ @keyframes jkl-blink-ukukdw9 {
95
95
  0% {
96
96
  opacity: 1;
97
97
  }
@@ -1 +1 @@
1
- @layer jokul.components{@property --jkl-skeleton-sweeper-position{syntax:"<percentage>";initial-value:0%;inherits:true}@keyframes --jkl-skeleton-sweep{0%,67%{--jkl-skeleton-sweeper-position:0%}to{--jkl-skeleton-sweeper-position:calc(100% + var(--jkl-skeleton-sweeper-width))}}.jkl-skeleton-animation{--jkl-skeleton-element-color:var(--jkl-color-background-container-low);--jkl-skeleton-sweep-duration:4500ms;--jkl-skeleton-sweeper-width:40%;animation:var(--jkl-skeleton-sweep-duration) ease-in-out infinite --jkl-skeleton-sweep;-webkit-mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),#0000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),#0000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100dvi 100dvb;mask-size:100dvi 100dvb}.jkl-skeleton-element{background-color:var(--jkl-skeleton-element-color);border-radius:.125rem}.jkl-skeleton-element--circle{border-radius:50%}@media screen and (forced-colors:active){.jkl-skeleton-element{animation:jkl-blink-u03z0v3 2s ease infinite;border:1px solid CanvasText}}.jkl-skeleton-input{display:flex;flex-direction:column;gap:.75rem}.jkl-skeleton-input__checkbox{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem}@media (width >= 0) and (max-width:679px){.jkl-skeleton-input{gap:.5rem}}.jkl-skeleton-input--compact:after{gap:.5rem}.jkl-skeleton-table{display:flex;flex-direction:column}.jkl-skeleton-table__header,.jkl-skeleton-table__row{border-bottom:1px solid var(--jkl-skeleton-element-color);display:flex;flex-direction:row;justify-content:space-between}.jkl-skeleton-table__header{padding:.75rem .5rem}.jkl-skeleton-table__row{padding:1rem .5rem}@media (width >= 0) and (max-width:679px){.jkl-skeleton-table__header{padding:.5rem .25rem}.jkl-skeleton-table__row{padding:.75rem .25rem}}.jkl-skeleton-table--compact::after__header{padding:.5rem .25rem}.jkl-skeleton-table--compact::after__row{padding:.75rem .25rem}@media screen and (forced-colors:active){.jkl-skeleton-table{animation:jkl-blink-u03z0v3 2s ease-in-out infinite}}@keyframes jkl-blink-u03z0v3{0%{opacity:1}40%,50%{opacity:.3}70%,to{opacity:1}}}
1
+ @layer jokul.components{@property --jkl-skeleton-sweeper-position{syntax:"<percentage>";initial-value:0%;inherits:true}@keyframes --jkl-skeleton-sweep{0%,67%{--jkl-skeleton-sweeper-position:0%}to{--jkl-skeleton-sweeper-position:calc(100% + var(--jkl-skeleton-sweeper-width))}}.jkl-skeleton-animation{--jkl-skeleton-element-color:var(--jkl-color-background-container-low);--jkl-skeleton-sweep-duration:4500ms;--jkl-skeleton-sweeper-width:40%;animation:var(--jkl-skeleton-sweep-duration) ease-in-out infinite --jkl-skeleton-sweep;-webkit-mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),#0000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),#0000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100dvi 100dvb;mask-size:100dvi 100dvb}.jkl-skeleton-element{background-color:var(--jkl-skeleton-element-color);border-radius:.125rem}.jkl-skeleton-element--circle{border-radius:50%}@media screen and (forced-colors:active){.jkl-skeleton-element{animation:jkl-blink-ukukdw9 2s ease infinite;border:1px solid CanvasText}}.jkl-skeleton-input{display:flex;flex-direction:column;gap:.75rem}.jkl-skeleton-input__checkbox{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem}@media (width >= 0) and (max-width:679px){.jkl-skeleton-input{gap:.5rem}}.jkl-skeleton-input--compact:after{gap:.5rem}.jkl-skeleton-table{display:flex;flex-direction:column}.jkl-skeleton-table__header,.jkl-skeleton-table__row{border-bottom:1px solid var(--jkl-skeleton-element-color);display:flex;flex-direction:row;justify-content:space-between}.jkl-skeleton-table__header{padding:.75rem .5rem}.jkl-skeleton-table__row{padding:1rem .5rem}@media (width >= 0) and (max-width:679px){.jkl-skeleton-table__header{padding:.5rem .25rem}.jkl-skeleton-table__row{padding:.75rem .25rem}}.jkl-skeleton-table--compact::after__header{padding:.5rem .25rem}.jkl-skeleton-table--compact::after__row{padding:.75rem .25rem}@media screen and (forced-colors:active){.jkl-skeleton-table{animation:jkl-blink-ukukdw9 2s ease-in-out infinite}}@keyframes jkl-blink-ukukdw9{0%{opacity:1}40%,50%{opacity:.3}70%,to{opacity:1}}}
@@ -0,0 +1,137 @@
1
+ @charset "UTF-8";
2
+ @use "sass:string";
3
+ @use "../../core/jkl";
4
+
5
+ $_blink-animation-name: jkl-blink-#{string.unique-id()};
6
+
7
+ @layer jokul.components {
8
+ @property --jkl-skeleton-sweeper-position {
9
+ syntax: "<percentage>";
10
+ initial-value: 0%;
11
+ inherits: true;
12
+ }
13
+
14
+ @keyframes --jkl-skeleton-sweep {
15
+ 0%,
16
+ 67% {
17
+ --jkl-skeleton-sweeper-position: 0%;
18
+ }
19
+
20
+ 100% {
21
+ --jkl-skeleton-sweeper-position: calc(100% + var(--jkl-skeleton-sweeper-width));
22
+ }
23
+ }
24
+
25
+ .jkl-skeleton-animation {
26
+ --jkl-skeleton-element-color: var(--jkl-color-background-container-low);
27
+ --jkl-skeleton-sweep-duration: 4500ms;
28
+ --jkl-skeleton-sweeper-width: 40%;
29
+
30
+ 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));
31
+ mask-size: 100dvi 100dvb;
32
+ mask-position: center;
33
+ animation: var(--jkl-skeleton-sweep-duration) ease-in-out infinite --jkl-skeleton-sweep;
34
+ }
35
+
36
+ .jkl-skeleton-element {
37
+ border-radius: jkl.rem(2px);
38
+ background-color: var(--jkl-skeleton-element-color);
39
+
40
+ &--circle {
41
+ border-radius: 50%;
42
+ }
43
+
44
+ @include jkl.forced-colors-mode {
45
+ border: 1px solid CanvasText;
46
+ // Vi kan ikke bruke "gradient-trikset" for å skape den samme effekten,
47
+ // så vi må tenke annerledes. Bruk gjennomsiktighet for å indikere at
48
+ // noe skjer.
49
+ animation: 2s ease infinite $_blink-animation-name;
50
+ }
51
+ }
52
+
53
+ .jkl-skeleton-input {
54
+ display: flex;
55
+ flex-direction: column;
56
+ gap: jkl.$spacing-12;
57
+
58
+ &__checkbox {
59
+ display: flex;
60
+ flex-direction: row;
61
+ flex-wrap: nowrap;
62
+ gap: jkl.$spacing-8;
63
+ }
64
+
65
+ @include jkl.small-device {
66
+ gap: jkl.$spacing-8;
67
+ }
68
+
69
+ &--compact::after {
70
+ gap: jkl.$spacing-8;
71
+ }
72
+ }
73
+
74
+ .jkl-skeleton-table {
75
+ display: flex;
76
+ flex-direction: column;
77
+
78
+ &__header,
79
+ &__row {
80
+ display: flex;
81
+ flex-direction: row;
82
+ justify-content: space-between;
83
+ border-bottom: solid 1px var(--jkl-skeleton-element-color);
84
+ }
85
+
86
+ &__header {
87
+ padding: jkl.$spacing-12 jkl.$spacing-8;
88
+ }
89
+
90
+ &__row {
91
+ padding: jkl.$spacing-16 jkl.$spacing-8;
92
+ }
93
+
94
+ @include jkl.small-device {
95
+ &__header {
96
+ padding: jkl.$spacing-8 jkl.$spacing-4;
97
+ }
98
+
99
+ &__row {
100
+ padding: jkl.$spacing-12 jkl.$spacing-4;
101
+ }
102
+ }
103
+
104
+ &--compact::after {
105
+ &__header {
106
+ padding: jkl.$spacing-8 jkl.$spacing-4;
107
+ }
108
+
109
+ &__row {
110
+ padding: jkl.$spacing-12 jkl.$spacing-4;
111
+ }
112
+ }
113
+
114
+ @include jkl.forced-colors-mode {
115
+ // Vi kan ikke bruke "gradient-trikset" for å skape den samme effekten,
116
+ // så vi må tenke annerledes. Bruk gjennomsiktighet for å indikere at
117
+ // noe skjer.
118
+ animation: 2s ease-in-out infinite $_blink-animation-name;
119
+ }
120
+ }
121
+
122
+ @keyframes #{$_blink-animation-name} {
123
+ 0% {
124
+ opacity: 1;
125
+ }
126
+
127
+ 40%,
128
+ 50% {
129
+ opacity: 0.3;
130
+ }
131
+
132
+ 70%,
133
+ 100% {
134
+ opacity: 1;
135
+ }
136
+ }
137
+ }
@@ -0,0 +1 @@
1
+ @forward "logo";
@@ -0,0 +1,9 @@
1
+ .logo-example {
2
+ width: 100%;
3
+ height: 100%;
4
+ }
5
+
6
+ .logo-stamp-example {
7
+ width: 100%;
8
+ max-width: 16rem;
9
+ }
@@ -0,0 +1,90 @@
1
+ @charset "UTF-8";
2
+ @use "../../core/jkl";
3
+
4
+ @layer jokul.components {
5
+ .jkl-logo {
6
+ color: var(--jkl-color-text-default);
7
+
8
+ // I valget mellom å følge merkevaren og å være lesbar velger vi å være lesbar.
9
+ @include jkl.forced-colors-svg-fallback($stroke: CanvasText,
10
+ $fill: CanvasText,
11
+ );
12
+
13
+ &__F {
14
+ /* Is connected to the viewbox of the logo, change at your own risk */
15
+ transform-origin: 30px 132px;
16
+
17
+ &-line {
18
+ /* Must be the same as the line x1 origin, change at your own risk */
19
+ transform-origin: 34.3px;
20
+ }
21
+ }
22
+
23
+ &__remtind {
24
+ opacity: 1;
25
+ }
26
+
27
+ &--symbol-only {
28
+ & .jkl-logo__F {
29
+ transform: rotate(45deg);
30
+
31
+ &-line {
32
+ transform: scaleX(1.5);
33
+ }
34
+ }
35
+
36
+ & .jkl-logo__remtind {
37
+ transition-delay: 0ms;
38
+ opacity: 0;
39
+ transform: translateX(-5%);
40
+ }
41
+ }
42
+
43
+ &--animated {
44
+ & .jkl-logo__F {
45
+ transition: transform jkl.timing("expressive") jkl.timing("energetic") cubic-bezier(0.5, 0, 0.62, 1);
46
+ }
47
+
48
+ & .jkl-logo__F-line {
49
+ transition: transform jkl.timing("expressive") ease-in;
50
+ }
51
+
52
+ & .jkl-logo__remtind {
53
+ transition:
54
+ opacity jkl.timing("expressive") jkl.timing("energetic") ease-in,
55
+ transform jkl.timing("expressive") ease;
56
+ }
57
+ }
58
+ }
59
+
60
+ .jkl-logo--centered.jkl-logo--symbol-only {
61
+ & .jkl-logo__F {
62
+ transform: translateX(35%) rotate(45deg);
63
+ }
64
+ }
65
+
66
+ .jkl-logo-stamp {
67
+ color: var(--logo-stamp-color);
68
+
69
+ // I valget mellom å følge merkevaren og å være lesbar velger vi å være lesbar.
70
+ @include jkl.forced-colors-svg-fallback($stroke: CanvasText,
71
+ $fill: CanvasText,
72
+ );
73
+
74
+ &--animated {
75
+ .jkl-logo-stamp__text {
76
+ transform-origin: 256px 256px;
77
+ transition-timing-function: cubic-bezier(0.75, 0, 0, 1);
78
+ transition-duration: jkl.timing("productive");
79
+ transition-property: transform;
80
+ }
81
+
82
+ &[data-rotate="true"] {
83
+ .jkl-logo-stamp__text {
84
+ transition-duration: 1500ms;
85
+ transform: rotate(360deg);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
@@ -0,0 +1 @@
1
+ @forward "menu";