@ulu/frontend 0.1.0-beta.4 → 0.1.0-beta.40

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 (295) hide show
  1. package/CHANGELOG.md +332 -1
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/dist/ulu-frontend.min.js +28 -27
  4. package/docs-dev/assets/main.js +832 -421
  5. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  6. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  7. package/docs-dev/assets/style.css +629 -233
  8. package/docs-dev/changelog/index.html +6079 -0
  9. package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
  10. package/docs-dev/demos/accordion/index.html +904 -321
  11. package/docs-dev/demos/basic-hero/index.html +111 -0
  12. package/docs-dev/demos/breakpoints-manager/index.html +5246 -0
  13. package/docs-dev/demos/button/index.html +916 -323
  14. package/docs-dev/demos/button-verbose/index.html +5238 -0
  15. package/docs-dev/demos/callout/index.html +951 -328
  16. package/docs-dev/demos/captioned-figure/index.html +904 -321
  17. package/docs-dev/demos/card/index.html +970 -748
  18. package/docs-dev/demos/card-grid/index.html +5357 -0
  19. package/docs-dev/demos/card-new/index.html +5088 -0
  20. package/docs-dev/demos/card-old/index.html +5223 -0
  21. package/docs-dev/demos/card.1/index.html +5223 -0
  22. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  23. package/docs-dev/demos/counter-list/index.html +5224 -0
  24. package/docs-dev/demos/css-icons/index.html +904 -321
  25. package/docs-dev/demos/data-grid/index.html +1014 -511
  26. package/docs-dev/demos/data-table/index.html +1064 -348
  27. package/docs-dev/demos/details-group/index.html +5267 -0
  28. package/docs-dev/demos/file-save/index.html +904 -321
  29. package/docs-dev/demos/flipcard/index.html +904 -321
  30. package/docs-dev/demos/form-theme/index.html +922 -352
  31. package/docs-dev/demos/hero/index.html +12 -4
  32. package/docs-dev/demos/image-grid/index.html +12 -4
  33. package/docs-dev/demos/index.html +904 -321
  34. package/docs-dev/demos/list-inline/index.html +5220 -0
  35. package/docs-dev/demos/list-inline.1/index.html +4727 -0
  36. package/docs-dev/demos/list-lines/index.html +5210 -0
  37. package/docs-dev/demos/menu-stack/index.html +975 -377
  38. package/docs-dev/demos/modals/index.html +1010 -357
  39. package/docs-dev/demos/nav-strip/index.html +924 -377
  40. package/docs-dev/demos/overlay-section/index.html +979 -326
  41. package/docs-dev/demos/popovers/index.html +1152 -327
  42. package/docs-dev/demos/print/index.html +904 -321
  43. package/docs-dev/demos/pull-quote/index.html +904 -321
  44. package/docs-dev/demos/rule/index.html +952 -357
  45. package/docs-dev/demos/scroll-slider/index.html +72 -106
  46. package/docs-dev/demos/scrollpoints/index.html +905 -322
  47. package/docs-dev/demos/slider/index.html +12 -4
  48. package/docs-dev/demos/spoke-spinner/index.html +904 -321
  49. package/docs-dev/demos/sticky-list/index.html +5223 -0
  50. package/docs-dev/demos/tabs/index.html +944 -325
  51. package/docs-dev/demos/tag/index.html +904 -321
  52. package/docs-dev/demos/theme-toggle/index.html +5279 -0
  53. package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
  54. package/docs-dev/demos/tiles/index.html +904 -321
  55. package/docs-dev/demos/tooltip/index.html +904 -321
  56. package/docs-dev/guide/building-stylesheet/index.html +904 -321
  57. package/docs-dev/guide/developing-ulu-scss-module/index.html +904 -321
  58. package/docs-dev/guide/index.html +904 -321
  59. package/docs-dev/guide/updates-and-changes/index.html +5033 -0
  60. package/docs-dev/index.html +904 -321
  61. package/docs-dev/javascript/events/index.html +901 -320
  62. package/docs-dev/javascript/index.html +904 -321
  63. package/docs-dev/javascript/settings/index.html +5400 -0
  64. package/docs-dev/javascript/ui-breakpoints/index.html +916 -335
  65. package/docs-dev/javascript/ui-collapsible/index.html +901 -320
  66. package/docs-dev/javascript/ui-details-group/index.html +5322 -0
  67. package/docs-dev/javascript/ui-dialog/index.html +967 -371
  68. package/docs-dev/javascript/ui-flipcard/index.html +964 -327
  69. package/docs-dev/javascript/ui-grid/index.html +913 -358
  70. package/docs-dev/javascript/ui-modal-builder/index.html +914 -354
  71. package/docs-dev/javascript/ui-overflow-scroller/index.html +901 -320
  72. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +901 -320
  73. package/docs-dev/javascript/ui-page/index.html +901 -320
  74. package/docs-dev/javascript/ui-popover/index.html +911 -334
  75. package/docs-dev/javascript/ui-print/index.html +901 -328
  76. package/docs-dev/javascript/ui-print-details/index.html +901 -320
  77. package/docs-dev/javascript/ui-programmatic-modal/index.html +901 -320
  78. package/docs-dev/javascript/ui-proxy-click/index.html +990 -324
  79. package/docs-dev/javascript/ui-resizer/index.html +901 -320
  80. package/docs-dev/javascript/ui-scroll-slider/index.html +941 -328
  81. package/docs-dev/javascript/ui-scrollpoint/index.html +907 -333
  82. package/docs-dev/javascript/ui-slider/index.html +1099 -327
  83. package/docs-dev/javascript/ui-tabs/index.html +914 -370
  84. package/docs-dev/javascript/ui-theme-toggle/index.html +5410 -0
  85. package/docs-dev/javascript/ui-tooltip/index.html +940 -363
  86. package/docs-dev/javascript/utils-class-logger/index.html +901 -320
  87. package/docs-dev/javascript/utils-css/index.html +5224 -0
  88. package/docs-dev/javascript/utils-dom/index.html +1037 -334
  89. package/docs-dev/javascript/utils-file-save/index.html +901 -320
  90. package/docs-dev/javascript/utils-floating-ui/index.html +901 -320
  91. package/docs-dev/javascript/utils-id/index.html +901 -320
  92. package/docs-dev/javascript/utils-pause-youtube-video/index.html +901 -320
  93. package/docs-dev/javascript/utils-system/index.html +5527 -0
  94. package/docs-dev/sass/base/color/index.html +901 -320
  95. package/docs-dev/sass/base/elements/index.html +973 -392
  96. package/docs-dev/sass/base/index/index.html +959 -378
  97. package/docs-dev/sass/base/index.html +904 -321
  98. package/docs-dev/sass/base/keyframes/index.html +901 -320
  99. package/docs-dev/sass/base/layout/index.html +966 -385
  100. package/docs-dev/sass/base/normalize/index.html +901 -320
  101. package/docs-dev/sass/base/print/index.html +901 -320
  102. package/docs-dev/sass/base/root/index.html +901 -320
  103. package/docs-dev/sass/base/typography/index.html +901 -320
  104. package/docs-dev/sass/components/accordion/index.html +1026 -445
  105. package/docs-dev/sass/components/adaptive-spacing/index.html +1027 -446
  106. package/docs-dev/sass/components/badge/index.html +1005 -424
  107. package/docs-dev/sass/components/basic-hero/index.html +5385 -0
  108. package/docs-dev/sass/components/button/index.html +952 -371
  109. package/docs-dev/sass/components/button-verbose/index.html +1089 -433
  110. package/docs-dev/sass/components/callout/index.html +1086 -482
  111. package/docs-dev/sass/components/captioned-figure/index.html +1070 -374
  112. package/docs-dev/sass/components/card/index.html +1121 -491
  113. package/docs-dev/sass/components/card-grid/index.html +973 -392
  114. package/docs-dev/sass/components/counter-list/index.html +5458 -0
  115. package/docs-dev/sass/components/css-icon/index.html +1052 -464
  116. package/docs-dev/sass/components/data-grid/index.html +1087 -499
  117. package/docs-dev/sass/components/data-table/index.html +1154 -381
  118. package/docs-dev/sass/components/fill-context/index.html +901 -320
  119. package/docs-dev/sass/components/flipcard/index.html +1071 -459
  120. package/docs-dev/sass/components/flipcard-grid/index.html +960 -379
  121. package/docs-dev/sass/components/form-theme/index.html +1349 -672
  122. package/docs-dev/sass/components/hero/index.html +1016 -387
  123. package/docs-dev/sass/components/horizontal-rule/index.html +959 -378
  124. package/docs-dev/sass/components/image-grid/index.html +966 -385
  125. package/docs-dev/sass/components/index/index.html +1004 -419
  126. package/docs-dev/sass/components/index.html +904 -321
  127. package/docs-dev/sass/components/links/index.html +901 -320
  128. package/docs-dev/sass/components/list-inline/index.html +5399 -0
  129. package/docs-dev/sass/components/list-lines/index.html +1009 -432
  130. package/docs-dev/sass/components/list-ordered/index.html +903 -322
  131. package/docs-dev/sass/components/list-unordered/index.html +901 -320
  132. package/docs-dev/sass/components/menu-stack/index.html +1050 -456
  133. package/docs-dev/sass/components/modal/index.html +1032 -444
  134. package/docs-dev/sass/components/nav-strip/index.html +1023 -442
  135. package/docs-dev/sass/components/overlay-section/index.html +1010 -429
  136. package/docs-dev/sass/components/pager/index.html +1017 -436
  137. package/docs-dev/sass/components/placeholder-block/index.html +1017 -436
  138. package/docs-dev/sass/components/popover/index.html +1068 -451
  139. package/docs-dev/sass/components/pull-quote/index.html +1017 -436
  140. package/docs-dev/sass/components/ratio-box/index.html +969 -388
  141. package/docs-dev/sass/components/rule/index.html +972 -391
  142. package/docs-dev/sass/components/scroll-slider/index.html +1019 -450
  143. package/docs-dev/sass/components/skip-link/index.html +961 -380
  144. package/docs-dev/sass/components/slider/index.html +1023 -442
  145. package/docs-dev/sass/components/spoke-spinner/index.html +961 -380
  146. package/docs-dev/sass/components/sticky-list/index.html +5603 -0
  147. package/docs-dev/sass/components/tabs/index.html +1020 -439
  148. package/docs-dev/sass/components/tag/index.html +1064 -483
  149. package/docs-dev/sass/components/tile-button/index.html +1004 -423
  150. package/docs-dev/sass/components/tile-grid/index.html +1045 -464
  151. package/docs-dev/sass/components/tile-grid-overlay/index.html +940 -359
  152. package/docs-dev/sass/components/vignette/index.html +965 -378
  153. package/docs-dev/sass/components/wysiwyg/index.html +968 -387
  154. package/docs-dev/sass/core/breakpoint/index.html +1045 -450
  155. package/docs-dev/sass/core/button/index.html +1438 -857
  156. package/docs-dev/sass/core/color/index.html +1084 -496
  157. package/docs-dev/sass/core/cssvar/index.html +950 -369
  158. package/docs-dev/sass/core/element/index.html +1504 -782
  159. package/docs-dev/sass/core/index.html +901 -320
  160. package/docs-dev/sass/core/layout/index.html +1062 -462
  161. package/docs-dev/sass/core/path/index.html +953 -372
  162. package/docs-dev/sass/core/selector/index.html +952 -371
  163. package/docs-dev/sass/core/typography/index.html +1171 -590
  164. package/docs-dev/sass/core/units/index.html +984 -403
  165. package/docs-dev/sass/core/utils/index.html +1941 -500
  166. package/docs-dev/sass/helpers/color/index.html +901 -320
  167. package/docs-dev/sass/helpers/display/index.html +902 -321
  168. package/docs-dev/sass/helpers/index/index.html +956 -375
  169. package/docs-dev/sass/helpers/index.html +904 -321
  170. package/docs-dev/sass/helpers/print/index.html +843 -292
  171. package/docs-dev/sass/helpers/typography/index.html +901 -320
  172. package/docs-dev/sass/helpers/units/index.html +950 -369
  173. package/docs-dev/sass/helpers/utilities/index.html +903 -322
  174. package/docs-dev/sass/index.html +904 -321
  175. package/js/index.js +1 -0
  176. package/js/settings.js +95 -0
  177. package/js/ui/breakpoints.js +19 -16
  178. package/js/ui/collapsible.js +8 -1
  179. package/js/ui/details-group.js +112 -0
  180. package/js/ui/dialog.js +90 -42
  181. package/js/ui/dialog.todo +2 -36
  182. package/js/ui/flipcard.js +37 -57
  183. package/js/ui/grid.js +15 -13
  184. package/js/ui/index.js +1 -0
  185. package/js/ui/modal-builder.js +45 -54
  186. package/js/ui/overflow-scroller.js +6 -4
  187. package/js/ui/popover.js +38 -38
  188. package/js/ui/print.js +16 -25
  189. package/js/ui/programmatic-modal.js +9 -3
  190. package/js/ui/proxy-click.js +50 -36
  191. package/js/ui/scroll-slider.js +24 -30
  192. package/js/ui/scrollpoint.js +28 -64
  193. package/js/ui/slider.js +61 -62
  194. package/js/ui/tabs.js +23 -36
  195. package/js/ui/theme-toggle.js +331 -94
  196. package/js/ui/tooltip.js +27 -32
  197. package/js/utils/css.js +13 -0
  198. package/js/utils/dom.js +69 -4
  199. package/js/utils/font-awesome.js +18 -0
  200. package/js/utils/index.js +2 -1
  201. package/js/utils/system.js +154 -0
  202. package/package.json +10 -7
  203. package/scss/_breakpoint.scss +16 -3
  204. package/scss/_color.scss +9 -2
  205. package/scss/_element.scss +91 -0
  206. package/scss/_layout.scss +7 -8
  207. package/scss/_utils.scss +248 -13
  208. package/scss/components/README.todos +14 -0
  209. package/scss/components/_accordion.scss +18 -20
  210. package/scss/components/_badge.scss +3 -2
  211. package/scss/components/_basic-hero.scss +112 -0
  212. package/scss/components/_button-verbose.scss +102 -20
  213. package/scss/components/_callout.scss +127 -79
  214. package/scss/components/_captioned-figure.scss +23 -5
  215. package/scss/components/_card-grid.scss +1 -1
  216. package/scss/components/_card.scss +242 -88
  217. package/scss/components/_counter-list.scss +133 -0
  218. package/scss/components/_css-icon.scss +33 -28
  219. package/scss/components/_data-grid.scss +38 -9
  220. package/scss/components/_data-table.scss +44 -4
  221. package/scss/components/_flipcard.scss +21 -15
  222. package/scss/components/_form-theme.scss +146 -135
  223. package/scss/components/_hero.scss +12 -10
  224. package/scss/components/_index.scss +24 -0
  225. package/scss/components/_list-inline.scss +80 -0
  226. package/scss/components/_list-lines.scss +44 -33
  227. package/scss/components/_list-ordered.scss +0 -1
  228. package/scss/components/_menu-stack.scss +42 -26
  229. package/scss/components/_modal.scss +29 -19
  230. package/scss/components/_nav-strip.scss +25 -16
  231. package/scss/components/_overlay-section.scss +4 -6
  232. package/scss/components/_pager.scss +6 -6
  233. package/scss/components/_placeholder-block.scss +4 -4
  234. package/scss/components/_popover.scss +174 -73
  235. package/scss/components/_pull-quote.scss +13 -13
  236. package/scss/components/_ratio-box.scss +2 -5
  237. package/scss/components/_rule.scss +1 -1
  238. package/scss/components/_scroll-slider.scss +2 -6
  239. package/scss/components/_skip-link.scss +2 -1
  240. package/scss/components/_slider.scss +17 -38
  241. package/scss/components/_spoke-spinner.scss +2 -2
  242. package/scss/components/_sticky-list.scss +206 -0
  243. package/scss/components/_tabs.scss +4 -2
  244. package/scss/components/_tag.scss +1 -1
  245. package/scss/components/_vignette.scss +3 -5
  246. package/scss/helpers/_display.scss +15 -18
  247. package/scss/helpers/_print.scss +12 -7
  248. package/scss/helpers/_utilities.scss +42 -32
  249. package/types/index.d.ts +1 -0
  250. package/types/settings.d.ts +66 -0
  251. package/types/settings.d.ts.map +1 -0
  252. package/types/ui/breakpoints.d.ts +14 -14
  253. package/types/ui/breakpoints.d.ts.map +1 -1
  254. package/types/ui/collapsible.d.ts.map +1 -1
  255. package/types/ui/details-group.d.ts +38 -0
  256. package/types/ui/details-group.d.ts.map +1 -0
  257. package/types/ui/dialog.d.ts +20 -14
  258. package/types/ui/dialog.d.ts.map +1 -1
  259. package/types/ui/flipcard.d.ts +16 -10
  260. package/types/ui/flipcard.d.ts.map +1 -1
  261. package/types/ui/grid.d.ts +4 -6
  262. package/types/ui/grid.d.ts.map +1 -1
  263. package/types/ui/index.d.ts +1 -0
  264. package/types/ui/modal-builder.d.ts +8 -11
  265. package/types/ui/modal-builder.d.ts.map +1 -1
  266. package/types/ui/overflow-scroller.d.ts +2 -2
  267. package/types/ui/overflow-scroller.d.ts.map +1 -1
  268. package/types/ui/popover.d.ts +6 -7
  269. package/types/ui/popover.d.ts.map +1 -1
  270. package/types/ui/print.d.ts +0 -4
  271. package/types/ui/print.d.ts.map +1 -1
  272. package/types/ui/programmatic-modal.d.ts.map +1 -1
  273. package/types/ui/proxy-click.d.ts +19 -3
  274. package/types/ui/proxy-click.d.ts.map +1 -1
  275. package/types/ui/scroll-slider.d.ts +5 -7
  276. package/types/ui/scroll-slider.d.ts.map +1 -1
  277. package/types/ui/scrollpoint.d.ts +3 -8
  278. package/types/ui/scrollpoint.d.ts.map +1 -1
  279. package/types/ui/slider.d.ts +24 -14
  280. package/types/ui/slider.d.ts.map +1 -1
  281. package/types/ui/tabs.d.ts +6 -8
  282. package/types/ui/tabs.d.ts.map +1 -1
  283. package/types/ui/theme-toggle.d.ts +51 -7
  284. package/types/ui/theme-toggle.d.ts.map +1 -1
  285. package/types/ui/tooltip.d.ts +3 -5
  286. package/types/ui/tooltip.d.ts.map +1 -1
  287. package/types/utils/css.d.ts +11 -0
  288. package/types/utils/css.d.ts.map +1 -0
  289. package/types/utils/dom.d.ts +36 -4
  290. package/types/utils/dom.d.ts.map +1 -1
  291. package/types/utils/font-awesome.d.ts +5 -0
  292. package/types/utils/font-awesome.d.ts.map +1 -0
  293. package/types/utils/index.d.ts +1 -0
  294. package/types/utils/system.d.ts +113 -0
  295. package/types/utils/system.d.ts.map +1 -0
