@ulu/frontend 0.1.0-beta.1 → 0.1.0-beta.100
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.
- package/CHANGELOG.md +681 -2
- package/README.dev.md +3 -3
- package/README.md +14 -4
- package/dist/ulu-frontend.min.css +1 -1
- package/dist/ulu-frontend.min.js +36 -29
- package/docs-dev/.nojekyll +1 -0
- package/docs-dev/assets/chunks/modulepreload-polyfill.DaKOjhqt.js +37 -0
- package/docs-dev/assets/favicons/android-chrome-192x192.png +0 -0
- package/docs-dev/assets/favicons/android-chrome-256x256.png +0 -0
- package/docs-dev/assets/favicons/apple-touch-icon.png +0 -0
- package/docs-dev/assets/favicons/browserconfig.xml +9 -0
- package/docs-dev/assets/favicons/favicon-16x16.png +0 -0
- package/docs-dev/assets/favicons/favicon-32x32.png +0 -0
- package/docs-dev/assets/favicons/favicon.ico +0 -0
- package/docs-dev/assets/favicons/mstile-150x150.png +0 -0
- package/docs-dev/assets/favicons/safari-pinned-tab.svg +1 -0
- package/docs-dev/assets/favicons/site.webmanifest +19 -0
- package/docs-dev/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Black.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-BlackItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Bold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-BoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraLight.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Light.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-LightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Medium.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Regular.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Thin.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ThinItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Black.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-BlackItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Bold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-BoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLight.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Light.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-LightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Medium.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-MediumItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Regular.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-SemiBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-SemiBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Thin.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ThinItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterVariable.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/LICENSE.txt +92 -0
- package/docs-dev/assets/fonts/inter/inter.css +37 -0
- package/docs-dev/assets/main.js +23312 -0
- package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.credits.txt +2 -0
- package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.mp4 +0 -0
- package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
- package/docs-dev/assets/placeholder/icon-check.svg +1 -0
- package/docs-dev/assets/placeholder/image-1-attribution.txt +7 -0
- package/docs-dev/assets/placeholder/image-1-darkened.jpg +0 -0
- package/docs-dev/assets/placeholder/image-1-lightened.jpg +0 -0
- package/docs-dev/assets/placeholder/image-1.jpg +0 -0
- package/docs-dev/assets/style.css +19153 -0
- package/docs-dev/changelog/index.html +7184 -0
- package/docs-dev/demos/accordion/index.html +5811 -0
- package/docs-dev/demos/badge/index.html +5655 -0
- package/docs-dev/demos/badge-stack/index.html +5636 -0
- package/docs-dev/demos/badge.1/index.html +5595 -0
- package/docs-dev/demos/basic-hero/index.html +111 -0
- package/docs-dev/demos/breakpoints-manager/index.html +5666 -0
- package/docs-dev/demos/button/index.html +5665 -0
- package/docs-dev/demos/button-group/index.html +5652 -0
- package/docs-dev/demos/button-verbose/index.html +5658 -0
- package/docs-dev/demos/callout/index.html +5704 -0
- package/docs-dev/demos/captioned-figure/index.html +5686 -0
- package/docs-dev/demos/card/index.html +5682 -0
- package/docs-dev/demos/card-grid/index.html +5777 -0
- package/docs-dev/demos/counter-list/index.html +5660 -0
- package/docs-dev/demos/css-icons/index.html +6298 -0
- package/docs-dev/demos/data-grid/index.html +6529 -0
- package/docs-dev/demos/data-table/index.html +5833 -0
- package/docs-dev/demos/details-group/index.html +5687 -0
- package/docs-dev/demos/file-save/index.html +5675 -0
- package/docs-dev/demos/flipcard/index.html +6224 -0
- package/docs-dev/demos/form-theme/index.html +5842 -0
- package/docs-dev/demos/headline-label/index.html +5622 -0
- package/docs-dev/demos/hero/index.html +309 -0
- package/docs-dev/demos/image-grid/index.html +165 -0
- package/docs-dev/demos/index.html +5613 -0
- package/docs-dev/demos/list-inline/index.html +5640 -0
- package/docs-dev/demos/list-lines/index.html +5630 -0
- package/docs-dev/demos/menu-stack/index.html +5769 -0
- package/docs-dev/demos/modals/index.html +5844 -0
- package/docs-dev/demos/nav-strip/index.html +5725 -0
- package/docs-dev/demos/overlay-section/index.html +5701 -0
- package/docs-dev/demos/panel/index.html +5682 -0
- package/docs-dev/demos/popovers/index.html +5873 -0
- package/docs-dev/demos/print/index.html +5633 -0
- package/docs-dev/demos/pull-quote/index.html +5632 -0
- package/docs-dev/demos/rail/index.html +5730 -0
- package/docs-dev/demos/rule/index.html +5694 -0
- package/docs-dev/demos/scroll-slider/index.html +170 -0
- package/docs-dev/demos/scrollpoints/index.html +5651 -0
- package/docs-dev/demos/skeleton/index.html +5678 -0
- package/docs-dev/demos/slider/index.html +172 -0
- package/docs-dev/demos/spoke-spinner/index.html +5628 -0
- package/docs-dev/demos/sticky-list/index.html +5643 -0
- package/docs-dev/demos/tabs/index.html +5753 -0
- package/docs-dev/demos/tag/index.html +5633 -0
- package/docs-dev/demos/theme-toggle/index.html +5699 -0
- package/docs-dev/demos/tile-grid-overlay/index.html +390 -0
- package/docs-dev/demos/tiles/index.html +5882 -0
- package/docs-dev/demos/tooltip/index.html +5661 -0
- package/docs-dev/demos/wysiwyg/index.html +5672 -0
- package/docs-dev/guide/building-stylesheet/index.html +5682 -0
- package/docs-dev/guide/developing-ulu-scss-module/index.html +5734 -0
- package/docs-dev/guide/index.html +5615 -0
- package/docs-dev/index.html +5662 -0
- package/docs-dev/javascript/events/index.html +5811 -0
- package/docs-dev/javascript/index.html +5628 -0
- package/docs-dev/javascript/settings/index.html +5825 -0
- package/docs-dev/javascript/ui-breakpoints/index.html +6071 -0
- package/docs-dev/javascript/ui-collapsible/index.html +5738 -0
- package/docs-dev/javascript/ui-details-group/index.html +5742 -0
- package/docs-dev/javascript/ui-dialog/index.html +5787 -0
- package/docs-dev/javascript/ui-flipcard/index.html +5678 -0
- package/docs-dev/javascript/ui-grid/index.html +5653 -0
- package/docs-dev/javascript/ui-modal-builder/index.html +5901 -0
- package/docs-dev/javascript/ui-overflow-scroller/index.html +5611 -0
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +5629 -0
- package/docs-dev/javascript/ui-page/index.html +5626 -0
- package/docs-dev/javascript/ui-popover/index.html +5661 -0
- package/docs-dev/javascript/ui-print/index.html +5670 -0
- package/docs-dev/javascript/ui-print-details/index.html +5641 -0
- package/docs-dev/javascript/ui-programmatic-modal/index.html +5611 -0
- package/docs-dev/javascript/ui-proxy-click/index.html +5740 -0
- package/docs-dev/javascript/ui-resizer/index.html +5946 -0
- package/docs-dev/javascript/ui-scroll-slider/index.html +5672 -0
- package/docs-dev/javascript/ui-scrollpoint/index.html +5851 -0
- package/docs-dev/javascript/ui-slider/index.html +5813 -0
- package/docs-dev/javascript/ui-tabs/index.html +5706 -0
- package/docs-dev/javascript/ui-theme-toggle/index.html +5830 -0
- package/docs-dev/javascript/ui-tooltip/index.html +5754 -0
- package/docs-dev/javascript/utils-class-logger/index.html +5746 -0
- package/docs-dev/javascript/utils-css/index.html +5644 -0
- package/docs-dev/javascript/utils-dom/index.html +5711 -0
- package/docs-dev/javascript/utils-file-save/index.html +5783 -0
- package/docs-dev/javascript/utils-floating-ui/index.html +5643 -0
- package/docs-dev/javascript/utils-id/index.html +5653 -0
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +5661 -0
- package/docs-dev/javascript/utils-system/index.html +5947 -0
- package/docs-dev/sass/base/color/index.html +5644 -0
- package/docs-dev/sass/base/elements/index.html +5815 -0
- package/docs-dev/sass/base/index/index.html +5814 -0
- package/docs-dev/sass/base/index.html +5622 -0
- package/docs-dev/sass/base/keyframes/index.html +5646 -0
- package/docs-dev/sass/base/layout/index.html +5806 -0
- package/docs-dev/sass/base/normalize/index.html +5654 -0
- package/docs-dev/sass/base/print/index.html +5650 -0
- package/docs-dev/sass/base/root/index.html +5670 -0
- package/docs-dev/sass/base/typography/index.html +5670 -0
- package/docs-dev/sass/components/accordion/index.html +5979 -0
- package/docs-dev/sass/components/adaptive-spacing/index.html +5915 -0
- package/docs-dev/sass/components/badge/index.html +5881 -0
- package/docs-dev/sass/components/badge-stack/index.html +5811 -0
- package/docs-dev/sass/components/basic-hero/index.html +5805 -0
- package/docs-dev/sass/components/button/index.html +5799 -0
- package/docs-dev/sass/components/button-group/index.html +5803 -0
- package/docs-dev/sass/components/button-verbose/index.html +5986 -0
- package/docs-dev/sass/components/callout/index.html +5961 -0
- package/docs-dev/sass/components/captioned-figure/index.html +5904 -0
- package/docs-dev/sass/components/card/index.html +6219 -0
- package/docs-dev/sass/components/card-grid/index.html +5813 -0
- package/docs-dev/sass/components/counter-list/index.html +5887 -0
- package/docs-dev/sass/components/css-icon/index.html +5917 -0
- package/docs-dev/sass/components/data-grid/index.html +6052 -0
- package/docs-dev/sass/components/data-table/index.html +5988 -0
- package/docs-dev/sass/components/fill-context/index.html +5679 -0
- package/docs-dev/sass/components/flipcard/index.html +5980 -0
- package/docs-dev/sass/components/flipcard-grid/index.html +5800 -0
- package/docs-dev/sass/components/form-theme/index.html +6525 -0
- package/docs-dev/sass/components/headline-label/index.html +5833 -0
- package/docs-dev/sass/components/hero/index.html +5849 -0
- package/docs-dev/sass/components/horizontal-rule/index.html +5798 -0
- package/docs-dev/sass/components/image-grid/index.html +5805 -0
- package/docs-dev/sass/components/index/index.html +5859 -0
- package/docs-dev/sass/components/index.html +5622 -0
- package/docs-dev/sass/components/links/index.html +5649 -0
- package/docs-dev/sass/components/list-inline/index.html +5819 -0
- package/docs-dev/sass/components/list-lines/index.html +5840 -0
- package/docs-dev/sass/components/list-ordered/index.html +5645 -0
- package/docs-dev/sass/components/list-unordered/index.html +5649 -0
- package/docs-dev/sass/components/menu-stack/index.html +5992 -0
- package/docs-dev/sass/components/modal/index.html +6068 -0
- package/docs-dev/sass/components/nav-strip/index.html +5899 -0
- package/docs-dev/sass/components/overlay-section/index.html +5843 -0
- package/docs-dev/sass/components/pager/index.html +5961 -0
- package/docs-dev/sass/components/panel/index.html +6033 -0
- package/docs-dev/sass/components/placeholder-block/index.html +5883 -0
- package/docs-dev/sass/components/popover/index.html +5994 -0
- package/docs-dev/sass/components/pull-quote/index.html +5857 -0
- package/docs-dev/sass/components/rail/index.html +5823 -0
- package/docs-dev/sass/components/ratio-box/index.html +5803 -0
- package/docs-dev/sass/components/rule/index.html +5805 -0
- package/docs-dev/sass/components/scroll-slider/index.html +5904 -0
- package/docs-dev/sass/components/skeleton/index.html +5861 -0
- package/docs-dev/sass/components/skip-link/index.html +5789 -0
- package/docs-dev/sass/components/slider/index.html +5913 -0
- package/docs-dev/sass/components/spoke-spinner/index.html +5863 -0
- package/docs-dev/sass/components/sticky-list/index.html +6023 -0
- package/docs-dev/sass/components/table-sticky/index.html +5677 -0
- package/docs-dev/sass/components/tabs/index.html +5954 -0
- package/docs-dev/sass/components/tag/index.html +5964 -0
- package/docs-dev/sass/components/tile-button/index.html +5844 -0
- package/docs-dev/sass/components/tile-grid/index.html +5979 -0
- package/docs-dev/sass/components/tile-grid-overlay/index.html +5780 -0
- package/docs-dev/sass/components/vignette/index.html +5799 -0
- package/docs-dev/sass/components/wysiwyg/index.html +5827 -0
- package/docs-dev/sass/core/breakpoint/index.html +6454 -0
- package/docs-dev/sass/core/button/index.html +6538 -0
- package/docs-dev/sass/core/color/index.html +6520 -0
- package/docs-dev/sass/core/cssvar/index.html +6411 -0
- package/docs-dev/sass/core/element/index.html +6816 -0
- package/docs-dev/sass/core/index.html +5609 -0
- package/docs-dev/sass/core/layout/index.html +6388 -0
- package/docs-dev/sass/core/path/index.html +5778 -0
- package/docs-dev/sass/core/selector/index.html +5857 -0
- package/docs-dev/sass/core/typography/index.html +6783 -0
- package/docs-dev/sass/core/units/index.html +5822 -0
- package/docs-dev/sass/core/utils/index.html +8406 -0
- package/docs-dev/sass/helpers/color/index.html +5644 -0
- package/docs-dev/sass/helpers/display/index.html +5649 -0
- package/docs-dev/sass/helpers/index/index.html +5811 -0
- package/docs-dev/sass/helpers/index.html +5622 -0
- package/docs-dev/sass/helpers/print/index.html +5199 -0
- package/docs-dev/sass/helpers/typography/index.html +5672 -0
- package/docs-dev/sass/helpers/units/index.html +5818 -0
- package/docs-dev/sass/helpers/utilities/index.html +5649 -0
- package/docs-dev/sass/index.html +5673 -0
- package/js/events/index.js +17 -5
- package/js/index.js +1 -0
- package/js/settings.js +97 -0
- package/js/ui/breakpoints.js +19 -16
- package/js/ui/collapsible.js +8 -1
- package/js/ui/details-group.js +112 -0
- package/js/ui/dialog.js +103 -44
- package/js/ui/dialog.todo +2 -36
- package/js/ui/flipcard.js +37 -57
- package/js/ui/grid.js +15 -13
- package/js/ui/index.js +1 -0
- package/js/ui/modal-builder.js +127 -70
- package/js/ui/overflow-scroller.js +6 -4
- package/js/ui/page.js +2 -2
- package/js/ui/popover.js +38 -38
- package/js/ui/print.js +16 -25
- package/js/ui/programmatic-modal.js +9 -3
- package/js/ui/proxy-click.js +50 -36
- package/js/ui/resizer.js +408 -39
- package/js/ui/scroll-slider.js +24 -30
- package/js/ui/scrollpoint.js +29 -64
- package/js/ui/slider.js +108 -63
- package/js/ui/tabs.js +46 -39
- package/js/ui/theme-toggle.js +332 -94
- package/js/ui/tooltip.js +27 -32
- package/js/utils/class-logger.js +3 -3
- package/js/utils/css.js +13 -0
- package/js/utils/dom.js +23 -64
- package/js/utils/font-awesome.js +19 -0
- package/js/utils/index.js +2 -1
- package/js/utils/system.js +155 -0
- package/package.json +25 -11
- package/scss/README.md +9 -0
- package/scss/_breakpoint.scss +39 -5
- package/scss/_button.scss +7 -5
- package/scss/_color.scss +42 -9
- package/scss/_element.scss +124 -2
- package/scss/_layout.scss +7 -8
- package/scss/_units.scss +3 -2
- package/scss/_utils.scss +387 -16
- package/scss/base/_elements.scss +0 -1
- package/scss/base/_index.scss +1 -1
- package/scss/base/_keyframes.scss +15 -0
- package/scss/base/_layout.scss +1 -0
- package/scss/base/_print.scss +2 -0
- package/scss/base/_root.scss +2 -0
- package/scss/base/_typography.scss +7 -7
- package/scss/components/README.todos +14 -0
- package/scss/components/_accordion.scss +46 -32
- package/scss/components/_adaptive-spacing.scss +3 -3
- package/scss/components/_badge-stack.scss +84 -0
- package/scss/components/_badge.scss +35 -11
- package/scss/components/_basic-hero.scss +112 -0
- package/scss/components/_button-group.scss +90 -0
- package/scss/components/_button-verbose.scss +122 -40
- package/scss/components/_button.scss +2 -0
- package/scss/components/_callout.scss +129 -81
- package/scss/components/_captioned-figure.scss +25 -8
- package/scss/components/_card-grid.scss +3 -3
- package/scss/components/_card.scss +267 -91
- package/scss/components/_counter-list.scss +151 -0
- package/scss/components/_css-icon.scss +45 -30
- package/scss/components/_data-grid.scss +57 -14
- package/scss/components/_data-table.scss +46 -6
- package/scss/components/_flipcard-grid.scss +2 -2
- package/scss/components/_flipcard.scss +23 -17
- package/scss/components/_form-theme.scss +148 -137
- package/scss/components/_headline-label.scss +83 -0
- package/scss/components/_hero.scss +14 -12
- package/scss/components/_image-grid.scss +2 -2
- package/scss/components/_index.scss +60 -0
- package/scss/components/_list-inline.scss +80 -0
- package/scss/components/_list-lines.scss +46 -35
- package/scss/components/_list-ordered.scss +0 -1
- package/scss/components/_menu-stack.scss +44 -28
- package/scss/components/_modal.scss +75 -56
- package/scss/components/_nav-strip.scss +28 -19
- package/scss/components/_overlay-section.scss +6 -9
- package/scss/components/_pager.scss +11 -11
- package/scss/components/_panel.scss +246 -0
- package/scss/components/_placeholder-block.scss +6 -6
- package/scss/components/_popover.scss +176 -75
- package/scss/components/_pull-quote.scss +15 -15
- package/scss/components/_rail.scss +127 -0
- package/scss/components/_ratio-box.scss +4 -7
- package/scss/components/_rule.scss +6 -6
- package/scss/components/_scroll-slider.scss +4 -8
- package/scss/components/_skeleton.scss +126 -0
- package/scss/components/_skip-link.scss +2 -1
- package/scss/components/_slider.scss +53 -112
- package/scss/components/_spoke-spinner.scss +2 -2
- package/scss/components/_sticky-list.scss +206 -0
- package/scss/components/_tabs.scss +135 -51
- package/scss/components/_tag.scss +3 -3
- package/scss/components/_vignette.scss +3 -5
- package/scss/components/_wysiwyg.scss +21 -13
- package/scss/helpers/_display.scss +15 -18
- package/scss/helpers/_print.scss +12 -7
- package/scss/helpers/_utilities.scss +41 -31
- package/types/events/index.d.ts +10 -1
- package/types/events/index.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/settings.d.ts +70 -0
- package/types/settings.d.ts.map +1 -0
- package/types/ui/breakpoints.d.ts +14 -14
- package/types/ui/breakpoints.d.ts.map +1 -1
- package/types/ui/collapsible.d.ts.map +1 -1
- package/types/ui/details-group.d.ts +38 -0
- package/types/ui/details-group.d.ts.map +1 -0
- package/types/ui/dialog.d.ts +20 -14
- package/types/ui/dialog.d.ts.map +1 -1
- package/types/ui/flipcard.d.ts +16 -10
- package/types/ui/flipcard.d.ts.map +1 -1
- package/types/ui/grid.d.ts +4 -6
- package/types/ui/grid.d.ts.map +1 -1
- package/types/ui/index.d.ts +2 -1
- package/types/ui/modal-builder.d.ts +116 -11
- package/types/ui/modal-builder.d.ts.map +1 -1
- package/types/ui/overflow-scroller.d.ts +2 -2
- package/types/ui/overflow-scroller.d.ts.map +1 -1
- package/types/ui/popover.d.ts +6 -7
- package/types/ui/popover.d.ts.map +1 -1
- package/types/ui/print.d.ts +0 -4
- package/types/ui/print.d.ts.map +1 -1
- package/types/ui/programmatic-modal.d.ts.map +1 -1
- package/types/ui/proxy-click.d.ts +19 -3
- package/types/ui/proxy-click.d.ts.map +1 -1
- package/types/ui/resizer.d.ts +116 -16
- package/types/ui/resizer.d.ts.map +1 -1
- package/types/ui/scroll-slider.d.ts +5 -7
- package/types/ui/scroll-slider.d.ts.map +1 -1
- package/types/ui/scrollpoint.d.ts +3 -8
- package/types/ui/scrollpoint.d.ts.map +1 -1
- package/types/ui/slider.d.ts +33 -14
- package/types/ui/slider.d.ts.map +1 -1
- package/types/ui/tabs.d.ts +6 -8
- package/types/ui/tabs.d.ts.map +1 -1
- package/types/ui/theme-toggle.d.ts +51 -7
- package/types/ui/theme-toggle.d.ts.map +1 -1
- package/types/ui/tooltip.d.ts +3 -5
- package/types/ui/tooltip.d.ts.map +1 -1
- package/types/utils/css.d.ts +11 -0
- package/types/utils/css.d.ts.map +1 -0
- package/types/utils/dom.d.ts +12 -32
- package/types/utils/dom.d.ts.map +1 -1
- package/types/utils/font-awesome.d.ts +5 -0
- package/types/utils/font-awesome.d.ts.map +1 -0
- package/types/utils/index.d.ts +2 -1
- package/types/utils/system.d.ts +113 -0
- package/types/utils/system.d.ts.map +1 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
////
|
|
2
|
+
/// @group skeleton
|
|
3
|
+
/// Placeholder component for skeleton (ie. loading state
|
|
4
|
+
////
|
|
5
|
+
|
|
6
|
+
@use "sass:map";
|
|
7
|
+
@use "sass:list";
|
|
8
|
+
@use "sass:math";
|
|
9
|
+
@use "sass:meta";
|
|
10
|
+
|
|
11
|
+
@use "../selector";
|
|
12
|
+
@use "../utils";
|
|
13
|
+
@use "../color";
|
|
14
|
+
@use "../element";
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// Used for function fallback
|
|
18
|
+
$-fallbacks: (
|
|
19
|
+
"border-radius" : (
|
|
20
|
+
"function" : meta.get-function("get", false, "element"),
|
|
21
|
+
"property" : "border-radius"
|
|
22
|
+
)
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
/// Module Settings
|
|
26
|
+
/// @type Map
|
|
27
|
+
/// @prop {CssValue} animation [pulse 2s cubic-bezier(0.4,0,0.6,1) infinite] The animation applied to skeleton elements.
|
|
28
|
+
/// @prop {Color} color [type-disabled] The base color for skeleton elements.
|
|
29
|
+
/// @prop {Color} background-color [#cbcbcb] The primary background color for skeleton elements.
|
|
30
|
+
/// @prop {Color} background-color-alt [#aeaeae] An alternative background color for skeleton elements, used for variations.
|
|
31
|
+
/// @prop {Dimension} border-radius [true] The border-radius for skeleton blocks and text. If set to true, uses the element.scss property for "border-radius".
|
|
32
|
+
/// @prop {Dimension} inline-margin [0.35em] The margin between inline skeleton text elements.
|
|
33
|
+
/// @prop {Number} media-ratio [(4/3)] The aspect ratio for skeleton media blocks (width/height).
|
|
34
|
+
/// @prop {Dimension} text-border-radius [3em] The border-radius for skeleton text lines.
|
|
35
|
+
/// @prop {Map} widths [Map] A map defining various width percentages for skeleton text lines (or used to size blocks/etc)
|
|
36
|
+
|
|
37
|
+
$config: (
|
|
38
|
+
"animation" : UluPulse 2s cubic-bezier(0.4,0,0.6,1) infinite,
|
|
39
|
+
"color" : "type-disabled",
|
|
40
|
+
"background-color" : #e2e2e2,
|
|
41
|
+
"background-color-alt" : #bababa,
|
|
42
|
+
"border-radius": true,
|
|
43
|
+
"inline-margin" : 0.35em,
|
|
44
|
+
"media-ratio" : list.slash(4, 3),
|
|
45
|
+
"media-font-size" : 2rem,
|
|
46
|
+
"text-border-radius" : 3em,
|
|
47
|
+
"widths": (
|
|
48
|
+
"small-xxx" : 10%,
|
|
49
|
+
"small-xx" : 20%,
|
|
50
|
+
"small-x" : 30%,
|
|
51
|
+
"small" : 40%,
|
|
52
|
+
"large" : 70%,
|
|
53
|
+
"large-x" : 85%,
|
|
54
|
+
"large-xx" : 100%
|
|
55
|
+
),
|
|
56
|
+
) !default;
|
|
57
|
+
|
|
58
|
+
/// Change modules $config
|
|
59
|
+
/// @param {Map} $changes Map of changes
|
|
60
|
+
/// @example scss
|
|
61
|
+
/// @include ulu.component-skeleton-set(( "property" : value ));
|
|
62
|
+
|
|
63
|
+
@mixin set($changes) {
|
|
64
|
+
$config: map.merge($config, $changes) !global;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/// Get a config option
|
|
68
|
+
/// @param {Map} $name Name of property
|
|
69
|
+
/// @example scss
|
|
70
|
+
/// @include ulu.component-skeleton-get("property");
|
|
71
|
+
|
|
72
|
+
@function get($name) {
|
|
73
|
+
$value: utils.require-map-get($config, $name, "skeleton [config]");
|
|
74
|
+
@return utils.function-fallback($name, $value, $-fallbacks);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/// Prints component styles
|
|
78
|
+
/// @demo skeleton
|
|
79
|
+
/// @example scss
|
|
80
|
+
/// @include ulu.component-skeleton-styles();
|
|
81
|
+
|
|
82
|
+
@mixin styles {
|
|
83
|
+
$prefix: selector.class("skeleton");
|
|
84
|
+
|
|
85
|
+
#{ $prefix } {
|
|
86
|
+
animation: get("animation");
|
|
87
|
+
color: color.get(get("color"));
|
|
88
|
+
}
|
|
89
|
+
#{ $prefix }--background {
|
|
90
|
+
background-color: color.get(get("background-color")) !important;
|
|
91
|
+
}
|
|
92
|
+
#{ $prefix }--block,
|
|
93
|
+
#{ $prefix }--text,
|
|
94
|
+
#{ $prefix }--media {
|
|
95
|
+
animation: get("animation");
|
|
96
|
+
color: color.get(get("color"));
|
|
97
|
+
background-color: color.get(get("background-color")) !important;
|
|
98
|
+
border-radius: get("border-radius");
|
|
99
|
+
}
|
|
100
|
+
#{ $prefix }--media {
|
|
101
|
+
display: flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
justify-content: center;
|
|
104
|
+
aspect-ratio: get("media-ratio");
|
|
105
|
+
font-size: get("media-font-size");
|
|
106
|
+
}
|
|
107
|
+
#{ $prefix }--text {
|
|
108
|
+
height: 1em;
|
|
109
|
+
width: 60%;
|
|
110
|
+
border-radius: get("text-border-radius");
|
|
111
|
+
}
|
|
112
|
+
#{ $prefix }--inline {
|
|
113
|
+
display: inline-block;
|
|
114
|
+
}
|
|
115
|
+
#{ $prefix }--inline + #{ $prefix }--inline {
|
|
116
|
+
margin-left: get("inline-margin");
|
|
117
|
+
}
|
|
118
|
+
#{ $prefix }--background-alt {
|
|
119
|
+
background-color: color.get(get("background-color-alt")) !important;
|
|
120
|
+
}
|
|
121
|
+
@each $name, $value in get("widths") {
|
|
122
|
+
#{ $prefix }--width-#{ $name } {
|
|
123
|
+
width: $value;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
@use "sass:meta";
|
|
8
8
|
|
|
9
9
|
@use "../element";
|
|
10
|
+
@use "../color";
|
|
10
11
|
@use "../layout";
|
|
11
12
|
@use "../selector";
|
|
12
13
|
@use "../utils";
|
|
@@ -83,7 +84,7 @@ $config: (
|
|
|
83
84
|
left: 50%;
|
|
84
85
|
transform: translateX(-50%);
|
|
85
86
|
padding: get("padding");
|
|
86
|
-
background-color: get("background-color");
|
|
87
|
+
background-color: color.get(get("background-color"));
|
|
87
88
|
font-weight: bold;
|
|
88
89
|
box-shadow: get("box-shadow");
|
|
89
90
|
border-bottom-left-radius: get("border-radius");
|
|
@@ -7,86 +7,55 @@
|
|
|
7
7
|
|
|
8
8
|
@use "../color";
|
|
9
9
|
@use "../utils";
|
|
10
|
-
@use "../breakpoint";
|
|
11
10
|
@use "../selector";
|
|
12
11
|
|
|
13
12
|
/// Module Settings
|
|
14
13
|
/// @type Map
|
|
15
14
|
/// @prop {Color} background-color [transparent] Background color for the entire slider section.
|
|
16
|
-
/// @prop {
|
|
17
|
-
/// @prop {Dimension} margin-bottom [3rem] Bottom margin color for the entire slider section.
|
|
18
|
-
/// @prop {Dimension} margin-top [1rem] Top margin color for the entire slider section.
|
|
19
|
-
/// @prop {Dimension} padding-bottom [0] Bottom padding for individual slides.
|
|
20
|
-
/// @prop {Dimension} padding-bottom-small [0] Smaller option for bottom padding for individual slides. Currently commented out @joe-check
|
|
15
|
+
/// @prop {Dimension} margin [(1rem 0 3rem 0)] Margin for slider container
|
|
21
16
|
/// @prop {Dimension} padding-top [0] Top padding for individual slides.
|
|
22
|
-
/// @prop {Dimension}
|
|
23
|
-
/// @prop {
|
|
24
|
-
/// @prop {Color} button-background-color-hover [color.get("link-hover")] Currently unused @joe-check
|
|
25
|
-
/// @prop {CssValue} button-border [2px solid color.get("link")] Currently unused @joe-check
|
|
26
|
-
/// @prop {Color} button-border-color-hover [color.get("link-hover")] Currently unused @joe-check
|
|
27
|
-
/// @prop {Dimension} button-border-radius [50%] Currently unused @joe-check
|
|
28
|
-
/// @prop {Color} button-color [color.get("link")] Currently unused @joe-check
|
|
29
|
-
/// @prop {Color} button-color-hover [white] Currently unused @joe-check
|
|
30
|
-
/// @prop {Dimension} button-font-size [1.35rem] Currently unused @joe-check
|
|
31
|
-
/// @prop {Dimension} button-font-size-small [false] Currently unused @joe-check
|
|
32
|
-
/// @prop {Dimension} button-icon-offset-x [false] Offsets the control icons in from their respective sides. @joe-check
|
|
33
|
-
/// @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
|
|
34
19
|
/// @prop {Dimension} button-margin [0.75rem] The margin between the controls and the slide content when using .slider__slide-gap-for-controls
|
|
35
|
-
/// @prop {
|
|
36
|
-
/// @prop {
|
|
37
|
-
/// @prop {
|
|
38
|
-
/// @prop {Color}
|
|
39
|
-
/// @prop {
|
|
40
|
-
/// @prop {Color}
|
|
41
|
-
/// @prop {
|
|
42
|
-
/// @prop {Color}
|
|
43
|
-
/// @prop {
|
|
44
|
-
/// @prop {
|
|
45
|
-
/// @prop {Dimension}
|
|
46
|
-
/// @prop {Dimension} dot-size [1rem] The height and width of the dot.
|
|
47
|
-
/// @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
|
|
48
31
|
/// @prop {Dimension} button-width [1rem] The width of the button.
|
|
49
32
|
|
|
50
33
|
$config: (
|
|
51
34
|
"background-color" : transparent,
|
|
52
|
-
"
|
|
53
|
-
"margin-bottom" : 3rem,
|
|
54
|
-
"margin-top" : 1rem,
|
|
55
|
-
"button-background-color" : transparent,
|
|
56
|
-
"button-border" : 2px solid color.get("link"),
|
|
57
|
-
"button-border-color-hover" : color.get("link-hover"),
|
|
58
|
-
"button-border-radius" : 50%,
|
|
59
|
-
"button-color-hover" : white,
|
|
60
|
-
"button-background-color-hover" : color.get("link-hover"),
|
|
61
|
-
"button-color" : color.get("link"),
|
|
62
|
-
"button-font-size" : 1.35rem,
|
|
63
|
-
"button-icon-offset-x" : 2rem,
|
|
64
|
-
"button-icon-offset-y" : false,
|
|
65
|
-
"button-font-size-small" : false,
|
|
66
|
-
"button-margin" : 2rem,
|
|
67
|
-
"button-margin-small" : 0.75rem,
|
|
68
|
-
"button-size" : 3rem,
|
|
69
|
-
"button-size-small" : false,
|
|
70
|
-
"button-height": 2.5rem,
|
|
71
|
-
"button-width": 2.5rem,
|
|
72
|
-
"dot-background-color" : transparent,
|
|
73
|
-
"dot-background-color-hover" : color.get("link"),
|
|
74
|
-
"dot-background-color-selected" : color.get("link"),
|
|
75
|
-
"dot-border-color" : color.get("link"),
|
|
76
|
-
"dot-border-color-hover" : color.get("link"),
|
|
77
|
-
"dot-border-color-selected" : color.get("link"),
|
|
78
|
-
"dot-border-radius" : 50%,
|
|
79
|
-
"dot-border-width" : 2px,
|
|
80
|
-
"dot-size" : 1rem,
|
|
35
|
+
"margin" : (1rem 0 3rem 0),
|
|
81
36
|
"padding-bottom" : 0,
|
|
82
|
-
"padding-bottom-small" : 0,
|
|
83
37
|
"padding-top" : 0,
|
|
84
|
-
"
|
|
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
|
+
|
|
85
54
|
) !default;
|
|
86
55
|
|
|
87
56
|
/// Change modules $config
|
|
88
57
|
/// @param {Map} $changes Map of changes
|
|
89
|
-
/// @example scss
|
|
58
|
+
/// @example scss
|
|
90
59
|
/// @include ulu.component-slider-set(( "property" : value ));
|
|
91
60
|
|
|
92
61
|
@mixin set($changes) {
|
|
@@ -95,7 +64,7 @@ $config: (
|
|
|
95
64
|
|
|
96
65
|
/// Get a config option
|
|
97
66
|
/// @param {Map} $name Name of property
|
|
98
|
-
/// @example scss
|
|
67
|
+
/// @example scss
|
|
99
68
|
/// @include ulu.component-slider-get("property");
|
|
100
69
|
|
|
101
70
|
@function get($name) {
|
|
@@ -112,8 +81,8 @@ $config: (
|
|
|
112
81
|
$slide-padding-x: get("button-width") + get("button-margin");
|
|
113
82
|
#{ $prefix } {
|
|
114
83
|
position: relative; // for controls
|
|
115
|
-
background-color: get("background-color");
|
|
116
|
-
margin: get("margin
|
|
84
|
+
background-color: color.get(get("background-color"));
|
|
85
|
+
margin: get("margin");
|
|
117
86
|
}
|
|
118
87
|
#{ $prefix }__track,
|
|
119
88
|
#{ $prefix-plugin }__controls,
|
|
@@ -126,34 +95,30 @@ $config: (
|
|
|
126
95
|
top: 50%;
|
|
127
96
|
transform: translateY(-50%);
|
|
128
97
|
z-index: 10;
|
|
129
|
-
|
|
130
|
-
@if get("button-icon-offset-y") {
|
|
131
|
-
#{ $prefix-plugin }__control-icon {
|
|
132
|
-
margin-top: get("button-icon-offset-y");
|
|
133
|
-
}
|
|
98
|
+
margin-top: get("button-offset-y");
|
|
134
99
|
}
|
|
135
100
|
#{ $prefix-plugin }__nav {
|
|
136
101
|
display: flex;
|
|
137
102
|
justify-content: center;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
103
|
+
margin: get("nav-margin");
|
|
104
|
+
gap: get("nav-gap");
|
|
141
105
|
}
|
|
142
106
|
#{ $prefix-plugin }__nav-button {
|
|
143
107
|
display: block;
|
|
144
|
-
width: get("
|
|
145
|
-
height: get("
|
|
146
|
-
background-color: get("
|
|
147
|
-
border: get("
|
|
148
|
-
border-radius: get("
|
|
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");
|
|
149
113
|
&:hover {
|
|
150
|
-
background-color: get("
|
|
114
|
+
background-color: color.get(get("nav-background-color-hover"));
|
|
115
|
+
border-color: color.get(get("nav-border-color-hover"));
|
|
151
116
|
}
|
|
152
117
|
}
|
|
153
118
|
#{ $prefix-plugin }__nav-button--active,
|
|
154
119
|
#{ $prefix-plugin }__nav-button--active:hover {
|
|
155
|
-
background-color: get("
|
|
156
|
-
border-color: get("
|
|
120
|
+
background-color: color.get(get("nav-background-color-selected"));
|
|
121
|
+
border-color: color.get(get("nav-border-color-selected"));
|
|
157
122
|
}
|
|
158
123
|
#{ $prefix-plugin }__control-button,
|
|
159
124
|
#{ $prefix-plugin }__nav-button {
|
|
@@ -180,14 +145,7 @@ $config: (
|
|
|
180
145
|
}
|
|
181
146
|
#{ $prefix }__slide {
|
|
182
147
|
margin: 0;
|
|
183
|
-
|
|
184
|
-
// @include breakpoint.max(get("breakpoint")) {
|
|
185
|
-
// $bp-slide-padding: get("button-size-small") + get("button-margin-small");
|
|
186
|
-
// padding: get("padding-top-small") $bp-slide-padding get("padding-bottom-small") $bp-slide-padding;
|
|
187
|
-
// }
|
|
188
|
-
// }
|
|
189
|
-
}
|
|
190
|
-
// @joe-check should we remove this modifier for universal slide padding in favor of the individualized modifiers below?
|
|
148
|
+
}
|
|
191
149
|
#{ $prefix }--slide-control-margins {
|
|
192
150
|
#{ $prefix }__slide {
|
|
193
151
|
padding: get("padding-top") $slide-padding-x get("padding-bottom") $slide-padding-x;
|
|
@@ -200,42 +158,25 @@ $config: (
|
|
|
200
158
|
}
|
|
201
159
|
#{ $prefix-plugin }__control-button--previous {
|
|
202
160
|
left: 0;
|
|
203
|
-
|
|
204
|
-
#{ $prefix-plugin }__control-icon {
|
|
205
|
-
margin-left: get("button-icon-offset-x");
|
|
206
|
-
}
|
|
207
|
-
}
|
|
161
|
+
margin-left: get("button-offset-x");
|
|
208
162
|
}
|
|
209
163
|
#{ $prefix-plugin }__control-button--next {
|
|
210
164
|
right: 0;
|
|
211
|
-
|
|
212
|
-
#{ $prefix-plugin }__control-icon {
|
|
213
|
-
margin-right: get("button-icon-offset-x");
|
|
214
|
-
}
|
|
215
|
-
}
|
|
165
|
+
margin-right: get("button-offset-x");
|
|
216
166
|
}
|
|
217
167
|
#{ $prefix }--inset-controls {
|
|
218
168
|
#{ $prefix }__slide-gap-for-controls {
|
|
219
|
-
$padding: get("button-width") + get("button-margin") + get("button-
|
|
169
|
+
$padding: get("button-width") + get("button-margin") + get("button-offset-x");
|
|
220
170
|
padding-left: $padding;
|
|
221
171
|
padding-right: $padding;
|
|
222
172
|
}
|
|
223
173
|
#{ $prefix-plugin }__control-button--previous {
|
|
224
174
|
left: 0;
|
|
225
|
-
|
|
226
|
-
&#{ $prefix-plugin }__control-icon {
|
|
227
|
-
margin-left: get("button-icon-offset-x");
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
}
|
|
175
|
+
margin-left: get("button-offset-x");
|
|
231
176
|
}
|
|
232
177
|
#{ $prefix-plugin }__control-button--next {
|
|
233
178
|
right: 0;
|
|
234
|
-
|
|
235
|
-
&#{ $prefix-plugin }__control-icon {
|
|
236
|
-
margin-right: get("button-icon-offset-x");
|
|
237
|
-
}
|
|
238
|
-
}
|
|
179
|
+
margin-right: get("button-offset-x");
|
|
239
180
|
}
|
|
240
181
|
}
|
|
241
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
|
|
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
|
|
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
|
+
}
|