@ulu/frontend 0.0.23 → 0.1.0-beta.0
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/deprecated/js/drupal-programmatic-modal.js +91 -0
- package/{js/ui/modals.js → deprecated/js/micromodal-modals.js} +41 -67
- package/dist/ulu-frontend.min.css +1 -1
- package/dist/ulu-frontend.min.js +70 -1
- package/index.js +6 -1
- package/js/events/index.js +58 -7
- package/js/index.js +3 -7
- package/js/{helpers/css-breakpoint.js → ui/breakpoints.js} +9 -11
- package/js/ui/collapsible.js +195 -0
- package/js/ui/dialog.js +157 -0
- package/js/ui/dialog.todo +37 -0
- package/js/ui/flipcard.js +55 -11
- package/js/ui/grid.js +2 -47
- package/js/ui/index.js +21 -0
- package/js/ui/modal-builder.js +197 -0
- package/js/ui/overflow-scroller-pager.js +1 -1
- package/js/ui/overflow-scroller.js +8 -5
- package/js/ui/page.js +14 -0
- package/js/ui/popover.js +135 -0
- package/js/ui/print-details.js +44 -0
- package/js/ui/print.js +67 -0
- package/js/ui/programmatic-modal.js +79 -81
- package/js/ui/proxy-click.js +80 -0
- package/js/ui/resizer.js +3 -3
- package/js/ui/scroll-slider.js +56 -0
- package/js/ui/scrollpoint.js +300 -0
- package/js/ui/slider.js +72 -10
- package/js/ui/tabs.js +85 -58
- package/js/ui/theme-toggle.js +129 -0
- package/js/ui/tooltip.js +268 -67
- package/js/utils/{logger.js → class-logger.js} +6 -5
- package/js/utils/dom.js +122 -0
- package/js/utils/file-save.js +67 -0
- package/js/utils/floating-ui.js +83 -0
- package/js/utils/id.js +22 -0
- package/js/utils/index.js +7 -0
- package/js/{helpers → utils}/pause-youtube-video.js +1 -1
- package/package.json +32 -11
- package/resources/drupal/twig-macros/accordion.twig +99 -0
- package/resources/drupal/twig-macros/dropdown.twig +44 -0
- package/resources/drupal/twig-macros/flipcard.twig +69 -0
- package/resources/drupal/twig-macros/image.twig +30 -0
- package/resources/drupal/twig-macros/layout.twig +338 -0
- package/resources/drupal/twig-macros/slider.twig +214 -0
- package/resources/drupal/twig-macros/tabs.twig +84 -0
- package/scss/README.md +13 -1
- package/scss/_breakpoint.scss +69 -26
- package/scss/_button.scss +148 -57
- package/scss/_color.scss +46 -28
- package/scss/_cssvar.scss +103 -12
- package/scss/_element.scss +84 -67
- package/scss/_index.scss +0 -3
- package/scss/_layout.scss +57 -26
- package/scss/_path.scss +2 -2
- package/scss/_selector.scss +20 -11
- package/scss/_typography.scss +115 -82
- package/scss/_units.scss +14 -13
- package/scss/_utils.scss +280 -18
- package/scss/base/_color.scss +2 -1
- package/scss/base/_elements.scss +61 -35
- package/scss/base/_index.scss +60 -23
- package/scss/base/_keyframes.scss +115 -16
- package/scss/base/_layout.scss +10 -6
- package/scss/base/_normalize.scss +6 -122
- package/scss/base/_print.scss +49 -0
- package/scss/base/_root.scss +28 -0
- package/scss/base/_typography.scss +4 -1
- package/scss/components/_accordion.scss +217 -0
- package/scss/components/_adaptive-spacing.scss +148 -0
- package/scss/components/_badge.scss +17 -14
- package/scss/components/_button-verbose.scss +138 -0
- package/scss/components/_button.scss +9 -4
- package/scss/components/_callout.scss +175 -0
- package/scss/components/_captioned-figure.scss +173 -0
- package/scss/components/_card-grid.scss +75 -0
- package/scss/components/_card.scss +420 -0
- package/scss/components/_css-icon.scss +433 -0
- package/scss/{_grid.scss → components/_data-grid.scss} +100 -68
- package/scss/components/_data-table.scss +180 -0
- package/scss/components/_fill-context.scss +20 -22
- package/scss/components/_flipcard-grid.scss +66 -0
- package/scss/components/_flipcard.scss +304 -0
- package/scss/components/_form-theme.scss +633 -0
- package/scss/components/_hero.scss +183 -0
- package/scss/components/_horizontal-rule.scss +51 -0
- package/scss/components/_image-grid.scss +71 -0
- package/scss/components/_index.scss +276 -38
- package/scss/components/_links.scss +1 -1
- package/scss/components/_list-lines.scss +14 -3
- package/scss/components/_list-ordered.scss +3 -1
- package/scss/components/_list-unordered.scss +3 -1
- package/scss/components/_menu-stack.scss +245 -0
- package/scss/components/_modal.scss +495 -0
- package/scss/components/_nav-strip.scss +148 -0
- package/scss/components/_overlay-section.scss +122 -0
- package/scss/components/_pager.scss +168 -0
- package/scss/components/_placeholder-block.scss +121 -0
- package/scss/components/_popover.scss +263 -0
- package/scss/components/_pull-quote.scss +111 -0
- package/scss/components/_ratio-box.scss +64 -0
- package/scss/components/_rule.scss +12 -9
- package/scss/components/_scroll-slider.scss +204 -0
- package/scss/components/_skip-link.scss +92 -0
- package/scss/components/_slider.scss +241 -0
- package/scss/components/_spoke-spinner.scss +193 -0
- package/scss/components/_tabs.scss +179 -0
- package/scss/components/_tag.scss +142 -0
- package/scss/components/_tile-button.scss +131 -0
- package/scss/components/_tile-grid-overlay.scss +132 -0
- package/scss/components/_tile-grid.scss +172 -0
- package/scss/components/_vignette.scss +65 -0
- package/scss/components/_wysiwyg.scss +94 -0
- package/scss/helpers/_color.scss +1 -0
- package/scss/helpers/_display.scss +2 -1
- package/scss/helpers/_index.scss +45 -22
- package/scss/helpers/_print.scss +20 -43
- package/scss/helpers/_typography.scss +3 -0
- package/scss/helpers/_units.scss +10 -13
- package/scss/helpers/_utilities.scss +5 -1
- package/scss/stylesheets/base-styles.scss +7 -0
- package/scss/stylesheets/component-styles.scss +7 -0
- package/scss/stylesheets/helper-styles.scss +7 -0
- package/types/events/index.d.ts +1 -1
- package/types/events/index.d.ts.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/{helpers/css-breakpoint.d.ts → ui/breakpoints.d.ts} +3 -3
- package/types/ui/breakpoints.d.ts.map +1 -0
- package/types/ui/collapsible.d.ts +67 -0
- package/types/ui/collapsible.d.ts.map +1 -0
- package/types/ui/dialog.d.ts +42 -0
- package/types/ui/dialog.d.ts.map +1 -0
- package/types/ui/flipcard.d.ts +8 -1
- package/types/ui/flipcard.d.ts.map +1 -1
- package/types/ui/grid.d.ts +0 -11
- package/types/ui/grid.d.ts.map +1 -1
- package/types/ui/index.d.ts +23 -0
- package/types/ui/index.d.ts.map +1 -0
- package/types/ui/modal-builder.d.ts +54 -0
- package/types/ui/modal-builder.d.ts.map +1 -0
- package/types/ui/overflow-scroller-pager.d.ts +1 -1
- package/types/ui/overflow-scroller-pager.d.ts.map +1 -1
- package/types/ui/overflow-scroller.d.ts +3 -1
- package/types/ui/overflow-scroller.d.ts.map +1 -1
- package/types/ui/page.d.ts +5 -0
- package/types/ui/page.d.ts.map +1 -0
- package/types/ui/popover.d.ts +40 -0
- package/types/ui/popover.d.ts.map +1 -0
- package/types/ui/print-details.d.ts +10 -0
- package/types/ui/print-details.d.ts.map +1 -0
- package/types/ui/print.d.ts +10 -0
- package/types/ui/print.d.ts.map +1 -0
- package/types/ui/programmatic-modal.d.ts +19 -1
- package/types/ui/programmatic-modal.d.ts.map +1 -1
- package/types/ui/proxy-click.d.ts +18 -0
- package/types/ui/proxy-click.d.ts.map +1 -0
- package/types/ui/resizer.d.ts +1 -1
- package/types/ui/resizer.d.ts.map +1 -1
- package/types/ui/scroll-slider.d.ts +13 -0
- package/types/ui/scroll-slider.d.ts.map +1 -0
- package/types/ui/scrollpoint.d.ts +133 -0
- package/types/ui/scrollpoint.d.ts.map +1 -0
- package/types/ui/slider.d.ts +14 -2
- package/types/ui/slider.d.ts.map +1 -1
- package/types/ui/tabs.d.ts +22 -0
- package/types/ui/tabs.d.ts.map +1 -1
- package/types/ui/theme-toggle.d.ts +14 -0
- package/types/ui/theme-toggle.d.ts.map +1 -0
- package/types/ui/tooltip.d.ts +92 -10
- package/types/ui/tooltip.d.ts.map +1 -1
- package/types/utils/{logger.d.ts → class-logger.d.ts} +1 -1
- package/types/utils/class-logger.d.ts.map +1 -0
- package/types/utils/dom.d.ts +48 -0
- package/types/utils/dom.d.ts.map +1 -0
- package/types/utils/file-save.d.ts +64 -0
- package/types/utils/file-save.d.ts.map +1 -0
- package/types/utils/floating-ui.d.ts +19 -0
- package/types/utils/floating-ui.d.ts.map +1 -0
- package/types/utils/id.d.ts +10 -0
- package/types/utils/id.d.ts.map +1 -0
- package/types/utils/index.d.ts +9 -0
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/pause-youtube-video.d.ts.map +1 -0
- package/js/helpers/file-save.js +0 -52
- package/js/helpers/scrollbar-width-property.js +0 -14
- package/project.todo +0 -22
- package/scss/_calculate.scss +0 -64
- package/scss/_utility.scss +0 -12
- package/types/helpers/css-breakpoint.d.ts.map +0 -1
- package/types/helpers/file-save.d.ts +0 -17
- package/types/helpers/file-save.d.ts.map +0 -1
- package/types/helpers/node-data-manager.d.ts +0 -45
- package/types/helpers/node-data-manager.d.ts.map +0 -1
- package/types/helpers/pause-youtube-video.d.ts.map +0 -1
- package/types/helpers/scrollbar-width-property.d.ts +0 -11
- package/types/helpers/scrollbar-width-property.d.ts.map +0 -1
- package/types/ui/modals.d.ts +0 -27
- package/types/ui/modals.d.ts.map +0 -1
- package/types/utils/logger.d.ts.map +0 -1
- package/vite.config.js +0 -36
- /package/{js/deprecated → deprecated/js}/doc-ready.js +0 -0
- /package/{js/deprecated → deprecated/js}/jquery-prototypes.js +0 -0
- /package/{js/deprecated → deprecated/js}/mini-collapsible-popper-positioning.js +0 -0
- /package/{js/deprecated → deprecated/js}/mini-collapsible.js +0 -0
- /package/{js/helpers → deprecated/js}/node-data-manager.js +0 -0
- /package/{js/deprecated → deprecated/js}/script-loader.js +0 -0
- /package/{js/deprecated → deprecated/js}/waypoints/README.md +0 -0
- /package/{js/deprecated → deprecated/js}/waypoints/anchor-menu.js +0 -0
- /package/{js/deprecated → deprecated/js}/waypoints/element-waypoint.js +0 -0
- /package/{js/deprecated → deprecated/js}/waypoints/examples/page-link-menu.md +0 -0
- /package/{js/deprecated → deprecated/js}/waypoints/state-in-attribute.js +0 -0
- /package/types/{helpers → utils}/pause-youtube-video.d.ts +0 -0
package/scss/_typography.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
////
|
|
2
2
|
/// @group typography
|
|
3
|
-
///
|
|
3
|
+
/// Manages typography settings, sizes and provides typography related utilities
|
|
4
4
|
////
|
|
5
5
|
|
|
6
6
|
@use "sass:map";
|
|
@@ -10,51 +10,62 @@
|
|
|
10
10
|
|
|
11
11
|
@use "color";
|
|
12
12
|
@use "utils";
|
|
13
|
-
@use "utility";
|
|
14
|
-
@use "calculate";
|
|
15
13
|
@use "breakpoint";
|
|
16
14
|
|
|
17
15
|
/// Module Settings
|
|
18
16
|
/// @type Map
|
|
19
|
-
/// @prop {
|
|
20
|
-
/// @prop {Number}
|
|
21
|
-
/// @prop {Number}
|
|
22
|
-
/// @prop {Number}
|
|
23
|
-
/// @prop {Number}
|
|
24
|
-
/// @prop {Number}
|
|
25
|
-
/// @prop {Number}
|
|
26
|
-
/// @prop {Number}
|
|
27
|
-
/// @prop {Number}
|
|
17
|
+
/// @prop {Dimension} letter-spacing-uppercase [0.04em]
|
|
18
|
+
/// @prop {Number} margin-bottom [1em] Default margin for typography (like paragraphs)
|
|
19
|
+
/// @prop {Number} margin-top [null] Default margin for typography (like paragraphs)
|
|
20
|
+
/// @prop {Number} responsive-change [0.05vw] Amount to scale typography by browser's width (use viewport units)
|
|
21
|
+
/// @prop {Number} scale-steps [5]
|
|
22
|
+
/// @prop {Number} size-ratio [1.8] Font size scale when using preset sizes, ratio mixin)
|
|
23
|
+
/// @prop {Number} size-line-height-ratio [0.97] Default line height scaling (when using preset sizes, ratio mixin). Can shrink line-height as size increase if desirable
|
|
24
|
+
/// @prop {Number} font-family [(ui-sans-serif, "Open Sans", Helvetica, Arial, sans-serif)] Default font family
|
|
25
|
+
/// @prop {Number} font-family-monospace [(Menlo, Consolas, Monaco, monospace)] Base font-family for monospace
|
|
26
|
+
/// @prop {CssValue} font-family-sans [(ui-sans-serif, "Open Sans", Helvetica, Arial, sans-serif)]
|
|
27
|
+
/// @prop {CssValue} font-family-serif [(Cambria, Georgia, serif]
|
|
28
|
+
/// @prop {Number} font-size [16px] Default font size (use pixels, converted, is used for rem base)
|
|
29
|
+
/// @prop {CssValue} font-weight [inherit]
|
|
30
|
+
/// @prop {CssValue} font-weight-bold [bold]
|
|
31
|
+
/// @prop {CssValue} font-weight-light [300]
|
|
32
|
+
/// @prop {CssValue} font-weight-normal [normal]
|
|
33
|
+
/// @prop {CssValue} font-weight-semibold [600]
|
|
34
|
+
/// @prop {Number} line-height [1.5] Default line height
|
|
35
|
+
/// @prop {Number} line-height-dense [1.3] Default dense line height
|
|
36
|
+
/// @prop {Number} line-height-densest [1.1]
|
|
37
|
+
/// @prop {Number} line-height-spaced [1.75]
|
|
28
38
|
|
|
29
39
|
$config: (
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"font-
|
|
38
|
-
"font-
|
|
39
|
-
"font-
|
|
40
|
-
"font-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"max-width"
|
|
52
|
-
"max-width-
|
|
40
|
+
"letter-spacing-uppercase": 0.04em,
|
|
41
|
+
"margin-bottom": 1em,
|
|
42
|
+
"margin-top": null,
|
|
43
|
+
"responsive-change": 0.05vw,
|
|
44
|
+
"scale-steps": 5,
|
|
45
|
+
"size-ratio": 1.8,
|
|
46
|
+
"size-line-height-ratio": 0.97,
|
|
47
|
+
"font-family": (ui-sans-serif, "Open Sans", Helvetica, Arial, sans-serif),
|
|
48
|
+
"font-family-monospace": (Menlo, Consolas, Monaco, monospace),
|
|
49
|
+
"font-family-sans": (ui-sans-serif, "Open Sans", Helvetica, Arial, sans-serif),
|
|
50
|
+
"font-family-serif": (Cambria, Georgia, serif),
|
|
51
|
+
"font-size": 16px,
|
|
52
|
+
"font-weight": inherit,
|
|
53
|
+
"font-weight-bold": bold,
|
|
54
|
+
"font-weight-light": 300,
|
|
55
|
+
"font-weight-normal": normal,
|
|
56
|
+
"font-weight-semibold": 600,
|
|
57
|
+
"line-height": 1.5,
|
|
58
|
+
"line-height-dense": 1.3,
|
|
59
|
+
"line-height-densest": 1.1,
|
|
60
|
+
"line-height-spaced": 1.75,
|
|
61
|
+
"max-width": 60em,
|
|
62
|
+
"max-width-large": 75em,
|
|
63
|
+
"max-width-small": 45em,
|
|
53
64
|
) !default;
|
|
54
65
|
|
|
55
66
|
/// Change modules $config
|
|
56
67
|
/// @param {Map} $changes Map of changes
|
|
57
|
-
/// @include typography
|
|
68
|
+
/// @include ulu.typography-set(( "font-size" : 14px ));
|
|
58
69
|
|
|
59
70
|
@mixin set($changes) {
|
|
60
71
|
$config: map.merge($config, $changes) !global;
|
|
@@ -62,7 +73,7 @@ $config: (
|
|
|
62
73
|
|
|
63
74
|
/// Get a config option
|
|
64
75
|
/// @param {Map} $changes Map of changes
|
|
65
|
-
/// @include typography
|
|
76
|
+
/// @include ulu.typography-get(( "font-size" : 14px ));
|
|
66
77
|
|
|
67
78
|
@function get($name) {
|
|
68
79
|
@return utils.require-map-get($config, $name, 'typography [config]');
|
|
@@ -73,7 +84,7 @@ $config: (
|
|
|
73
84
|
/// @return {Number} Scaled value
|
|
74
85
|
|
|
75
86
|
@function scale($step) {
|
|
76
|
-
@return
|
|
87
|
+
@return utils.ratio-scale-size(get("font-size"), get("size-ratio"), get("scale-steps"), $step);
|
|
77
88
|
}
|
|
78
89
|
|
|
79
90
|
/// Get scale of the line-height
|
|
@@ -82,7 +93,7 @@ $config: (
|
|
|
82
93
|
/// @todo Setup breakpoints
|
|
83
94
|
|
|
84
95
|
@function scale-line-height($step) {
|
|
85
|
-
@return
|
|
96
|
+
@return utils.ratio-scale-size(get("line-height"), get("size-line-height-ratio"), get("scale-steps"), $step);
|
|
86
97
|
}
|
|
87
98
|
|
|
88
99
|
/// Convert pixel value to rem value based on typography $font-size
|
|
@@ -111,7 +122,7 @@ $config: (
|
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
124
|
|
|
114
|
-
/// Break word
|
|
125
|
+
/// Output CSS Break word strategy
|
|
115
126
|
/// @param {Boolean} $force Force words to break (will have unusual breaks)
|
|
116
127
|
|
|
117
128
|
@mixin word-break($force: false) {
|
|
@@ -122,6 +133,7 @@ $config: (
|
|
|
122
133
|
|
|
123
134
|
/// Creates a size map
|
|
124
135
|
/// - This is just an accelerator for creating a size map
|
|
136
|
+
/// - This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)
|
|
125
137
|
/// - You can pass your own size maps using set-sizes()
|
|
126
138
|
/// @param {Number} $font-size Font size
|
|
127
139
|
/// @param {Number} $line-height Line height
|
|
@@ -130,13 +142,39 @@ $config: (
|
|
|
130
142
|
@function new-size($font-size, $line-height: true, $is-headline: false) {
|
|
131
143
|
@return (
|
|
132
144
|
"font-size": $font-size,
|
|
133
|
-
"font-weight" : if($is-headline, get("font-weight-
|
|
145
|
+
"font-weight" : if($is-headline, get("font-weight-bold"), null),
|
|
134
146
|
"line-height": $line-height,
|
|
147
|
+
"margin-bottom" : if($is-headline, get("margin-bottom"), null),
|
|
148
|
+
"margin-top" : if($is-headline, get("margin-top"), null),
|
|
135
149
|
"responsive" : true,
|
|
136
150
|
"helper-class" : if($is-headline, false, true),
|
|
137
151
|
"helper-class-prefixed" : true,
|
|
138
152
|
"base-class" : if($is-headline, true, false),
|
|
139
|
-
"base-class-prefixed" : false
|
|
153
|
+
"base-class-prefixed" : false,
|
|
154
|
+
"color" : if($is-headline, color.get("headline"), null)
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/// Function that returns default sizes
|
|
159
|
+
/// - Used to set the sizes initially and
|
|
160
|
+
/// - You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings
|
|
161
|
+
/// @return {Map} The default typography sizes
|
|
162
|
+
|
|
163
|
+
@function get-default-sizes() {
|
|
164
|
+
@return (
|
|
165
|
+
"small-x" : new-size(scale(-2)),
|
|
166
|
+
"small" : new-size(scale(-1)),
|
|
167
|
+
"base" : new-size(scale(0)),
|
|
168
|
+
"large" : new-size(scale(1), scale-line-height(1)),
|
|
169
|
+
"large-x" : new-size(scale(2), scale-line-height(2)),
|
|
170
|
+
"large-xx" : new-size(scale(3), scale-line-height(3)),
|
|
171
|
+
"large-xxx" : new-size(scale(4), scale-line-height(4)),
|
|
172
|
+
"h6" : new-size(scale(1), scale-line-height(1), true),
|
|
173
|
+
"h5" : new-size(scale(2), scale-line-height(2), true),
|
|
174
|
+
"h4" : new-size(scale(3), scale-line-height(3), true),
|
|
175
|
+
"h3" : new-size(scale(4), scale-line-height(4), true),
|
|
176
|
+
"h2" : new-size(scale(5), scale-line-height(5), true),
|
|
177
|
+
"h1" : new-size(scale(6), scale-line-height(6), true),
|
|
140
178
|
);
|
|
141
179
|
}
|
|
142
180
|
|
|
@@ -146,41 +184,37 @@ $config: (
|
|
|
146
184
|
/// @prop {Number} $size.name.font-size Font size in rems or pixels
|
|
147
185
|
/// @prop {Number} $size.name.line-height Line height (unitless)
|
|
148
186
|
/// @prop {Number} $size.name.responsive Apply responsive sizes
|
|
149
|
-
/// @prop {
|
|
187
|
+
/// @prop {Number} $size.name.breakpoints Map of breakpoints where each key is breakpoint with map of changes (ie. font-size, etc)
|
|
188
|
+
/// @prop {Number} $size.name.breakpoints.breakpoint.direction Direction the breakpoint should be applied to (ie. min/max)
|
|
189
|
+
/// @prop {Boolean} $size.name.base-class This style should be included in the base (top can be overridden)
|
|
150
190
|
/// @prop {Boolean} $size.name.helper-class This style should be included in the helpers (overrides)
|
|
151
|
-
/// @todo Add adaptive and use a map of breakpoints and whether it's up or down
|
|
152
|
-
/// @todo Add headlines
|
|
153
|
-
|
|
154
|
-
$sizes: (
|
|
155
|
-
"small-x" : new-size(scale(-2)),
|
|
156
|
-
"small" : new-size(scale(-1)),
|
|
157
|
-
"base" : new-size(scale(0)),
|
|
158
|
-
"large" : new-size(scale(1), scale-line-height(1)),
|
|
159
|
-
"large-x" : new-size(scale(2), scale-line-height(2)),
|
|
160
|
-
"large-xx" : new-size(scale(3), scale-line-height(3)),
|
|
161
|
-
"large-xxx" : new-size(scale(4), scale-line-height(4)),
|
|
162
|
-
"h1" : new-size(scale(6), scale-line-height(6), true),
|
|
163
|
-
"h2" : new-size(scale(5), scale-line-height(5), true),
|
|
164
|
-
"h3" : new-size(scale(4), scale-line-height(4), true),
|
|
165
|
-
"h4" : new-size(scale(3), scale-line-height(3), true),
|
|
166
|
-
"h5" : new-size(scale(2), scale-line-height(2), true),
|
|
167
|
-
"h6" : new-size(scale(1), scale-line-height(1), true)
|
|
168
|
-
) !default;
|
|
169
191
|
|
|
170
|
-
|
|
192
|
+
$sizes: get-default-sizes() !default;
|
|
193
|
+
|
|
194
|
+
/// Configure the typography sizes
|
|
171
195
|
/// @param {Map} $changes A map to merge into the color palette
|
|
172
|
-
/// @param {Map} $
|
|
173
|
-
/// @
|
|
174
|
-
///
|
|
175
|
-
///
|
|
176
|
-
///
|
|
177
|
-
///
|
|
196
|
+
/// @param {Map} $merge-mode [null] Merge strategy see, utils.map-merge options
|
|
197
|
+
/// @example scss - Adjusting the h1 and h2 sizes while keeping pre-existing sizes by using deep merge
|
|
198
|
+
/// @include ulu.typography-set-sizes((
|
|
199
|
+
/// "h1" : (
|
|
200
|
+
/// "color" : "accent",
|
|
201
|
+
/// "font-size": 50px,
|
|
202
|
+
/// "margin-top" : null,
|
|
203
|
+
/// "margin-bottom" : 0.5em
|
|
204
|
+
/// ),
|
|
205
|
+
/// "h2" : (
|
|
206
|
+
/// "font-size": 38px,
|
|
207
|
+
/// "color" : blue,
|
|
208
|
+
/// "margin-top" : 2.5em,
|
|
209
|
+
/// "margin-bottom" : 1em,
|
|
210
|
+
/// ),
|
|
211
|
+
/// ), "deep");
|
|
178
212
|
|
|
179
213
|
@mixin set-sizes($changes, $merge-mode: null) {
|
|
180
214
|
$sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;
|
|
181
215
|
}
|
|
182
216
|
|
|
183
|
-
/// Get a size's map
|
|
217
|
+
/// Get a specific size's settings map
|
|
184
218
|
/// @param {String} $name Name of size
|
|
185
219
|
/// @return {Map}
|
|
186
220
|
|
|
@@ -188,14 +222,12 @@ $sizes: (
|
|
|
188
222
|
@return utils.require-map-get($sizes, $name, 'typography [size]');
|
|
189
223
|
}
|
|
190
224
|
|
|
191
|
-
///
|
|
192
|
-
/// @
|
|
193
|
-
/// @
|
|
225
|
+
/// Check if a typography size exists
|
|
226
|
+
/// @param {String} $name Name of size
|
|
227
|
+
/// @return {Boolean}
|
|
194
228
|
|
|
195
|
-
@function
|
|
196
|
-
|
|
197
|
-
$font-size: map.get($size, "font-size");
|
|
198
|
-
@return rem($font-size);
|
|
229
|
+
@function has-size($name) {
|
|
230
|
+
@return utils.map-has($sizes, $name);
|
|
199
231
|
}
|
|
200
232
|
|
|
201
233
|
/// Forces conversion to unitless line-height
|
|
@@ -203,20 +235,21 @@ $sizes: (
|
|
|
203
235
|
/// @param {Number} $font-size Font size in px, em, or rem
|
|
204
236
|
|
|
205
237
|
@function unitless-line-height($line-height, $font-size) {
|
|
206
|
-
// Font size is rems, line-height is
|
|
238
|
+
// Font size is rems, line-height is unknown
|
|
207
239
|
@if (math.is-unitless($line-height)) {
|
|
208
240
|
@return $line-height;
|
|
209
241
|
}
|
|
210
242
|
$unit: math.unit($line-height);
|
|
211
243
|
@if ($unit == "em") {
|
|
212
|
-
@return
|
|
244
|
+
@return utils.strip-unit($line-height);
|
|
213
245
|
} @else if ($unit == "pixels" or $unit == "rem") {
|
|
214
246
|
$calc: math.div(rem($line-height), rem($font-size));
|
|
215
|
-
@return
|
|
247
|
+
@return utils.strip-unit($calc);
|
|
216
248
|
} @else {
|
|
217
249
|
@error "ULU: Unable to convert to unitless line-height for: #{ $line-height }";
|
|
218
250
|
}
|
|
219
251
|
}
|
|
252
|
+
|
|
220
253
|
/// Print a value from the size and convert it (to appropriate unit for framework)
|
|
221
254
|
/// @param {Map} $size Size's map
|
|
222
255
|
/// @param {String} $props The property to get
|
|
@@ -249,7 +282,6 @@ $sizes: (
|
|
|
249
282
|
}
|
|
250
283
|
}
|
|
251
284
|
|
|
252
|
-
|
|
253
285
|
/// Get a sizes property value that doesn't need conversion
|
|
254
286
|
/// - Reason: Will map to default if user set's size prop to true
|
|
255
287
|
/// @param {Map} $size Size's map
|
|
@@ -274,8 +306,8 @@ $sizes: (
|
|
|
274
306
|
|
|
275
307
|
/// Print a typography size (font-size, line-height)
|
|
276
308
|
/// @param {String} $nameOrMap Name to retrieve from sizes map or a unique size map that follows the API
|
|
277
|
-
/// @param {Map} $changes Modifications to be merged into size before
|
|
278
|
-
/// @param {Boolean} $only-font-size Only
|
|
309
|
+
/// @param {Map} $changes Modifications to be merged into size before output
|
|
310
|
+
/// @param {Boolean} $only-font-size Only output the font size
|
|
279
311
|
|
|
280
312
|
@mixin size($name, $changes: false, $only-font-size: null) {
|
|
281
313
|
$size: $name;
|
|
@@ -302,6 +334,7 @@ $sizes: (
|
|
|
302
334
|
@if (not $only-font-size) {
|
|
303
335
|
font-weight: get-size-value($size, "font-weight");
|
|
304
336
|
font-family: get-size-value($size, "font-family");
|
|
337
|
+
font-variation-settings: get-size-value($size, "font-variation-settings");
|
|
305
338
|
line-height: get-size-converted-value($size, "line-height");
|
|
306
339
|
margin-top: get-size-converted-value($size, "margin-top");
|
|
307
340
|
margin-bottom: get-size-converted-value($size, "margin-bottom");
|
package/scss/_units.scss
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
////
|
|
2
2
|
/// @group units
|
|
3
|
+
/// Manages common spacing values (used by utility classes like margin/padding)
|
|
3
4
|
////
|
|
4
5
|
|
|
5
6
|
@use "sass:meta";
|
|
@@ -8,26 +9,26 @@
|
|
|
8
9
|
|
|
9
10
|
/// Module Settings
|
|
10
11
|
/// @type Map
|
|
11
|
-
/// @prop {Number}
|
|
12
|
-
/// @prop {Number}
|
|
13
|
-
/// @prop {Number}
|
|
14
|
-
/// @prop {Number} large
|
|
15
|
-
/// @prop {Number}
|
|
16
|
-
/// @prop {Number}
|
|
12
|
+
/// @prop {Number} default [1rem] Base unit of measure
|
|
13
|
+
/// @prop {Number} large [1rem * 2]
|
|
14
|
+
/// @prop {Number} large-x [1rem * 3]
|
|
15
|
+
/// @prop {Number} large-xx [1rem * 4]
|
|
16
|
+
/// @prop {Number} small [1rem * 0.75]
|
|
17
|
+
/// @prop {Number} small-x [1rem * 0.5]
|
|
17
18
|
|
|
18
19
|
$config: (
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"large"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
20
|
+
"default": 1rem,
|
|
21
|
+
"large": 1rem * 2,
|
|
22
|
+
"large-x": 1rem * 3,
|
|
23
|
+
"large-xx": 1rem * 4,
|
|
24
|
+
"small": 1rem * 0.75,
|
|
25
|
+
"small-x": 1rem * 0.5,
|
|
25
26
|
) !default;
|
|
26
27
|
|
|
27
28
|
/// Update the units config
|
|
28
29
|
/// @param {Map} $changes A map to merge into the color palette
|
|
29
30
|
/// @example scss Setting the error and type color
|
|
30
|
-
/// @include units
|
|
31
|
+
/// @include ulu.units-set((
|
|
31
32
|
/// "default" : 1.5em
|
|
32
33
|
/// ));
|
|
33
34
|
|