@@ -37,17 +37,17 @@ $config: (
37
37
  "margin-bottom" : 3rem,
38
38
  "margin-top" : 1rem,
39
39
  "button-icon-offset-x" : 2rem,
40
- "button-icon-offset-y" : false,
40
+ "button-icon-offset-y" : null,
41
41
  "button-margin" : 2rem,
42
42
  "button-size" : 3rem,
43
43
  "button-height": 2.5rem,
44
44
  "button-width": 2.5rem,
45
45
  "dot-background-color" : transparent,
46
- "dot-background-color-hover" : color.get("link"),
47
- "dot-background-color-selected" : color.get("link"),
48
- "dot-border-color" : color.get("link"),
49
- "dot-border-color-hover" : color.get("link"),
50
- "dot-border-color-selected" : color.get("link"),
46
+ "dot-background-color-hover" : "link",
47
+ "dot-background-color-selected" : "link",
48
+ "dot-border-color" : "link",
49
+ "dot-border-color-hover" : "link",
50
+ "dot-border-color-selected" : "link",
51
51
  "dot-border-radius" : 50%,
52
52
  "dot-border-width" : 2px,
53
53
  "dot-size" : 1rem,
@@ -83,7 +83,7 @@ $config: (
83
83
  $slide-padding-x: get("button-width") + get("button-margin");
84
84
  #{ $prefix } {
85
85
  position: relative; // for controls
86
- background-color: get("background-color");
86
+ background-color: color.get(get("background-color"));
87
87
  margin: get("margin-top") 0 get("margin-bottom") 0;
88
88
  }
89
89
  #{ $prefix }__track,
@@ -97,11 +97,7 @@ $config: (
97
97
  top: 50%;
98
98
  transform: translateY(-50%);
99
99
  z-index: 10;
100
- }
101
- @if get("button-icon-offset-y") {
102
- #{ $prefix-plugin }__control-icon {
103
- margin-top: get("button-icon-offset-y");
104
- }
100
+ margin-top: get("button-icon-offset-y");
105
101
  }
