@ulu/frontend 0.1.0-beta.12 → 0.1.0-beta.121

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 (344) hide show
  1. package/CHANGELOG.md +717 -0
  2. package/GEMINI.md +9 -0
  3. package/README.dev.md +3 -3
  4. package/README.md +14 -4
  5. package/dist/ulu-frontend.min.css +1 -1
  6. package/dist/ulu-frontend.min.js +36 -29
  7. package/docs-dev/.nojekyll +1 -0
  8. package/docs-dev/assets/main.js +832 -421
  9. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  10. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  11. package/docs-dev/assets/style.css +629 -233
  12. package/docs-dev/changelog/index.html +7613 -0
  13. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  14. package/docs-dev/demos/accordion/index.html +1496 -358
  15. package/docs-dev/demos/badge/index.html +5895 -0
  16. package/docs-dev/demos/badge-stack/index.html +5876 -0
  17. package/docs-dev/demos/basic-hero/index.html +111 -0
  18. package/docs-dev/demos/breadcrumb/index.html +5930 -0
  19. package/docs-dev/demos/breakpoints-manager/index.html +5906 -0
  20. package/docs-dev/demos/button/index.html +1537 -343
  21. package/docs-dev/demos/button-group/index.html +5892 -0
  22. package/docs-dev/demos/button-verbose/index.html +5898 -0
  23. package/docs-dev/demos/callout/index.html +1559 -379
  24. package/docs-dev/demos/captioned-figure/index.html +1492 -339
  25. package/docs-dev/demos/card/index.html +1592 -800
  26. package/docs-dev/demos/card-grid/index.html +6017 -0
  27. package/docs-dev/demos/card-new/index.html +5088 -0
  28. package/docs-dev/demos/card-old/index.html +5223 -0
  29. package/docs-dev/demos/card.1/index.html +5223 -0
  30. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  31. package/docs-dev/demos/counter-list/index.html +5900 -0
  32. package/docs-dev/demos/css-icons/index.html +1556 -380
  33. package/docs-dev/demos/data-grid/index.html +1492 -339
  34. package/docs-dev/demos/data-table/index.html +1634 -348
  35. package/docs-dev/demos/definition-list/index.html +6011 -0
  36. package/docs-dev/demos/details-group/index.html +5927 -0
  37. package/docs-dev/demos/donut-chart/index.html +5874 -0
  38. package/docs-dev/demos/file-save/index.html +1492 -339
  39. package/docs-dev/demos/flipcard/index.html +1492 -339
  40. package/docs-dev/demos/form-theme/index.html +1500 -347
  41. package/docs-dev/demos/headline-label/index.html +5862 -0
  42. package/docs-dev/demos/hero/index.html +12 -4
  43. package/docs-dev/demos/image-grid/index.html +12 -4
  44. package/docs-dev/demos/index.html +1493 -340
  45. package/docs-dev/demos/list-inline/index.html +1492 -339
  46. package/docs-dev/demos/list-lines/index.html +1492 -339
  47. package/docs-dev/demos/menu-stack/index.html +1652 -378
  48. package/docs-dev/demos/modals/index.html +1642 -366
  49. package/docs-dev/demos/nav-strip/index.html +1492 -339
  50. package/docs-dev/demos/overlay-section/index.html +1611 -388
  51. package/docs-dev/demos/panel/index.html +5922 -0
  52. package/docs-dev/demos/popovers/index.html +1752 -357
  53. package/docs-dev/demos/print/index.html +1492 -339
  54. package/docs-dev/demos/progress-bar/index.html +6030 -0
  55. package/docs-dev/demos/progress-circle/index.html +6197 -0
  56. package/docs-dev/demos/progress-donut/index.html +6107 -0
  57. package/docs-dev/demos/pull-quote/index.html +1492 -339
  58. package/docs-dev/demos/rail/index.html +5970 -0
  59. package/docs-dev/demos/rule/index.html +1509 -344
  60. package/docs-dev/demos/scroll-slider/index.html +72 -106
  61. package/docs-dev/demos/scrollpoints/index.html +1493 -340
  62. package/docs-dev/demos/skeleton/index.html +5918 -0
  63. package/docs-dev/demos/slider/index.html +12 -4
  64. package/docs-dev/demos/spoke-spinner/index.html +1492 -339
  65. package/docs-dev/demos/sticky-list/index.html +5883 -0
  66. package/docs-dev/demos/tabs/index.html +1565 -376
  67. package/docs-dev/demos/tag/index.html +1510 -345
  68. package/docs-dev/demos/theme-toggle/index.html +5939 -0
  69. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  70. package/docs-dev/demos/tiles/index.html +1492 -339
  71. package/docs-dev/demos/tooltip/index.html +1492 -339
  72. package/docs-dev/demos/wysiwyg/index.html +5912 -0
  73. package/docs-dev/guide/building-stylesheet/index.html +1492 -339
  74. package/docs-dev/guide/developing-ulu-scss-module/index.html +1492 -339
  75. package/docs-dev/guide/index.html +1492 -339
  76. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  77. package/docs-dev/index.html +1492 -339
  78. package/docs-dev/javascript/events/index.html +1567 -376
  79. package/docs-dev/javascript/index.html +1492 -339
  80. package/docs-dev/javascript/settings/index.html +6065 -0
  81. package/docs-dev/javascript/ui-breakpoints/index.html +1506 -355
  82. package/docs-dev/javascript/ui-collapsible/index.html +1491 -340
  83. package/docs-dev/javascript/ui-details-group/index.html +5982 -0
  84. package/docs-dev/javascript/ui-dialog/index.html +1523 -357
  85. package/docs-dev/javascript/ui-flipcard/index.html +1552 -345
  86. package/docs-dev/javascript/ui-grid/index.html +1538 -413
  87. package/docs-dev/javascript/ui-modal-builder/index.html +1761 -470
  88. package/docs-dev/javascript/ui-overflow-scroller/index.html +1491 -340
  89. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +1491 -340
  90. package/docs-dev/javascript/ui-page/index.html +1491 -340
  91. package/docs-dev/javascript/ui-popover/index.html +1501 -354
  92. package/docs-dev/javascript/ui-print/index.html +1489 -346
  93. package/docs-dev/javascript/ui-print-details/index.html +1491 -340
  94. package/docs-dev/javascript/ui-programmatic-modal/index.html +1491 -340
  95. package/docs-dev/javascript/ui-proxy-click/index.html +1591 -355
  96. package/docs-dev/javascript/ui-resizer/index.html +1850 -434
  97. package/docs-dev/javascript/ui-scroll-slider/index.html +1531 -348
  98. package/docs-dev/javascript/ui-scrollpoint/index.html +1501 -357
  99. package/docs-dev/javascript/ui-slider/index.html +1708 -366
  100. package/docs-dev/javascript/ui-tabs/index.html +1523 -409
  101. package/docs-dev/javascript/ui-theme-toggle/index.html +6070 -0
  102. package/docs-dev/javascript/ui-tooltip/index.html +1501 -354
  103. package/docs-dev/javascript/utils-class-logger/index.html +1492 -341
  104. package/docs-dev/javascript/utils-css/index.html +5884 -0
  105. package/docs-dev/javascript/utils-dom/index.html +1523 -452
  106. package/docs-dev/javascript/utils-file-save/index.html +1491 -340
  107. package/docs-dev/javascript/utils-floating-ui/index.html +1491 -340
  108. package/docs-dev/javascript/utils-id/index.html +1491 -340
  109. package/docs-dev/javascript/utils-pause-youtube-video/index.html +1491 -340
  110. package/docs-dev/javascript/utils-system/index.html +6187 -0
  111. package/docs-dev/sass/base/color/index.html +1491 -340
  112. package/docs-dev/sass/base/elements/index.html +1492 -341
  113. package/docs-dev/sass/base/index/index.html +1492 -341
  114. package/docs-dev/sass/base/index.html +1492 -339
  115. package/docs-dev/sass/base/keyframes/index.html +1492 -341
  116. package/docs-dev/sass/base/layout/index.html +1492 -341
  117. package/docs-dev/sass/base/normalize/index.html +1491 -340
  118. package/docs-dev/sass/base/print/index.html +1492 -341
  119. package/docs-dev/sass/base/root/index.html +1495 -344
  120. package/docs-dev/sass/base/typography/index.html +1491 -340
  121. package/docs-dev/sass/components/accordion/index.html +1628 -436
  122. package/docs-dev/sass/components/adaptive-spacing/index.html +1491 -340
  123. package/docs-dev/sass/components/badge/index.html +1522 -353
  124. package/docs-dev/sass/components/badge-stack/index.html +6051 -0
  125. package/docs-dev/sass/components/basic-hero/index.html +6045 -0
  126. package/docs-dev/sass/components/breadcrumb/index.html +6092 -0
  127. package/docs-dev/sass/components/button/index.html +1491 -340
  128. package/docs-dev/sass/components/button-group/index.html +6043 -0
  129. package/docs-dev/sass/components/button-verbose/index.html +1613 -387
  130. package/docs-dev/sass/components/callout/index.html +1598 -388
  131. package/docs-dev/sass/components/captioned-figure/index.html +1491 -340
  132. package/docs-dev/sass/components/card/index.html +1601 -393
  133. package/docs-dev/sass/components/card-grid/index.html +1491 -340
  134. package/docs-dev/sass/components/counter-list/index.html +6127 -0
  135. package/docs-dev/sass/components/css-icon/index.html +1492 -341
  136. package/docs-dev/sass/components/data-grid/index.html +1511 -353
  137. package/docs-dev/sass/components/data-table/index.html +1510 -352
  138. package/docs-dev/sass/components/definition-list/index.html +6107 -0
  139. package/docs-dev/sass/components/fill-context/index.html +1491 -340
  140. package/docs-dev/sass/components/flipcard/index.html +1569 -387
  141. package/docs-dev/sass/components/flipcard-grid/index.html +1491 -340
  142. package/docs-dev/sass/components/form-theme/index.html +1718 -572
  143. package/docs-dev/sass/components/headline-label/index.html +6073 -0
  144. package/docs-dev/sass/components/hero/index.html +1499 -348
  145. package/docs-dev/sass/components/horizontal-rule/index.html +1491 -340
  146. package/docs-dev/sass/components/image-grid/index.html +1491 -340
  147. package/docs-dev/sass/components/index/index.html +1514 -349
  148. package/docs-dev/sass/components/index.html +1492 -339
  149. package/docs-dev/sass/components/links/index.html +1491 -340
  150. package/docs-dev/sass/components/list-inline/index.html +1491 -340
  151. package/docs-dev/sass/components/list-lines/index.html +1491 -340
  152. package/docs-dev/sass/components/list-ordered/index.html +1491 -340
  153. package/docs-dev/sass/components/list-unordered/index.html +1491 -340
  154. package/docs-dev/sass/components/menu-stack/index.html +1578 -378
  155. package/docs-dev/sass/components/modal/index.html +1576 -390
  156. package/docs-dev/sass/components/nav-strip/index.html +1499 -348
  157. package/docs-dev/sass/components/overlay-section/index.html +1499 -348
  158. package/docs-dev/sass/components/pager/index.html +1491 -340
  159. package/docs-dev/sass/components/panel/index.html +6273 -0
  160. package/docs-dev/sass/components/placeholder-block/index.html +1491 -340
  161. package/docs-dev/sass/components/popover/index.html +1561 -404
  162. package/docs-dev/sass/components/progress-bar/index.html +6252 -0
  163. package/docs-dev/sass/components/progress-circle/index.html +6144 -0
  164. package/docs-dev/sass/components/pull-quote/index.html +1491 -340
  165. package/docs-dev/sass/components/rail/index.html +6063 -0
  166. package/docs-dev/sass/components/ratio-box/index.html +1499 -348
  167. package/docs-dev/sass/components/rule/index.html +1492 -341
  168. package/docs-dev/sass/components/scroll-slider/index.html +1501 -362
  169. package/docs-dev/sass/components/skeleton/index.html +6101 -0
  170. package/docs-dev/sass/components/skip-link/index.html +1491 -340
  171. package/docs-dev/sass/components/slider/index.html +1581 -442
  172. package/docs-dev/sass/components/spoke-spinner/index.html +1493 -342
  173. package/docs-dev/sass/components/sticky-list/index.html +6263 -0
  174. package/docs-dev/sass/components/table-sticky/index.html +5707 -0
  175. package/docs-dev/sass/components/tabs/index.html +1519 -353
  176. package/docs-dev/sass/components/tag/index.html +1648 -403
  177. package/docs-dev/sass/components/tile-button/index.html +1491 -340
  178. package/docs-dev/sass/components/tile-grid/index.html +1491 -340
  179. package/docs-dev/sass/components/tile-grid-overlay/index.html +1491 -340
  180. package/docs-dev/sass/components/vignette/index.html +1499 -348
  181. package/docs-dev/sass/components/wysiwyg/index.html +1524 -355
  182. package/docs-dev/sass/core/breakpoint/index.html +1577 -374
  183. package/docs-dev/sass/core/button/index.html +1523 -370
  184. package/docs-dev/sass/core/color/index.html +1768 -485
  185. package/docs-dev/sass/core/cssvar/index.html +1491 -340
  186. package/docs-dev/sass/core/element/index.html +1837 -404
  187. package/docs-dev/sass/core/index.html +1491 -340
  188. package/docs-dev/sass/core/layout/index.html +1582 -412
  189. package/docs-dev/sass/core/path/index.html +1491 -340
  190. package/docs-dev/sass/core/selector/index.html +1491 -340
  191. package/docs-dev/sass/core/typography/index.html +1657 -448
  192. package/docs-dev/sass/core/units/index.html +1499 -342
  193. package/docs-dev/sass/core/utils/index.html +2781 -481
  194. package/docs-dev/sass/helpers/color/index.html +1491 -340
  195. package/docs-dev/sass/helpers/display/index.html +1492 -341
  196. package/docs-dev/sass/helpers/index/index.html +1491 -340
  197. package/docs-dev/sass/helpers/index.html +1492 -339
  198. package/docs-dev/sass/helpers/print/index.html +759 -298
  199. package/docs-dev/sass/helpers/typography/index.html +1491 -340
  200. package/docs-dev/sass/helpers/units/index.html +1491 -340
  201. package/docs-dev/sass/helpers/utilities/index.html +1495 -340
  202. package/docs-dev/sass/index.html +1492 -339
  203. package/js/events/index.js +17 -5
  204. package/js/index.js +1 -0
  205. package/js/settings.js +97 -0
  206. package/js/ui/breakpoints.js +19 -16
  207. package/js/ui/collapsible.js +8 -1
  208. package/js/ui/details-group.js +112 -0
  209. package/js/ui/dialog.js +103 -44
  210. package/js/ui/dialog.todo +2 -36
  211. package/js/ui/flipcard.js +37 -57
  212. package/js/ui/grid.js +15 -13
  213. package/js/ui/index.js +1 -0
  214. package/js/ui/modal-builder.js +127 -70
  215. package/js/ui/overflow-scroller.js +6 -4
  216. package/js/ui/page.js +2 -2
  217. package/js/ui/popover.js +38 -38
  218. package/js/ui/print.js +16 -25
  219. package/js/ui/programmatic-modal.js +9 -3
  220. package/js/ui/proxy-click.js +50 -36
  221. package/js/ui/resizer.js +408 -39
  222. package/js/ui/scroll-slider.js +24 -30
  223. package/js/ui/scrollpoint.js +29 -64
  224. package/js/ui/slider.js +108 -63
  225. package/js/ui/tabs.js +23 -36
  226. package/js/ui/theme-toggle.js +332 -94
  227. package/js/ui/tooltip.js +27 -32
  228. package/js/utils/class-logger.js +3 -3
  229. package/js/utils/css.js +13 -0
  230. package/js/utils/dom.js +23 -64
  231. package/js/utils/font-awesome.js +19 -0
  232. package/js/utils/index.js +2 -1
  233. package/js/utils/system.js +155 -0
  234. package/package.json +24 -9
  235. package/scss/README.md +9 -0
  236. package/scss/_breakpoint.scss +39 -5
  237. package/scss/_button.scss +7 -5
  238. package/scss/_color.scss +71 -40
  239. package/scss/_element.scss +124 -2
  240. package/scss/_layout.scss +7 -8
  241. package/scss/_typography.scss +15 -0
  242. package/scss/_units.scss +3 -2
  243. package/scss/_utils.scss +387 -16
  244. package/scss/base/_elements.scss +0 -1
  245. package/scss/base/_index.scss +1 -1
  246. package/scss/base/_keyframes.scss +15 -0
  247. package/scss/base/_layout.scss +1 -0
  248. package/scss/base/_print.scss +2 -0
  249. package/scss/base/_root.scss +2 -0
  250. package/scss/components/_accordion.scss +167 -110
  251. package/scss/components/_badge-stack.scss +84 -0
  252. package/scss/components/_badge.scss +30 -7
  253. package/scss/components/_basic-hero.scss +112 -0
  254. package/scss/components/_breadcrumb.scss +110 -0
  255. package/scss/components/_button-group.scss +90 -0
  256. package/scss/components/_button-verbose.scss +100 -18
  257. package/scss/components/_callout.scss +112 -53
  258. package/scss/components/_card-grid.scss +5 -2
  259. package/scss/components/_card.scss +216 -87
  260. package/scss/components/_counter-list.scss +151 -0
  261. package/scss/components/_css-icon.scss +27 -17
  262. package/scss/components/_data-grid.scss +55 -12
  263. package/scss/components/_data-table.scss +3 -0
  264. package/scss/components/_definition-list.scss +178 -0
  265. package/scss/components/_flipcard.scss +8 -3
  266. package/scss/components/_form-theme.scss +106 -95
  267. package/scss/components/_headline-label.scss +83 -0
  268. package/scss/components/_hero.scss +3 -10
  269. package/scss/components/_index.scss +79 -0
  270. package/scss/components/_menu-stack.scss +87 -23
  271. package/scss/components/_modal.scss +51 -23
  272. package/scss/components/_nav-strip.scss +2 -0
  273. package/scss/components/_overlay-section.scss +2 -5
  274. package/scss/components/_panel.scss +246 -0
  275. package/scss/components/_popover.scss +139 -38
  276. package/scss/components/_progress-bar.scss +260 -0
  277. package/scss/components/_progress-circle.scss +175 -0
  278. package/scss/components/_pull-quote.scss +1 -1
  279. package/scss/components/_rail.scss +127 -0
  280. package/scss/components/_ratio-box.scss +2 -5
  281. package/scss/components/_rule.scss +1 -0
  282. package/scss/components/_scroll-slider.scss +1 -5
  283. package/scss/components/_skeleton.scss +126 -0
  284. package/scss/components/_slider.scss +49 -72
  285. package/scss/components/_spoke-spinner.scss +2 -2
  286. package/scss/components/_sticky-list.scss +206 -0
  287. package/scss/components/_tabs.scss +22 -4
  288. package/scss/components/_tag.scss +49 -7
  289. package/scss/components/_vignette.scss +2 -5
  290. package/scss/components/_wysiwyg.scss +21 -13
  291. package/scss/helpers/_display.scss +15 -18
  292. package/scss/helpers/_print.scss +12 -7
  293. package/scss/helpers/_utilities.scss +62 -34
  294. package/types/events/index.d.ts +10 -1
  295. package/types/events/index.d.ts.map +1 -1
  296. package/types/index.d.ts +1 -0
  297. package/types/settings.d.ts +70 -0
  298. package/types/settings.d.ts.map +1 -0
  299. package/types/ui/breakpoints.d.ts +14 -14
  300. package/types/ui/breakpoints.d.ts.map +1 -1
  301. package/types/ui/collapsible.d.ts.map +1 -1
  302. package/types/ui/details-group.d.ts +38 -0
  303. package/types/ui/details-group.d.ts.map +1 -0
  304. package/types/ui/dialog.d.ts +20 -14
  305. package/types/ui/dialog.d.ts.map +1 -1
  306. package/types/ui/flipcard.d.ts +16 -10
  307. package/types/ui/flipcard.d.ts.map +1 -1
  308. package/types/ui/grid.d.ts +4 -6
  309. package/types/ui/grid.d.ts.map +1 -1
  310. package/types/ui/index.d.ts +1 -0
  311. package/types/ui/modal-builder.d.ts +116 -11
  312. package/types/ui/modal-builder.d.ts.map +1 -1
  313. package/types/ui/overflow-scroller.d.ts +2 -2
  314. package/types/ui/overflow-scroller.d.ts.map +1 -1
  315. package/types/ui/popover.d.ts +6 -7
  316. package/types/ui/popover.d.ts.map +1 -1
  317. package/types/ui/print.d.ts +0 -4
  318. package/types/ui/print.d.ts.map +1 -1
  319. package/types/ui/programmatic-modal.d.ts.map +1 -1
  320. package/types/ui/proxy-click.d.ts +19 -3
  321. package/types/ui/proxy-click.d.ts.map +1 -1
  322. package/types/ui/resizer.d.ts +116 -16
  323. package/types/ui/resizer.d.ts.map +1 -1
  324. package/types/ui/scroll-slider.d.ts +5 -7
  325. package/types/ui/scroll-slider.d.ts.map +1 -1
  326. package/types/ui/scrollpoint.d.ts +3 -8
  327. package/types/ui/scrollpoint.d.ts.map +1 -1
  328. package/types/ui/slider.d.ts +33 -14
  329. package/types/ui/slider.d.ts.map +1 -1
  330. package/types/ui/tabs.d.ts +6 -8
  331. package/types/ui/tabs.d.ts.map +1 -1
  332. package/types/ui/theme-toggle.d.ts +51 -7
  333. package/types/ui/theme-toggle.d.ts.map +1 -1
  334. package/types/ui/tooltip.d.ts +3 -5
  335. package/types/ui/tooltip.d.ts.map +1 -1
  336. package/types/utils/css.d.ts +11 -0
  337. package/types/utils/css.d.ts.map +1 -0
  338. package/types/utils/dom.d.ts +12 -32
  339. package/types/utils/dom.d.ts.map +1 -1
  340. package/types/utils/font-awesome.d.ts +5 -0
  341. package/types/utils/font-awesome.d.ts.map +1 -0
  342. package/types/utils/index.d.ts +1 -0
  343. package/types/utils/system.d.ts +113 -0
  344. package/types/utils/system.d.ts.map +1 -0
