@ulu/frontend 0.0.3

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 (323) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/ulu-frontend.min.css +1 -0
  4. package/dist/ulu-frontend.min.js +1 -0
  5. package/index.js +2 -0
  6. package/js/deprecated/doc-ready.js +28 -0
  7. package/js/deprecated/jquery-prototypes.js +309 -0
  8. package/js/deprecated/mini-collapsible-popper-positioning.js +126 -0
  9. package/js/deprecated/mini-collapsible.js +607 -0
  10. package/js/deprecated/script-loader.js +60 -0
  11. package/js/events/index.js +42 -0
  12. package/js/helpers/css-breakpoint.js +247 -0
  13. package/js/helpers/file-save.js +48 -0
  14. package/js/helpers/node-data-manager.js +74 -0
  15. package/js/helpers/pause-youtube-video.js +42 -0
  16. package/js/helpers/scrollbar-width-property.js +10 -0
  17. package/js/index.js +15 -0
  18. package/js/polyfills/element-closest.js +17 -0
  19. package/js/ui/flipcard.js +202 -0
  20. package/js/ui/grid.js +67 -0
  21. package/js/ui/modals.js +219 -0
  22. package/js/ui/overflow-scroller-pager.js +58 -0
  23. package/js/ui/overflow-scroller.js +160 -0
  24. package/js/ui/programmatic-modal.js +91 -0
  25. package/js/ui/resizer.js +60 -0
  26. package/js/ui/slider.js +468 -0
  27. package/js/ui/tabs.js +109 -0
  28. package/js/ui/tooltip.js +82 -0
  29. package/js/utils/array.js +28 -0
  30. package/js/utils/dom.js +122 -0
  31. package/js/utils/logger.js +69 -0
  32. package/js/utils/object.js +22 -0
  33. package/js/utils/performance.js +43 -0
  34. package/js/utils/regex.js +10 -0
  35. package/js/utils/string.js +107 -0
  36. package/js/waypoints/README.md +3 -0
  37. package/js/waypoints/anchor-menu.js +76 -0
  38. package/js/waypoints/element-waypoint.js +75 -0
  39. package/js/waypoints/examples/page-link-menu.md +106 -0
  40. package/js/waypoints/state-in-attribute.js +32 -0
  41. package/package.json +38 -0
  42. package/scss/README.md +58 -0
  43. package/scss/_breakpoint.scss +190 -0
  44. package/scss/_button.scss +241 -0
  45. package/scss/_calculate.scss +64 -0
  46. package/scss/_color.scss +211 -0
  47. package/scss/_cssvar.scss +116 -0
  48. package/scss/_element.scss +276 -0
  49. package/scss/_grid.scss +699 -0
  50. package/scss/_index.scss +29 -0
  51. package/scss/_layout.scss +202 -0
  52. package/scss/_path.scss +58 -0
  53. package/scss/_selector.scss +81 -0
  54. package/scss/_typography.scss +320 -0
  55. package/scss/_units.scss +47 -0
  56. package/scss/_utility.scss +12 -0
  57. package/scss/_utils.scss +209 -0
  58. package/scss/base/_color.scss +13 -0
  59. package/scss/base/_elements.scss +188 -0
  60. package/scss/base/_index.scss +62 -0
  61. package/scss/base/_keyframes.scss +78 -0
  62. package/scss/base/_layout.scss +100 -0
  63. package/scss/base/_normalize.scss +315 -0
  64. package/scss/base/_typography.scss +41 -0
  65. package/scss/components/README.md +5 -0
  66. package/scss/components/README.todos +15 -0
  67. package/scss/components/_button.scss +95 -0
  68. package/scss/components/_index.scss +63 -0
  69. package/scss/components/_links.scss +34 -0
  70. package/scss/components/_list-lines.scss +73 -0
  71. package/scss/components/_list-ordered.scss +16 -0
  72. package/scss/components/_list-unordered.scss +21 -0
  73. package/scss/components/_rule.scss +93 -0
  74. package/scss/helpers/_color.scss +14 -0
  75. package/scss/helpers/_display.scss +73 -0
  76. package/scss/helpers/_index.scss +67 -0
  77. package/scss/helpers/_print.scss +58 -0
  78. package/scss/helpers/_typography.scss +80 -0
  79. package/scss/helpers/_units.scss +79 -0
  80. package/scss/helpers/_utilities.scss +102 -0
  81. package/scss/stylesheets/README.md +3 -0
  82. package/scss/stylesheets/full.scss +17 -0
  83. package/trash/js-old/deprecated/doc-ready.js +28 -0
  84. package/trash/js-old/deprecated/jquery-prototypes.js +309 -0
  85. package/trash/js-old/deprecated/mini-collapsible-popper-positioning.js +126 -0
  86. package/trash/js-old/deprecated/mini-collapsible.js +607 -0
  87. package/trash/js-old/deprecated/script-loader.js +60 -0
  88. package/trash/js-old/events/index.js +42 -0
  89. package/trash/js-old/helpers/css-breakpoint.js +247 -0
  90. package/trash/js-old/helpers/file-save.js +48 -0
  91. package/trash/js-old/helpers/node-data-manager.js +74 -0
  92. package/trash/js-old/helpers/pause-youtube-video.js +42 -0
  93. package/trash/js-old/index.js +15 -0
  94. package/trash/js-old/polyfills/element-closest.js +17 -0
  95. package/trash/js-old/ui/flipcard.js +202 -0
  96. package/trash/js-old/ui/grid.js +67 -0
  97. package/trash/js-old/ui/modals.js +219 -0
  98. package/trash/js-old/ui/programmatic-modal.js +91 -0
  99. package/trash/js-old/ui/resizer.js +60 -0
  100. package/trash/js-old/ui/slider.js +469 -0
  101. package/trash/js-old/ui/tabs.js +109 -0
  102. package/trash/js-old/ui/tooltip.js +82 -0
  103. package/trash/js-old/utils/array.js +28 -0
  104. package/trash/js-old/utils/dom.js +122 -0
  105. package/trash/js-old/utils/logger.js +69 -0
  106. package/trash/js-old/utils/object.js +22 -0
  107. package/trash/js-old/utils/performance.js +43 -0
  108. package/trash/js-old/utils/regex.js +10 -0
  109. package/trash/js-old/utils/string.js +107 -0
  110. package/trash/js-old/waypoints/README.md +3 -0
  111. package/trash/js-old/waypoints/anchor-menu.js +76 -0
  112. package/trash/js-old/waypoints/element-waypoint.js +75 -0
  113. package/trash/js-old/waypoints/examples/page-link-menu.md +106 -0
  114. package/trash/js-old/waypoints/state-in-attribute.js +32 -0
  115. package/trash/js-old-230729/deprecated/doc-ready.js +28 -0
  116. package/trash/js-old-230729/deprecated/jquery-prototypes.js +309 -0
  117. package/trash/js-old-230729/deprecated/mini-collapsible-popper-positioning.js +126 -0
  118. package/trash/js-old-230729/deprecated/mini-collapsible.js +607 -0
  119. package/trash/js-old-230729/deprecated/script-loader.js +60 -0
  120. package/trash/js-old-230729/events/index.js +42 -0
  121. package/trash/js-old-230729/helpers/css-breakpoint.js +247 -0
  122. package/trash/js-old-230729/helpers/file-save.js +48 -0
  123. package/trash/js-old-230729/helpers/node-data-manager.js +74 -0
  124. package/trash/js-old-230729/helpers/pause-youtube-video.js +42 -0
  125. package/trash/js-old-230729/helpers/scrollbar-width-property.js +10 -0
  126. package/trash/js-old-230729/index.js +15 -0
  127. package/trash/js-old-230729/polyfills/element-closest.js +17 -0
  128. package/trash/js-old-230729/ui/flipcard.js +202 -0
  129. package/trash/js-old-230729/ui/grid.js +67 -0
  130. package/trash/js-old-230729/ui/modals.js +219 -0
  131. package/trash/js-old-230729/ui/overflow-scroller-pager.js +58 -0
  132. package/trash/js-old-230729/ui/overflow-scroller.js +160 -0
  133. package/trash/js-old-230729/ui/programmatic-modal.js +91 -0
  134. package/trash/js-old-230729/ui/resizer.js +60 -0
  135. package/trash/js-old-230729/ui/slider.js +468 -0
  136. package/trash/js-old-230729/ui/tabs.js +109 -0
  137. package/trash/js-old-230729/ui/tooltip.js +82 -0
  138. package/trash/js-old-230729/utils/array.js +28 -0
  139. package/trash/js-old-230729/utils/dom.js +122 -0
  140. package/trash/js-old-230729/utils/logger.js +69 -0
  141. package/trash/js-old-230729/utils/object.js +22 -0
  142. package/trash/js-old-230729/utils/performance.js +43 -0
  143. package/trash/js-old-230729/utils/regex.js +10 -0
  144. package/trash/js-old-230729/utils/string.js +107 -0
  145. package/trash/js-old-230729/waypoints/README.md +3 -0
  146. package/trash/js-old-230729/waypoints/anchor-menu.js +76 -0
  147. package/trash/js-old-230729/waypoints/element-waypoint.js +75 -0
  148. package/trash/js-old-230729/waypoints/examples/page-link-menu.md +106 -0
  149. package/trash/js-old-230729/waypoints/state-in-attribute.js +32 -0
  150. package/trash/logo-1.svg +13 -0
  151. package/trash/logo.svg +16 -0
  152. package/trash/scss-before-cqc-update/README.md +58 -0
  153. package/trash/scss-before-cqc-update/_breakpoint.scss +190 -0
  154. package/trash/scss-before-cqc-update/_button.scss +229 -0
  155. package/trash/scss-before-cqc-update/_calculate.scss +65 -0
  156. package/trash/scss-before-cqc-update/_color.scss +211 -0
  157. package/trash/scss-before-cqc-update/_cssvar.scss +116 -0
  158. package/trash/scss-before-cqc-update/_element.scss +275 -0
  159. package/trash/scss-before-cqc-update/_index.scss +29 -0
  160. package/trash/scss-before-cqc-update/_layout.scss +247 -0
  161. package/trash/scss-before-cqc-update/_path.scss +59 -0
  162. package/trash/scss-before-cqc-update/_selector.scss +82 -0
  163. package/trash/scss-before-cqc-update/_typography.scss +322 -0
  164. package/trash/scss-before-cqc-update/_units.scss +48 -0
  165. package/trash/scss-before-cqc-update/_utility.scss +13 -0
  166. package/trash/scss-before-cqc-update/_utils.scss +211 -0
  167. package/trash/scss-before-cqc-update/base/_color.scss +14 -0
  168. package/trash/scss-before-cqc-update/base/_elements.scss +189 -0
  169. package/trash/scss-before-cqc-update/base/_index.scss +63 -0
  170. package/trash/scss-before-cqc-update/base/_keyframes.scss +74 -0
  171. package/trash/scss-before-cqc-update/base/_layout.scss +88 -0
  172. package/trash/scss-before-cqc-update/base/_normalize.scss +316 -0
  173. package/trash/scss-before-cqc-update/base/_typography.scss +42 -0
  174. package/trash/scss-before-cqc-update/components/README.md +5 -0
  175. package/trash/scss-before-cqc-update/components/README.todos +15 -0
  176. package/trash/scss-before-cqc-update/components/_button.scss +96 -0
  177. package/trash/scss-before-cqc-update/components/_grid.scss +671 -0
  178. package/trash/scss-before-cqc-update/components/_index.scss +70 -0
  179. package/trash/scss-before-cqc-update/components/_links.scss +35 -0
  180. package/trash/scss-before-cqc-update/components/_list-lines.scss +74 -0
  181. package/trash/scss-before-cqc-update/components/_list-ordered.scss +17 -0
  182. package/trash/scss-before-cqc-update/components/_list-unordered.scss +22 -0
  183. package/trash/scss-before-cqc-update/components/_rule.scss +94 -0
  184. package/trash/scss-before-cqc-update/helpers/_color.scss +15 -0
  185. package/trash/scss-before-cqc-update/helpers/_display.scss +73 -0
  186. package/trash/scss-before-cqc-update/helpers/_index.scss +68 -0
  187. package/trash/scss-before-cqc-update/helpers/_print.scss +59 -0
  188. package/trash/scss-before-cqc-update/helpers/_typography.scss +73 -0
  189. package/trash/scss-before-cqc-update/helpers/_units.scss +79 -0
  190. package/trash/scss-before-cqc-update/helpers/_utilities.scss +88 -0
  191. package/trash/scss-before-cqc-update/stylesheets/README.md +3 -0
  192. package/trash/scss-before-cqc-update/stylesheets/full.scss +17 -0
  193. package/trash/scss-old/README.md +58 -0
  194. package/trash/scss-old/_breakpoint.scss +140 -0
  195. package/trash/scss-old/_button.scss +223 -0
  196. package/trash/scss-old/_calculate.scss +64 -0
  197. package/trash/scss-old/_color.scss +200 -0
  198. package/trash/scss-old/_element.scss +262 -0
  199. package/trash/scss-old/_grid.scss +558 -0
  200. package/trash/scss-old/_index.scss +25 -0
  201. package/trash/scss-old/_layout.scss +170 -0
  202. package/trash/scss-old/_path.scss +58 -0
  203. package/trash/scss-old/_selector.scss +81 -0
  204. package/trash/scss-old/_typography.scss +320 -0
  205. package/trash/scss-old/_units.scss +47 -0
  206. package/trash/scss-old/_utility.scss +12 -0
  207. package/trash/scss-old/_utils.scss +186 -0
  208. package/trash/scss-old/base/_color.scss +13 -0
  209. package/trash/scss-old/base/_elements.scss +183 -0
  210. package/trash/scss-old/base/_index.scss +62 -0
  211. package/trash/scss-old/base/_keyframes.scss +74 -0
  212. package/trash/scss-old/base/_layout.scss +81 -0
  213. package/trash/scss-old/base/_normalize.scss +316 -0
  214. package/trash/scss-old/base/_typography.scss +42 -0
  215. package/trash/scss-old/components/README.md +5 -0
  216. package/trash/scss-old/components/README.todos +15 -0
  217. package/trash/scss-old/components/_button.scss +74 -0
  218. package/trash/scss-old/components/_index.scss +63 -0
  219. package/trash/scss-old/components/_links.scss +34 -0
  220. package/trash/scss-old/components/_list-lines.scss +73 -0
  221. package/trash/scss-old/components/_list-ordered.scss +16 -0
  222. package/trash/scss-old/components/_list-unordered.scss +21 -0
  223. package/trash/scss-old/components/_rule.scss +84 -0
  224. package/trash/scss-old/helpers/_color.scss +14 -0
  225. package/trash/scss-old/helpers/_display.scss +68 -0
  226. package/trash/scss-old/helpers/_index.scss +67 -0
  227. package/trash/scss-old/helpers/_print.scss +59 -0
  228. package/trash/scss-old/helpers/_typography.scss +73 -0
  229. package/trash/scss-old/helpers/_units.scss +68 -0
  230. package/trash/scss-old/helpers/_utilities.scss +82 -0
  231. package/trash/scss-old/packages/README.md +3 -0
  232. package/trash/scss-old/packages/everything.scss +17 -0
  233. package/trash/scss-old-2/README.md +58 -0
  234. package/trash/scss-old-2/_breakpoint.scss +139 -0
  235. package/trash/scss-old-2/_button.scss +223 -0
  236. package/trash/scss-old-2/_calculate.scss +64 -0
  237. package/trash/scss-old-2/_color.scss +202 -0
  238. package/trash/scss-old-2/_element.scss +263 -0
  239. package/trash/scss-old-2/_grid.scss +558 -0
  240. package/trash/scss-old-2/_index.scss +25 -0
  241. package/trash/scss-old-2/_layout.scss +170 -0
  242. package/trash/scss-old-2/_path.scss +58 -0
  243. package/trash/scss-old-2/_selector.scss +81 -0
  244. package/trash/scss-old-2/_typography.scss +320 -0
  245. package/trash/scss-old-2/_units.scss +47 -0
  246. package/trash/scss-old-2/_utility.scss +12 -0
  247. package/trash/scss-old-2/_utils.scss +186 -0
  248. package/trash/scss-old-2/base/_color.scss +13 -0
  249. package/trash/scss-old-2/base/_elements.scss +182 -0
  250. package/trash/scss-old-2/base/_index.scss +62 -0
  251. package/trash/scss-old-2/base/_keyframes.scss +73 -0
  252. package/trash/scss-old-2/base/_layout.scss +83 -0
  253. package/trash/scss-old-2/base/_normalize.scss +315 -0
  254. package/trash/scss-old-2/base/_typography.scss +41 -0
  255. package/trash/scss-old-2/components/README.md +5 -0
  256. package/trash/scss-old-2/components/README.todos +15 -0
  257. package/trash/scss-old-2/components/_button.scss +95 -0
  258. package/trash/scss-old-2/components/_index.scss +63 -0
  259. package/trash/scss-old-2/components/_links.scss +33 -0
  260. package/trash/scss-old-2/components/_list-lines.scss +73 -0
  261. package/trash/scss-old-2/components/_list-ordered.scss +16 -0
  262. package/trash/scss-old-2/components/_list-unordered.scss +21 -0
  263. package/trash/scss-old-2/components/_rule.scss +84 -0
  264. package/trash/scss-old-2/helpers/_color.scss +14 -0
  265. package/trash/scss-old-2/helpers/_display.scss +67 -0
  266. package/trash/scss-old-2/helpers/_index.scss +67 -0
  267. package/trash/scss-old-2/helpers/_print.scss +58 -0
  268. package/trash/scss-old-2/helpers/_typography.scss +72 -0
  269. package/trash/scss-old-2/helpers/_units.scss +68 -0
  270. package/trash/scss-old-2/helpers/_utilities.scss +81 -0
  271. package/trash/scss-old-2/packages/README.md +3 -0
  272. package/trash/scss-old-2/packages/everything.scss +17 -0
  273. package/trash/scss-old-230729/README.md +58 -0
  274. package/trash/scss-old-230729/_breakpoint.scss +139 -0
  275. package/trash/scss-old-230729/_button.scss +223 -0
  276. package/trash/scss-old-230729/_calculate.scss +64 -0
  277. package/trash/scss-old-230729/_color.scss +202 -0
  278. package/trash/scss-old-230729/_element.scss +273 -0
  279. package/trash/scss-old-230729/_grid.scss +694 -0
  280. package/trash/scss-old-230729/_index.scss +25 -0
  281. package/trash/scss-old-230729/_layout.scss +193 -0
  282. package/trash/scss-old-230729/_path.scss +58 -0
  283. package/trash/scss-old-230729/_selector.scss +81 -0
  284. package/trash/scss-old-230729/_typography.scss +320 -0
  285. package/trash/scss-old-230729/_units.scss +47 -0
  286. package/trash/scss-old-230729/_utility.scss +12 -0
  287. package/trash/scss-old-230729/_utils.scss +186 -0
  288. package/trash/scss-old-230729/base/_color.scss +13 -0
  289. package/trash/scss-old-230729/base/_elements.scss +188 -0
  290. package/trash/scss-old-230729/base/_index.scss +62 -0
  291. package/trash/scss-old-230729/base/_keyframes.scss +73 -0
  292. package/trash/scss-old-230729/base/_layout.scss +83 -0
  293. package/trash/scss-old-230729/base/_normalize.scss +315 -0
  294. package/trash/scss-old-230729/base/_typography.scss +41 -0
  295. package/trash/scss-old-230729/components/README.md +5 -0
  296. package/trash/scss-old-230729/components/README.todos +15 -0
  297. package/trash/scss-old-230729/components/_button.scss +95 -0
  298. package/trash/scss-old-230729/components/_index.scss +63 -0
  299. package/trash/scss-old-230729/components/_links.scss +34 -0
  300. package/trash/scss-old-230729/components/_list-lines.scss +73 -0
  301. package/trash/scss-old-230729/components/_list-ordered.scss +16 -0
  302. package/trash/scss-old-230729/components/_list-unordered.scss +21 -0
  303. package/trash/scss-old-230729/components/_rule.scss +93 -0
  304. package/trash/scss-old-230729/helpers/_color.scss +14 -0
  305. package/trash/scss-old-230729/helpers/_display.scss +73 -0
  306. package/trash/scss-old-230729/helpers/_index.scss +67 -0
  307. package/trash/scss-old-230729/helpers/_print.scss +58 -0
  308. package/trash/scss-old-230729/helpers/_typography.scss +72 -0
  309. package/trash/scss-old-230729/helpers/_units.scss +68 -0
  310. package/trash/scss-old-230729/helpers/_utilities.scss +87 -0
  311. package/trash/scss-old-230729/packages/README.md +3 -0
  312. package/trash/scss-old-230729/packages/everything.scss +17 -0
  313. package/trash/vue/directives/background-image-url.js +12 -0
  314. package/trash/vue/helpers/add-required-components.js +14 -0
  315. package/trash/vue/ui/CollapsibleRegion/CollapsibleRegion.vue +277 -0
  316. package/trash/vue/ui/CollapsibleRegion/Demo.vue +101 -0
  317. package/trash/vue/ui/Dropdown/Dropdown.vue +184 -0
  318. package/trash/vue/ui/Modals/components/Modal.vue +49 -0
  319. package/trash/vue/ui/Modals/components/Modals.vue +103 -0
  320. package/trash/vue/ui/Modals/plugin.js +215 -0
  321. package/trash/vue/ui/Modals/readme.note +10 -0
  322. package/trash/vue/ui/Modals/reference/example-usage.vue +27 -0
  323. package/trash/vue/ui/Modals/reference/wcag-example/dialog.js +324 -0