106
102
  #{ $prefix-plugin }__nav {
107
103
  display: flex;
@@ -114,17 +110,17 @@ $config: (
114
110
  display: block;
115
111
  width: get("dot-size");
116
112
  height: get("dot-size");
117
- background-color: get("dot-background-color");
118
- border: get("dot-border-width") solid get("dot-border-color");
113
+ background-color: color.get(get("dot-background-color"));
114
+ border: get("dot-border-width") solid color.get(get("dot-border-color"));
119
115
  border-radius: get("dot-border-radius");
120
116
  &:hover {
121
- background-color: get("dot-background-color-hover");
117
+ background-color: color.get(get("dot-background-color-hover"));
122
118
  }
123
119
  }
124
120
  #{ $prefix-plugin }__nav-button--active,
125
121
  #{ $prefix-plugin }__nav-button--active:hover {
126
- background-color: get("dot-background-color-selected");
127
- border-color: get("dot-border-color-selected");
122
+ background-color: color.get(get("dot-background-color-selected"));
123
+ border-color: color.get(get("dot-border-color-selected"));
128
124
  }
129
125
  #{ $prefix-plugin }__control-button,
130
126
  #{ $prefix-plugin }__nav-button {
@@ -164,19 +160,11 @@ $config: (
164
160
  }