package/scss/_color.scss CHANGED
@@ -16,43 +16,49 @@
16
16
  /// @type map
17
17
 
18
18
  $palette: (
19
- "black" : black,
20
- "white" : white,
21
- "type" : black,
22
- "type-secondary" : rgb(82, 82, 82),
23
- "type-tertiary" : rgb(157, 157, 157),
24
- "headline" : inherit,
25
- "background" : white,
26
- "background-gray" : #F7F8F7,
27
- "focus" : blue,
28
- "accent" : orange,
29
- "info" : #00bde3,
30
- "success" : #00a91c,
31
- "warning" : #ffbe2e,
32
- "danger" : #d54309,
33
- "info-background" : #e7f6f8,
34
- "success-background" : #ecf3ec,
35
- "warning-background" : #faf3d1,
36
- "danger-background" : #f4e3db,
37
- "selected" : green,
38
- "box-shadow" : rgba(0, 0, 0, 0.349),
39
- "box-shadow-hover" : rgba(0, 0, 0, 0.5),
40
- "rule" : gray,
41
- "rule-light" : lightgray,
42
- "link" : blue,
43
- "link-hover" : darkblue,
44
- "link-active" : darkblue,
45
- "link-visited" : purple,
46
- "bullet" : inherit,
47
- "control" : white,
48
- "control-hover" : white,
49
- "control-active" : white,
50
- "control-border" : purple,
51
- "control-border-hover" : blue,
52
- "control-border-active" : orange,
53
- "control-background" : purple,
54
- "control-background-hover": blue,
55
- "control-background-active": orange,
19
+ "black": black,
20
+ "white": white,
21
+ "type": black,
22
+ "type-secondary": rgb(82, 82, 82),
23
+ "type-tertiary": rgb(125, 125, 125),
24
+ "type-disabled": rgb(160, 160, 160),
25
+ "headline": inherit,
26
+ "background": white,
27
+ "background-gray": #fafafa,
28
+ "focus": blue,
29
+ "accent": orange,
30
+ "info": #00bde3,
31
+ "success": #00a91c,
32
+ "warning": #ffbe2e,
33
+ "danger": #d54309,
34
+ "info-background": #e7f6f8,
35
+ "success-background": #ecf3ec,
36
+ "warning-background": #faf3d1,
37
+ "danger-background": #f4e3db,
38
+ // Used for background of elements that are placeholder or that have no value (think charts)
39
+ "placeholder-background": #e2e2e2,
40
+ "placeholder-background-alt": #bababa,
41
+ "selected": green,
42
+ "box-shadow": rgba(0, 0, 0, 0.349),
43
+ "box-shadow-hover": rgba(0, 0, 0, 0.5),
44
+ "rule": gray,
45
+ "rule-light": lightgray,
46
+ "link": blue,
47
+ "link-hover": darkblue,
48
+ "link-active": darkblue,
49
+ "link-visited": purple,
50
+ "bullet": inherit,
51
+ "control": white,
52
+ "control-hover": white,
53
+ "control-active": white,
54
+ "control-border": purple,
55
+ "control-border-hover": blue,
56
+ "control-border-active": orange,
57
+ "control-background": purple,
58
+ "control-background-hover": blue,
59
+ "control-background-active": orange,
60
+ // Like accent indicator like things in ui (progress, etc)
61
+ "indicator" : #5050ab,
56
62
  ) !default;
