@ulu/frontend 0.1.0-beta.12 → 0.1.0-beta.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +717 -0
- package/GEMINI.md +9 -0
- 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/main.js +832 -421
- package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
- package/docs-dev/assets/placeholder/icon-check.svg +1 -0
- package/docs-dev/assets/style.css +629 -233
- package/docs-dev/changelog/index.html +7613 -0
- package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
- package/docs-dev/demos/accordion/index.html +1496 -358
- package/docs-dev/demos/badge/index.html +5895 -0
- package/docs-dev/demos/badge-stack/index.html +5876 -0
- package/docs-dev/demos/basic-hero/index.html +111 -0
- package/docs-dev/demos/breadcrumb/index.html +5930 -0
- package/docs-dev/demos/breakpoints-manager/index.html +5906 -0
- package/docs-dev/demos/button/index.html +1537 -343
- package/docs-dev/demos/button-group/index.html +5892 -0
- package/docs-dev/demos/button-verbose/index.html +5898 -0
- package/docs-dev/demos/callout/index.html +1559 -379
- package/docs-dev/demos/captioned-figure/index.html +1492 -339
- package/docs-dev/demos/card/index.html +1592 -800
- package/docs-dev/demos/card-grid/index.html +6017 -0
- package/docs-dev/demos/card-new/index.html +5088 -0
- package/docs-dev/demos/card-old/index.html +5223 -0
- package/docs-dev/demos/card.1/index.html +5223 -0
- package/docs-dev/demos/card.TRASH/index.html +5541 -0
- package/docs-dev/demos/counter-list/index.html +5900 -0
- package/docs-dev/demos/css-icons/index.html +1556 -380
- package/docs-dev/demos/data-grid/index.html +1492 -339
- package/docs-dev/demos/data-table/index.html +1634 -348
- package/docs-dev/demos/definition-list/index.html +6011 -0
- package/docs-dev/demos/details-group/index.html +5927 -0
- package/docs-dev/demos/donut-chart/index.html +5874 -0
- package/docs-dev/demos/file-save/index.html +1492 -339
- package/docs-dev/demos/flipcard/index.html +1492 -339
- package/docs-dev/demos/form-theme/index.html +1500 -347
- package/docs-dev/demos/headline-label/index.html +5862 -0
- package/docs-dev/demos/hero/index.html +12 -4
- package/docs-dev/demos/image-grid/index.html +12 -4
- package/docs-dev/demos/index.html +1493 -340
- package/docs-dev/demos/list-inline/index.html +1492 -339
- package/docs-dev/demos/list-lines/index.html +1492 -339
- package/docs-dev/demos/menu-stack/index.html +1652 -378
- package/docs-dev/demos/modals/index.html +1642 -366
- package/docs-dev/demos/nav-strip/index.html +1492 -339
- package/docs-dev/demos/overlay-section/index.html +1611 -388
- package/docs-dev/demos/panel/index.html +5922 -0
- package/docs-dev/demos/popovers/index.html +1752 -357
- package/docs-dev/demos/print/index.html +1492 -339
- package/docs-dev/demos/progress-bar/index.html +6030 -0
- package/docs-dev/demos/progress-circle/index.html +6197 -0
- package/docs-dev/demos/progress-donut/index.html +6107 -0
- package/docs-dev/demos/pull-quote/index.html +1492 -339
- package/docs-dev/demos/rail/index.html +5970 -0
- package/docs-dev/demos/rule/index.html +1509 -344
- package/docs-dev/demos/scroll-slider/index.html +72 -106
- package/docs-dev/demos/scrollpoints/index.html +1493 -340
- package/docs-dev/demos/skeleton/index.html +5918 -0
- package/docs-dev/demos/slider/index.html +12 -4
- package/docs-dev/demos/spoke-spinner/index.html +1492 -339
- package/docs-dev/demos/sticky-list/index.html +5883 -0
- package/docs-dev/demos/tabs/index.html +1565 -376
- package/docs-dev/demos/tag/index.html +1510 -345
- package/docs-dev/demos/theme-toggle/index.html +5939 -0
- package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
- package/docs-dev/demos/tiles/index.html +1492 -339
- package/docs-dev/demos/tooltip/index.html +1492 -339
- package/docs-dev/demos/wysiwyg/index.html +5912 -0
- package/docs-dev/guide/building-stylesheet/index.html +1492 -339
- package/docs-dev/guide/developing-ulu-scss-module/index.html +1492 -339
- package/docs-dev/guide/index.html +1492 -339
- package/docs-dev/guide/updates-and-changes/index.html +5033 -0
- package/docs-dev/index.html +1492 -339
- package/docs-dev/javascript/events/index.html +1567 -376
- package/docs-dev/javascript/index.html +1492 -339
- package/docs-dev/javascript/settings/index.html +6065 -0
- package/docs-dev/javascript/ui-breakpoints/index.html +1506 -355
- package/docs-dev/javascript/ui-collapsible/index.html +1491 -340
- package/docs-dev/javascript/ui-details-group/index.html +5982 -0
- package/docs-dev/javascript/ui-dialog/index.html +1523 -357
- package/docs-dev/javascript/ui-flipcard/index.html +1552 -345
- package/docs-dev/javascript/ui-grid/index.html +1538 -413
- package/docs-dev/javascript/ui-modal-builder/index.html +1761 -470
- package/docs-dev/javascript/ui-overflow-scroller/index.html +1491 -340
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +1491 -340
- package/docs-dev/javascript/ui-page/index.html +1491 -340
- package/docs-dev/javascript/ui-popover/index.html +1501 -354
- package/docs-dev/javascript/ui-print/index.html +1489 -346
- package/docs-dev/javascript/ui-print-details/index.html +1491 -340
- package/docs-dev/javascript/ui-programmatic-modal/index.html +1491 -340
- package/docs-dev/javascript/ui-proxy-click/index.html +1591 -355
- package/docs-dev/javascript/ui-resizer/index.html +1850 -434
- package/docs-dev/javascript/ui-scroll-slider/index.html +1531 -348
- package/docs-dev/javascript/ui-scrollpoint/index.html +1501 -357
- package/docs-dev/javascript/ui-slider/index.html +1708 -366
- package/docs-dev/javascript/ui-tabs/index.html +1523 -409
- package/docs-dev/javascript/ui-theme-toggle/index.html +6070 -0
- package/docs-dev/javascript/ui-tooltip/index.html +1501 -354
- package/docs-dev/javascript/utils-class-logger/index.html +1492 -341
- package/docs-dev/javascript/utils-css/index.html +5884 -0
- package/docs-dev/javascript/utils-dom/index.html +1523 -452
- package/docs-dev/javascript/utils-file-save/index.html +1491 -340
- package/docs-dev/javascript/utils-floating-ui/index.html +1491 -340
- package/docs-dev/javascript/utils-id/index.html +1491 -340
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +1491 -340
- package/docs-dev/javascript/utils-system/index.html +6187 -0
- package/docs-dev/sass/base/color/index.html +1491 -340
- package/docs-dev/sass/base/elements/index.html +1492 -341
- package/docs-dev/sass/base/index/index.html +1492 -341
- package/docs-dev/sass/base/index.html +1492 -339
- package/docs-dev/sass/base/keyframes/index.html +1492 -341
- package/docs-dev/sass/base/layout/index.html +1492 -341
- package/docs-dev/sass/base/normalize/index.html +1491 -340
- package/docs-dev/sass/base/print/index.html +1492 -341
- package/docs-dev/sass/base/root/index.html +1495 -344
- package/docs-dev/sass/base/typography/index.html +1491 -340
- package/docs-dev/sass/components/accordion/index.html +1628 -436
- package/docs-dev/sass/components/adaptive-spacing/index.html +1491 -340
- package/docs-dev/sass/components/badge/index.html +1522 -353
- package/docs-dev/sass/components/badge-stack/index.html +6051 -0
- package/docs-dev/sass/components/basic-hero/index.html +6045 -0
- package/docs-dev/sass/components/breadcrumb/index.html +6092 -0
- package/docs-dev/sass/components/button/index.html +1491 -340
- package/docs-dev/sass/components/button-group/index.html +6043 -0
- package/docs-dev/sass/components/button-verbose/index.html +1613 -387
- package/docs-dev/sass/components/callout/index.html +1598 -388
- package/docs-dev/sass/components/captioned-figure/index.html +1491 -340
- package/docs-dev/sass/components/card/index.html +1601 -393
- package/docs-dev/sass/components/card-grid/index.html +1491 -340
- package/docs-dev/sass/components/counter-list/index.html +6127 -0
- package/docs-dev/sass/components/css-icon/index.html +1492 -341
- package/docs-dev/sass/components/data-grid/index.html +1511 -353
- package/docs-dev/sass/components/data-table/index.html +1510 -352
- package/docs-dev/sass/components/definition-list/index.html +6107 -0
- package/docs-dev/sass/components/fill-context/index.html +1491 -340
- package/docs-dev/sass/components/flipcard/index.html +1569 -387
- package/docs-dev/sass/components/flipcard-grid/index.html +1491 -340
- package/docs-dev/sass/components/form-theme/index.html +1718 -572
- package/docs-dev/sass/components/headline-label/index.html +6073 -0
- package/docs-dev/sass/components/hero/index.html +1499 -348
- package/docs-dev/sass/components/horizontal-rule/index.html +1491 -340
- package/docs-dev/sass/components/image-grid/index.html +1491 -340
- package/docs-dev/sass/components/index/index.html +1514 -349
- package/docs-dev/sass/components/index.html +1492 -339
- package/docs-dev/sass/components/links/index.html +1491 -340
- package/docs-dev/sass/components/list-inline/index.html +1491 -340
- package/docs-dev/sass/components/list-lines/index.html +1491 -340
- package/docs-dev/sass/components/list-ordered/index.html +1491 -340
- package/docs-dev/sass/components/list-unordered/index.html +1491 -340
- package/docs-dev/sass/components/menu-stack/index.html +1578 -378
- package/docs-dev/sass/components/modal/index.html +1576 -390
- package/docs-dev/sass/components/nav-strip/index.html +1499 -348
- package/docs-dev/sass/components/overlay-section/index.html +1499 -348
- package/docs-dev/sass/components/pager/index.html +1491 -340
- package/docs-dev/sass/components/panel/index.html +6273 -0
- package/docs-dev/sass/components/placeholder-block/index.html +1491 -340
- package/docs-dev/sass/components/popover/index.html +1561 -404
- package/docs-dev/sass/components/progress-bar/index.html +6252 -0
- package/docs-dev/sass/components/progress-circle/index.html +6144 -0
- package/docs-dev/sass/components/pull-quote/index.html +1491 -340
- package/docs-dev/sass/components/rail/index.html +6063 -0
- package/docs-dev/sass/components/ratio-box/index.html +1499 -348
- package/docs-dev/sass/components/rule/index.html +1492 -341
- package/docs-dev/sass/components/scroll-slider/index.html +1501 -362
- package/docs-dev/sass/components/skeleton/index.html +6101 -0
- package/docs-dev/sass/components/skip-link/index.html +1491 -340
- package/docs-dev/sass/components/slider/index.html +1581 -442
- package/docs-dev/sass/components/spoke-spinner/index.html +1493 -342
- package/docs-dev/sass/components/sticky-list/index.html +6263 -0
- package/docs-dev/sass/components/table-sticky/index.html +5707 -0
- package/docs-dev/sass/components/tabs/index.html +1519 -353
- package/docs-dev/sass/components/tag/index.html +1648 -403
- package/docs-dev/sass/components/tile-button/index.html +1491 -340
- package/docs-dev/sass/components/tile-grid/index.html +1491 -340
- package/docs-dev/sass/components/tile-grid-overlay/index.html +1491 -340
- package/docs-dev/sass/components/vignette/index.html +1499 -348
- package/docs-dev/sass/components/wysiwyg/index.html +1524 -355
- package/docs-dev/sass/core/breakpoint/index.html +1577 -374
- package/docs-dev/sass/core/button/index.html +1523 -370
- package/docs-dev/sass/core/color/index.html +1768 -485
- package/docs-dev/sass/core/cssvar/index.html +1491 -340
- package/docs-dev/sass/core/element/index.html +1837 -404
- package/docs-dev/sass/core/index.html +1491 -340
- package/docs-dev/sass/core/layout/index.html +1582 -412
- package/docs-dev/sass/core/path/index.html +1491 -340
- package/docs-dev/sass/core/selector/index.html +1491 -340
- package/docs-dev/sass/core/typography/index.html +1657 -448
- package/docs-dev/sass/core/units/index.html +1499 -342
- package/docs-dev/sass/core/utils/index.html +2781 -481
- package/docs-dev/sass/helpers/color/index.html +1491 -340
- package/docs-dev/sass/helpers/display/index.html +1492 -341
- package/docs-dev/sass/helpers/index/index.html +1491 -340
- package/docs-dev/sass/helpers/index.html +1492 -339
- package/docs-dev/sass/helpers/print/index.html +759 -298
- package/docs-dev/sass/helpers/typography/index.html +1491 -340
- package/docs-dev/sass/helpers/units/index.html +1491 -340
- package/docs-dev/sass/helpers/utilities/index.html +1495 -340
- package/docs-dev/sass/index.html +1492 -339
- 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 +23 -36
- 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 +24 -9
- package/scss/README.md +9 -0
- package/scss/_breakpoint.scss +39 -5
- package/scss/_button.scss +7 -5
- package/scss/_color.scss +71 -40
- package/scss/_element.scss +124 -2
- package/scss/_layout.scss +7 -8
- package/scss/_typography.scss +15 -0
- 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/components/_accordion.scss +167 -110
- package/scss/components/_badge-stack.scss +84 -0
- package/scss/components/_badge.scss +30 -7
- package/scss/components/_basic-hero.scss +112 -0
- package/scss/components/_breadcrumb.scss +110 -0
- package/scss/components/_button-group.scss +90 -0
- package/scss/components/_button-verbose.scss +100 -18
- package/scss/components/_callout.scss +112 -53
- package/scss/components/_card-grid.scss +5 -2
- package/scss/components/_card.scss +216 -87
- package/scss/components/_counter-list.scss +151 -0
- package/scss/components/_css-icon.scss +27 -17
- package/scss/components/_data-grid.scss +55 -12
- package/scss/components/_data-table.scss +3 -0
- package/scss/components/_definition-list.scss +178 -0
- package/scss/components/_flipcard.scss +8 -3
- package/scss/components/_form-theme.scss +106 -95
- package/scss/components/_headline-label.scss +83 -0
- package/scss/components/_hero.scss +3 -10
- package/scss/components/_index.scss +79 -0
- package/scss/components/_menu-stack.scss +87 -23
- package/scss/components/_modal.scss +51 -23
- package/scss/components/_nav-strip.scss +2 -0
- package/scss/components/_overlay-section.scss +2 -5
- package/scss/components/_panel.scss +246 -0
- package/scss/components/_popover.scss +139 -38
- package/scss/components/_progress-bar.scss +260 -0
- package/scss/components/_progress-circle.scss +175 -0
- package/scss/components/_pull-quote.scss +1 -1
- package/scss/components/_rail.scss +127 -0
- package/scss/components/_ratio-box.scss +2 -5
- package/scss/components/_rule.scss +1 -0
- package/scss/components/_scroll-slider.scss +1 -5
- package/scss/components/_skeleton.scss +126 -0
- package/scss/components/_slider.scss +49 -72
- package/scss/components/_spoke-spinner.scss +2 -2
- package/scss/components/_sticky-list.scss +206 -0
- package/scss/components/_tabs.scss +22 -4
- package/scss/components/_tag.scss +49 -7
- package/scss/components/_vignette.scss +2 -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 +62 -34
- 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 +1 -0
- 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 +1 -0
- package/types/utils/system.d.ts +113 -0
- package/types/utils/system.d.ts.map +1 -0
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
@use "../utils";
|
|
11
11
|
@use "../selector";
|
|
12
12
|
@use "../color";
|
|
13
|
+
@use "../layout";
|
|
13
14
|
|
|
14
15
|
// todo
|
|
15
16
|
// sass color adjust for smooth transition. Add a comment for this if we can’t get to this
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
/// @prop {Color} background-color [white] The background color of the card.
|
|
30
31
|
/// @prop {Color} background-color-hover [rgb(242, 244, 246)] The background color of the card when hovered or focused.
|
|
31
32
|
/// @prop {Dimension} max-width [28rem] The max-width of the card.
|
|
32
|
-
/// @prop {Dimension} body-min-height [
|
|
33
|
+
/// @prop {Dimension} body-min-height [8rem] the min-height of the card body.
|
|
33
34
|
/// @prop {CssValue} border [1px solid #ccc] The card border.
|
|
34
35
|
/// @prop {CssValue} border-hover [2px solid #278cca] The card border when hovered or focused.
|
|
35
36
|
/// @prop {Dimension} header-margin [0.75em] The margin for the card header.
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
/// @prop {String} clickable-card-interact-selector [&:hover, &:focus-within] The selectors for the cards being interacted with.
|
|
50
51
|
/// @prop {Dimension} footer-padding-y [0.25rem] The top and bottom padding for the footer.
|
|
51
52
|
/// @prop {Dimension} footer-min-height [2.5rem] The min height for the footer
|
|
53
|
+
/// @prop {Dimension} footer-justify [flex-end] Flex alignment of footer items (on end by default)
|
|
52
54
|
/// @prop {String} prefix [card] The class name used to add card styling.
|
|
53
55
|
/// @prop {Boolean} transition-enabled [true] Enable or disable transition for card.
|
|
54
56
|
/// @prop {CssValue} transition-timing-function [ease-in-out] The timing function for the card animation.
|
|
@@ -57,11 +59,18 @@
|
|
|
57
59
|
/// @prop {Boolean} image-transition-enabled [true] Enable or disable the image transition.
|
|
58
60
|
/// @prop {Time} image-transition-duration [350ms] The duration of the image transition.
|
|
59
61
|
/// @prop {CssValue} image-transition-timing-function [ease-in-out] The timing function for the image transition.
|
|
60
|
-
/// @prop {
|
|
62
|
+
/// @prop {Number} image-fit-padding [1rem] Padding on inside of image when using image fit modifier
|
|
63
|
+
/// @prop {CssValue} image-fit-filter [drop-shadow(0 0px 8px rgba(0, 0, 0, 0.2))] Filter to use on image when using image fit modifier
|
|
64
|
+
/// @prop {List} image-icon-max-width [10rem] Max width for image when using the modifier on the .card__image--icon
|
|
61
65
|
/// @prop {List} image-transition-properties [(transform, filter)] The properties for the image transitions.
|
|
62
66
|
/// @prop {String} horizontal-breakpoint [small] The breakpoint used to change the card to vertical if using the card--horizontal styling. Uses ulu's breakpoint module.
|
|
67
|
+
/// @prop {Unit} horizontal-min-height [10rem] Minimum height when horizontal
|
|
68
|
+
/// @prop {Unit} horizontal-max-width [40rem] Maximum width when horizontal
|
|
63
69
|
/// @prop {Unit} horizontal-body-max-width [80rem] The max-width of body when horizontal
|
|
64
|
-
|
|
70
|
+
/// @prop {Boolean} aside-rule [false] Whether or not to have a rule separating body and aside
|
|
71
|
+
/// @prop {CssUnit} aside-rule-width [1px] Size of rule
|
|
72
|
+
/// @prop {CssUnit} aside-rule-color ["rule-light"] Color of rule
|
|
73
|
+
/// @prop {CssUnit} aside-rule-background-color [transparent] Color of aside background color
|
|
65
74
|
|
|
66
75
|
$config: (
|
|
67
76
|
"background-color" : white,
|
|
@@ -75,26 +84,32 @@ $config: (
|
|
|
75
84
|
"clickable-card-enabled" : true,
|
|
76
85
|
"clickable-card-selector" : "[data-ulu-proxy-click-init]",
|
|
77
86
|
"clickable-card-interact-selector" : "&:hover, &:focus-within",
|
|
78
|
-
"color" :
|
|
87
|
+
"color" : "type",
|
|
79
88
|
"color-hover" : null,
|
|
80
89
|
"footer-padding-y" : 0.25rem,
|
|
81
90
|
"footer-min-height" : 2.5rem,
|
|
91
|
+
"footer-justify" : flex-end,
|
|
82
92
|
"horizontal-breakpoint" : "small",
|
|
83
|
-
"horizontal-image-width" : 33%,
|
|
84
|
-
"horizontal-
|
|
93
|
+
"horizontal-image-width" : min(33%, 20rem),
|
|
94
|
+
"horizontal-min-height" : 20rem,
|
|
95
|
+
"horizontal-max-width" : 80rem,
|
|
96
|
+
"horizontal-main-max-width" : 40rem,
|
|
97
|
+
"horizontal-aside-width" : 40%,
|
|
85
98
|
"header-margin" : 0.75em,
|
|
86
99
|
"image-ratio" : 56.25%,
|
|
87
100
|
"image-aspect-ratio": list.slash(5, 3),
|
|
88
|
-
"image-background-color" : rgb(
|
|
101
|
+
"image-background-color" : rgb(238, 238, 238),
|
|
89
102
|
"image-border" : null, // For when you have a margin
|
|
90
103
|
"image-filter-hover" : null,
|
|
91
104
|
"image-margin" : null,
|
|
92
|
-
"image-icon-max-width" :
|
|
105
|
+
"image-icon-max-width" : 8rem,
|
|
93
106
|
"image-transform-hover" : null,
|
|
94
107
|
"image-transition-duration" : 350ms,
|
|
95
108
|
"image-transition-enabled" : true,
|
|
96
109
|
"image-transition-properties" : (transform, filter),
|
|
97
110
|
"image-transition-timing-function" : ease-in-out,
|
|
111
|
+
"image-fit-padding" : 1rem,
|
|
112
|
+
"image-fit-filter" : drop-shadow(0 0px 8px rgba(0, 0, 0, 0.3)),
|
|
98
113
|
"margin-y" : 3rem,
|
|
99
114
|
"max-width" : 28rem,
|
|
100
115
|
"padding" : 2rem,
|
|
@@ -114,6 +129,10 @@ $config: (
|
|
|
114
129
|
"overlay-background-color": rgba(0, 0, 0, 0.6),
|
|
115
130
|
"overlay-shading": true,
|
|
116
131
|
"overlay-body-padding-y": 1rem,
|
|
132
|
+
"aside-rule" : false,
|
|
133
|
+
"aside-rule-width" : 1px,
|
|
134
|
+
"aside-background-color" : transparent,
|
|
135
|
+
"aside-rule-color": "rule-light",
|
|
117
136
|
) !default;
|
|
118
137
|
|
|
119
138
|
/// Change modules $config
|
|
@@ -134,34 +153,6 @@ $config: (
|
|
|
134
153
|
@return utils.require-map-get($config, $name, "card [config]");
|
|
135
154
|
}
|
|
136
155
|
|
|
137
|
-
/// Mixin styles for card when it has proxy click enabled and is being interacted with (hover/focus)
|
|
138
|
-
/// @param {Boolean} $hover [false] Apply styles when the card is being hover/focused within, else applies styles to rest state of a clickable card (one who has a proxy click setup)
|
|
139
|
-
/// Prints component styles
|
|
140
|
-
/// @example scss
|
|
141
|
-
/// @include ulu.component-card-styles();
|
|
142
|
-
|
|
143
|
-
@mixin when-clickable($hover: false) {
|
|
144
|
-
$prefix: selector.class("card");
|
|
145
|
-
@if (get("clickable-card-enabled") and get("clickable-card-selector")) {
|
|
146
|
-
#{ $prefix } {
|
|
147
|
-
&#{ get("clickable-card-selector") } {
|
|
148
|
-
@if ($hover) {
|
|
149
|
-
#{ get("clickable-card-interact-selector") } {
|
|
150
|
-
@content;
|
|
151
|
-
}
|
|
152
|
-
} @else {
|
|
153
|
-
@content;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
@mixin shared-transition-styles() {
|
|
162
|
-
transition-duration: get("transition-duration");
|
|
163
|
-
transition-timing-function: get("transition-timing-function");
|
|
164
|
-
}
|
|
165
156
|
/// Prints component styles
|
|
166
157
|
/// @demo card
|
|
167
158
|
/// @example scss
|
|
@@ -183,14 +174,11 @@ $config: (
|
|
|
183
174
|
flex-direction: column;
|
|
184
175
|
justify-content: flex-end;
|
|
185
176
|
max-width: get("max-width");
|
|
177
|
+
|
|
186
178
|
// Border is on pseudo so that it's on top of image/etc
|
|
187
|
-
|
|
188
|
-
|
|
179
|
+
&::after {
|
|
180
|
+
@include layout.absolute-fill();
|
|
189
181
|
content: if(get("border"), "", null);
|
|
190
|
-
top: 0;
|
|
191
|
-
bottom: 0;
|
|
192
|
-
right: 0;
|
|
193
|
-
left: 0;
|
|
194
182
|
border: get("border");
|
|
195
183
|
border-radius: get("border-radius");
|
|
196
184
|
z-index: 4;
|
|
@@ -204,7 +192,7 @@ $config: (
|
|
|
204
192
|
box-shadow: get("box-shadow-hover");
|
|
205
193
|
|
|
206
194
|
@if (get("border-hover") or get("overlay-background-color-hover")) {
|
|
207
|
-
|
|
195
|
+
&::after {
|
|
208
196
|
content: "";
|
|
209
197
|
border: get("border-hover");
|
|
210
198
|
background-color: color.get(get("overlay-background-color-hover"));
|
|
@@ -218,7 +206,8 @@ $config: (
|
|
|
218
206
|
#{ $prefix },
|
|
219
207
|
#{ $prefix }::after,
|
|
220
208
|
#{ $prefix }__title {
|
|
221
|
-
|
|
209
|
+
transition-duration: get("transition-duration");
|
|
210
|
+
transition-timing-function: get("transition-timing-function");
|
|
222
211
|
transition-property: get("transition-properties");
|
|
223
212
|
}
|
|
224
213
|
}
|
|
@@ -228,14 +217,15 @@ $config: (
|
|
|
228
217
|
margin-bottom: get("title-margin");
|
|
229
218
|
display: block;
|
|
230
219
|
font-weight: get("title-font-weight");
|
|
231
|
-
@if get("title-color-hover") {
|
|
232
|
-
&:hover,
|
|
233
|
-
&:focus {
|
|
234
|
-
color: color.get(get("title-color-hover"));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
220
|
#{ $prefix }__title-link {
|
|
238
221
|
all: unset;
|
|
222
|
+
cursor: pointer;
|
|
223
|
+
@if get("title-color-hover") {
|
|
224
|
+
&:hover,
|
|
225
|
+
&:focus {
|
|
226
|
+
color: color.get(get("title-color-hover"));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
239
229
|
}
|
|
240
230
|
}
|
|
241
231
|
@if get("title-color-hover") {
|
|
@@ -267,11 +257,7 @@ $config: (
|
|
|
267
257
|
}
|
|
268
258
|
#{ $prefix }__image img,
|
|
269
259
|
#{ $prefix}__image-media {
|
|
270
|
-
|
|
271
|
-
top: 0;
|
|
272
|
-
left: 0;
|
|
273
|
-
width: 100%;
|
|
274
|
-
height: 100%;
|
|
260
|
+
@include layout.absolute-fill(true);
|
|
275
261
|
border: 0;
|
|
276
262
|
object-fit: cover;
|
|
277
263
|
transform-origin: center center;
|
|
@@ -290,17 +276,24 @@ $config: (
|
|
|
290
276
|
}
|
|
291
277
|
}
|
|
292
278
|
}
|
|
293
|
-
|
|
294
|
-
#{ $prefix }__footer
|
|
295
|
-
|
|
279
|
+
|
|
280
|
+
#{ $prefix }__footer {
|
|
281
|
+
padding: get("padding");
|
|
282
|
+
}
|
|
283
|
+
#{ $prefix }__main {
|
|
284
|
+
padding: get("padding");
|
|
285
|
+
}
|
|
286
|
+
#{ $prefix }__aside {
|
|
287
|
+
position: relative;
|
|
296
288
|
padding: get("padding");
|
|
297
289
|
}
|
|
298
290
|
|
|
299
291
|
#{ $prefix }__image--icon {
|
|
300
|
-
background-color: transparent;
|
|
292
|
+
// background-color: transparent;
|
|
301
293
|
display: flex;
|
|
302
294
|
align-items: center;
|
|
303
295
|
justify-content: center;
|
|
296
|
+
// padding: 2rem;
|
|
304
297
|
img {
|
|
305
298
|
position: static;
|
|
306
299
|
display: block;
|
|
@@ -316,9 +309,25 @@ $config: (
|
|
|
316
309
|
z-index: 2; // Above image
|
|
317
310
|
}
|
|
318
311
|
#{ $prefix }__body {
|
|
312
|
+
display: flex;
|
|
313
|
+
flex-direction: column;
|
|
319
314
|
flex-grow: 1;
|
|
320
315
|
min-height: get("body-min-height");
|
|
321
316
|
}
|
|
317
|
+
@if(get("aside-rule")) {
|
|
318
|
+
#{ $prefix }__aside {
|
|
319
|
+
background-color: color.get(get("aside-background-color"));
|
|
320
|
+
}
|
|
321
|
+
#{ $prefix }__aside::after {
|
|
322
|
+
content: "";
|
|
323
|
+
position: absolute;
|
|
324
|
+
top: calc(0rem - get("aside-rule-width") / 2);
|
|
325
|
+
left: get("padding");
|
|
326
|
+
right: get("padding");
|
|
327
|
+
height: get("aside-rule-width");
|
|
328
|
+
background-color: color.get(get("aside-rule-color"));
|
|
329
|
+
}
|
|
330
|
+
}
|
|
322
331
|
// For actions/messages
|
|
323
332
|
// - Layout as flex with min height to support buttons
|
|
324
333
|
// and text without relying so much on padding
|
|
@@ -330,7 +339,7 @@ $config: (
|
|
|
330
339
|
min-height: get("footer-min-height");
|
|
331
340
|
display: flex;
|
|
332
341
|
align-items: center;
|
|
333
|
-
justify-content:
|
|
342
|
+
justify-content: get("footer-justify");
|
|
334
343
|
}
|
|
335
344
|
// body + footer {
|
|
336
345
|
// means body keeps before pseudo element while footer loses it
|
|
@@ -347,10 +356,12 @@ $config: (
|
|
|
347
356
|
min-height: 0;
|
|
348
357
|
padding-top: get("overlay-body-padding-y");
|
|
349
358
|
padding-bottom: get("overlay-body-padding-y");
|
|
359
|
+
|
|
350
360
|
&:not(:has(~ #{ $prefix }__footer)) {
|
|
351
361
|
border-bottom-left-radius: get("border-radius");
|
|
352
362
|
border-bottom-right-radius: get("border-radius");
|
|
353
363
|
}
|
|
364
|
+
|
|
354
365
|
@if (get("overlay-shading")) {
|
|
355
366
|
margin-top: 4rem;
|
|
356
367
|
&::before {
|
|
@@ -381,11 +392,7 @@ $config: (
|
|
|
381
392
|
color: color.get(get("color-overlay"));
|
|
382
393
|
}
|
|
383
394
|
#{ $prefix }__image {
|
|
384
|
-
|
|
385
|
-
top: 0;
|
|
386
|
-
left: 0;
|
|
387
|
-
bottom: 0;
|
|
388
|
-
right: 0;
|
|
395
|
+
@include layout.absolute-fill();
|
|
389
396
|
overflow: hidden;
|
|
390
397
|
padding-top: 0;
|
|
391
398
|
background-color: color.get(rgb(255, 255, 255));
|
|
@@ -399,40 +406,162 @@ $config: (
|
|
|
399
406
|
border: 0;
|
|
400
407
|
object-fit: cover;
|
|
401
408
|
&::before {
|
|
402
|
-
|
|
409
|
+
@include layout.absolute-fill(true);
|
|
403
410
|
display: block;
|
|
404
|
-
top: 0;
|
|
405
|
-
bottom: 0;
|
|
406
|
-
left: 0;
|
|
407
|
-
right: 0;
|
|
408
411
|
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.9));
|
|
409
412
|
}
|
|
410
413
|
}
|
|
411
414
|
}
|
|
412
415
|
}
|
|
413
416
|
|
|
417
|
+
// Incase this modifier is being used to hide the image
|
|
418
|
+
// not just to tell the component how to layout without image
|
|
419
|
+
// - Use case is hiding image when you can't control the output
|
|
420
|
+
// of the inside of the card (printed no matter what). We had
|
|
421
|
+
// this happen in HHRC, including this extra CSS for that
|
|
422
|
+
#{ $prefix }--no-image {
|
|
423
|
+
#{ $prefix }__image {
|
|
424
|
+
display: none;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
#{ $prefix }--image-fit {
|
|
428
|
+
#{ $prefix }__image {
|
|
429
|
+
img {
|
|
430
|
+
padding: get("image-fit-padding");
|
|
431
|
+
object-fit: contain;
|
|
432
|
+
object-position: top center;
|
|
433
|
+
filter: get("image-fit-filter");
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
#{ $prefix }--fill {
|
|
438
|
+
max-width: none;
|
|
439
|
+
height: 100%;
|
|
440
|
+
margin: 0;
|
|
441
|
+
}
|
|
442
|
+
|
|
414
443
|
@if (get("horizontal-breakpoint")) {
|
|
415
444
|
@include breakpoint.min(get("horizontal-breakpoint")) {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
445
|
+
@include -horizontal-card-styles();
|
|
446
|
+
}
|
|
447
|
+
} @else {
|
|
448
|
+
@include -horizontal-card-styles();
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
@mixin -horizontal-card-styles() {
|
|
453
|
+
$prefix: selector.class("card");
|
|
454
|
+
|
|
455
|
+
#{ $prefix }--horizontal {
|
|
456
|
+
display: grid;
|
|
457
|
+
grid-template-columns: get("horizontal-image-width") 1fr;
|
|
458
|
+
// Creating the two rows (body and footer), if one is missing it's height will be 0
|
|
459
|
+
// Cannot use gap with the grid as it will create space when a row isn't needed
|
|
460
|
+
grid-template-rows: auto auto;
|
|
461
|
+
min-height: get("horizontal-min-height");
|
|
462
|
+
max-width: get("horizontal-max-width");
|
|
463
|
+
|
|
464
|
+
// When no footer remove extra row
|
|
465
|
+
&:not(:has(> #{ $prefix }__footer)) {
|
|
466
|
+
grid-template-rows: auto;
|
|
467
|
+
}
|
|
468
|
+
#{ $prefix }__image {
|
|
469
|
+
grid-column: 1 / 2;
|
|
470
|
+
grid-row: 1 / -1;
|
|
471
|
+
aspect-ratio: auto;
|
|
472
|
+
border-top-right-radius: 0;
|
|
473
|
+
border-bottom-left-radius: get("border-radius");
|
|
474
|
+
}
|
|
475
|
+
#{ $prefix }__body,
|
|
476
|
+
#{ $prefix }__footer {
|
|
477
|
+
grid-column: 2 / 3;
|
|
478
|
+
}
|
|
479
|
+
#{ $prefix }__body {
|
|
480
|
+
flex-direction: row;
|
|
481
|
+
justify-content: space-between;
|
|
482
|
+
}
|
|
483
|
+
#{ $prefix }__main {
|
|
484
|
+
flex-grow: 1;
|
|
485
|
+
max-width: get("horizontal-main-max-width");
|
|
486
|
+
}
|
|
487
|
+
#{ $prefix }__aside {
|
|
488
|
+
flex: 0 0 get("horizontal-aside-width");
|
|
489
|
+
height: 100%;
|
|
490
|
+
}
|
|
491
|
+
@if(get("aside-rule")) {
|
|
492
|
+
#{ $prefix }__aside::after {
|
|
493
|
+
content: "";
|
|
494
|
+
position: absolute;
|
|
495
|
+
top: get("padding");
|
|
496
|
+
left: calc(0rem - get("aside-rule-width") / 2);
|
|
497
|
+
height: calc(100% - get("padding") - get("padding"));
|
|
498
|
+
width: get("aside-rule-width");
|
|
499
|
+
background-color: get("aside-rule-color");
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
// For modern browsers
|
|
504
|
+
// Optionally use no-image modifier for older browser support
|
|
505
|
+
&:not(:has(#{ $prefix }__image)) {
|
|
506
|
+
@include -card-horizontal-no-image-styles();
|
|
507
|
+
}
|
|
508
|
+
&#{ $prefix }--no-image {
|
|
509
|
+
@include -card-horizontal-no-image-styles();
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
#{ $prefix }--horizontal-center {
|
|
513
|
+
#{ $prefix }__body {
|
|
514
|
+
align-self: center;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
/// Mixin styles for card when it has proxy click enabled and is being interacted with (hover/focus)
|
|
521
|
+
/// @param {Boolean} $hover [false] Apply styles when the card is being hover/focused within, else applies styles to rest state of a clickable card (one who has a proxy click setup)
|
|
522
|
+
/// Prints component styles
|
|
523
|
+
/// @example scss
|
|
524
|
+
/// @include ulu.component-card-styles();
|
|
525
|
+
|
|
526
|
+
@mixin when-clickable($hover: false) {
|
|
527
|
+
$prefix: selector.class("card");
|
|
528
|
+
// When proxy click enabled
|
|
529
|
+
@if (get("clickable-card-enabled") and get("clickable-card-selector")) {
|
|
530
|
+
#{ $prefix }#{ get("clickable-card-selector") },
|
|
531
|
+
a#{ $prefix },
|
|
532
|
+
button#{ $prefix },
|
|
533
|
+
#{ $prefix }--clickable {
|
|
534
|
+
@if ($hover) {
|
|
535
|
+
#{ get("clickable-card-interact-selector") } {
|
|
536
|
+
@content;
|
|
426
537
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
538
|
+
} @else {
|
|
539
|
+
@content;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
// Without proxy click (only if interactive)
|
|
543
|
+
} @else {
|
|
544
|
+
a#{ $prefix },
|
|
545
|
+
button#{ $prefix },
|
|
546
|
+
#{ $prefix }--clickable {
|
|
547
|
+
@if ($hover) {
|
|
548
|
+
#{ get("clickable-card-interact-selector") } {
|
|
549
|
+
@content;
|
|
433
550
|
}
|
|
551
|
+
} @else {
|
|
552
|
+
@content;
|
|
434
553
|
}
|
|
435
554
|
}
|
|
436
|
-
}
|
|
555
|
+
}
|
|
437
556
|
}
|
|
438
557
|
|
|
558
|
+
|
|
559
|
+
// Internal mixin for DRY
|
|
560
|
+
@mixin -card-horizontal-no-image-styles() {
|
|
561
|
+
$prefix: selector.class("card");
|
|
562
|
+
grid-template-columns: 1fr;
|
|
563
|
+
#{ $prefix }__body,
|
|
564
|
+
#{ $prefix }__footer {
|
|
565
|
+
grid-column: 1 / 2;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
////
|
|
2
|
+
/// @group counter-list
|
|
3
|
+
/// Outputs a styled list with counters
|
|
4
|
+
|
|
5
|
+
@use "sass:map";
|
|
6
|
+
@use "sass:selector" as sassSelector;
|
|
7
|
+
|
|
8
|
+
@use "../utils";
|
|
9
|
+
@use "../selector";
|
|
10
|
+
@use "../color";
|
|
11
|
+
@use "../breakpoint";
|
|
12
|
+
|
|
13
|
+
/// Module Settings
|
|
14
|
+
/// @type Map
|
|
15
|
+
/// @prop {List|CssUnit} margin [(2rem 0)] The top and bottom margin of the list.
|
|
16
|
+
/// @prop {List|CssUnit} item-margin [((0 0 1rem 0))] The margin applied to each list item.
|
|
17
|
+
/// @prop {Keyword} align-items [baseline] How to align the counter (flexbox align-items values)
|
|
18
|
+
/// @prop {CssUnit} counter-width [2.4em] The width and height (if height is falsy)
|
|
19
|
+
/// @prop {CssUnit} counter-height [null] The height (optional)
|
|
20
|
+
/// @prop {CssUnit} counter-gap [1em] The gap between the counter and the list item content.
|
|
21
|
+
/// @prop {String} counter-style [numeric] The list-style-type used for the counter.
|
|
22
|
+
/// @prop {Keyword|Percentage} counter-border-radius [50%] The border-radius of the counter element.
|
|
23
|
+
/// @prop {CssUnit} counter-font-size [1.2em] The font-size of the counter text.
|
|
24
|
+
/// @prop {Color|String} counter-color [white] The text color of the counter. Accepts color names or hex codes.
|
|
25
|
+
/// @prop {Color|String} counter-background-color ["accent"] The background color of the counter. Refers to a color in the color module.
|
|
26
|
+
/// @prop {String} extra-selector [null] Additional selectors to include table styling.
|
|
27
|
+
|
|
28
|
+
$config: (
|
|
29
|
+
"margin" : (2rem 0),
|
|
30
|
+
"item-margin" : (0 0 1rem 0),
|
|
31
|
+
"align-items" : baseline,
|
|
32
|
+
"counter-width" : 2.4em,
|
|
33
|
+
"counter-height" : null,
|
|
34
|
+
"counter-gap" : 1em,
|
|
35
|
+
"counter-style" : numeric,
|
|
36
|
+
"counter-border-radius" : 50%,
|
|
37
|
+
"counter-font-size" : 1.2em,
|
|
38
|
+
"counter-font-weight" : null,
|
|
39
|
+
"counter-font-family" : null,
|
|
40
|
+
"counter-color" : white,
|
|
41
|
+
"counter-background-color" : "accent",
|
|
42
|
+
"extra-selector" : null
|
|
43
|
+
) !default;
|
|
44
|
+
|
|
45
|
+
/// Change modules $config
|
|
46
|
+
/// @param {Map} $changes Map of changes
|
|
47
|
+
/// @example scss
|
|
48
|
+
/// @include ulu.component-counter-list-set(( "property" : value ));
|
|
49
|
+
|
|
50
|
+
@mixin set($changes) {
|
|
51
|
+
$config: map.merge($config, $changes) !global;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/// Get a config option
|
|
55
|
+
/// @param {Map} $name Name of property
|
|
56
|
+
/// @example scss
|
|
57
|
+
/// @include ulu.component-counter-list-get("property");
|
|
58
|
+
|
|
59
|
+
@function get($name) {
|
|
60
|
+
@return utils.require-map-get($config, $name, "counter-list [config]");
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/// Output counter-list component styles
|
|
64
|
+
/// @demo counter-list
|
|
65
|
+
/// @example html {preview}
|
|
66
|
+
/// <ol class="counter-list">
|
|
67
|
+
/// <li class="counter-list__item">This is a item that will get counted</li>
|
|
68
|
+
/// <li class="counter-list__item">Another item that has more content to show line wrapping. Lorem ipsum et depsi anu. Dolor et anu.</li>
|
|
69
|
+
/// <li class="counter-list__item">Small Amount of Text</li>
|
|
70
|
+
/// </ol>
|
|
71
|
+
|
|
72
|
+
@mixin styles {
|
|
73
|
+
$prefix: selector.class("counter-list");
|
|
74
|
+
$prefix-item: sassSelector.parse("#{ $prefix }__item");
|
|
75
|
+
$extra-selector: get("extra-selector");
|
|
76
|
+
|
|
77
|
+
$selector: $prefix;
|
|
78
|
+
$selector-item: sassSelector.parse("#{ $prefix } > li, #{ $prefix-item }");
|
|
79
|
+
|
|
80
|
+
@if ($extra-selector) {
|
|
81
|
+
$selector: sassSelector.parse("#{ $prefix }, #{ $extra-selector }");
|
|
82
|
+
$selector-item: sassSelector.parse("#{ $selector-item }, #{ $extra-selector } > li");
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
#{ $selector } {
|
|
86
|
+
margin: get("margin");
|
|
87
|
+
counter-reset: ulu-counter-list;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
#{ $selector-item } {
|
|
91
|
+
$width: get("counter-width");
|
|
92
|
+
$height: utils.fallback(get("counter-height"), $width);
|
|
93
|
+
|
|
94
|
+
display: flex;
|
|
95
|
+
gap: get("counter-gap");
|
|
96
|
+
align-items: get("align-items");
|
|
97
|
+
margin: get("item-margin");
|
|
98
|
+
min-height: $height;
|
|
99
|
+
&::before {
|
|
100
|
+
display: flex;
|
|
101
|
+
align-items: center;
|
|
102
|
+
justify-content: center;
|
|
103
|
+
width: $width;
|
|
104
|
+
height: $height;
|
|
105
|
+
flex: 0 0 $width;
|
|
106
|
+
counter-increment: ulu-counter-list;
|
|
107
|
+
content: counter(ulu-counter-list, get("counter-style"));
|
|
108
|
+
font-size: get("counter-font-size");
|
|
109
|
+
font-family: get("counter-font-family");
|
|
110
|
+
font-weight: get("counter-font-weight");
|
|
111
|
+
color: color.get(get("counter-color"));
|
|
112
|
+
background-color: color.get(get("counter-background-color"));
|
|
113
|
+
border-radius: get("counter-border-radius");
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Keeping this could be useful
|
|
117
|
+
// but we need to think about how its setup
|
|
118
|
+
// - Probably should be a modifier (choice)
|
|
119
|
+
// - May need either option for how align-items is set (flex-start vs center)
|
|
120
|
+
// - This could be useful when used in grid
|
|
121
|
+
// - May need to be pervasive and not linked to a breakpoint (alternate style)
|
|
122
|
+
// - It's also just useful to know you could override the layout like this
|
|
123
|
+
// to get useful variations (maybe we don't need to include it but users
|
|
124
|
+
// can do specific)
|
|
125
|
+
// @if ( get("counter-mobile-toggle") ) {
|
|
126
|
+
// @include breakpoint.max("small") {
|
|
127
|
+
// padding-left: 0;
|
|
128
|
+
// padding-top: calc(get("counter-width") + get("counter-gap-mobile"));
|
|
129
|
+
// flex-direction: column;
|
|
130
|
+
// align-items: center;
|
|
131
|
+
// }
|
|
132
|
+
// }
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Modifiers
|
|
136
|
+
#{ $prefix }--alphabetical {
|
|
137
|
+
& > li::before,
|
|
138
|
+
& > #{ $prefix-item }::before {
|
|
139
|
+
content: counter(ulu-counter-list, upper-alpha);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
#{ $prefix }--numeric {
|
|
143
|
+
& > li::before,
|
|
144
|
+
& > #{ $prefix-item }::before {
|
|
145
|
+
content: counter(ulu-counter-list, numeric);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
#{ $prefix }--no-reset {
|
|
149
|
+
counter-reset: none;
|
|
150
|
+
}
|
|
151
|
+
}
|