@ulu/frontend 0.1.0-beta.6 → 0.1.0-beta.60

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 (290) hide show
  1. package/CHANGELOG.md +428 -0
  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 +6236 -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 +905 -322
  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 +904 -321
  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 +1067 -366
  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 +1054 -339
  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 +901 -320
  96. package/docs-dev/sass/base/index/index.html +901 -320
  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 +901 -320
  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 +908 -327
  105. package/docs-dev/sass/components/adaptive-spacing/index.html +901 -320
  106. package/docs-dev/sass/components/badge/index.html +909 -328
  107. package/docs-dev/sass/components/basic-hero/index.html +5385 -0
  108. package/docs-dev/sass/components/button/index.html +901 -320
  109. package/docs-dev/sass/components/button-verbose/index.html +989 -333
  110. package/docs-dev/sass/components/callout/index.html +1018 -414
  111. package/docs-dev/sass/components/captioned-figure/index.html +1026 -330
  112. package/docs-dev/sass/components/card/index.html +1003 -350
  113. package/docs-dev/sass/components/card-grid/index.html +901 -320
  114. package/docs-dev/sass/components/counter-list/index.html +5458 -0
  115. package/docs-dev/sass/components/css-icon/index.html +918 -330
  116. package/docs-dev/sass/components/data-grid/index.html +922 -334
  117. package/docs-dev/sass/components/data-table/index.html +1106 -333
  118. package/docs-dev/sass/components/fill-context/index.html +901 -320
  119. package/docs-dev/sass/components/flipcard/index.html +939 -327
  120. package/docs-dev/sass/components/flipcard-grid/index.html +901 -320
  121. package/docs-dev/sass/components/form-theme/index.html +1110 -433
  122. package/docs-dev/sass/components/hero/index.html +995 -366
  123. package/docs-dev/sass/components/horizontal-rule/index.html +901 -320
  124. package/docs-dev/sass/components/image-grid/index.html +901 -320
  125. package/docs-dev/sass/components/index/index.html +915 -330
  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 +936 -359
  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 +973 -379
  133. package/docs-dev/sass/components/modal/index.html +953 -365
  134. package/docs-dev/sass/components/nav-strip/index.html +909 -328
  135. package/docs-dev/sass/components/overlay-section/index.html +909 -328
  136. package/docs-dev/sass/components/pager/index.html +901 -320
  137. package/docs-dev/sass/components/placeholder-block/index.html +901 -320
  138. package/docs-dev/sass/components/popover/index.html +996 -379
  139. package/docs-dev/sass/components/pull-quote/index.html +913 -332
  140. package/docs-dev/sass/components/ratio-box/index.html +909 -328
  141. package/docs-dev/sass/components/rule/index.html +909 -328
  142. package/docs-dev/sass/components/scroll-slider/index.html +944 -375
  143. package/docs-dev/sass/components/skip-link/index.html +909 -328
  144. package/docs-dev/sass/components/slider/index.html +989 -420
  145. package/docs-dev/sass/components/spoke-spinner/index.html +903 -322
  146. package/docs-dev/sass/components/sticky-list/index.html +5603 -0
  147. package/docs-dev/sass/components/tabs/index.html +910 -329
  148. package/docs-dev/sass/components/tag/index.html +903 -322
  149. package/docs-dev/sass/components/tile-button/index.html +901 -320
  150. package/docs-dev/sass/components/tile-grid/index.html +901 -320
  151. package/docs-dev/sass/components/tile-grid-overlay/index.html +901 -320
  152. package/docs-dev/sass/components/vignette/index.html +915 -328
  153. package/docs-dev/sass/components/wysiwyg/index.html +901 -320
  154. package/docs-dev/sass/core/breakpoint/index.html +947 -352
  155. package/docs-dev/sass/core/button/index.html +901 -320
  156. package/docs-dev/sass/core/color/index.html +1078 -364
  157. package/docs-dev/sass/core/cssvar/index.html +901 -320
  158. package/docs-dev/sass/core/element/index.html +1096 -368
  159. package/docs-dev/sass/core/index.html +901 -320
  160. package/docs-dev/sass/core/layout/index.html +961 -361
  161. package/docs-dev/sass/core/path/index.html +901 -320
  162. package/docs-dev/sass/core/selector/index.html +901 -320
  163. package/docs-dev/sass/core/typography/index.html +901 -320
  164. package/docs-dev/sass/core/units/index.html +911 -324
  165. package/docs-dev/sass/core/utils/index.html +1871 -430
  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 +901 -320
  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 +901 -320
  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 +76 -56
  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 +108 -63
  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 +85 -8
  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 +14 -7
  203. package/scss/_breakpoint.scss +16 -3
  204. package/scss/_color.scss +36 -5
  205. package/scss/_element.scss +94 -2
  206. package/scss/_layout.scss +7 -8
  207. package/scss/_units.scss +3 -2
  208. package/scss/_utils.scss +248 -13
  209. package/scss/components/README.todos +14 -0
  210. package/scss/components/_accordion.scss +5 -7
  211. package/scss/components/_basic-hero.scss +112 -0
  212. package/scss/components/_button-verbose.scss +100 -18
  213. package/scss/components/_callout.scss +125 -78
  214. package/scss/components/_captioned-figure.scss +17 -0
  215. package/scss/components/_card-grid.scss +1 -1
  216. package/scss/components/_card.scss +246 -74
  217. package/scss/components/_counter-list.scss +137 -0
  218. package/scss/components/_css-icon.scss +25 -21
  219. package/scss/components/_data-grid.scss +38 -9
  220. package/scss/components/_data-table.scss +44 -4
  221. package/scss/components/_flipcard.scss +8 -3
  222. package/scss/components/_form-theme.scss +119 -108
  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 -32
  227. package/scss/components/_menu-stack.scss +42 -26
  228. package/scss/components/_modal.scss +13 -6
  229. package/scss/components/_nav-strip.scss +2 -0
  230. package/scss/components/_overlay-section.scss +2 -5
  231. package/scss/components/_popover.scss +165 -64
  232. package/scss/components/_pull-quote.scss +13 -13
  233. package/scss/components/_ratio-box.scss +2 -5
  234. package/scss/components/_rule.scss +1 -0
  235. package/scss/components/_scroll-slider.scss +1 -5
  236. package/scss/components/_slider.scss +49 -72
  237. package/scss/components/_spoke-spinner.scss +2 -2
  238. package/scss/components/_sticky-list.scss +206 -0
  239. package/scss/components/_tabs.scss +3 -1
  240. package/scss/components/_vignette.scss +3 -5
  241. package/scss/helpers/_display.scss +15 -18
  242. package/scss/helpers/_print.scss +12 -7
  243. package/scss/helpers/_utilities.scss +42 -32
  244. package/types/index.d.ts +1 -0
  245. package/types/settings.d.ts +66 -0
  246. package/types/settings.d.ts.map +1 -0
  247. package/types/ui/breakpoints.d.ts +14 -14
  248. package/types/ui/breakpoints.d.ts.map +1 -1
  249. package/types/ui/collapsible.d.ts.map +1 -1
  250. package/types/ui/details-group.d.ts +38 -0
  251. package/types/ui/details-group.d.ts.map +1 -0
  252. package/types/ui/dialog.d.ts +20 -14
  253. package/types/ui/dialog.d.ts.map +1 -1
  254. package/types/ui/flipcard.d.ts +16 -10
  255. package/types/ui/flipcard.d.ts.map +1 -1
  256. package/types/ui/grid.d.ts +4 -6
  257. package/types/ui/grid.d.ts.map +1 -1
  258. package/types/ui/index.d.ts +1 -0
  259. package/types/ui/modal-builder.d.ts +93 -11
  260. package/types/ui/modal-builder.d.ts.map +1 -1
  261. package/types/ui/overflow-scroller.d.ts +2 -2
  262. package/types/ui/overflow-scroller.d.ts.map +1 -1
  263. package/types/ui/popover.d.ts +6 -7
  264. package/types/ui/popover.d.ts.map +1 -1
  265. package/types/ui/print.d.ts +0 -4
  266. package/types/ui/print.d.ts.map +1 -1
  267. package/types/ui/programmatic-modal.d.ts.map +1 -1
  268. package/types/ui/proxy-click.d.ts +19 -3
  269. package/types/ui/proxy-click.d.ts.map +1 -1
  270. package/types/ui/scroll-slider.d.ts +5 -7
  271. package/types/ui/scroll-slider.d.ts.map +1 -1
  272. package/types/ui/scrollpoint.d.ts +3 -8
  273. package/types/ui/scrollpoint.d.ts.map +1 -1
  274. package/types/ui/slider.d.ts +33 -14
  275. package/types/ui/slider.d.ts.map +1 -1
  276. package/types/ui/tabs.d.ts +6 -8
  277. package/types/ui/tabs.d.ts.map +1 -1
  278. package/types/ui/theme-toggle.d.ts +51 -7
  279. package/types/ui/theme-toggle.d.ts.map +1 -1
  280. package/types/ui/tooltip.d.ts +3 -5
  281. package/types/ui/tooltip.d.ts.map +1 -1
  282. package/types/utils/css.d.ts +11 -0
  283. package/types/utils/css.d.ts.map +1 -0
  284. package/types/utils/dom.d.ts +45 -6
  285. package/types/utils/dom.d.ts.map +1 -1
  286. package/types/utils/font-awesome.d.ts +5 -0
  287. package/types/utils/font-awesome.d.ts.map +1 -0
  288. package/types/utils/index.d.ts +1 -0
  289. package/types/utils/system.d.ts +113 -0
  290. package/types/utils/system.d.ts.map +1 -0
