@ulu/frontend 0.1.0-beta.20 → 0.1.0-beta.22
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 +11 -0
- package/dist/ulu-frontend.min.css +1 -1
- package/docs-dev/changelog/index.html +81 -8
- package/docs-dev/demos/accordion/index.html +60 -0
- package/docs-dev/demos/button/index.html +60 -0
- package/docs-dev/demos/callout/index.html +60 -0
- package/docs-dev/demos/captioned-figure/index.html +60 -0
- package/docs-dev/demos/card/index.html +60 -0
- package/docs-dev/demos/css-icons/index.html +60 -0
- package/docs-dev/demos/data-grid/index.html +60 -0
- package/docs-dev/demos/data-table/index.html +85 -25
- package/docs-dev/demos/details-group/index.html +60 -0
- package/docs-dev/demos/file-save/index.html +60 -0
- package/docs-dev/demos/flipcard/index.html +60 -0
- package/docs-dev/demos/form-theme/index.html +60 -0
- package/docs-dev/demos/index.html +60 -0
- package/docs-dev/demos/list-inline/index.html +60 -0
- package/docs-dev/demos/list-lines/index.html +60 -0
- package/docs-dev/demos/menu-stack/index.html +60 -0
- package/docs-dev/demos/modals/index.html +60 -0
- package/docs-dev/demos/nav-strip/index.html +60 -0
- package/docs-dev/demos/overlay-section/index.html +60 -0
- package/docs-dev/demos/popovers/index.html +60 -0
- package/docs-dev/demos/print/index.html +60 -0
- package/docs-dev/demos/pull-quote/index.html +60 -0
- package/docs-dev/demos/rule/index.html +60 -0
- package/docs-dev/demos/scrollpoints/index.html +60 -0
- package/docs-dev/demos/spoke-spinner/index.html +60 -0
- package/docs-dev/demos/sticky-list/index.html +5043 -0
- package/docs-dev/demos/tabs/index.html +60 -0
- package/docs-dev/demos/tag/index.html +60 -0
- package/docs-dev/demos/theme-toggle/index.html +60 -0
- package/docs-dev/demos/tiles/index.html +60 -0
- package/docs-dev/demos/tooltip/index.html +60 -0
- package/docs-dev/guide/building-stylesheet/index.html +60 -0
- package/docs-dev/guide/developing-ulu-scss-module/index.html +60 -0
- package/docs-dev/guide/index.html +60 -0
- package/docs-dev/index.html +60 -0
- package/docs-dev/javascript/events/index.html +60 -0
- package/docs-dev/javascript/index.html +60 -0
- package/docs-dev/javascript/settings/index.html +60 -0
- package/docs-dev/javascript/ui-breakpoints/index.html +60 -0
- package/docs-dev/javascript/ui-collapsible/index.html +60 -0
- package/docs-dev/javascript/ui-details-group/index.html +60 -0
- package/docs-dev/javascript/ui-dialog/index.html +60 -0
- package/docs-dev/javascript/ui-flipcard/index.html +60 -0
- package/docs-dev/javascript/ui-grid/index.html +60 -0
- package/docs-dev/javascript/ui-modal-builder/index.html +60 -0
- package/docs-dev/javascript/ui-overflow-scroller/index.html +60 -0
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +60 -0
- package/docs-dev/javascript/ui-page/index.html +60 -0
- package/docs-dev/javascript/ui-popover/index.html +60 -0
- package/docs-dev/javascript/ui-print/index.html +60 -0
- package/docs-dev/javascript/ui-print-details/index.html +60 -0
- package/docs-dev/javascript/ui-programmatic-modal/index.html +60 -0
- package/docs-dev/javascript/ui-proxy-click/index.html +60 -0
- package/docs-dev/javascript/ui-resizer/index.html +60 -0
- package/docs-dev/javascript/ui-scroll-slider/index.html +60 -0
- package/docs-dev/javascript/ui-scrollpoint/index.html +60 -0
- package/docs-dev/javascript/ui-slider/index.html +60 -0
- package/docs-dev/javascript/ui-tabs/index.html +60 -0
- package/docs-dev/javascript/ui-theme-toggle/index.html +60 -0
- package/docs-dev/javascript/ui-tooltip/index.html +60 -0
- package/docs-dev/javascript/utils-class-logger/index.html +60 -0
- package/docs-dev/javascript/utils-dom/index.html +60 -0
- package/docs-dev/javascript/utils-file-save/index.html +60 -0
- package/docs-dev/javascript/utils-floating-ui/index.html +60 -0
- package/docs-dev/javascript/utils-id/index.html +60 -0
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +60 -0
- package/docs-dev/sass/base/color/index.html +60 -0
- package/docs-dev/sass/base/elements/index.html +60 -0
- package/docs-dev/sass/base/index/index.html +60 -0
- package/docs-dev/sass/base/index.html +60 -0
- package/docs-dev/sass/base/keyframes/index.html +60 -0
- package/docs-dev/sass/base/layout/index.html +60 -0
- package/docs-dev/sass/base/normalize/index.html +60 -0
- package/docs-dev/sass/base/print/index.html +60 -0
- package/docs-dev/sass/base/root/index.html +60 -0
- package/docs-dev/sass/base/typography/index.html +60 -0
- package/docs-dev/sass/components/accordion/index.html +60 -0
- package/docs-dev/sass/components/adaptive-spacing/index.html +60 -0
- package/docs-dev/sass/components/badge/index.html +60 -0
- package/docs-dev/sass/components/basic-hero/index.html +60 -0
- package/docs-dev/sass/components/button/index.html +60 -0
- package/docs-dev/sass/components/button-verbose/index.html +60 -0
- package/docs-dev/sass/components/callout/index.html +60 -0
- package/docs-dev/sass/components/captioned-figure/index.html +60 -0
- package/docs-dev/sass/components/card/index.html +60 -0
- package/docs-dev/sass/components/card-grid/index.html +60 -0
- package/docs-dev/sass/components/css-icon/index.html +60 -0
- package/docs-dev/sass/components/data-grid/index.html +60 -0
- package/docs-dev/sass/components/data-table/index.html +60 -0
- package/docs-dev/sass/components/fill-context/index.html +60 -0
- package/docs-dev/sass/components/flipcard/index.html +101 -10
- package/docs-dev/sass/components/flipcard-grid/index.html +60 -0
- package/docs-dev/sass/components/form-theme/index.html +60 -0
- package/docs-dev/sass/components/hero/index.html +60 -0
- package/docs-dev/sass/components/horizontal-rule/index.html +60 -0
- package/docs-dev/sass/components/image-grid/index.html +60 -0
- package/docs-dev/sass/components/index/index.html +71 -10
- package/docs-dev/sass/components/index.html +60 -0
- package/docs-dev/sass/components/links/index.html +60 -0
- package/docs-dev/sass/components/list-inline/index.html +60 -0
- package/docs-dev/sass/components/list-lines/index.html +60 -0
- package/docs-dev/sass/components/list-ordered/index.html +60 -0
- package/docs-dev/sass/components/list-unordered/index.html +60 -0
- package/docs-dev/sass/components/menu-stack/index.html +60 -0
- package/docs-dev/sass/components/modal/index.html +60 -0
- package/docs-dev/sass/components/nav-strip/index.html +60 -0
- package/docs-dev/sass/components/overlay-section/index.html +60 -0
- package/docs-dev/sass/components/pager/index.html +60 -0
- package/docs-dev/sass/components/placeholder-block/index.html +60 -0
- package/docs-dev/sass/components/popover/index.html +60 -0
- package/docs-dev/sass/components/pull-quote/index.html +60 -0
- package/docs-dev/sass/components/ratio-box/index.html +60 -0
- package/docs-dev/sass/components/rule/index.html +60 -0
- package/docs-dev/sass/components/scroll-slider/index.html +60 -0
- package/docs-dev/sass/components/skip-link/index.html +60 -0
- package/docs-dev/sass/components/slider/index.html +60 -0
- package/docs-dev/sass/components/spoke-spinner/index.html +60 -0
- package/docs-dev/sass/components/sticky-list/index.html +5423 -0
- package/docs-dev/sass/components/tabs/index.html +69 -9
- package/docs-dev/sass/components/tag/index.html +60 -0
- package/docs-dev/sass/components/tile-button/index.html +60 -0
- package/docs-dev/sass/components/tile-grid/index.html +60 -0
- package/docs-dev/sass/components/tile-grid-overlay/index.html +60 -0
- package/docs-dev/sass/components/vignette/index.html +60 -0
- package/docs-dev/sass/components/wysiwyg/index.html +60 -0
- package/docs-dev/sass/core/breakpoint/index.html +60 -0
- package/docs-dev/sass/core/button/index.html +60 -0
- package/docs-dev/sass/core/color/index.html +60 -0
- package/docs-dev/sass/core/cssvar/index.html +60 -0
- package/docs-dev/sass/core/element/index.html +60 -0
- package/docs-dev/sass/core/index.html +60 -0
- package/docs-dev/sass/core/layout/index.html +60 -0
- package/docs-dev/sass/core/path/index.html +60 -0
- package/docs-dev/sass/core/selector/index.html +60 -0
- package/docs-dev/sass/core/typography/index.html +60 -0
- package/docs-dev/sass/core/units/index.html +60 -0
- package/docs-dev/sass/core/utils/index.html +61 -1
- package/docs-dev/sass/helpers/color/index.html +60 -0
- package/docs-dev/sass/helpers/display/index.html +60 -0
- package/docs-dev/sass/helpers/index/index.html +60 -0
- package/docs-dev/sass/helpers/index.html +60 -0
- package/docs-dev/sass/helpers/print/index.html +60 -0
- package/docs-dev/sass/helpers/typography/index.html +60 -0
- package/docs-dev/sass/helpers/units/index.html +60 -0
- package/docs-dev/sass/helpers/utilities/index.html +60 -0
- package/docs-dev/sass/index.html +60 -0
- package/package.json +2 -2
- package/scss/_utils.scss +1 -1
- package/scss/components/_flipcard.scss +7 -2
- package/scss/components/_index.scss +5 -0
- package/scss/components/_sticky-list.scss +207 -0
- package/scss/components/_tabs.scss +3 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
|
|
2
|
+
////
|
|
3
|
+
/// @group sticky-list
|
|
4
|
+
////
|
|
5
|
+
/// Sticky first column, sticky elements inside adjacent columns to first. (Sticky list with header)
|
|
6
|
+
|
|
7
|
+
@use "sass:map";
|
|
8
|
+
@use "sass:meta";
|
|
9
|
+
@use "sass:color" as sassColor;
|
|
10
|
+
|
|
11
|
+
@use "../color";
|
|
12
|
+
@use "../element";
|
|
13
|
+
@use "../breakpoint";
|
|
14
|
+
@use "../typography";
|
|
15
|
+
@use "../utils";
|
|
16
|
+
@use "../selector";
|
|
17
|
+
|
|
18
|
+
// Used for function fallback
|
|
19
|
+
$-fallbacks: (
|
|
20
|
+
"margin" : (
|
|
21
|
+
"function" : meta.get-function("get", false, "element"),
|
|
22
|
+
"property" : "margin"
|
|
23
|
+
),
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/// Module Settings
|
|
27
|
+
/// @type Map
|
|
28
|
+
/// @prop {Color} background-color [transparent] Background color for the entire slider section.
|
|
29
|
+
/// @prop {Number} margin [true] Margin on ends of component (defaults to element margin)
|
|
30
|
+
/// @prop {Number} offset [55vh] The offset for the mask (static padding on mask to create space between item's)
|
|
31
|
+
/// @prop {Number} mask-size [5rem] The size of the mask (background-color) above the items
|
|
32
|
+
/// @prop {Number} sticky-top [45vh] When to stick
|
|
33
|
+
/// @prop {String} breakpoint ["medium"] The upward breakpoint that this is allowed to be sticky
|
|
34
|
+
/// @prop {String} title-size ["medium"] The typography size to use for title
|
|
35
|
+
/// @prop {Number} title-width [40%] The width of the title when this is displayed in columns
|
|
36
|
+
/// @prop {Number} title-min-width [8em] The min width for title when displayed in columns
|
|
37
|
+
/// @prop {CssValue} title-text-align [right] Text alignment for title when displayed in columns
|
|
38
|
+
/// @prop {Number} item-padding-x [0] Optional padding on the left/right for items
|
|
39
|
+
/// @prop {Number} gap [2rem] The gap between title and items when displayed in columns
|
|
40
|
+
/// @prop {Color} background-color [white] The background color used for the mask
|
|
41
|
+
/// @prop {List} background-contexts Adjust the background mask color by contextual selectors. Pass List of Maps with ("selector" [parent/contextual selector], "background-color", "item-padding-x" [optional])
|
|
42
|
+
|
|
43
|
+
$config: (
|
|
44
|
+
"margin" : true,
|
|
45
|
+
"offset" : 55vh,
|
|
46
|
+
"mask-size" : 5rem,
|
|
47
|
+
"sticky-top" : 45vh,
|
|
48
|
+
"breakpoint" : "medium",
|
|
49
|
+
"title-size" : "medium",
|
|
50
|
+
"title-width" : 40%,
|
|
51
|
+
"title-min-width" : 8em,
|
|
52
|
+
"title-text-align" : right,
|
|
53
|
+
"item-padding-x" : 0,
|
|
54
|
+
"gap" : 2rem,
|
|
55
|
+
"background-color" : white,
|
|
56
|
+
"background-contexts" : (
|
|
57
|
+
(
|
|
58
|
+
"selector" : ".theme-dark",
|
|
59
|
+
"background-color" : black,
|
|
60
|
+
"item-padding-x" : 1em
|
|
61
|
+
),
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
/// Change modules $config
|
|
66
|
+
/// @param {Map} $changes Map of changes
|
|
67
|
+
/// @example scss
|
|
68
|
+
/// @include ulu.component-sticky-list-set(( "property" : value ));
|
|
69
|
+
|
|
70
|
+
@mixin set($changes) {
|
|
71
|
+
$config: map.merge($config, $changes) !global;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/// Set sizes map
|
|
75
|
+
/// @param {Map} $changes Map of changes
|
|
76
|
+
/// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
|
|
77
|
+
|
|
78
|
+
@mixin set-sizes($changes, $merge-mode: null) {
|
|
79
|
+
$sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/// Get a config option
|
|
83
|
+
/// @param {Map} $name Name of property
|
|
84
|
+
/// @example scss
|
|
85
|
+
/// @include ulu.component-sticky-list-get("property");
|
|
86
|
+
|
|
87
|
+
@function get($name) {
|
|
88
|
+
$value: utils.require-map-get($config, $name, "sticky-list [config]");
|
|
89
|
+
@return utils.function-fallback($name, $value, $-fallbacks);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/// Prints component styles
|
|
93
|
+
/// @demo sticky-list
|
|
94
|
+
/// @example scss
|
|
95
|
+
/// @include ulu.component-sticky-list-styles();
|
|
96
|
+
/// @example html {preview}
|
|
97
|
+
/// <div class="sticky-list">
|
|
98
|
+
/// <strong class="sticky-list__title">Example:</strong>
|
|
99
|
+
/// <ul class="sticky-list__list">
|
|
100
|
+
/// <li class="sticky-list__item">
|
|
101
|
+
/// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec nisl magna
|
|
102
|
+
/// </li>
|
|
103
|
+
/// <li class="sticky-list__item">
|
|
104
|
+
/// Aenean sollicitudin mauris lectus, blandit suscipit lectus fringilla sed
|
|
105
|
+
/// </li>
|
|
106
|
+
/// <li class="sticky-list__item">
|
|
107
|
+
/// Suspendisse sollicitudin, justo sed efficitur tempor, risus
|
|
108
|
+
/// </li>
|
|
109
|
+
/// <li class="sticky-list__item">
|
|
110
|
+
/// Suspendisse sollicitudin, justo sed efficitur tempor, risus
|
|
111
|
+
/// </li>
|
|
112
|
+
/// <li class="sticky-list__item">
|
|
113
|
+
/// Suspendisse sollicitudin, justo sed efficitur tempor, risus
|
|
114
|
+
/// </li>
|
|
115
|
+
/// </ul>
|
|
116
|
+
/// </div>
|
|
117
|
+
|
|
118
|
+
@mixin styles {
|
|
119
|
+
$prefix: selector.class("sticky-list");
|
|
120
|
+
$mask-size: get("mask-size");
|
|
121
|
+
$offset: get("offset");
|
|
122
|
+
$title-size: get("title-size");
|
|
123
|
+
$sticky-top: get("sticky-top");
|
|
124
|
+
|
|
125
|
+
#{ $prefix } {
|
|
126
|
+
padding: get("margin") 0;
|
|
127
|
+
}
|
|
128
|
+
@include breakpoint.min(get("breakpoint")) {
|
|
129
|
+
#{ $prefix } {
|
|
130
|
+
display: flex;
|
|
131
|
+
align-items: flex-start;
|
|
132
|
+
gap: get("gap");
|
|
133
|
+
position: relative;
|
|
134
|
+
@if ($title-size and typography.has-size($title-size)) {
|
|
135
|
+
@include typography.size($title-size, $only-font-size: true);
|
|
136
|
+
} @else if ($title-size) {
|
|
137
|
+
@warn "Unable to find '#{$title-size}' typography size for title";
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
#{ $prefix }__title,
|
|
141
|
+
#{ $prefix } > :not(ul) {
|
|
142
|
+
display: block;
|
|
143
|
+
position: sticky;
|
|
144
|
+
top: $sticky-top;
|
|
145
|
+
flex-basis: get("title-width");
|
|
146
|
+
min-width: get("title-min-width");
|
|
147
|
+
padding-top: $mask-size;
|
|
148
|
+
padding-bottom: $offset;
|
|
149
|
+
text-align: get("title-text-align");
|
|
150
|
+
}
|
|
151
|
+
#{ $prefix }__list,
|
|
152
|
+
#{ $prefix } > ul {
|
|
153
|
+
list-style: none;
|
|
154
|
+
margin: 0;
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: column;
|
|
157
|
+
justify-content: space-between;
|
|
158
|
+
align-self: stretch;
|
|
159
|
+
}
|
|
160
|
+
#{ $prefix }__item,
|
|
161
|
+
#{ $prefix } > ul > li {
|
|
162
|
+
display: block;
|
|
163
|
+
position: sticky;
|
|
164
|
+
top: $sticky-top;
|
|
165
|
+
margin: 0 !important; // If in editor (to complicated for :not())
|
|
166
|
+
padding: $mask-size get("item-padding-x") $offset get("item-padding-x");
|
|
167
|
+
@include set-background(get("background-color"));
|
|
168
|
+
}
|
|
169
|
+
#{ $prefix }__item:first-child,
|
|
170
|
+
#{ $prefix } > ul > li:first-child {
|
|
171
|
+
margin-top: 0;
|
|
172
|
+
}
|
|
173
|
+
#{ $prefix }__item:last-child,
|
|
174
|
+
#{ $prefix } > ul > li:last-child {
|
|
175
|
+
margin-bottom: 0;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Print out any contextual background styles
|
|
180
|
+
@each $props in get("background-contexts") {
|
|
181
|
+
@debug $props;
|
|
182
|
+
$selector: map.get($props, "selector");
|
|
183
|
+
$item-padding-x: map.get($props, "item-padding-x");
|
|
184
|
+
@include breakpoint.min(get("breakpoint")) {
|
|
185
|
+
#{ $selector } {
|
|
186
|
+
#{ $prefix }__item,
|
|
187
|
+
#{ $prefix } > ul > li {
|
|
188
|
+
@if ($item-padding-x) {
|
|
189
|
+
padding-left: $item-padding-x;
|
|
190
|
+
padding-right: $item-padding-x;
|
|
191
|
+
}
|
|
192
|
+
@include set-background(map.get($props, "background-color"));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// Outputs background color mask CSS (gradient from transparent to original color)
|
|
200
|
+
/// @param {Color} $color The color to create the CSS for
|
|
201
|
+
|
|
202
|
+
@mixin set-background($color) {
|
|
203
|
+
$color: color.get($color);
|
|
204
|
+
$color-transparent: sassColor.adjust($color, $alpha: 0);
|
|
205
|
+
background-color: $color;
|
|
206
|
+
background: linear-gradient(180deg, $color-transparent 0%, $color get("mask-size"));
|
|
207
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
@use "../color";
|
|
10
10
|
@use "../selector";
|
|
11
11
|
@use "../breakpoint";
|
|
12
|
+
@use "../layout";
|
|
12
13
|
@use "../typography";
|
|
13
14
|
@use "../element";
|
|
14
15
|
@use "../utils";
|
|
@@ -55,7 +56,7 @@ $-fallbacks: (
|
|
|
55
56
|
/// @prop {Boolean} horizontal-tab-wrap [false] Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap
|
|
56
57
|
|
|
57
58
|
$config: (
|
|
58
|
-
"margin" : (2rem
|
|
59
|
+
"margin" : (2rem 0),
|
|
59
60
|
"print-margin" : 1.5em,
|
|
60
61
|
"tablist-divider" : true,
|
|
61
62
|
"tablist-divider-width" : 1px,
|
|
@@ -118,6 +119,7 @@ $config: (
|
|
|
118
119
|
overflow-x: auto;
|
|
119
120
|
border-bottom: get("tablist-divider");
|
|
120
121
|
border-bottom-width: get("tablist-divider-width");
|
|
122
|
+
@include layout.remove-scrollbar();
|
|
121
123
|
}
|
|
122
124
|
[role="tab"] {
|
|
123
125
|
display: block;
|