165
161
  #{ $prefix-plugin }__control-button--previous {
166
162
  left: 0;
167
- @if get("button-icon-offset-x") {
168
- #{ $prefix-plugin }__control-icon {
169
- margin-left: get("button-icon-offset-x");
170
- }
171
- }
163
+ margin-left: get("button-icon-offset-x");
172
164
  }
173
165
  #{ $prefix-plugin }__control-button--next {
174
166
  right: 0;
175
- @if get("button-icon-offset-x") {
176
- #{ $prefix-plugin }__control-icon {
177
- margin-right: get("button-icon-offset-x");
178
- }
179
- }
167
+ margin-right: get("button-icon-offset-x");
180
168
  }
181
169
  #{ $prefix }--inset-controls {
182
170
  #{ $prefix }__slide-gap-for-controls {
@@ -186,20 +174,11 @@ $config: (
186
174
  }
187
175
  #{ $prefix-plugin }__control-button--previous {
188
176
  left: 0;
189
- @if get("button-icon-offset-x") {
190
- &#{ $prefix-plugin }__control-icon {
191
- margin-left: get("button-icon-offset-x");
192
-
193
- }
194
- }
177
+ margin-left: get("button-icon-offset-x");
195
178
  }
196
179
  #{ $prefix-plugin }__control-button--next {