@@ -5,6 +5,7 @@
5
5
 
6
6
  @use "sass:map";
7
7
  @use "../utils";
8
+ @use "../layout";
8
9
 
9
10
  /// Module Settings
10
11
  /// @type Map
@@ -49,11 +50,7 @@ $config: (
49
50
  padding: get("size") 0 0 0;
50
51
  }
51
52
  .ratio-box__content {
52
- position: absolute;
53
- top: 0;
54
- left: 0;
55
- width: 100%;
56
- height: 100%;
53
+ @include layout.absolute-fill(true);
57
54
  border: 0;
58
55
  }
59
56
  @each $name, $size in get("sizes") {
@@ -82,6 +82,7 @@ $config: (
82
82
  width: $short-width;
83
83
  max-width: 100%;
84
84
  border-bottom-width: get("short-border-width");
85
+ display: inline-block;
85
86
  }
86
87
  @if get("short-modifiers") {
87
88
  @each $mod, $opts in get("short-modifiers") {
@@ -22,8 +22,6 @@
22
22
  /// @prop {Dimension} padding-bottom [0]
23
23
  /// @prop {Dimension} padding-top [0]
24
24
  /// @prop {String} prefix ["scroll-slide"]
25
- /// @prop {Color} button-background-color [white]
26
- /// @prop {Color} button-background-color-hover [white]
27
25
  /// @prop {CssValue} button-border [2px solid white]
28
26
  /// @prop {Color} button-border-color-hover [white]
29
27
  /// @prop {Dimension} button-border-radius [50%]
@@ -46,8 +44,6 @@ $config: (
46
44
  "padding-bottom" : 0,
47
45
  "padding-top" : 0,
48
46
  "prefix": "scroll-slider",
49
- "button-background-color" : white,
50
- "button-background-color-hover" : white,
51
47
  "button-border" : 2px solid white,
52
48
  "button-border-color-hover" : white,
53
49
  "button-border-radius" : 50%,
@@ -124,7 +120,7 @@ $config: (
124
120
  @include layout.match-container-margin("scroll-padding-left", get("container"));
125
121
  // padding: 1rem;
126
122
  // Add space to end of list
127
- // &:after {
123
+ // &::after {
128
124
  // content: "\00a0";
129
125
  // display: block;
130
126
  // width: 1rem;
@@ -12,47 +12,45 @@
12
12
  /// Module Settings
13
13
  /// @type Map
14
14
  /// @prop {Color} background-color [transparent] Background color for the entire slider section.
15
- /// @prop {Dimension} margin-bottom [3rem] Bottom margin color for the entire slider section.
16
- /// @prop {Dimension} margin-top [1rem] Top margin color for the entire slider section.
17
- /// @prop {Dimension} padding-bottom [0] Bottom padding for individual slides.
15
+ /// @prop {Dimension} margin [(1rem 0 3rem 0)] Margin for slider container
18
16
  /// @prop {Dimension} padding-top [0] Top padding for individual slides.
19
- /// @prop {Dimension} button-icon-offset-x [false] Offsets the control icons in from their respective sides.
20
- /// @prop {Dimension} button-icon-offset-y [false] Offsets the control options down by adding a margin.
17
+ /// @prop {Dimension} button-offset-x [null] Offsets the control button in from their respective sides.
18
+ /// @prop {Dimension} button-offset-y [null] Offsets the control button y
21
19
  /// @prop {Dimension} button-margin [0.75rem] The margin between the controls and the slide content when using .slider__slide-gap-for-controls
22
- /// @prop {Dimension} button-size [3rem] Size of the button. Likely antiquated and replaced with button-width and button-height
23
- /// @prop {Color} dot-background-color [transparent] The color of the dot when unselected.
24
- /// @prop {Color} dot-background-color-hover [color.get("link")] The color of the dot when hovered.
25
- /// @prop {Color} dot-background-color-selected [color.get("link")] The color of the dot when selected.
26
- /// @prop {Dimension} dot-border-radius [50%] The border-radius of the dot.
27
- /// @prop {Color} dot-border-color [color.get("link")] The border color of the dot.
28
- /// @prop {Color} dot-border-color-hover [color.get("link")] The border color of the dot when hovered.
29
- /// @prop {Color} dot-border-color-selected [color.get("link")] The border color of the dot when selected.
30
- /// @prop {Dimension} dot-border-width [2px] The border width of the dot.
31
- /// @prop {Dimension} dot-size [1rem] The height and width of the dot.
32
- /// @prop {Dimension} button-height [1rem] The height of the button.
20
+ /// @prop {Color} nav-margin [(0.5rem 0)] Margin for nav (dots)
21
+ /// @prop {Color} nav-background-color [transparent] The color of the dot when unselected.
22
+ /// @prop {Color} nav-background-color-hover [color.get("link")] The color of the dot when hovered.
23
+ /// @prop {Color} nav-background-color-selected [color.get("link")] The color of the dot when selected.
24
+ /// @prop {Dimension} nav-border-radius [50%] The border-radius of the dot.
25
+ /// @prop {Color} nav-border-color [color.get("link")] The border color of the dot.
26
+ /// @prop {Color} nav-border-color-hover [color.get("link")] The border color of the dot when hovered.
27
+ /// @prop {Color} nav-border-color-selected [color.get("link")] The border color of the dot when selected.
28
+ /// @prop {Dimension} nav-border-width [2px] The border width of the dot.
29
+ /// @prop {Dimension} nav-size [1rem] The height and width of the dot.
30
+ /// @prop {Dimension} nav-gap [0.2rem] Gap between nav items
33
31
  /// @prop {Dimension} button-width [1rem] The width of the button.
34
32
 
35
33
  $config: (
36
34
  "background-color" : transparent,
37
- "margin-bottom" : 3rem,
38
- "margin-top" : 1rem,
39
- "button-icon-offset-x" : 2rem,
40
- "button-icon-offset-y" : false,
41
- "button-margin" : 2rem,
42
- "button-size" : 3rem,
43
- "button-height": 2.5rem,
44
- "button-width": 2.5rem,
45
- "dot-background-color" : transparent,
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
- "dot-border-radius" : 50%,
52
- "dot-border-width" : 2px,
53
- "dot-size" : 1rem,
35
+ "margin" : (1rem 0 3rem 0),
54
36
  "padding-bottom" : 0,
55
37
  "padding-top" : 0,
38
+ "button-offset-x" : null,
39
+ "button-offset-y" : null,
40
+ "button-margin" : 2rem,
41
+ "button-width": 2.5rem,
42
+ "nav-background-color" : transparent,
43
+ "nav-background-color-hover" : "link",
44
+ "nav-background-color-selected" : "link",
45
+ "nav-border-color" : "link",
46
+ "nav-border-color-hover" : "link",
47
+ "nav-border-color-selected" : "link",
48
+ "nav-border-radius" : 50%,
49
+ "nav-gap" : 0.2rem,
50
+ "nav-border-width" : 2px,
51
+ "nav-size" : 1rem,
52
+ "nav-margin" : (0.5rem 0),
53
+
56
54
  ) !default;
57
55
 
58
56
  /// Change modules $config
@@ -84,7 +82,7 @@ $config: (
84
82
  #{ $prefix } {
85
83
  position: relative; // for controls
86
84
  background-color: color.get(get("background-color"));
87
- margin: get("margin-top") 0 get("margin-bottom") 0;
85
+ margin: get("margin");
88
86
  }
89
87
  #{ $prefix }__track,
90
88
  #{ $prefix-plugin }__controls,
@@ -97,34 +95,30 @@ $config: (
97
95
  top: 50%;
98
96
  transform: translateY(-50%);
99
97
  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
- }
98
+ margin-top: get("button-offset-y");
105
99
  }
106
100
  #{ $prefix-plugin }__nav {
107
101
  display: flex;
108
102
  justify-content: center;
109
- li {
110
- margin: 0.5rem 0.15rem;
111
- }
103
+ margin: get("nav-margin");
104
+ gap: get("nav-gap");
112
105
  }
113
106
  #{ $prefix-plugin }__nav-button {
114
107
  display: block;
115
- width: get("dot-size");
116
- height: get("dot-size");
117
- background-color: color.get(get("dot-background-color"));
118
- border: get("dot-border-width") solid color.get(get("dot-border-color"));
119
- border-radius: get("dot-border-radius");
108
+ width: get("nav-size");
109
+ height: get("nav-size");
110
+ background-color: color.get(get("nav-background-color"));
111
+ border: get("nav-border-width") solid color.get(get("nav-border-color"));
112
+ border-radius: get("nav-border-radius");
120
113
  &:hover {
121
- background-color: color.get(get("dot-background-color-hover"));
114
+ background-color: color.get(get("nav-background-color-hover"));
115
+ border-color: color.get(get("nav-border-color-hover"));
122
116
  }
123
117
  }
124
118
  #{ $prefix-plugin }__nav-button--active,
125
119
  #{ $prefix-plugin }__nav-button--active:hover {
126
- background-color: color.get(get("dot-background-color-selected"));
127
- border-color: color.get(get("dot-border-color-selected"));
120
+ background-color: color.get(get("nav-background-color-selected"));
121
+ border-color: color.get(get("nav-border-color-selected"));
128
122
  }
129
123
  #{ $prefix-plugin }__control-button,
130
124
  #{ $prefix-plugin }__nav-button {
@@ -164,42 +158,25 @@ $config: (
164
158
  }
165
159
  #{ $prefix-plugin }__control-button--previous {
166
160
  left: 0;
167
- @if get("button-icon-offset-x") {
168
- #{ $prefix-plugin }__control-icon {
169
- margin-left: get("button-icon-offset-x");
170
- }
171
- }
161
+ margin-left: get("button-offset-x");
172
162
  }
