@ulu/frontend 0.1.0-beta.4 → 0.1.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +332 -1
- package/dist/ulu-frontend.min.css +1 -1
- package/dist/ulu-frontend.min.js +28 -27
- 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 +6079 -0
- package/docs-dev/changelog/updates-and-changes/index.html +5109 -0
- package/docs-dev/demos/accordion/index.html +904 -321
- package/docs-dev/demos/basic-hero/index.html +111 -0
- package/docs-dev/demos/breakpoints-manager/index.html +5246 -0
- package/docs-dev/demos/button/index.html +916 -323
- package/docs-dev/demos/button-verbose/index.html +5238 -0
- package/docs-dev/demos/callout/index.html +951 -328
- package/docs-dev/demos/captioned-figure/index.html +904 -321
- package/docs-dev/demos/card/index.html +970 -748
- package/docs-dev/demos/card-grid/index.html +5357 -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 +5224 -0
- package/docs-dev/demos/css-icons/index.html +904 -321
- package/docs-dev/demos/data-grid/index.html +1014 -511
- package/docs-dev/demos/data-table/index.html +1064 -348
- package/docs-dev/demos/details-group/index.html +5267 -0
- package/docs-dev/demos/file-save/index.html +904 -321
- package/docs-dev/demos/flipcard/index.html +904 -321
- package/docs-dev/demos/form-theme/index.html +922 -352
- 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 +904 -321
- package/docs-dev/demos/list-inline/index.html +5220 -0
- package/docs-dev/demos/list-inline.1/index.html +4727 -0
- package/docs-dev/demos/list-lines/index.html +5210 -0
- package/docs-dev/demos/menu-stack/index.html +975 -377
- package/docs-dev/demos/modals/index.html +1010 -357
- package/docs-dev/demos/nav-strip/index.html +924 -377
- package/docs-dev/demos/overlay-section/index.html +979 -326
- package/docs-dev/demos/popovers/index.html +1152 -327
- package/docs-dev/demos/print/index.html +904 -321
- package/docs-dev/demos/pull-quote/index.html +904 -321
- package/docs-dev/demos/rule/index.html +952 -357
- package/docs-dev/demos/scroll-slider/index.html +72 -106
- package/docs-dev/demos/scrollpoints/index.html +905 -322
- package/docs-dev/demos/slider/index.html +12 -4
- package/docs-dev/demos/spoke-spinner/index.html +904 -321
- package/docs-dev/demos/sticky-list/index.html +5223 -0
- package/docs-dev/demos/tabs/index.html +944 -325
- package/docs-dev/demos/tag/index.html +904 -321
- package/docs-dev/demos/theme-toggle/index.html +5279 -0
- package/docs-dev/demos/tile-grid-overlay/index.html +12 -4
- package/docs-dev/demos/tiles/index.html +904 -321
- package/docs-dev/demos/tooltip/index.html +904 -321
- package/docs-dev/guide/building-stylesheet/index.html +904 -321
- package/docs-dev/guide/developing-ulu-scss-module/index.html +904 -321
- package/docs-dev/guide/index.html +904 -321
- package/docs-dev/guide/updates-and-changes/index.html +5033 -0
- package/docs-dev/index.html +904 -321
- package/docs-dev/javascript/events/index.html +901 -320
- package/docs-dev/javascript/index.html +904 -321
- package/docs-dev/javascript/settings/index.html +5400 -0
- package/docs-dev/javascript/ui-breakpoints/index.html +916 -335
- package/docs-dev/javascript/ui-collapsible/index.html +901 -320
- package/docs-dev/javascript/ui-details-group/index.html +5322 -0
- package/docs-dev/javascript/ui-dialog/index.html +967 -371
- package/docs-dev/javascript/ui-flipcard/index.html +964 -327
- package/docs-dev/javascript/ui-grid/index.html +913 -358
- package/docs-dev/javascript/ui-modal-builder/index.html +914 -354
- package/docs-dev/javascript/ui-overflow-scroller/index.html +901 -320
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +901 -320
- package/docs-dev/javascript/ui-page/index.html +901 -320
- package/docs-dev/javascript/ui-popover/index.html +911 -334
- package/docs-dev/javascript/ui-print/index.html +901 -328
- package/docs-dev/javascript/ui-print-details/index.html +901 -320
- package/docs-dev/javascript/ui-programmatic-modal/index.html +901 -320
- package/docs-dev/javascript/ui-proxy-click/index.html +990 -324
- package/docs-dev/javascript/ui-resizer/index.html +901 -320
- package/docs-dev/javascript/ui-scroll-slider/index.html +941 -328
- package/docs-dev/javascript/ui-scrollpoint/index.html +907 -333
- package/docs-dev/javascript/ui-slider/index.html +1099 -327
- package/docs-dev/javascript/ui-tabs/index.html +914 -370
- package/docs-dev/javascript/ui-theme-toggle/index.html +5410 -0
- package/docs-dev/javascript/ui-tooltip/index.html +940 -363
- package/docs-dev/javascript/utils-class-logger/index.html +901 -320
- package/docs-dev/javascript/utils-css/index.html +5224 -0
- package/docs-dev/javascript/utils-dom/index.html +1037 -334
- package/docs-dev/javascript/utils-file-save/index.html +901 -320
- package/docs-dev/javascript/utils-floating-ui/index.html +901 -320
- package/docs-dev/javascript/utils-id/index.html +901 -320
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +901 -320
- package/docs-dev/javascript/utils-system/index.html +5527 -0
- package/docs-dev/sass/base/color/index.html +901 -320
- package/docs-dev/sass/base/elements/index.html +973 -392
- package/docs-dev/sass/base/index/index.html +959 -378
- package/docs-dev/sass/base/index.html +904 -321
- package/docs-dev/sass/base/keyframes/index.html +901 -320
- package/docs-dev/sass/base/layout/index.html +966 -385
- package/docs-dev/sass/base/normalize/index.html +901 -320
- package/docs-dev/sass/base/print/index.html +901 -320
- package/docs-dev/sass/base/root/index.html +901 -320
- package/docs-dev/sass/base/typography/index.html +901 -320
- package/docs-dev/sass/components/accordion/index.html +1026 -445
- package/docs-dev/sass/components/adaptive-spacing/index.html +1027 -446
- package/docs-dev/sass/components/badge/index.html +1005 -424
- package/docs-dev/sass/components/basic-hero/index.html +5385 -0
- package/docs-dev/sass/components/button/index.html +952 -371
- package/docs-dev/sass/components/button-verbose/index.html +1089 -433
- package/docs-dev/sass/components/callout/index.html +1086 -482
- package/docs-dev/sass/components/captioned-figure/index.html +1070 -374
- package/docs-dev/sass/components/card/index.html +1121 -491
- package/docs-dev/sass/components/card-grid/index.html +973 -392
- package/docs-dev/sass/components/counter-list/index.html +5458 -0
- package/docs-dev/sass/components/css-icon/index.html +1052 -464
- package/docs-dev/sass/components/data-grid/index.html +1087 -499
- package/docs-dev/sass/components/data-table/index.html +1154 -381
- package/docs-dev/sass/components/fill-context/index.html +901 -320
- package/docs-dev/sass/components/flipcard/index.html +1071 -459
- package/docs-dev/sass/components/flipcard-grid/index.html +960 -379
- package/docs-dev/sass/components/form-theme/index.html +1349 -672
- package/docs-dev/sass/components/hero/index.html +1016 -387
- package/docs-dev/sass/components/horizontal-rule/index.html +959 -378
- package/docs-dev/sass/components/image-grid/index.html +966 -385
- package/docs-dev/sass/components/index/index.html +1004 -419
- package/docs-dev/sass/components/index.html +904 -321
- package/docs-dev/sass/components/links/index.html +901 -320
- package/docs-dev/sass/components/list-inline/index.html +5399 -0
- package/docs-dev/sass/components/list-lines/index.html +1009 -432
- package/docs-dev/sass/components/list-ordered/index.html +903 -322
- package/docs-dev/sass/components/list-unordered/index.html +901 -320
- package/docs-dev/sass/components/menu-stack/index.html +1050 -456
- package/docs-dev/sass/components/modal/index.html +1032 -444
- package/docs-dev/sass/components/nav-strip/index.html +1023 -442
- package/docs-dev/sass/components/overlay-section/index.html +1010 -429
- package/docs-dev/sass/components/pager/index.html +1017 -436
- package/docs-dev/sass/components/placeholder-block/index.html +1017 -436
- package/docs-dev/sass/components/popover/index.html +1068 -451
- package/docs-dev/sass/components/pull-quote/index.html +1017 -436
- package/docs-dev/sass/components/ratio-box/index.html +969 -388
- package/docs-dev/sass/components/rule/index.html +972 -391
- package/docs-dev/sass/components/scroll-slider/index.html +1019 -450
- package/docs-dev/sass/components/skip-link/index.html +961 -380
- package/docs-dev/sass/components/slider/index.html +1023 -442
- package/docs-dev/sass/components/spoke-spinner/index.html +961 -380
- package/docs-dev/sass/components/sticky-list/index.html +5603 -0
- package/docs-dev/sass/components/tabs/index.html +1020 -439
- package/docs-dev/sass/components/tag/index.html +1064 -483
- package/docs-dev/sass/components/tile-button/index.html +1004 -423
- package/docs-dev/sass/components/tile-grid/index.html +1045 -464
- package/docs-dev/sass/components/tile-grid-overlay/index.html +940 -359
- package/docs-dev/sass/components/vignette/index.html +965 -378
- package/docs-dev/sass/components/wysiwyg/index.html +968 -387
- package/docs-dev/sass/core/breakpoint/index.html +1045 -450
- package/docs-dev/sass/core/button/index.html +1438 -857
- package/docs-dev/sass/core/color/index.html +1084 -496
- package/docs-dev/sass/core/cssvar/index.html +950 -369
- package/docs-dev/sass/core/element/index.html +1504 -782
- package/docs-dev/sass/core/index.html +901 -320
- package/docs-dev/sass/core/layout/index.html +1062 -462
- package/docs-dev/sass/core/path/index.html +953 -372
- package/docs-dev/sass/core/selector/index.html +952 -371
- package/docs-dev/sass/core/typography/index.html +1171 -590
- package/docs-dev/sass/core/units/index.html +984 -403
- package/docs-dev/sass/core/utils/index.html +1941 -500
- package/docs-dev/sass/helpers/color/index.html +901 -320
- package/docs-dev/sass/helpers/display/index.html +902 -321
- package/docs-dev/sass/helpers/index/index.html +956 -375
- package/docs-dev/sass/helpers/index.html +904 -321
- package/docs-dev/sass/helpers/print/index.html +843 -292
- package/docs-dev/sass/helpers/typography/index.html +901 -320
- package/docs-dev/sass/helpers/units/index.html +950 -369
- package/docs-dev/sass/helpers/utilities/index.html +903 -322
- package/docs-dev/sass/index.html +904 -321
- package/js/index.js +1 -0
- package/js/settings.js +95 -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 +90 -42
- 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 +45 -54
- package/js/ui/overflow-scroller.js +6 -4
- 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/scroll-slider.js +24 -30
- package/js/ui/scrollpoint.js +28 -64
- package/js/ui/slider.js +61 -62
- package/js/ui/tabs.js +23 -36
- package/js/ui/theme-toggle.js +331 -94
- package/js/ui/tooltip.js +27 -32
- package/js/utils/css.js +13 -0
- package/js/utils/dom.js +69 -4
- package/js/utils/font-awesome.js +18 -0
- package/js/utils/index.js +2 -1
- package/js/utils/system.js +154 -0
- package/package.json +10 -7
- package/scss/_breakpoint.scss +16 -3
- package/scss/_color.scss +9 -2
- package/scss/_element.scss +91 -0
- package/scss/_layout.scss +7 -8
- package/scss/_utils.scss +248 -13
- package/scss/components/README.todos +14 -0
- package/scss/components/_accordion.scss +18 -20
- package/scss/components/_badge.scss +3 -2
- package/scss/components/_basic-hero.scss +112 -0
- package/scss/components/_button-verbose.scss +102 -20
- package/scss/components/_callout.scss +127 -79
- package/scss/components/_captioned-figure.scss +23 -5
- package/scss/components/_card-grid.scss +1 -1
- package/scss/components/_card.scss +242 -88
- package/scss/components/_counter-list.scss +133 -0
- package/scss/components/_css-icon.scss +33 -28
- package/scss/components/_data-grid.scss +38 -9
- package/scss/components/_data-table.scss +44 -4
- package/scss/components/_flipcard.scss +21 -15
- package/scss/components/_form-theme.scss +146 -135
- package/scss/components/_hero.scss +12 -10
- package/scss/components/_index.scss +24 -0
- package/scss/components/_list-inline.scss +80 -0
- package/scss/components/_list-lines.scss +44 -33
- package/scss/components/_list-ordered.scss +0 -1
- package/scss/components/_menu-stack.scss +42 -26
- package/scss/components/_modal.scss +29 -19
- package/scss/components/_nav-strip.scss +25 -16
- package/scss/components/_overlay-section.scss +4 -6
- package/scss/components/_pager.scss +6 -6
- package/scss/components/_placeholder-block.scss +4 -4
- package/scss/components/_popover.scss +174 -73
- package/scss/components/_pull-quote.scss +13 -13
- package/scss/components/_ratio-box.scss +2 -5
- package/scss/components/_rule.scss +1 -1
- package/scss/components/_scroll-slider.scss +2 -6
- package/scss/components/_skip-link.scss +2 -1
- package/scss/components/_slider.scss +17 -38
- package/scss/components/_spoke-spinner.scss +2 -2
- package/scss/components/_sticky-list.scss +206 -0
- package/scss/components/_tabs.scss +4 -2
- package/scss/components/_tag.scss +1 -1
- package/scss/components/_vignette.scss +3 -5
- package/scss/helpers/_display.scss +15 -18
- package/scss/helpers/_print.scss +12 -7
- package/scss/helpers/_utilities.scss +42 -32
- package/types/index.d.ts +1 -0
- package/types/settings.d.ts +66 -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 +8 -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/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 +24 -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 +36 -4
- 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
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
@use "../utils";
|
|
10
10
|
@use "../color";
|
|
11
11
|
@use "../element";
|
|
12
|
+
@use "../selector";
|
|
13
|
+
@use "../button";
|
|
12
14
|
|
|
13
15
|
// Used for function fallback
|
|
14
16
|
$-fallbacks: (
|
|
@@ -23,6 +25,14 @@ $-fallbacks: (
|
|
|
23
25
|
"box-shadow-hover" : (
|
|
24
26
|
"function" : meta.get-function("get", false, "element"),
|
|
25
27
|
"property" : "box-shadow-hover"
|
|
28
|
+
),
|
|
29
|
+
"border-color" : (
|
|
30
|
+
"function" : meta.get-function("get", false, "button"),
|
|
31
|
+
"property" : "border-color"
|
|
32
|
+
),
|
|
33
|
+
"border-width" : (
|
|
34
|
+
"function" : meta.get-function("get", false, "button"),
|
|
35
|
+
"property" : "border-width"
|
|
26
36
|
)
|
|
27
37
|
);
|
|
28
38
|
|
|
@@ -31,11 +41,14 @@ $-fallbacks: (
|
|
|
31
41
|
/// @prop {Color} background-color [white] Background color for the button.
|
|
32
42
|
/// @prop {Color} background-color-hover [link] Background color for the button when hovered or focused.
|
|
33
43
|
/// @prop {String} border-radius [border-radius] Border radius of the button.
|
|
44
|
+
/// @prop {String} border-width [null] Border width (or set to true to inherit button border width default)
|
|
45
|
+
/// @prop {String} border-color [null] Border color (or set to true to inherit button border width default)
|
|
34
46
|
/// @prop {CssValue} box-shadow [true] Box shadow for the button. If set to true, uses default box-shadow.
|
|
35
47
|
/// @prop {CssValue} box-shadow-hover [true] Box shadow for the button when hovered or focused. If set to true, uses default box-shadow-hover.
|
|
36
48
|
/// @prop {String} color [type] Text color for the button.
|
|
37
49
|
/// @prop {String} color-hover [type] Text color for the button when hovered or focused.
|
|
38
50
|
/// @prop {Color} icon-color [gray] Color for button icons.
|
|
51
|
+
/// @prop {Color} icon-color-hover [null] Optional color for icon when hovered
|
|
39
52
|
/// @prop {Dimension} icon-font-size [1.25rem] Font size for the button.
|
|
40
53
|
/// @prop {Number} line-height [1.2] Line height for button text.
|
|
41
54
|
/// @prop {Dimension} margin [1em] Margin for the button.
|
|
@@ -46,26 +59,44 @@ $-fallbacks: (
|
|
|
46
59
|
/// @prop {String} title-color [link] Color of the title of the button.
|
|
47
60
|
/// @prop {String} title-color-hover [link-hover] Color of the title of the button when hovered or focused.
|
|
48
61
|
/// @prop {Dimension} title-margin [0.5em] Margin for the button's title.
|
|
62
|
+
/// @prop {Boolean} cap [false] Enable left cap style
|
|
63
|
+
/// @prop {Color} cap-side ["left"] The side that gets the cap
|
|
64
|
+
/// @prop {Number} cap-match-radius [true] The cap should have be rounded to match the parent's border radius
|
|
65
|
+
/// @prop {Map} cap-options The options for cap (see element.cap for options)
|
|
66
|
+
/// @prop {Map} cap-options-hover The options for cap when hovered
|
|
49
67
|
|
|
50
68
|
$config: (
|
|
51
69
|
"background-color" : white,
|
|
52
|
-
"background-color-hover" :
|
|
53
|
-
"border-radius" :
|
|
70
|
+
"background-color-hover" : #F7F8F7,
|
|
71
|
+
"border-radius" : true,
|
|
72
|
+
"border-color" : null,
|
|
73
|
+
"border-width" : null,
|
|
54
74
|
"box-shadow" : true,
|
|
55
75
|
"box-shadow-hover" : true,
|
|
56
76
|
"color" : "type",
|
|
57
77
|
"color-hover" : "type",
|
|
58
78
|
"icon-color": gray,
|
|
79
|
+
"icon-color-hover": null,
|
|
59
80
|
"icon-font-size" : 1.25rem,
|
|
60
81
|
"line-height" : 1.2,
|
|
61
82
|
"margin" : 1em,
|
|
62
83
|
"margin-inline" : 0.75em,
|
|
63
84
|
"min-width": 20rem,
|
|
64
|
-
"padding-x": 0.
|
|
85
|
+
"padding-x": 0.75em,
|
|
65
86
|
"padding-y": 1em,
|
|
66
87
|
"title-color": "link",
|
|
67
88
|
"title-margin" : 0.5em,
|
|
68
89
|
"title-color-hover" : "link-hover",
|
|
90
|
+
"cap" : false,
|
|
91
|
+
"cap-side" : "left",
|
|
92
|
+
"cap-match-radius" : true,
|
|
93
|
+
"cap-options" : (
|
|
94
|
+
"color" : "link",
|
|
95
|
+
"size" : 0.5rem,
|
|
96
|
+
),
|
|
97
|
+
"cap-options-hover" : (
|
|
98
|
+
"color" : "link-hover"
|
|
99
|
+
),
|
|
69
100
|
) !default;
|
|
70
101
|
|
|
71
102
|
/// Change modules $config
|
|
@@ -89,50 +120,101 @@ $config: (
|
|
|
89
120
|
|
|
90
121
|
/// Prints component styles
|
|
91
122
|
/// @example scss
|
|
92
|
-
///
|
|
123
|
+
/// @include ulu.component-button-verbose-styles();
|
|
124
|
+
/// @example html {preview} - Basic Example
|
|
125
|
+
/// <a href="#" class="button-verbose">
|
|
126
|
+
/// <strong class="button-verbose__title">Example Link</strong>
|
|
127
|
+
/// <span class="button-verbose__body">This is the body</span>
|
|
128
|
+
/// <span class="button-verbose__icon fas fa-arrow-right" aria-hidden="true"></span>
|
|
129
|
+
/// </a>
|
|
93
130
|
|
|
94
131
|
@mixin styles {
|
|
95
|
-
.button-verbose
|
|
132
|
+
$prefix: selector.class("button-verbose");
|
|
133
|
+
$padding-x: get("padding-x");
|
|
134
|
+
$padding-y: get("padding-y");
|
|
135
|
+
$padding-right: ($padding-x * 2) + 1em;
|
|
136
|
+
$cap-side: get("cap-side");
|
|
137
|
+
$cap-defaults: (
|
|
138
|
+
"offset" : utils.if-type("number", get("border-width"), 0),
|
|
139
|
+
"border-radius" : if(get("cap-match-radius"), get("border-radius"), 0),
|
|
140
|
+
"padding-adjust" : if(utils.is-side($cap-side), $padding-x, $padding-y)
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
#{ $prefix } {
|
|
144
|
+
position: relative; // For cap and icon
|
|
145
|
+
display: block;
|
|
96
146
|
text-decoration: none;
|
|
97
|
-
border-radius:
|
|
147
|
+
border-radius: get("border-radius");
|
|
148
|
+
@if (get("border-width")) {
|
|
149
|
+
border: get("border-width") solid color.get(get("border-color"));
|
|
150
|
+
}
|
|
98
151
|
box-shadow: get("box-shadow");
|
|
99
152
|
line-height: get("line-height");
|
|
100
|
-
position: relative;
|
|
101
|
-
display: block;
|
|
102
153
|
margin-bottom: get("margin");
|
|
103
154
|
max-width: 100%;
|
|
104
155
|
width: get("min-width");
|
|
105
|
-
background-color: get("background-color");
|
|
106
|
-
padding:
|
|
107
|
-
padding-right: (get("padding-x") * 2) + 1em;
|
|
156
|
+
background-color: color.get(get("background-color"));
|
|
157
|
+
padding: $padding-y $padding-right $padding-y $padding-x;
|
|
108
158
|
color: color.get(get("color"));
|
|
159
|
+
text-align: left;
|
|
160
|
+
|
|
109
161
|
&:hover {
|
|
110
162
|
color: color.get(get("color-hover"));
|
|
111
163
|
background-color: color.get(get("background-color-hover"));
|
|
112
164
|
box-shadow: get("box-shadow-hover");
|
|
113
|
-
|
|
114
|
-
|
|
165
|
+
@if get("title-color-hover") {
|
|
166
|
+
#{ $prefix }__title {
|
|
167
|
+
color: color.get(get("title-color-hover"));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
@if get("icon-color-hover") {
|
|
171
|
+
#{ $prefix }__icon {
|
|
172
|
+
color: color.get(get("icon-color-hover"));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
@if get("cap") {
|
|
177
|
+
@include element.cap(
|
|
178
|
+
$side: $cap-side,
|
|
179
|
+
$options: map.merge($cap-defaults, get("cap-options"))
|
|
180
|
+
);
|
|
181
|
+
@if get("cap-options-hover") {
|
|
182
|
+
&:hover,
|
|
183
|
+
&:focus {
|
|
184
|
+
@include element.cap-appearance(
|
|
185
|
+
$side: $cap-side,
|
|
186
|
+
$options: get("cap-options-hover")
|
|
187
|
+
);
|
|
188
|
+
}
|
|
115
189
|
}
|
|
116
190
|
}
|
|
117
191
|
}
|
|
118
|
-
|
|
192
|
+
#{ $prefix }__title,
|
|
193
|
+
#{ $prefix }__body {
|
|
119
194
|
display: block;
|
|
120
|
-
|
|
195
|
+
&:first-child {
|
|
196
|
+
margin-bottom: get("title-margin");
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
#{ $prefix }__title {
|
|
121
200
|
color: color.get(get("title-color"));
|
|
122
201
|
}
|
|
123
|
-
|
|
202
|
+
#{ $prefix }__icon {
|
|
124
203
|
position: absolute;
|
|
125
204
|
top: 50%;
|
|
126
|
-
right:
|
|
205
|
+
right: $padding-x;
|
|
127
206
|
transform: translateY(-50%);
|
|
128
207
|
font-size: get("icon-font-size");
|
|
129
|
-
color: get("icon-color");
|
|
208
|
+
color: color.get(get("icon-color"));
|
|
130
209
|
}
|
|
131
|
-
|
|
210
|
+
#{ $prefix }--inline {
|
|
132
211
|
display: inline-block;
|
|
133
212
|
margin-right: get("margin-inline");
|
|
213
|
+
&:last-child {
|
|
214
|
+
margin-right: 0;
|
|
215
|
+
}
|
|
134
216
|
}
|
|
135
|
-
|
|
217
|
+
#{ $prefix }--full-width {
|
|
136
218
|
width: 100%;
|
|
137
219
|
}
|
|
138
220
|
}
|
|
@@ -10,13 +10,10 @@
|
|
|
10
10
|
@use "../utils";
|
|
11
11
|
@use "../selector";
|
|
12
12
|
@use "../element";
|
|
13
|
+
@use "../color";
|
|
13
14
|
|
|
14
15
|
// Used for function fallback
|
|
15
16
|
$-fallbacks: (
|
|
16
|
-
"border" : (
|
|
17
|
-
"function" : meta.get-function("get-rule-style", false, "element"),
|
|
18
|
-
"property" : "light"
|
|
19
|
-
),
|
|
20
17
|
"border-radius" : (
|
|
21
18
|
"function" : meta.get-function("get", false, "element"),
|
|
22
19
|
"property" : "border-radius"
|
|
@@ -26,69 +23,56 @@ $-fallbacks: (
|
|
|
26
23
|
/// Module Settings
|
|
27
24
|
/// @type Map
|
|
28
25
|
/// @prop {Color} background-color [rgb(240, 240, 240)] The background color of the Callout.
|
|
29
|
-
/// @prop {
|
|
26
|
+
/// @prop {Color} border-color ["rule-light"] The border color of the Callout.
|
|
30
27
|
/// @prop {Boolean} border-radius [true] The border radius of the Callout.
|
|
28
|
+
/// @prop {Dimension} border-width [1px] The border width of the Callout.
|
|
31
29
|
/// @prop {CssValue} box-shadow [none] The box-shadow of the Callout.
|
|
32
|
-
/// @prop {Boolean}
|
|
33
|
-
/// @prop {
|
|
34
|
-
/// @prop {
|
|
30
|
+
/// @prop {Boolean} caps-disabled [false] If set will not output any cap styles for both base and styles
|
|
31
|
+
/// @prop {Boolean} cap [false] Toggles the use of caps on default callout
|
|
32
|
+
/// @prop {Boolean} cap-side ["left"] The side that gets the cap
|
|
33
|
+
/// @prop {Number} cap-match-radius [true] The cap should have be rounded to match the parent's border radius
|
|
34
|
+
/// @prop {Map} cap-options The options for cap (see element.cap for options)
|
|
35
35
|
/// @prop {Dimension} margin [2rem] Bottom margin of the Callout.
|
|
36
36
|
/// @prop {Dimension} padding [1.5rem] Padding of the Callout.
|
|
37
37
|
|
|
38
38
|
$config: (
|
|
39
39
|
"background-color" : rgb(240, 240, 240),
|
|
40
|
-
"border" :
|
|
41
|
-
"border-radius" :
|
|
40
|
+
"border-color" : "rule-light",
|
|
41
|
+
"border-radius" : 6px,
|
|
42
|
+
"border-width" : 1px,
|
|
42
43
|
"box-shadow" : none,
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
44
|
+
"caps-disabled" : false,
|
|
45
|
+
"cap" : false,
|
|
46
|
+
"cap-side" : "left",
|
|
47
|
+
"cap-match-radius" : false,
|
|
48
|
+
"cap-options" : (
|
|
49
|
+
"color" : rgb(160, 160, 160),
|
|
50
|
+
"size" : 0.5rem,
|
|
51
|
+
),
|
|
46
52
|
"margin" : 2rem,
|
|
47
53
|
"padding" : 1.5rem,
|
|
48
54
|
) !default;
|
|
49
55
|
|
|
56
|
+
/// Styles Map (for unique variations/modifiers)
|
|
57
|
+
/// - Adjust this with set-styles
|
|
58
|
+
/// @type Map
|
|
59
|
+
|
|
50
60
|
$styles: (
|
|
51
|
-
"background-dark" : (
|
|
52
|
-
"background-color" : rgb(240, 240, 240)
|
|
53
|
-
),
|
|
54
61
|
"outline" : (
|
|
55
62
|
"background-color": transparent
|
|
56
63
|
),
|
|
57
|
-
"
|
|
58
|
-
"background-color" :
|
|
59
|
-
"border-color" : gray
|
|
60
|
-
),
|
|
61
|
-
"informative" : (
|
|
62
|
-
"background-color" : #e7f6f8,
|
|
63
|
-
"left-cap-color" : #00bde3,
|
|
64
|
-
"left-cap" : true,
|
|
65
|
-
"left-cap-width": 0.5rem
|
|
64
|
+
"info" : (
|
|
65
|
+
"background-color" : "info-background",
|
|
66
66
|
),
|
|
67
67
|
"warning" : (
|
|
68
|
-
"background-color" :
|
|
69
|
-
"left-cap-color" : #ffbe2e,
|
|
70
|
-
"left-cap" : true,
|
|
71
|
-
"left-cap-width": 0.5rem
|
|
68
|
+
"background-color" : "info-background",
|
|
72
69
|
),
|
|
73
70
|
"success" : (
|
|
74
|
-
"background-color" :
|
|
75
|
-
"left-cap-color" : #00a91c,
|
|
76
|
-
"left-cap" : true,
|
|
77
|
-
"left-cap-width": 0.5rem
|
|
71
|
+
"background-color" : "success-background",
|
|
78
72
|
),
|
|
79
73
|
"danger" : (
|
|
80
|
-
"background-color" :
|
|
81
|
-
"left-cap-color" : #d54309,
|
|
82
|
-
"left-cap" : true,
|
|
83
|
-
"left-cap-width": 0.5rem
|
|
74
|
+
"background-color" : "danger-background",
|
|
84
75
|
),
|
|
85
|
-
"emergency" : (
|
|
86
|
-
"background-color" : #9c3d10,
|
|
87
|
-
"left-cap-color" : #9c3d10,
|
|
88
|
-
"left-cap" : true,
|
|
89
|
-
"color" : white,
|
|
90
|
-
"left-cap-width": 0.5rem
|
|
91
|
-
)
|
|
92
76
|
) !default;
|
|
93
77
|
|
|
94
78
|
/// Change modules $config
|
|
@@ -111,64 +95,128 @@ $styles: (
|
|
|
111
95
|
}
|
|
112
96
|
|
|
113
97
|
/// Set callout style variations
|
|
114
|
-
///
|
|
98
|
+
/// - Styles that modify padding when using mix-match caps on/off should be included last
|
|
99
|
+
/// @param {Map} $changes Map of changes (options for style include [background-color, color, border-color, border-radius, border-width, box-shadow, padding, cap, cap-options]
|
|
115
100
|
/// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
|
|
116
101
|
|
|
117
102
|
@mixin set-styles($changes, $merge-mode: null) {
|
|
118
103
|
$styles: utils.map-merge($styles, $changes, $merge-mode) !global;
|
|
119
104
|
}
|
|
120
105
|
|
|
121
|
-
/// Output styling for a callout that adds a left cap
|
|
122
|
-
/// @param {Dimension} $width The width of the left cap
|
|
123
|
-
/// @param {Color} $color The left cap color
|
|
124
|
-
|
|
125
|
-
@mixin left-cap($width: get("left-cap-width"), $color: get("left-cap-color")) {
|
|
126
|
-
position: relative;
|
|
127
|
-
border-top-left-radius: 0;
|
|
128
|
-
border-bottom-left-radius: 0;
|
|
129
|
-
&::before {
|
|
130
|
-
position: absolute;
|
|
131
|
-
content: "";
|
|
132
|
-
left: 0;
|
|
133
|
-
top: 0;
|
|
134
|
-
bottom: 0;
|
|
135
|
-
width: $width;
|
|
136
|
-
background-color: $color;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
106
|
/// Output component stylesheet
|
|
141
107
|
/// @example scss
|
|
142
108
|
/// @include ulu.component-callout-styles();
|
|
143
109
|
|
|
144
110
|
@mixin styles {
|
|
145
|
-
$prefix: selector.class("callout");
|
|
111
|
+
$prefix: selector.class("callout");
|
|
112
|
+
$padding: get("padding");
|
|
113
|
+
$padding-info: utils.get-spacing($padding);
|
|
114
|
+
$cap-options: get("cap-options");
|
|
115
|
+
$cap-size: map.get($cap-options, "size");
|
|
116
|
+
$cap-side: get("cap-side");
|
|
146
117
|
|
|
147
118
|
#{ $prefix } {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
119
|
+
position: relative; // For cap
|
|
120
|
+
background-color: color.get(get("background-color"));
|
|
121
|
+
padding: $padding;
|
|
122
|
+
border: get("border-width") solid color.get(get("border-color"));
|
|
151
123
|
margin-bottom: get("margin");
|
|
152
124
|
box-shadow: get("box-shadow");
|
|
153
125
|
border-radius: get("border-radius");
|
|
154
126
|
& >:first-child {
|
|
155
127
|
margin-top: 0;
|
|
156
128
|
}
|
|
157
|
-
|
|
158
|
-
|
|
129
|
+
|
|
130
|
+
// If we have left cap on default we reuse this for all
|
|
131
|
+
// Else we will print it out manually for each unique style
|
|
132
|
+
@if (not get("caps-disabled")) {
|
|
133
|
+
$cap-defaults: (
|
|
134
|
+
"offset" : get("border-width"),
|
|
135
|
+
"border-radius" : if(get("cap-match-radius"), get("border-radius"), null),
|
|
136
|
+
// "padding-adjust" : map.get($padding-info, $cap-side)
|
|
137
|
+
);
|
|
138
|
+
@include element.cap(
|
|
139
|
+
$side: $cap-side,
|
|
140
|
+
$options: map.merge($cap-defaults, $cap-options)
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// If the left cap is disabled we still include it's CSS but we hide it
|
|
145
|
+
// so that other styles of callouts can use it
|
|
146
|
+
@if (not get("cap")) {
|
|
147
|
+
&::before {
|
|
148
|
+
content: none;
|
|
149
|
+
}
|
|
150
|
+
// Since this is hidden and reused we need to not use padding adjust unless it
|
|
151
|
+
// was visible
|
|
152
|
+
} @else if ($cap-size) {
|
|
153
|
+
padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);
|
|
159
154
|
}
|
|
160
155
|
}
|
|
156
|
+
|
|
157
|
+
@include -output-style-modifiers();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Output Each Style Modifier
|
|
161
|
+
// - Note if cap is not disabled this will just update appearance values of cap styling
|
|
162
|
+
@mixin -output-style-modifiers() {
|
|
163
|
+
$prefix: selector.class("callout");
|
|
164
|
+
$caps-enabled: not get("caps-disabled");
|
|
165
|
+
$cap-side: get("cap-side");
|
|
166
|
+
|
|
161
167
|
@each $name, $style in $styles {
|
|
168
|
+
$cap: map.get($style, "cap");
|
|
169
|
+
$padding: map.get($style, "padding");
|
|
170
|
+
$border-radius: map.get($style, "border-radius");
|
|
171
|
+
$background-color: map.get($style, "background-color");
|
|
172
|
+
$color: map.get($style, "color");
|
|
173
|
+
$border-color: map.get($style, "border-color");
|
|
174
|
+
$border-width: map.get($style, "border-width");
|
|
175
|
+
$box-shadow: map.get($style, "box-shadow");
|
|
176
|
+
$cap-match-radius: map.get($style, "cap-match-radius");
|
|
177
|
+
|
|
162
178
|
#{ $prefix }--#{ $name } {
|
|
163
|
-
background-color:
|
|
164
|
-
color:
|
|
165
|
-
border:
|
|
166
|
-
border-
|
|
167
|
-
border-
|
|
168
|
-
box-shadow:
|
|
169
|
-
padding:
|
|
170
|
-
|
|
171
|
-
|
|
179
|
+
background-color: color.get($background-color);
|
|
180
|
+
color: color.get($color);
|
|
181
|
+
border-radius: $border-radius;
|
|
182
|
+
border-color: color.get($border-color);
|
|
183
|
+
border-width: $border-width;
|
|
184
|
+
box-shadow: $box-shadow;
|
|
185
|
+
padding: $padding;
|
|
186
|
+
|
|
187
|
+
@if ($cap and $caps-enabled) {
|
|
188
|
+
$match-radius: utils.if-type("bool", $cap-match-radius, get("cap-match-radius"));
|
|
189
|
+
// Padding adjust always has to be set (since size could change or padding)
|
|
190
|
+
$padding-info: utils.get-spacing(if($padding, $padding, get("padding")));
|
|
191
|
+
$cap-radius: utils.if-type("number", $border-radius, get("border-radius"));
|
|
192
|
+
$cap-options: utils.ensure-map(map.get($style, "cap-options"));
|
|
193
|
+
$cap-defaults: (
|
|
194
|
+
"size" : map.get(get("cap-options"), "size"),
|
|
195
|
+
"padding-adjust" : map.get($padding-info, $cap-side),
|
|
196
|
+
"offset" : $border-width,
|
|
197
|
+
"border-radius" : if($match-radius, $cap-radius, null)
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
@include element.cap-appearance(
|
|
201
|
+
$side: $cap-side,
|
|
202
|
+
$options: map.merge($cap-defaults, $cap-options),
|
|
203
|
+
$before: true
|
|
204
|
+
);
|
|
205
|
+
|
|
206
|
+
// Because the main callout's cap may not be visible
|
|
207
|
+
&::before {
|
|
208
|
+
content: "";
|
|
209
|
+
}
|
|
210
|
+
// If set to false remove the cap (if enabled) and reset default cap padding adjust
|
|
211
|
+
} @else if ($cap == false and $caps-enabled) {
|
|
212
|
+
// if this style doesn't set padding
|
|
213
|
+
@if (not $padding) {
|
|
214
|
+
$padding-info: utils.get-spacing(get("padding"));
|
|
215
|
+
padding-#{ $cap-side }: map.get($padding-info, $cap-side);
|
|
216
|
+
}
|
|
217
|
+
&::before {
|
|
218
|
+
content: none;
|
|
219
|
+
}
|
|
172
220
|
}
|
|
173
221
|
}
|
|
174
222
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
@use "../utils";
|
|
11
11
|
@use "../element";
|
|
12
12
|
@use "../typography";
|
|
13
|
+
@use "../color";
|
|
13
14
|
|
|
14
15
|
// Used for function fallback
|
|
15
16
|
$-fallbacks: (
|
|
@@ -29,6 +30,23 @@ $-fallbacks: (
|
|
|
29
30
|
|
|
30
31
|
/// Module Settings
|
|
31
32
|
/// @type Map
|
|
33
|
+
/// @prop {Boolean} text-alignment-matches [false] Toggles matching alignment.
|
|
34
|
+
/// @prop {Boolean} text-alignment-matches-center-only [true] Toggles matching alignment, but only if center.
|
|
35
|
+
/// @prop {Color} background-color [white] Background color of the component.
|
|
36
|
+
/// @prop {CssValue} box-shadow [true] Box shadow the captioned figure.
|
|
37
|
+
/// @prop {Dimension} margin-bottom [true] Bottom margin of the captioned figure.
|
|
38
|
+
/// @prop {Number} line-height [true] Line height of the captioned figure caption.
|
|
39
|
+
/// @prop {Dimension} caption-padding [0.5em] Padding of the captioned figure caption.
|
|
40
|
+
/// @prop {Color} color [null] Font color of the captioned figure caption.
|
|
41
|
+
/// @prop {String} type-size ["small"] Font size of the captioned figure caption.
|
|
42
|
+
/// @prop {Dimension} caption-max-width [min(100%, 15em)] Max width of the captioned figure caption.
|
|
43
|
+
/// @prop {Color} caption-background-color [rgba(255,255,255,0.7)] background color of the captioned figure caption.
|
|
44
|
+
/// @prop {CssValue} caption-backdrop-filter [blur(2px)] Filter of the backdrop of the captioned figure.
|
|
45
|
+
/// @prop {Color} traditional-caption-color [null] Traditional style for font color.
|
|
46
|
+
/// @prop {Color} traditional-caption-background-color [transparent] Traditional style for caption background color.
|
|
47
|
+
/// @prop {Dimension} traditional-caption-padding [0.5em] Traditional style for caption padding.
|
|
48
|
+
/// @prop {Dimension} traditional-caption-max-width [35em] Traditional style for caption max width.
|
|
49
|
+
/// @prop {CssValue} traditional-caption-text-align [right] Traditional style for caption text-align.
|
|
32
50
|
|
|
33
51
|
$config: (
|
|
34
52
|
"text-alignment-matches" : false,
|
|
@@ -82,7 +100,7 @@ $config: (
|
|
|
82
100
|
display: block;
|
|
83
101
|
position: relative;
|
|
84
102
|
margin-bottom: get("margin-bottom");
|
|
85
|
-
background-color: get("background-color");
|
|
103
|
+
background-color: color.get(get("background-color"));
|
|
86
104
|
> img {
|
|
87
105
|
width: 100%;
|
|
88
106
|
height: auto;
|
|
@@ -101,20 +119,20 @@ $config: (
|
|
|
101
119
|
}
|
|
102
120
|
#{ $prefix }__caption {
|
|
103
121
|
position: absolute;
|
|
104
|
-
color: get("color");
|
|
122
|
+
color: color.get(get("color"));
|
|
105
123
|
@include typography.size(get("type-size"), $only-font-size: true);
|
|
106
124
|
line-height: get("line-height");
|
|
107
125
|
max-width: get("caption-max-width");
|
|
108
|
-
background-color: get("caption-background-color");
|
|
126
|
+
background-color: color.get(get("caption-background-color"));
|
|
109
127
|
padding: get("caption-padding");
|
|
110
128
|
backdrop-filter: get("caption-backdrop-filter");
|
|
111
129
|
}
|
|
112
130
|
#{ $prefix }--traditional {
|
|
113
131
|
#{ $prefix }__caption {
|
|
114
132
|
position: static;
|
|
115
|
-
color: get("traditional-caption-color");
|
|
133
|
+
color: color.get(get("traditional-caption-color"));
|
|
116
134
|
max-width: get("traditional-caption-max-width");
|
|
117
|
-
background-color: get("traditional-caption-background-color");
|
|
135
|
+
background-color: color.get(get("traditional-caption-background-color"));
|
|
118
136
|
padding: get("traditional-caption-padding");
|
|
119
137
|
text-align: get("traditional-caption-text-align");
|
|
120
138
|
@if (get("traditional-caption-text-align") == right) {
|