197
180
  right: 0;
198
- @if get("button-icon-offset-x") {
199
- &#{ $prefix-plugin }__control-icon {
200
- margin-right: get("button-icon-offset-x");
201
- }
202
- }
181
+ margin-right: get("button-icon-offset-x");
203
182
  }
204
183
  }
205
184
  }
@@ -96,7 +96,7 @@ $styles: () !default;
96
96
  transform-origin: $sizeHalf $sizeHalf;
97
97
  animation: UluFadeOut get("duration") linear infinite;
98
98
  }
99
- #{ $prefix }__spinner div:after {
99
+ #{ $prefix }__spinner div::after {
100
100
  content: " ";
101
101
  display: block;
102
102
  position: absolute;
@@ -181,7 +181,7 @@ $styles: () !default;
181
181
  transform-origin: $sizeHalf $sizeHalf;
182
182
  animation-duration: map.get($merged, "duration");
183
183
  }
184
- #{ $prefix }__spinner div:after {
184
+ #{ $prefix }__spinner div::after {
185
185
  left: $sizeHalf - $spoke-widthHalf;
186
186
  width: $spoke-width;
187
187
  height: map.get($merged, "spoke-height");
@@ -0,0 +1,206 @@
1
+
2
+ ////
3
+ /// @group sticky-list
4
+ ////
5
+ /// Sticky first column, sticky elements inside adjacent columns to first. (Sticky list with header)
6
+
7
+ @use "sass:map";
8
+ @use "sass:meta";
9
+ @use "sass:color" as sassColor;
10
+
11
+ @use "../color";
12
+ @use "../element";
13
+ @use "../breakpoint";
14
+ @use "../typography";
15
+ @use "../utils";
16
+ @use "../selector";
17
+
18
+ // Used for function fallback
19
+ $-fallbacks: (
20
+ "margin" : (
21
+ "function" : meta.get-function("get", false, "element"),
22
+ "property" : "margin"
23
+ ),
24
+ );
25
+
26
+ /// Module Settings
27
+ /// @type Map
28
+ /// @prop {Color} background-color [transparent] Background color for the entire slider section.
29
+ /// @prop {Number} margin [true] Margin on ends of component (defaults to element margin)
30
+ /// @prop {Number} mask-offset-bottom [55vh] The offset for the mask (on bottom)
31
+ /// @prop {Number} mask-offset-top [5rem] The offset for the mask (on top)
32
+ /// @prop {Number} sticky-top [45vh] When to stick
33
+ /// @prop {String} breakpoint ["medium"] The upward breakpoint that this is allowed to be sticky
34
+ /// @prop {String} type-size ["medium"] The typography size to use for title
35
+ /// @prop {Number} title-width [40%] The width of the title when this is displayed in columns
36
+ /// @prop {Number} title-min-width [8em] The min width for title when displayed in columns
37
+ /// @prop {CssValue} title-text-align [right] Text alignment for title when displayed in columns
38
+ /// @prop {Number} item-padding-x [0] Optional padding on the left/right for items
39
+ /// @prop {Number} gap [2rem] The gap between title and items when displayed in columns
40
+ /// @prop {Color} background-color [white] The background color used for the mask
41
+ /// @prop {List} background-contexts Adjust the background mask color by contextual selectors. Pass List of Maps with ("selector" [parent/contextual selector], "background-color", "item-padding-x" [optional])
42
+
43
+ $config: (
44
+ "margin" : true,
45
+ "mask-offset-bottom" : 55vh,
46
+ "mask-offset-top" : 5rem,
47
+ "sticky-top" : 45vh,
48
+ "breakpoint" : "medium",
49
+ "type-size" : "large",
50
+ "title-width" : 40%,
51
+ "title-min-width" : 8em,
52
+ "title-text-align" : right,
53
+ "item-padding-x" : 0,
54
+ "gap" : 2rem,
55
+ "background-color" : white,
56
+ "background-contexts" : (
57
+ (
58
+ "selector" : ".background-dark",
59
+ "background-color" : black,
60
+ "item-padding-x" : 1em
61
+ ),
62
+ )
63
+ );
64
+
65
+ /// Change modules $config
66
+ /// @param {Map} $changes Map of changes
67
+ /// @example scss
68
+ /// @include ulu.component-sticky-list-set(( "property" : value ));
69
+
70
+ @mixin set($changes) {
71
+ $config: map.merge($config, $changes) !global;
72
+ }
73
+
74
+ /// Set sizes map
75
+ /// @param {Map} $changes Map of changes
76
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
77
+
78
+ @mixin set-sizes($changes, $merge-mode: null) {
79
+ $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;
80
+ }
81
+
82
+ /// Get a config option
83
+ /// @param {Map} $name Name of property
84
+ /// @example scss
85
+ /// @include ulu.component-sticky-list-get("property");
86
+
87
+ @function get($name) {
88
+ $value: utils.require-map-get($config, $name, "sticky-list [config]");
89
+ @return utils.function-fallback($name, $value, $-fallbacks);
90
+ }
91
+
92
+ /// Prints component styles
93
+ /// @demo sticky-list
94
+ /// @example scss
95
+ /// @include ulu.component-sticky-list-styles();
96
+ /// @example html {preview}
97
+ /// <div class="sticky-list">
98
+ /// <strong class="sticky-list__title">Example:</strong>
99
+ /// <ul class="sticky-list__list">
100
+ /// <li class="sticky-list__item">
101
+ /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec nisl magna
102
+ /// </li>
103
+ /// <li class="sticky-list__item">
104
+ /// Aenean sollicitudin mauris lectus, blandit suscipit lectus fringilla sed
105
+ /// </li>
106
+ /// <li class="sticky-list__item">
107
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
108
+ /// </li>
109
+ /// <li class="sticky-list__item">
110
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
111
+ /// </li>
112
+ /// <li class="sticky-list__item">
113
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
114
+ /// </li>
115
+ /// </ul>
116
+ /// </div>
117
+
118
+ @mixin styles {
119
+ $prefix: selector.class("sticky-list");
120
+ $mask-offset-top: get("mask-offset-top");
121
+ $mask-offset-bottom: get("mask-offset-bottom");
122
+ $type-size: get("type-size");
123
+ $sticky-top: get("sticky-top");
124
+
125
+ #{ $prefix } {
126
+ padding: get("margin") 0;
127
+ }
128
+ @include breakpoint.min(get("breakpoint")) {
129
+ #{ $prefix } {
130
+ display: flex;
131
+ align-items: flex-start;
132
+ gap: get("gap");
133
+ position: relative;
134
+ @if ($type-size and typography.has-size($type-size)) {
135
+ @include typography.size($type-size, $only-font-size: true);
136
+ } @else if ($type-size) {
137
+ @warn "Unable to find '#{$type-size}' typography size for title";
138
+ }
139
+ }
140
+ #{ $prefix }__title,
141
+ #{ $prefix } > :not(ul) {
142
+ display: block;
143
+ position: sticky;
144
+ top: $sticky-top;
145
+ flex-basis: get("title-width");
146
+ min-width: get("title-min-width");
147
+ padding-top: $mask-offset-top;
148
+ padding-bottom: $mask-offset-bottom;
149
+ text-align: get("title-text-align");
150
+ }
151
+ #{ $prefix }__list,
152
+ #{ $prefix } > ul {
153
+ list-style: none;
154
+ margin: 0;
155
+ display: flex;
156
+ flex-direction: column;
157
+ justify-content: space-between;
158
+ align-self: stretch;
159
+ }
160
+ #{ $prefix }__item,
161
+ #{ $prefix } > ul > li {
162
+ display: block;
163
+ position: sticky;
164
+ top: $sticky-top;
165
+ margin: 0 !important; // If in editor (to complicated for :not())
166
+ padding: $mask-offset-top get("item-padding-x") $mask-offset-bottom get("item-padding-x");
167
+ @include set-background(get("background-color"));
168
+ }
169
+ #{ $prefix }__item:first-child,
170
+ #{ $prefix } > ul > li:first-child {
171
+ margin-top: 0;
172
+ }
173
+ #{ $prefix }__item:last-child,
174
+ #{ $prefix } > ul > li:last-child {
175
+ margin-bottom: 0;
176
+ }
177
+ }
178
+
179
+ // Print out any contextual background styles
180
+ @each $props in get("background-contexts") {
181
+ $selector: map.get($props, "selector");
182
+ $item-padding-x: map.get($props, "item-padding-x");
183
+ @include breakpoint.min(get("breakpoint")) {
184
+ #{ $selector } {
185
+ #{ $prefix }__item,
186
+ #{ $prefix } > ul > li {
187
+ @if ($item-padding-x) {
188
+ padding-left: $item-padding-x;
189
+ padding-right: $item-padding-x;
190
+ }
191
+ @include set-background(map.get($props, "background-color"));
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
197
+
198
+ /// Outputs background color mask CSS (gradient from transparent to original color)
199
+ /// @param {Color} $color The color to create the CSS for
200
+
201
+ @mixin set-background($color) {
202
+ $color: color.get($color);
203
+ $color-transparent: sassColor.change($color, $alpha: 0);
204
+ background-color: $color;
205
+ background: linear-gradient(180deg, $color-transparent 0%, $color get("mask-offset-top"));
206
+ }
@@ -9,6 +9,7 @@
9
9
  @use "../color";
10
10
  @use "../selector";
11
11
  @use "../breakpoint";
12
+ @use "../layout";
12
13
  @use "../typography";
13
14
  @use "../element";
14
15
  @use "../utils";
@@ -55,7 +56,7 @@ $-fallbacks: (
55
56
  /// @prop {Boolean} horizontal-tab-wrap [false] Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap
56
57
 
57
58
  $config: (
58
- "margin" : (2rem, 0),
59
+ "margin" : (2rem 0),
59
60
  "print-margin" : 1.5em,
60
61
  "tablist-divider" : true,
61
62
  "tablist-divider-width" : 1px,
@@ -118,6 +119,7 @@ $config: (
118
119
  overflow-x: auto;
119
120
  border-bottom: get("tablist-divider");
120
121
  border-bottom-width: get("tablist-divider-width");
122
+ @include layout.remove-scrollbar();
121
123
  }
122
124
  [role="tab"] {
123
125
  display: block;
@@ -157,7 +159,7 @@ $config: (
157
159
  z-index: 1;
158
160
  padding: get("tabpanel-padding");
159
161
  overflow: hidden;
160
- background-color: get("tabpanel-background-color");
162
+ background-color: color.get(get("tabpanel-background-color"));
161
163
  }
162
164
  }
163
165
  // For images, etc that should fill tabpanel
@@ -144,7 +144,7 @@ $styles: (
144
144
  border: map.get($style, "border");
145
145
  border-radius: map.get($style, "border-radius");
146
146
  border-color: color.get(map.get($style, "border-color"));
147
- border-width: color.get(map.get($style, "border-width"));
147
+ border-width: map.get($style, "border-width");
148
148
  box-shadow: map.get($style, "box-shadow");
149
149
  padding: map.get($style, "padding");
150
150
  @if (typography.has-size($type-size)) {
@@ -8,10 +8,12 @@
8
8
  @use "sass:map";
9
9
  @use "../utils";
10
10
  @use "../selector";
11
+ @use "../layout";
11
12
 
12
13
  /// Module Settings
13
14
  /// @type Map
14
15
  /// @prop {Color} background-color [rgb(0,0,0)] Color used for the fade-in of the vignette. Must be actual color not color module palette name
16
+ /// @prop {CssValue} image-filter [saturate(85%)] Filter value placed over image.
15
17
 
16
18
  $config: (
17
19
  "background-color" : rgb(0,0,0),
@@ -48,11 +50,7 @@ $config: (
48
50
  &::after {
49
51
  content: "";
50
52
  display: block;
51
- position: absolute;
52
- top: 0;
53
- bottom: 0;
54
- left: 0;
55
- right: 0;
53
+ @include layout.absolute-fill();
56
54
  background: linear-gradient(0deg,color.change(get("background-color"), $alpha: 0.8),color.change(get("background-color"), $alpha: 0) 45%);
57
55
  pointer-events: none;
58
56
  }
@@ -20,53 +20,50 @@
20
20
 
21
21
  @include utils.file-header('helpers', 'display');
22
22
 
23
- $hiddenVisuallyPrefix: selector.class("hidden-visually");
23
+ $prefix-hidden-visually: selector.class("hidden-visually");
24
+ $prefix-display: selector.class("display");
25
+ $prefix-hidden: selector.class("hidden");
24
26
 
25
- #{ $hiddenVisuallyPrefix } {
27
+ #{ $prefix-hidden-visually } {
26
28
  @include element.hidden-visually();
27
29
  }
28
- #{ $hiddenVisuallyPrefix }-focusable {
30
+ #{ $prefix-hidden-visually }-focusable {
29
31
  &:not(:active):not(:focus) {
30
32
  @include element.hidden-visually();
31
33
  }
32
34
  }
33
- // Consider removing
34
- .clearfix,
35
- .cf {
36
- @include layout.clearfix();
37
- }
38
- .display-block {
35
+ #{ $prefix-display }-block {
39
36
  display: block;
40
37
  }
41
- .display-flex {
38
+ #{ $prefix-display }-flex {
42
39
  display: flex;
43
40
  }
44
- .display-inline-flex {
41
+ #{ $prefix-display }-inline-flex {
45
42
  display: inline-flex;
46
43
  }
47
- .display-inline {
44
+ #{ $prefix-display }-inline {
48
45
  display: inline;
49
46
  }
50
- .display-inline-all * {
47
+ #{ $prefix-display }-inline-all * {
51
48
  display: inline;
52
49
  }
53
- .display-inline-block {
50
+ #{ $prefix-display }-inline-block {
54
51
  display: inline-block;
55
52
  }
56
- .hidden,
57
- .display-none {
53
+ #{ $prefix-hidden },
54
+ #{ $prefix-display }-none {
58
55
  display: none !important;
59
56
  }
60
57
 
61
58
  // Display none per breakpoint
62
59
  @each $name in map.keys(breakpoint.$sizes) {
63
60
  @include breakpoint.min($name) {
64
- .hidden-min-#{ $name } {
61
+ #{ $prefix-hidden }-min-#{ $name } {
65
62
  display: none !important;
66
63
  }
67
64
  }
68
65
  @include breakpoint.max($name) {
69
- .hidden-max-#{ $name } {
66
+ #{ $prefix-hidden }-max-#{ $name } {
70
67
  display: none !important;
71
68
  }
72
69
  }
@@ -8,18 +8,23 @@
8
8
  /// @example scss
9
9
  /// @include ulu.helper-print-styles();
10
10
 
11
+ @use "../selector";
12
+
11
13
  @mixin styles {
14
+ $prefix-print: selector.class("print");
15
+ $prefix-no-print: selector.class("no-print");
12
16
 
13
- .print-exact {
14
- print-color-adjust: exact;
15
- -webkit-print-color-adjust: exact;
16
- }
17
- .no-print {
17
+ #{ $prefix-no-print } {
18
18
  @media print {
19
19
  display: none !important;
20
20
  }
21
21
  }
22
- .print-only {
22
+
23
+ #{ $prefix-print }-exact {
24
+ print-color-adjust: exact;
25
+ -webkit-print-color-adjust: exact;
26
+ }
27
+ #{ $prefix-print }-only {
23
28
  @media screen {
24
29
  display: none !important;
25
30
  }
@@ -27,7 +32,7 @@
27
32
  // Utility for making dark backgrounds print "ok"
28
33
  // - Grayscale added because colors are flipped
29
34
  // - Rotating colors doesn't really work
30
- .print-invert {
35
+ #{ $prefix-print }-invert {
31
36
  @media print {
32
37
  filter: invert(1) saturate(0);
33
38
  }
@@ -5,6 +5,7 @@
5
5
 
6
6
  @use "../utils";
7
7
  @use "../layout";
8
+ @use "../selector";
8
9
 
9
10
  /// Print utilities helper styles
10
11
  /// - Includes classes like (.crop-margins, .no-scroll-y, .image-full-width, etc)
@@ -13,99 +14,108 @@
13
14
 
14
15
  @mixin styles {
15
16
 
17
+ $prefix-no-scroll: selector.class("no-scroll");
18
+ $prefix-image: selector.class("image");
19
+ $prefix-margin: selector.class("margin");
20
+ $prefix-no-margin: selector.class("no-margin");
21
+ $prefix-crop-margins: selector.class("crop-margins");
22
+ $prefix-no-padding: selector.class("no-padding");
23
+ $prefix-align-self: selector.class("align-self");
24
+
25
+
16
26
  @include utils.file-header('helpers', 'utilities');
17
27
 
18
28
  // Consider removing
19
- .no-scroll-y {
29
+ #{ $prefix-no-scroll }-y {
20
30
  overflow-y: hidden;
21
31
  }
22
- .no-scroll-x {
32
+ #{ $prefix-no-scroll }-x {
23
33
  overflow-x: hidden;
24
34
  }
25
- .full-height {
35
+ #{ selector.class("full-height") } {
26
36
  height: 100%;
27
37
  }
28
- .full-width {
38
+ #{ selector.class("full-width") } {
29
39
  width: 100%;
30
40
  }
31
- .flex-basis-full {
41
+ #{ selector.class("flex-basis-full") } {
32
42
  flex-basis: 100%;
33
43
  }
34
- .full-min-height {
44
+ #{ selector.class("full-min-height") } {
35
45
  min-height: 100%;
36
46
  }
37
- .image-fill {
47
+ #{ $prefix-image }-fill {
38
48
  width: 100%;
39
49
  height: 100%;
40
50
  object-fit: cover;
41
51
  }
42
- .image-full-width img,
43
- .image-full-width {
52
+ #{ $prefix-image }-full-width img,
53
+ #{ $prefix-image }-full-width {
44
54
  width: 100%;
45
55
  height: auto;
46
56
  }
47
- .margin-auto,
48
- .center {
57
+ #{ $prefix-margin }-auto,
58
+ #{ selector.class("center") } {
49
59
  margin-left: auto;
50
60
  margin-right: auto;
51
61
  }
52
- .margin-left-auto {
53
- margin-left: auto;
62
+ #{ $prefix-margin }-left-auto {
63
+ margin-left: auto;
54
64
  }
55
- .margin-right-auto {
65
+ #{ $prefix-margin }-right-auto {
56
66
  margin-right: auto;
57
67
  }
58
- .no-margin {
68
+ #{ $prefix-no-margin } {
59
69
  margin: 0;
60
70
  }
61
- .no-margin-top {
71
+ #{ $prefix-no-margin }-top {
62
72
  margin-top: 0;
63
73
  }
64
- .no-margin-bottom {
74
+ #{ $prefix-no-margin }-bottom {
65
75
  margin-bottom: 0;
66
76
  }
67
- .no-margin-left {
77
+ #{ $prefix-no-margin }-left {
68
78
  margin-left: 0;
69
79
  }
70
- .no-margin-right {
80
+ #{ $prefix-no-margin }-right {
71
81
  margin-right: 0;
72
82
  }
73
- .crop-margins {
74
- &:not(.crop-margins--last) >:first-child {
83
+ #{ $prefix-crop-margins } {
84
+ &:not( #{ $prefix-crop-margins }--last) >:first-child {
75
85
  margin-top: 0;
76
86
  }
77
- &:not(.crop-margins--first) >:last-child {
87
+ &:not( #{ $prefix-crop-margins }--first) >:last-child {
78
88
  margin-bottom: 0;
79
89
  }
80
90
  }
81
- .no-padding {
91
+ #{ $prefix-no-padding } {
82
92
  padding: 0;
83
93
  }
84
- .no-padding-top {
94
+ #{ $prefix-no-padding }-top {
85
95
  padding-top: 0;
86
96
  }
87
- .no-padding-bottom {
97
+ #{ $prefix-no-padding }-bottom {
88
98
  padding-bottom: 0;
89
99
  }
90
- .no-padding-left {
100
+ #{ $prefix-no-padding }-left {
91
101
  padding-left: 0;
92
102
  }
93
- .no-padding-right {
103
+ #{ $prefix-no-padding }-right {
94
104
  padding-right: 0;
95
105
  }
96
- .align-self-start {
106
+ #{ $prefix-align-self }-start {
97
107
  align-self: start;
98
108
  }
99
- .align-self-center {
109
+ #{ $prefix-align-self }-center {
100
110
  align-self: center;
101
111
  }
102
- .align-self-end {
112
+ #{ $prefix-align-self }-end {
103
113
  align-self: end;
104
114
  }
105
- .align-self-baseline {
115
+ #{ $prefix-align-self }-baseline {
106
116
  align-self: baseline;
107
117
  }
108
- .overflow-hidden {
118
+ #{ selector.class("overflow-hidden") } {
109
119
  overflow: hidden;
110
120
  }
111
121
  // .justify-self-center {
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * as settings from "./settings.js";
1
2
  export * as events from "./events/index.js";
2
3
  export * as ui from "./ui/index.js";
3
4
  export * as utils from "./utils/index.js";