57
63
 
58
64
  /// Pairs of background-color and color definitions
@@ -101,8 +107,11 @@ $color-classes: (
101
107
  @function get($name) {
102
108
  // Allow non lookup if the value is already a color (helps with code flow)
103
109
  @if (meta.type-of($name) == "string") {
110
+ $is-keyword: $name == "inherit" or $name == "transparent" or $name == "currentColor";
111
+ $is-cssvar: string.index($name, "var(") == 1;
112
+ $is-color-mix: string.index($name, "color-mix(") == 1;
104
113
  // Allow custom-properties and keyword inherit/transparent to pass through
105
- @if ($name == "inherit" or $name == "transparent" or $name == "currentColor" or string.index($name, "var(") == 1) {
114
+ @if ($is-keyword or $is-cssvar or $is-color-mix) {
106
115
  @return $name;
107
116
  // Else look up the color from the palette
108
117
  } @else {
@@ -178,7 +187,7 @@ $color-classes: (
178
187
  color: get-context-value($name, "color");
179
188
  }
180
189
 
181
- /// Lighten a color using the default white by a percentage
190
+ /// Tint (add white) a color using the default white by a percentage
182
191
  /// @param {Color, String} $color Color/palette color name to apply to tint
183
192
  /// @param {Number} $percentage Percentage
184
193
  /// @return {Color}
@@ -189,7 +198,18 @@ $color-classes: (
189
198
  @return color.mix(get("white"), get($color), $percentage);
190
199
  }
191
200
 
192
- /// Darken a color with the default black by a percentage
201
+ /// Tint (add white) a color using the default white by a percentage (Using color-mix)
202
+ /// - This only works in modern browsers (as of June 2025)
203
+ /// - These match ulu.color-tint() and are designed to accept the same arguments with the same results
204
+ /// @param {Color, String} $color Color or custom property to apply mix to
205
+ /// @param {Number} $percentage Percentage
206
+ /// @return {Color}
207
+
208
+ @function css-tint($color, $percentage) {
209
+ @return color-mix(in srgb, get("white") $percentage, get($color) calc(100% - $percentage));
210
+ }
211
+
212
+ /// Shade (add black) a color with the default black by a percentage
193
213
  /// @param {Color, String} $color Color/palette color name to shade
194
214
  /// @param {Number} $percentage Percentage to shade
195
215
  /// @return {Color}
@@ -200,6 +220,17 @@ $color-classes: (
200
220
  @return color.mix(get("black"), get($color), $percentage);
201
221
  }
202
222
 
223
+ /// Shade (add black) a color using the default white by a percentage (Using color-mix)
224
+ /// - This only works in modern browsers (as of June 2025)
225
+ /// - These match ulu.color-shade() and are designed to accept the same arguments with the same results
226
+ /// @param {Color, String} $color Color or custom property to apply mix to
227
+ /// @param {Number} $percentage Percentage
228
+ /// @return {Color}
229
+
230
+ @function css-shade($color, $percentage) {
231
+ @return color-mix(in srgb, get("black") $percentage, get($color) calc(100% - $percentage));
232
+ }
233
+
203
234
  /// Prints all context styles
204
235
  /// @param {String} $with-prop Checks the specific context for a certain prop (has to be truthy)(used for output in helper/base color modules)
205
236
  /// @example scss
@@ -69,6 +69,8 @@ $config: (
69
69
  "ul-list-style-type": disc,
70
70
  "ul-list-style-type-2": circle,
71
71
  "ul-list-style-type-3": square,
72
+ "cap-color" : "accent",
73
+ "cap-size" : 5px
72
74
  ) !default;
73
75
 
74
76
  /// Rule style map, redefine defaults or add to
@@ -114,18 +116,35 @@ $rule-margins: (
114
116
 
115
117
  /// Sets rule margins
116
118
  /// @param {Map} $changes Map of changes
119
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
117
120
 
118
- @mixin set-rule-margins($changes) {
119
- $rule-margins: map.merge($rule-margins, $changes) !global;
121
+ @mixin set-rule-margins($changes, $merge-mode: null) {
122
+ $rule-margins: utils.map-merge($rule-margins, $changes, $merge-mode) !global;
120
123
  }
121
124
 
122
125
  /// Get a rule style
123
126
  /// @param {Map} $changes Map of changes
127
+ /// @return {CssValue} Rule style (css border value)
124
128
 
125
129
  @function get-rule-style($name: "default") {
126
130
  @return utils.require-map-get($rule-styles, $name, "element [rule style]");
127
131
  }
128
132
 
133
+ /// Get an optional rule style (which is a border)
134
+ /// - If the value is a string we return the rule style, else we return the value
135
+ /// - Used for things where configuration for say a border can be a user defined border or a string (they want an existing rule-style)
136
+ /// - Except when passing "none"/none this will return as-is (since it's a border property)
137
+ /// @param {*} $value The value to check
138
+ /// @return {*} Rule style if string, else value
139
+
140
+ @function get-optional-rule-style($value) {
141
+ @if (meta.type-of($value) == "string") {
142
+ @return get-rule-style($value);
143
+ } @else {
144
+ @return $value;
145
+ }
146
+ }
147
+
129
148
  /// Sets rule margin
130
149
  /// @param {Map} $changes Map of changes
131
150
 
@@ -290,4 +309,107 @@ $rule-margins: (
290
309
  white-space: normal;
291
310
  width: auto;
292
311
  }
312
+ }
313
+
314
+
315
+ /// Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border
316
+ /// - You need to set position (relative, fixed) on parent
317
+ /// @param {String} $side The side to place the cap (top, bottom, left, right)
318
+ /// @param {Map} $options Options for the appearance of the cap
319
+ /// @param {Color} $options.color [$config.cap-color] The color for the end cap
320
+ /// @param {Number} $options.size [$config.cap-size] The width/height of the cap
321
+ /// @param {Number} $options.offset [0] A positive number of the amount the cap should extend outside the box (to account for border-width)
322
+ /// @param {Number} $options.border-radius [null] An optional border-radius to apply to the outward-facing edges of the cap (used to match parent)
323
+ /// @param {Boolean} $before [true] Whether or not to use the ::before element (if not uses :after)
324
+
325
+ @mixin cap(
326
+ $side,
327
+ $options: (),
328
+ $before: true,
329
+ ) {
330
+ $defaults: (
331
+ "color" : get("cap-color"),
332
+ "size" : get("cap-size"),
333
+ "offset" : 0,
334
+ "color-hover" : null,
335
+ "border-radius" : null,
336
+ "padding-adjust" : null,
337
+ );
338
+ $config: map.merge($defaults, $options);
339
+ $element: if($before, "::before", "::after");
340
+
341
+ &#{ $element } {
342
+ content: "";
343
+ position: absolute;
344
+ display: block;
345
+ }
346
+
347
+ @include cap-appearance($side, $config, $before);
348
+ }
349
+
350
+
351
+
352
+ /// Provides the appearance styles for a given cap
353
+ /// - If an option is not provided it won't be output
354
+ /// - This is used to update the caps styling (states, modifiers, etc)
355
+ /// @param {String} $side The side to place the cap (top, bottom, left, right)
356
+ /// @param {Map} $options Options for the appearance of the cap (see options from element.cap)
357
+ /// @param {Boolean} $before Whether or not to use the ::before element (if not uses :after)
358
+
359
+ @mixin cap-appearance(
360
+ $side,
361
+ $options: (),
362
+ $before: true
363
+ ) {
364
+ $element: if($before, "::before", "::after");
365
+ $size: map.get($options, "size");
366
+ $offset: map.get($options, "offset");
367
+ $border-radius: map.get($options, "border-radius");
368
+ $padding-adjust: map.get($options, "padding-adjust");
369
+
370
+ $end: $side == "top" or $side == "bottom";
371
+ $position: if($offset, 0 - $offset, null);
372
+
373
+ @if ($padding-adjust and $size) {
374
+ padding-#{ $side }: calc($padding-adjust + $size);
375
+ }
376
+
377
+ &#{ $element } {
378
+ background-color: color.get(map.get($options, "color"));
379
+ #{ $side }: $position;
380
+
381
+ @if $end {
382
+ left: $position;
383
+ right: $position;
384
+ height: $size;
385
+ } @else {
386
+ top: $position;
387
+ bottom: $position;
388
+ width: $size;
389
+ }
390
+
391
+ @if $border-radius {
392
+ @if $end {
393
+ border-#{ $side }-left-radius: $border-radius;
394
+ border-#{ $side }-right-radius: $border-radius;
395
+ } @else {
396
+ border-top-#{ $side }-radius: $border-radius;
397
+ border-bottom-#{ $side }-radius: $border-radius;
398
+ }
399
+ }
400
+ }
401
+ }
402
+
403
+ /// Add backdrop-filter blur
404
+ /// @param {CssUnit} $amount [get("backdrop-blur")] Amount to blur
405
+ ///
406
+ @mixin backdrop-filter-blur($amount: get("backdrop-blur")) {
407
+ backdrop-filter: blur($amount);
408
+ }
409
+
410
+ /// Accessibly hide focus ring while keeping it when it's required
411
+ @mixin focus-ring-required-only() {
412
+ &:focus:not(:focus-visible) {
413
+ outline: none;
414
+ }
293
415
  }
package/scss/_layout.scss CHANGED
@@ -7,6 +7,7 @@
7
7
  @use "sass:meta";
8
8
  @use "utils";
9
9
  @use "breakpoint";
10
+ @use "color";
10
11
 
11
12
  /// Module Settings
12
13
  /// @type Map
@@ -215,10 +216,7 @@ $containers: (
215
216
  $breakpoints: map.get($container, "breakpoints");
216
217
 
217
218
  $width: map.get($container, "width");
218
- // @debug $specific-breakpoint;
219
- // @if $specific-breakpoint {
220
- // @debug $container;
221
- // }
219
+
222
220
  @if ($width == null) {
223
221
  $width: 100%;
224
222
  }
@@ -243,14 +241,14 @@ $containers: (
243
241
  /// Prints clearfix styles
244
242
 
245
243
  @mixin clearfix() {
246
- &:before,
247
- &:after {
244
+ &::before,
245
+ &::after {
248
246
  content: "";
249
247
  display: table;
250
248
  flex-basis: 0; // Flexbox, clear fix for pseudo elements in Safari
251
249
  order: 1;
252
250
  }
253
- &:after {
251
+ &::after {
254
252
  clear: both;
255
253
  }
256
254
  }
@@ -267,6 +265,7 @@ $containers: (
267
265
  /// Layout utility for absolute (zero on all sides)
268
266
  /// - Probably helpful for gzip if we use this when these exact styles are needed
269
267
  /// so they are identical for compression
268
+ /// @param {Boolean} $set-size [false] Whether or not to use sizes to fill the space (height/width 100%) versus setting bottom and right to 0)
270
269
  @mixin absolute-fill($set-size: false) {
271
270
  position: absolute;
272
271
  top: 0;
@@ -278,4 +277,4 @@ $containers: (
278
277
  width: 100%;
279
278
  height: 100%;
280
279
  }
281
- }
280
+ }
@@ -35,6 +35,7 @@
35
35
  /// @prop {Number} line-height-dense [1.3] Default dense line height
36
36
  /// @prop {Number} line-height-densest [1.1]
37
37
  /// @prop {Number} line-height-spaced [1.75]
38
+ /// @prop {CssUnit} space-size [0.38em] The size of a space for the site's typography (used when creating faux spaces, like for .flow-inline utility)
38
39
 
39
40
  $config: (
40
41
  "letter-spacing-uppercase": 0.04em,
@@ -61,6 +62,7 @@ $config: (
61
62
  "max-width": 60em,
62
63
  "max-width-large": 75em,
63
64
  "max-width-small": 45em,
65
+ "space-size": 0.38em
64
66
  ) !default;
65
67
 
66
68
  /// Change modules $config
@@ -304,6 +306,19 @@ $sizes: get-default-sizes() !default;
304
306
  font-size: calc(#{ $font-size } + #{ $amount });
305
307
  }
306
308
 
309
+
310
+ /// Output an optional typography size
311
+ /// - If $name is not a string (ie. null, etc) no size will be output
312
+ /// - If the size is not defined no size will be output
313
+ /// @param {*} $name Size name
314
+ /// @param {*} $args... All args are passed as-is to size() mixin
315
+
316
+ @mixin optional-size($name, $changes: false, $only-font-size: null) {
317
+ @if (meta.type-of($name) == "string" and has-size($name)) {
318
+ @include size($name, $changes, $only-font-size);
319
+ }
320
+ }
321
+
307
322
  /// Print a typography size (font-size, line-height)
308
323
  /// @param {String} $nameOrMap Name to retrieve from sizes map or a unique size map that follows the API
309
324
  /// @param {Map} $changes Modifications to be merged into size before output
package/scss/_units.scss CHANGED
@@ -27,13 +27,14 @@ $config: (
27
27
 
28
28
  /// Update the units config
29
29
  /// @param {Map} $changes A map to merge into the color palette
30
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
30
31
  /// @example scss Setting the error and type color
31
32
  /// @include ulu.units-set((
32
33
  /// "default" : 1.5em
33
34
  /// ));
34
35
 
35
- @mixin set($changes) {
36
- $config: map.merge($config, $changes) !global;
36
+ @mixin set($changes, $merge-mode: null) {
37
+ $config: utils.map-merge($config, $changes, $merge-mode) !global;
37
38
  }
38
39
 
39
40
  /// Get a unit by name (preset) or number (multiplier of base)