173
163
  #{ $prefix-plugin }__control-button--next {
174
164
  right: 0;
175
- @if get("button-icon-offset-x") {
176
- #{ $prefix-plugin }__control-icon {
177
- margin-right: get("button-icon-offset-x");
178
- }
179
- }
165
+ margin-right: get("button-offset-x");
180
166
  }
181
167
  #{ $prefix }--inset-controls {
182
168
  #{ $prefix }__slide-gap-for-controls {
183
- $padding: get("button-width") + get("button-margin") + get("button-icon-offset-x");
169
+ $padding: get("button-width") + get("button-margin") + get("button-offset-x");
184
170
  padding-left: $padding;
185
171
  padding-right: $padding;
186
172
  }
187
173
  #{ $prefix-plugin }__control-button--previous {
188
174
  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
- }
175
+ margin-left: get("button-offset-x");
195
176
  }
196
177
  #{ $prefix-plugin }__control-button--next {
197
178
  right: 0;
198
- @if get("button-icon-offset-x") {
199
- &#{ $prefix-plugin }__control-icon {
200
- margin-right: get("button-icon-offset-x");
201
- }
202
- }
179
+ margin-right: get("button-offset-x");
203
180
  }
204
181
  }
205
182
  }
@@ -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;
@@ -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
  }