@@ -0,0 +1,200 @@
1
+ ////
2
+ /// @group color
3
+ ////
4
+
5
+ @use "sass:map";
6
+ @use "sass:meta";
7
+ @use "utils";
8
+ @use "selector";
9
+
10
+ /// The color palette map, can be extended or modified with set() and accessed with get()
11
+ /// @type map
12
+
13
+ $palette: (
14
+ "black": black,
15
+ "white": white,
16
+ "type": black,
17
+ "focus": blue,
18
+ "error": red,
19
+ "accent": orange,
20
+ "selected" : green,
21
+ "box-shadow": rgba(0, 0, 0, 0.349),
22
+ "rule": gray,
23
+ "rule-light": lightgray,
24
+ "link": blue,
25
+ "link:hover": darkblue,
26
+ "link:active": darkblue,
27
+ "link:visited": purple,
28
+ "bullet": inherit
29
+ ) !default;
30
+
31
+ /// Pairs of background-color and color definitions
32
+ /// @type map
33
+ /// @prop {Number|String} $contexts.name.background-color Color value or name of color in $palette
34
+ /// @prop {Number|String} $contexts.name.color Color value or name of color in $palette
35
+ /// @prop {Boolean} $contexts.name.base-class Print this value in the base module as a class (if base prints)
36
+
37
+ $contexts: (
38
+ "dark" : (
39
+ "background-color" : "black",
40
+ "color" : "white",
41
+ "base-class" : true
42
+ ),
43
+ "light" : (
44
+ "background-color" : "white",
45
+ "color" : "black",
46
+ "base-class" : true
47
+ ),
48
+ );
49
+
50
+ /// Palette entries that are output as classes when using all-color-class-styles
51
+ $color-classes: (
52
+ "black" : true,
53
+ "white" : true,
54
+ "type": true
55
+ ) !default;
56
+
57
+ /// Used to override or extend the color palette
58
+ /// @param {Map} $changes A map to merge into the color palette
59
+ /// @example scss Setting the error and type color
60
+ /// @include color.set((
61
+ /// "type" : #444,
62
+ /// "error" : orange,
63
+ /// ));
64
+
65
+ @mixin set($changes) {
66
+ $palette: map.merge($palette, $changes) !global;
67
+ }
68
+
69
+ /// Get a color from the palette by name
70
+ /// @param {String} $name Name of color to get
71
+ /// @return {Color}
72
+
73
+ @function get($name) {
74
+ // Allow non lookup if the value is already a color (helps with code flow)
75
+ @if (meta.type-of($name) == "color") {
76
+ @return $name;
77
+ } @else if ($name == "inherit") {
78
+ @return $name;
79
+ } @else {
80
+ @return utils.require-map-get($palette, $name, 'color');
81
+ }
82
+ }
83
+
84
+ /// Set ouput classes for all-color-class-styles
85
+ /// @param {Map} $changes Map of changes (you can disable defaults this way)
86
+
87
+ @mixin set-color-classes($changes) {
88
+ $color-classes: map.merge($color-classes, $changes) !global;
89
+ }
90
+
91
+ @function exists($name) {
92
+ $color: map.get($palette, $name);
93
+ @return if($color != null, true, false);
94
+ }
95
+
96
+ /// Set color contexts
97
+ /// @param {Map} $changes A map to merge
98
+ /// @param {Map} $deep Use deep merge
99
+ /// @param {Map} $overwrite Overwrite the completly (cannot be used with deep)
100
+ /// @example scss Overwriting contexts
101
+ /// @include color.set-contexts((
102
+ /// "dark" : (
103
+ /// "background-color" : red,
104
+ /// "color" : white,
105
+ /// )
106
+ /// ), false, true);
107
+
108
+ @mixin set-contexts($changes, $deep: false, $overwrite: false) {
109
+ $contexts: utils.map-merge-or-overwrite($contexts, $changes, $deep, $overwrite) !global;
110
+ }
111
+
112
+ /// Get a context by name
113
+ /// @param {String} $name Name of context
114
+ /// @return {Map}
115
+
116
+ @function get-context($name) {
117
+ @return utils.require-map-get($contexts, $name, 'context');
118
+ }
119
+
120
+ /// Get a context's value'
121
+ /// @param {String} $name Name of context
122
+ /// @param {String} $prop The property to get
123
+ /// @return {Color}
124
+
125
+ @function get-context-value($name, $prop) {
126
+ $context: get-context($name);
127
+ $value: map.get($context, $prop);
128
+ // Get from pallete by name
129
+ @if (meta.type-of($value) == "string") {
130
+ $value: get($value);
131
+ }
132
+ @return $value;
133
+ }
134
+
135
+ /// Prints contexts styles
136
+ /// @param {String} $name Name of context
137
+
138
+ @mixin context-styles($name) {
139
+ $context: get-context($name);
140
+ background-color: get-context-value($name, "background-color");
141
+ background: map.get($context, "background"); // Allow gradients/images
142
+ background-image: map.get($context, "background-image"); // Allow gradients/images
143
+ color: get-context-value($name, "color");
144
+ }
145
+
146
+ /// Lighten a color using the default white by a percentage
147
+ /// @param {Color, String} $color Color/palette color name to apply to tint
148
+ /// @param {Number} $percentage Percentage
149
+ /// @return {Color}
150
+ /// @link https://css-tricks.com/snippets/sass/tint-shade-functions/ Modified from source (CSS Tricks, Kitty Giraudel)
151
+
152
+ @function tint($color, $percentage) {
153
+ @return mix(get("white"), get($color), $percentage);
154
+ }
155
+
156
+ /// Darken a color with the default black by a percentage
157
+ /// @param {Color, String} $color Color/palette color name to shade
158
+ /// @param {Number} $percentage Percentage to shade
159
+ /// @return {Color}
160
+ /// @author Kitty Giraudel
161
+ /// @link https://css-tricks.com/snippets/sass/tint-shade-functions/ Modified from source (CSS Tricks, Kitty Giraudel)
162
+
163
+ @function shade($color, $percentage) {
164
+ @return mix(get("black"), get($color), $percentage);
165
+ }
166
+
167
+ /// Prints all context styles
168
+ /// @param {String} $with-prop Checks the specific context for a certain prop (has to be truthy)(used for output in helper/base color modules)
169
+ /// @example scss
170
+ /// @include ulu.all-context-styles();
171
+ /// @example html {preview} Example of a color-context
172
+ /// <div class="color-context-dark" style="padding: 1rem">
173
+ //// Some text in dark context
174
+ //// </div>
175
+ @mixin all-context-styles($with-prop: null) {
176
+ $prefix: selector.class("color-context");
177
+ @each $name, $context in $contexts {
178
+ @if (not $with-prop or map.get($context, $with-prop)) {
179
+ #{ $prefix }-#{ $name } {
180
+ @include context-styles($name);
181
+ }
182
+ }
183
+ }
184
+ }
185
+
186
+ /// Outputs all color classes
187
+ /// @example scss
188
+ /// @include ulu.all-color-class-styles();
189
+ /// @example html {preview} Example of a color-context
190
+ /// <span class="color-name">Some text</span>
191
+ @mixin all-color-class-styles() {
192
+ $prefix: selector.class("color");
193
+ @each $name, $output in $color-classes {
194
+ @if ($output) {
195
+ #{ $prefix }-#{ $name } {
196
+ color: get($name);
197
+ }
198
+ }
199
+ }
200
+ }
@@ -0,0 +1,262 @@
1
+ ////
2
+ /// @group element
3
+ ////
4
+
5
+ @use "sass:map";
6
+ @use "sass:meta";
7
+ @use "color";
8
+ @use "utils";
9
+
10
+ /// Module Settings
11
+ /// @type Map
12
+ /// @prop {Number} $config.backdrop-blur Backdrop blur amount used on elements/components
13
+ /// @prop {Color} $config.backdrop-color Backdrop color (modal overlays, etc)
14
+ /// @prop {List} $config.box-shadow Box-shadow definition for elements that are on top of page
15
+ /// @prop {List} $config.box-shadow-raised Box-shadow definition for elements that are raised off of the page (dropdowns, etc)
16
+ /// @prop {List} $config.box-shadow-above Box-shadow definition for elements that are above the page (fixed items, etc)
17
+ /// @prop {Number} $config.border-radius Common element border radius
18
+ /// @prop {Number} $config.border-radius-small Common element border radius (small)
19
+ /// @prop {Number} $config.border-radius-large Common element border radius (large)
20
+ /// @prop {List} $config.text-shadow Common text shadow
21
+ /// @prop {Number} $config.margin-small Common element margin (small) (default for lists)
22
+ /// @prop {Number} $config.margin Common element margin
23
+ /// @prop {Number} $config.margin-large Common element margin (large)
24
+ /// @prop {String} $config.ol-list-style-type Ordered list type (level 1)
25
+ /// @prop {String} $config.ol-list-style-type-2 Ordered list type (level 2)
26
+ /// @prop {String} $config.ol-list-style-type-3 Ordered list type (level 3)
27
+ /// @prop {String} $config.ul-list-style-type
28
+ /// @prop {String} $config.ul-list-style-type-2
29
+ /// @prop {String} $config.ul-list-style-type-3
30
+ /// @prop {String} $config.link-text-decoration-default Whether links use underline, remember that removing underline will create an accessiblity issue (not relying on color)
31
+ /// @prop {String} $config.link-text-decoration
32
+ /// @prop {String} $config.link-text-decoration-style
33
+ /// @prop {Color} $config.link-text-decoration-color
34
+ /// @prop {String} $config.link-text-decoration-style-hover
35
+ /// @prop {Color} $config.link-text-decoration-color-hover
36
+ /// @prop {Number} $config.link-text-decoration-thickness
37
+ /// @prop {Number} $config.link-text-underline-offset
38
+
39
+ $config: (
40
+ "backdrop-blur": 4px,
41
+ "backdrop-color": rgba(73, 73, 73, 0.459),
42
+ "box-shadow": 0 1px 5px color.get('box-shadow'),
43
+ "box-shadow-raised": 0 1px 12px color.get('box-shadow'),
44
+ "box-shadow-above": 0 1px 20px color.get('box-shadow'),
45
+ "border-radius": 6px,
46
+ "border-radius-small": 3px,
47
+ "border-radius-large": 5%,
48
+ "text-shadow": 0 1px 4px rgba(0,0,0,0.3),
49
+ "margin-small": 0.65em,
50
+ "margin": 1em,
51
+ "margin-large": 2em,
52
+ "ol-list-style-type": decimal,
53
+ "ol-list-style-type-2": lower-alpha,
54
+ "ol-list-style-type-3": lower-roman,
55
+ "ul-list-style-type": disc,
56
+ "ul-list-style-type-2": circle,
57
+ "ul-list-style-type-3": square,
58
+ "link-text-decoration-default": none,
59
+ "link-text-decoration": underline,
60
+ "link-text-decoration-style": dotted,
61
+ "link-text-decoration-color": initial,
62
+ "link-text-decoration-style-hover": solid,
63
+ "link-text-decoration-color-hover": false,
64
+ "link-text-decoration-thickness": 0.1em,
65
+ "link-text-underline-offset" : auto
66
+ ) !default;
67
+
68
+ /// Rule style map, redifine defaults or add to
69
+ /// @type Map
70
+
71
+ $rule-styles: (
72
+ "default": 1px solid color.get("rule"),
73
+ "light": 1px solid color.get("rule-light"),
74
+ ) !default;
75
+
76
+ /// Common rule margins (space between rule and type)
77
+ /// @type Map
78
+
79
+ $rule-margins: (
80
+ "smallest": 0.5rem,
81
+ "small": 1rem,
82
+ "medium": 2rem,
83
+ "large": 3rem
84
+ ) !default;
85
+
86
+ /// Change modules $config
87
+ /// @param {Map} $changes Map of changes
88
+ /// @include module-name.set(( "property" : value ));
89
+ @mixin set($changes) {
90
+ $config: map.merge($config, $changes) !global;
91
+ }
92
+
93
+ /// Get a config option
94
+ /// @param {Map} $name Name of property
95
+ /// @include module-name.get("property");
96
+
97
+ @function get($name) {
98
+ @return utils.require-map-get($config, $name, "element [config]");
99
+ }
100
+
101
+ /// Sets rule styles
102
+ /// @param {Map} $changes Map of changes
103
+
104
+ @mixin set-rule-styles($changes) {
105
+ $rule-styles: map.merge($rule-styles, $changes) !global;
106
+ }
107
+
108
+ /// Sets rule margins
109
+ /// @param {Map} $changes Map of changes
110
+
111
+ @mixin set-rule-margins($changes) {
112
+ $rule-margins: map.merge($rule-margins, $changes) !global;
113
+ }
114
+
115
+ /// Get a rule style
116
+ /// @param {Map} $changes Map of changes
117
+
118
+ @function get-rule-style($name: "default") {
119
+ @return utils.require-map-get($rule-styles, $name, "element [rule style]");
120
+ }
121
+
122
+ /// Sets rule margin
123
+ /// @param {Map} $changes Map of changes
124
+
125
+ @function get-rule-margin($name) {
126
+ @return utils.require-map-get($rule-margins, $name, "element [rule style]");
127
+ }
128
+
129
+ /// Get full rule CSS (style and margin)
130
+ /// @param {Map} $changes Map of changes
131
+
132
+ @mixin rule(
133
+ $style-name: "default",
134
+ $margin-name: null
135
+ ) {
136
+ @include rule-style($style-name);
137
+ @include rule-margin($margin-name);
138
+ }
139
+ @mixin rule-style($name: "default") {
140
+ border-bottom: get-rule-style($name);
141
+ }
142
+ @mixin rule-margin($name: null) {
143
+ $margin: if($name, get-rule-margin($name), get("margin"));
144
+ margin-top: $margin;
145
+ margin-bottom: $margin;
146
+ }
147
+
148
+ /// Print link styles
149
+ /// @param {Boolean} $visited Include visited style
150
+ /// @param {Boolean} $active Include active style
151
+
152
+ @mixin link($visited: false, $active: false) {
153
+ color: color.get("link");
154
+ text-decoration: get("link-text-decoration");
155
+ text-decoration-style: get("link-text-decoration-style");
156
+ text-decoration-color: get("link-text-decoration-color");
157
+ text-decoration-thickness: get("link-text-decoration-thickness");
158
+ text-underline-offset: get("link-text-underline-offset");
159
+ &:hover {
160
+ color: color.get("link:hover");
161
+ text-decoration-style: get("link-text-decoration-style-hover");
162
+ text-decoration-color: get("link-text-decoration-color-hover");
163
+ }
164
+ @if ($visited) {
165
+ &:visited {
166
+ color: color.get("link:visited");
167
+ }
168
+ }
169
+ @if ($active) {
170
+ &:active {
171
+ color: color.get("link:active");
172
+ }
173
+ }
174
+ }
175
+
176
+ /// Print the defautl link styling (no hover and focus styles)
177
+
178
+ @mixin link-defaults() {
179
+ color: color.get("link");
180
+ text-decoration: get("link-text-decoration-default");
181
+ }
182
+
183
+ /// Print the ordered list items styling
184
+ /// @param {Boolean} $bullet-color Optional bullet color (defaults to palette 'bullet')
185
+
186
+ @mixin styles-ordered-list($bullet-color: "bullet") {
187
+ margin-bottom: get("margin");
188
+ list-style: get("ol-list-style-type") outside;
189
+ li {
190
+ margin-bottom: get("margin-small");
191
+ margin-left: 1em;
192
+ }
193
+ > li {
194
+ &::marker {
195
+ color: color.get($bullet-color);
196
+ }
197
+ }
198
+ ol {
199
+ margin: get("margin-small") 0 0 get("margin-small");
200
+ list-style: get("ol-list-style-type-2");
201
+ ol {
202
+ list-style-type: get("ol-list-style-type-3");
203
+ }
204
+ }
205
+ ul,
206
+ ol {
207
+ margin-top: get("margin-small");
208
+ margin-bottom: get("margin-small");
209
+ }
210
+ }
211
+
212
+ /// Print the unordered list items styling
213
+ /// @param {Boolean} $bullet-color Optional bullet color
214
+
215
+ @mixin styles-unordered-list($bullet-color: "bullet") {
216
+ list-style: get("ul-list-style-type") outside;
217
+ > li {
218
+ margin-left: 1.5em;
219
+ margin-bottom: get("margin-small");
220
+ &::marker {
221
+ color: color.get($bullet-color);
222
+ }
223
+ }
224
+ ul {
225
+ list-style-type: get("ul-list-style-type-2");
226
+ }
227
+ ul ul {
228
+ list-style-type: get("ul-list-style-type-3");
229
+ }
230
+ ul,
231
+ ol {
232
+ margin-top: get("margin-small");
233
+ margin-bottom: get("margin-small");
234
+ }
235
+ }
236
+
237
+ /// Hide text for assistive devices
238
+ /// @param {Boolean} $hidden Defaults to true, pass false to override the hidden css (ie. on focus)
239
+ /// @example scss
240
+ /// @include ulu.layout-hidden-visually()
241
+ /// // Reset styling
242
+ /// @include ulu.layout-hidden-visually(false)
243
+
244
+ @mixin hidden-visually($hidden: true) {
245
+ @if $hidden {
246
+ clip: rect(0 0 0 0);
247
+ clip-path: inset(50%);
248
+ height: 1px;
249
+ overflow: hidden;
250
+ position: absolute;
251
+ white-space: nowrap;
252
+ width: 1px;
253
+ } @else {
254
+ clip: auto;
255
+ clip-path: none;
256
+ height: auto;
257
+ overflow: visible;
258
+ position: static;
259
+ white-space: normal;
260
+ width: auto;
261
+ }
262
+ }