framework7 8.3.4 → 9.0.0-beta.1
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/components/actions/actions-ios.less +22 -15
- package/components/actions/actions-rtl.css +1 -1
- package/components/actions/actions-vars.less +4 -7
- package/components/actions/actions.css +1 -1
- package/components/actions/actions.js +2 -8
- package/components/actions/actions.less +0 -3
- package/components/app/app-class.d.ts +2 -0
- package/components/app/app-class.js +19 -15
- package/components/app/app-vars.less +41 -6
- package/components/app/app.less +1 -1
- package/components/area-chart/area-chart-class.js +18 -31
- package/components/area-chart/area-chart-rtl.css +1 -1
- package/components/area-chart/area-chart.css +1 -1
- package/components/autocomplete/autocomplete-class.js +13 -14
- package/components/autocomplete/autocomplete-ios.less +16 -0
- package/components/autocomplete/autocomplete-rtl.css +1 -1
- package/components/autocomplete/autocomplete.css +1 -1
- package/components/autocomplete/autocomplete.d.ts +3 -3
- package/components/autocomplete/autocomplete.js +3 -3
- package/components/autocomplete/autocomplete.less +7 -1
- package/components/block/block-vars.less +6 -6
- package/components/breadcrumbs/breadcrumbs-rtl.css +1 -1
- package/components/breadcrumbs/breadcrumbs.css +1 -1
- package/components/button/button-vars.less +13 -12
- package/components/button/button.less +2 -1
- package/components/calendar/calendar-class.js +20 -17
- package/components/calendar/calendar-ios.less +43 -0
- package/components/calendar/calendar-md.less +3 -0
- package/components/calendar/calendar-rtl.css +1 -1
- package/components/calendar/calendar-vars.less +24 -19
- package/components/calendar/calendar.css +1 -1
- package/components/calendar/calendar.d.ts +1 -1
- package/components/calendar/calendar.js +5 -8
- package/components/calendar/calendar.less +4 -2
- package/components/card/card-rtl.css +1 -1
- package/components/card/card-vars.less +5 -5
- package/components/card/card.css +1 -1
- package/components/card/card.js +3 -18
- package/components/card/card.less +1 -1
- package/components/color-picker/color-picker-class.js +11 -23
- package/components/color-picker/color-picker-ios.less +9 -0
- package/components/color-picker/color-picker-md.less +15 -0
- package/components/color-picker/color-picker-rtl.css +1 -1
- package/components/color-picker/color-picker-vars.less +9 -3
- package/components/color-picker/color-picker.css +1 -1
- package/components/color-picker/color-picker.d.ts +1 -2
- package/components/color-picker/color-picker.js +3 -7
- package/components/color-picker/color-picker.less +5 -25
- package/components/color-picker/modules/alpha-slider.js +2 -0
- package/components/color-picker/modules/brightness-slider.js +2 -0
- package/components/color-picker/modules/hs-spectrum.js +1 -2
- package/components/color-picker/modules/hsb-sliders.js +6 -0
- package/components/color-picker/modules/hue-slider.js +2 -0
- package/components/color-picker/modules/rgb-bars.js +6 -0
- package/components/color-picker/modules/rgb-sliders.js +6 -0
- package/components/color-picker/modules/sb-spectrum.js +1 -2
- package/components/color-picker/modules/wheel.js +1 -2
- package/components/data-table/data-table-class.js +1 -4
- package/components/data-table/data-table-ios.less +1 -1
- package/components/data-table/data-table-md.less +4 -2
- package/components/data-table/data-table-rtl.css +1 -1
- package/components/data-table/data-table.css +1 -1
- package/components/data-table/data-table.less +4 -4
- package/components/dialog/dialog-class.js +6 -3
- package/components/dialog/dialog-ios.less +10 -34
- package/components/dialog/dialog-md.less +2 -22
- package/components/dialog/dialog-rtl.css +1 -1
- package/components/dialog/dialog-vars.less +8 -10
- package/components/dialog/dialog.css +1 -1
- package/components/dialog/dialog.js +9 -27
- package/components/dialog/dialog.less +6 -25
- package/components/fab/fab-ios.less +2 -0
- package/components/fab/fab-rtl.css +1 -1
- package/components/fab/fab-vars.less +30 -6
- package/components/fab/fab.css +1 -1
- package/components/fab/fab.js +3 -12
- package/components/gauge/gauge-class.js +2 -8
- package/components/icon/icon-ios.less +10 -0
- package/components/icon/icon-md.less +9 -0
- package/components/icon/icon.less +2 -1
- package/components/input/input-ios.less +3 -2
- package/components/input/input-rtl.css +1 -1
- package/components/input/input.css +1 -1
- package/components/input/input.js +2 -5
- package/components/list/list-vars.less +7 -5
- package/components/list/list.less +1 -1
- package/components/list-index/list-index-class.js +3 -7
- package/components/login-screen/login-screen.js +2 -8
- package/components/login-screen/login-screen.less +1 -0
- package/components/messagebar/messagebar-class.js +5 -20
- package/components/messagebar/messagebar-ios.less +19 -14
- package/components/messagebar/messagebar-md.less +3 -0
- package/components/messagebar/messagebar-rtl.css +1 -1
- package/components/messagebar/messagebar-vars.less +12 -15
- package/components/messagebar/messagebar.css +1 -1
- package/components/messagebar/messagebar.less +4 -5
- package/components/messages/messages-class.js +25 -52
- package/components/messages/messages-ios.less +6 -2
- package/components/messages/messages-rtl.css +1 -1
- package/components/messages/messages-vars.less +1 -1
- package/components/messages/messages.css +1 -1
- package/components/navbar/navbar-ios.less +48 -672
- package/components/navbar/navbar-md.less +41 -1
- package/components/navbar/navbar-vars.less +4 -3
- package/components/navbar/navbar.js +28 -185
- package/components/navbar/navbar.less +8 -66
- package/components/notification/notification-class.js +6 -6
- package/components/notification/notification-ios.less +3 -8
- package/components/notification/notification-md.less +1 -20
- package/components/notification/notification-rtl.css +1 -1
- package/components/notification/notification-vars.less +13 -16
- package/components/notification/notification.css +1 -1
- package/components/notification/notification.less +8 -1
- package/components/page/page-ios.less +1 -8
- package/components/page/page-md.less +12 -11
- package/components/page/page.less +14 -12
- package/components/panel/panel-class.js +7 -28
- package/components/panel/panel-ios.less +4 -0
- package/components/panel/panel-rtl.css +2 -2
- package/components/panel/panel-vars.less +8 -5
- package/components/panel/panel.css +2 -2
- package/components/panel/panel.js +8 -32
- package/components/panel/panel.less +9 -9
- package/components/panel/resizable-panel.js +2 -4
- package/components/photo-browser/photo-browser-class.js +12 -47
- package/components/photo-browser/photo-browser-rtl.css +1 -1
- package/components/photo-browser/photo-browser-vars.less +8 -10
- package/components/photo-browser/photo-browser.css +1 -1
- package/components/photo-browser/photo-browser.d.ts +2 -4
- package/components/photo-browser/photo-browser.js +1 -3
- package/components/photo-browser/photo-browser.less +15 -71
- package/components/picker/picker-class.js +4 -5
- package/components/picker/picker-ios.less +6 -1
- package/components/picker/picker-md.less +9 -0
- package/components/picker/picker-rtl.css +1 -1
- package/components/picker/picker-vars.less +1 -1
- package/components/picker/picker.css +1 -1
- package/components/picker/picker.d.ts +1 -1
- package/components/picker/picker.js +2 -5
- package/components/picker/picker.less +0 -4
- package/components/pie-chart/pie-chart-class.js +7 -14
- package/components/popover/popover-class.js +22 -62
- package/components/popover/popover-ios.less +66 -2
- package/components/popover/popover-md.less +2 -27
- package/components/popover/popover-rtl.css +1 -1
- package/components/popover/popover-vars.less +2 -3
- package/components/popover/popover.css +1 -1
- package/components/popover/popover.d.ts +0 -2
- package/components/popover/popover.js +2 -9
- package/components/popover/popover.less +28 -50
- package/components/popup/popup-class.js +15 -9
- package/components/popup/popup-rtl.css +1 -1
- package/components/popup/popup-vars.less +2 -2
- package/components/popup/popup.css +1 -1
- package/components/popup/popup.js +2 -8
- package/components/popup/popup.less +6 -6
- package/components/preloader/preloader.js +2 -8
- package/components/progressbar/progressbar-md.less +12 -0
- package/components/progressbar/progressbar-rtl.css +1 -1
- package/components/progressbar/progressbar-vars.less +6 -5
- package/components/progressbar/progressbar.css +1 -1
- package/components/progressbar/progressbar.js +3 -12
- package/components/progressbar/progressbar.less +6 -0
- package/components/pull-to-refresh/pull-to-refresh-class.js +5 -12
- package/components/range/range-class.js +34 -27
- package/components/range/range-ios.less +60 -0
- package/components/range/range-md.less +67 -4
- package/components/range/range-rtl.css +1 -1
- package/components/range/range-vars.less +18 -13
- package/components/range/range.css +1 -1
- package/components/range/range.d.ts +3 -1
- package/components/range/range.js +2 -8
- package/components/range/range.less +11 -24
- package/components/searchbar/searchbar-class.js +7 -8
- package/components/searchbar/searchbar-ios.less +37 -13
- package/components/searchbar/searchbar-md.less +5 -0
- package/components/searchbar/searchbar-rtl.css +1 -1
- package/components/searchbar/searchbar-vars.less +13 -16
- package/components/searchbar/searchbar.css +1 -1
- package/components/searchbar/searchbar.js +4 -32
- package/components/searchbar/searchbar.less +4 -5
- package/components/sheet/sheet-class.js +21 -17
- package/components/sheet/sheet-ios.less +10 -0
- package/components/sheet/sheet-md.less +14 -0
- package/components/sheet/sheet-rtl.css +1 -1
- package/components/sheet/sheet-vars.less +5 -9
- package/components/sheet/sheet.css +1 -1
- package/components/sheet/sheet.js +2 -8
- package/components/sheet/sheet.less +5 -17
- package/components/skeleton/skeleton-rtl.css +1 -1
- package/components/skeleton/skeleton.css +1 -1
- package/components/smart-select/smart-select-class.js +15 -20
- package/components/smart-select/smart-select.d.ts +5 -7
- package/components/smart-select/smart-select.js +4 -4
- package/components/sortable/sortable.js +8 -27
- package/components/statusbar/statusbar.js +1 -4
- package/components/stepper/stepper-rtl.css +1 -1
- package/components/stepper/stepper-vars.less +3 -3
- package/components/stepper/stepper.css +1 -1
- package/components/stepper/stepper.js +2 -8
- package/components/subnavbar/subnavbar-ios.less +16 -1
- package/components/subnavbar/subnavbar-md.less +1 -1
- package/components/subnavbar/subnavbar-vars.less +12 -6
- package/components/subnavbar/subnavbar.less +5 -6
- package/components/swipeout/swipeout-ios.less +37 -0
- package/components/swipeout/swipeout-md.less +56 -0
- package/components/swipeout/swipeout-rtl.css +1 -1
- package/components/swipeout/swipeout-vars.less +13 -2
- package/components/swipeout/swipeout.css +1 -1
- package/components/swipeout/swipeout.js +102 -35
- package/components/swipeout/swipeout.less +20 -44
- package/components/swiper/swiper-rtl.css +1 -1
- package/components/swiper/swiper.css +1 -1
- package/components/tabs/tabs.js +3 -9
- package/components/text-editor/text-editor-class.js +1 -1
- package/components/text-editor/text-editor-rtl.css +1 -1
- package/components/text-editor/text-editor.css +1 -1
- package/components/timeline/timeline-ios.less +0 -5
- package/components/timeline/timeline-md.less +0 -5
- package/components/timeline/timeline-rtl.css +1 -1
- package/components/timeline/timeline-vars.less +1 -17
- package/components/timeline/timeline.css +1 -1
- package/components/timeline/timeline.less +0 -196
- package/components/toast/toast-class.js +2 -2
- package/components/toast/toast-ios.less +2 -0
- package/components/toast/toast-rtl.css +1 -1
- package/components/toast/toast-vars.less +2 -4
- package/components/toast/toast.css +1 -1
- package/components/toast/toast.less +1 -1
- package/components/toggle/toggle-class.js +5 -12
- package/components/toggle/toggle-ios.less +68 -50
- package/components/toggle/toggle-rtl.css +1 -1
- package/components/toggle/toggle-vars.less +2 -2
- package/components/toggle/toggle.css +1 -1
- package/components/toolbar/tabbar-highlight.js +134 -0
- package/components/toolbar/toolbar-ios.less +152 -14
- package/components/toolbar/toolbar-md.less +77 -3
- package/components/toolbar/toolbar-vars.less +14 -10
- package/components/toolbar/toolbar.js +32 -13
- package/components/toolbar/toolbar.less +8 -56
- package/components/tooltip/tooltip-class.js +13 -16
- package/components/tooltip/tooltip.js +0 -16
- package/components/touch-highlight/touch-highlight-ios.less +17 -0
- package/components/touch-highlight/touch-highlight-md.less +2 -0
- package/components/touch-highlight/touch-highlight-vars.less +8 -0
- package/components/touch-highlight/touch-highlight.d.ts +25 -0
- package/components/touch-highlight/touch-highlight.js +123 -0
- package/components/touch-highlight/touch-highlight.less +9 -0
- package/components/touch-ripple/touch-ripple.js +1 -4
- package/components/view/resizable-view.js +2 -4
- package/components/view/view-class.js +1 -15
- package/components/view/view.d.ts +0 -4
- package/components/view/view.js +1 -5
- package/components/virtual-list/virtual-list-class.js +2 -8
- package/framework7-bundle-rtl.css +2284 -3019
- package/framework7-bundle-rtl.min.css +9 -7
- package/framework7-bundle.css +2245 -2978
- package/framework7-bundle.esm.js +5 -4
- package/framework7-bundle.js +7170 -6469
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +4 -3
- package/framework7-bundle.min.css +9 -7
- package/framework7-bundle.min.js +4 -4
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +5 -4
- package/framework7-lite.esm.js +5 -4
- package/framework7-rtl.css +509 -844
- package/framework7-rtl.min.css +8 -6
- package/framework7-types.d.ts +5 -1
- package/framework7.css +509 -843
- package/framework7.d.ts +4 -0
- package/framework7.esm.js +5 -4
- package/framework7.less +4 -3
- package/framework7.min.css +8 -6
- package/less/mixins.less +10 -12
- package/modules/component/$h.js +1 -4
- package/modules/component/$jsx.js +1 -4
- package/modules/component/component-class.js +49 -114
- package/modules/component/component.js +6 -7
- package/modules/component/eventslisteners.js +1 -4
- package/modules/component/snabbdom/modules/hero.js +0 -1
- package/modules/component/snabbdom/modules/style.js +1 -1
- package/modules/component/vdom.js +17 -29
- package/modules/router/back.js +22 -96
- package/modules/router/clear-previous-history.js +1 -7
- package/modules/router/component-loader.js +23 -32
- package/modules/router/modal.js +1 -4
- package/modules/router/navigate.js +28 -167
- package/modules/router/redirect.js +1 -5
- package/modules/router/router-class.js +21 -288
- package/modules/router/swipe-back.js +10 -318
- package/modules/router/tab.js +1 -4
- package/modules/store/create-store.js +2 -8
- package/modules/touch/touch.d.ts +5 -3
- package/modules/touch/touch.js +22 -36
- package/package.json +4 -4
- package/shared/$jsx.js +1 -4
- package/shared/class.js +5 -26
- package/shared/constructor-methods.js +4 -19
- package/shared/events-class.js +3 -12
- package/shared/get-device.js +4 -11
- package/shared/get-support.d.ts +0 -6
- package/shared/get-support.js +1 -20
- package/shared/material-color-utils.js +2102 -693
- package/shared/material-colors.js +94 -23
- package/shared/modal-methods.js +2 -8
- package/shared/utils.js +23 -45
|
@@ -1,69 +1,87 @@
|
|
|
1
1
|
.ios {
|
|
2
2
|
.toggle {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
--f7-toggle-knob-tx: 0px;
|
|
4
|
+
&::before {
|
|
5
|
+
content: '';
|
|
6
|
+
border-radius: inherit;
|
|
7
|
+
inset: 0;
|
|
8
|
+
position: absolute;
|
|
9
|
+
background: var(--f7-toggle-inactive-border-color);
|
|
10
|
+
transition-duration: 300ms;
|
|
11
|
+
z-index: 0;
|
|
12
|
+
}
|
|
13
|
+
&::after {
|
|
14
|
+
content: '';
|
|
15
|
+
position: absolute;
|
|
16
|
+
left: 0;
|
|
17
|
+
transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)));
|
|
18
|
+
|
|
19
|
+
top: 0;
|
|
20
|
+
width: var(--f7-toggle-height);
|
|
21
|
+
height: var(--f7-toggle-height);
|
|
22
|
+
border-radius: var(--f7-toggle-height);
|
|
23
|
+
background: var(--f7-toggle-inactive-border-color);
|
|
24
|
+
transition-duration: 300ms;
|
|
25
|
+
z-index: 0;
|
|
26
|
+
}
|
|
27
|
+
&:has(input[type='checkbox']:checked) {
|
|
28
|
+
--f7-toggle-knob-tx: calc(var(--f7-toggle-width) - 38px - 4px);
|
|
29
|
+
&::before {
|
|
7
30
|
background: var(--f7-toggle-active-bg-color, var(--f7-theme-color));
|
|
8
|
-
transform: scale(0);
|
|
9
31
|
}
|
|
10
|
-
|
|
11
|
-
background: var(--f7-toggle-active-
|
|
12
|
-
|
|
13
|
-
transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)));
|
|
14
|
-
});
|
|
15
|
-
.rtl({
|
|
16
|
-
transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height))));
|
|
17
|
-
});
|
|
32
|
+
&::after {
|
|
33
|
+
background: var(--f7-toggle-active-bg-color, var(--f7-theme-color));
|
|
34
|
+
transform: translateX(0);
|
|
18
35
|
}
|
|
19
36
|
}
|
|
20
37
|
}
|
|
21
38
|
.toggle-icon {
|
|
22
|
-
background: var(--f7-toggle-
|
|
23
|
-
|
|
39
|
+
background: var(--f7-toggle-inactive-knob-bg-color);
|
|
40
|
+
height: calc(var(--f7-toggle-height) - 4px);
|
|
41
|
+
width: 38px;
|
|
42
|
+
top: 2px;
|
|
43
|
+
.ltr({ left: 2px; });
|
|
44
|
+
.rtl({ right: 2px; });
|
|
45
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
46
|
+
border-radius: calc(var(--f7-toggle-height) - 4px);
|
|
47
|
+
transition-duration: 300ms;
|
|
48
|
+
transform: translateX(var(--f7-toggle-knob-tx)) scale(1);
|
|
49
|
+
position: relative;
|
|
50
|
+
z-index: 1;
|
|
51
|
+
transform-origin: center;
|
|
52
|
+
&::before {
|
|
53
|
+
content: '';
|
|
24
54
|
position: absolute;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
border-radius: var(--f7-toggle-height);
|
|
31
|
-
box-sizing: border-box;
|
|
32
|
-
background: var(--f7-toggle-inactive-bg-color);
|
|
33
|
-
z-index: 1;
|
|
55
|
+
left: 50%;
|
|
56
|
+
top: 50%;
|
|
57
|
+
width: 1px;
|
|
58
|
+
height: 1px;
|
|
59
|
+
opacity: 0;
|
|
34
60
|
transition-duration: 300ms;
|
|
35
|
-
|
|
61
|
+
box-shadow: 0px 0px 40px 15px rgba(var(--f7-theme-color-rgb), 0.75);
|
|
36
62
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
border-radius: calc(var(--f7-toggle-height) - 4px);
|
|
63
|
+
&::after {
|
|
64
|
+
content: '';
|
|
65
|
+
position: absolute;
|
|
66
|
+
inset: 0;
|
|
67
|
+
border-radius: inherit;
|
|
68
|
+
box-shadow: var(--f7-glass-shadow-thumb);
|
|
69
|
+
transition-duration: 300ms;
|
|
70
|
+
opacity: 0;
|
|
46
71
|
}
|
|
47
72
|
}
|
|
48
73
|
.toggle-active-state {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
transform: scale(0);
|
|
52
|
-
}
|
|
74
|
+
&::before {
|
|
75
|
+
transform: scale(0.75);
|
|
53
76
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
77
|
+
.toggle-icon {
|
|
78
|
+
background: transparent;
|
|
79
|
+
transform: translateX(var(--f7-toggle-knob-tx)) scale(1.4);
|
|
80
|
+
&::before {
|
|
81
|
+
opacity: 1;
|
|
57
82
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
&:after {
|
|
61
|
-
.ltr({
|
|
62
|
-
transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 8px));
|
|
63
|
-
});
|
|
64
|
-
.rtl({
|
|
65
|
-
transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height) - 8px)));
|
|
66
|
-
});
|
|
83
|
+
&::after {
|
|
84
|
+
opacity: 1;
|
|
67
85
|
}
|
|
68
86
|
}
|
|
69
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ios{--f7-toggle-width:
|
|
1
|
+
.ios{--f7-toggle-width:64px;--f7-toggle-height:28px;--f7-toggle-inactive-knob-bg-color:#fff;--f7-toggle-active-knob-bg-color:#fff;--f7-toggle-inactive-border-color:#e5e5e5;--f7-toggle-inactive-bg-color:#fff}.ios .dark,.ios.dark{--f7-toggle-inactive-border-color:#555;--f7-toggle-inactive-bg-color:#555}.md{--f7-toggle-width:52px;--f7-toggle-height:32px}.md,.md .dark,.md [class*=color-]{--f7-toggle-inactive-bg-color:var(--f7-md-surface-variant);--f7-toggle-active-bg-color:var(--f7-theme-color);--f7-toggle-inactive-knob-bg-color:var(--f7-md-outline);--f7-toggle-active-knob-bg-color:var(--f7-md-on-primary);--f7-toggle-inactive-border-color:var(--f7-md-outline);--f7-toggle-active-border-color:var(--f7-theme-color)}.toggle,.toggle-icon{width:var(--f7-toggle-width);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height)}.toggle{display:inline-block;vertical-align:middle;position:relative;box-sizing:border-box;align-self:center;-webkit-user-select:none;user-select:none}.toggle input[type=checkbox]{display:none}.toggle input[disabled]~.toggle-icon{pointer-events:none}.toggle-icon{z-index:0;margin:0;padding:0;appearance:none;border:none;position:relative;transition:.3s;box-sizing:border-box;display:block;cursor:pointer}.toggle-icon:after,.toggle-icon:before{content:''}.toggle-icon:after{position:absolute;z-index:2;transform:translateX(0px);transition-duration:.3s}.ios .toggle{--f7-toggle-knob-tx:0px}.ios .toggle::before{content:'';border-radius:inherit;inset:0;position:absolute;background:var(--f7-toggle-inactive-border-color);transition-duration:.3s;z-index:0}.ios .toggle::after{content:'';position:absolute;left:0;transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)));top:0;width:var(--f7-toggle-height);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height);background:var(--f7-toggle-inactive-border-color);transition-duration:.3s;z-index:0}.ios .toggle:has(input[type=checkbox]:checked){--f7-toggle-knob-tx:calc(var(--f7-toggle-width) - 38px - 4px)}.ios .toggle:has(input[type=checkbox]:checked)::before{background:var(--f7-toggle-active-bg-color,var(--f7-theme-color))}.ios .toggle:has(input[type=checkbox]:checked)::after{background:var(--f7-toggle-active-bg-color,var(--f7-theme-color));transform:translateX(0)}.ios .toggle-icon{background:var(--f7-toggle-inactive-knob-bg-color);height:calc(var(--f7-toggle-height) - 4px);width:38px;top:2px;right:2px;box-shadow:0 2px 4px rgba(0,0,0,.3);border-radius:calc(var(--f7-toggle-height) - 4px);transition-duration:.3s;transform:translateX(var(--f7-toggle-knob-tx)) scale(1);position:relative;z-index:1;transform-origin:center}.ios .toggle-icon::before{content:'';position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;transition-duration:.3s;box-shadow:0px 0px 40px 15px rgba(var(--f7-theme-color-rgb),.75)}.ios .toggle-icon::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:var(--f7-glass-shadow-thumb);transition-duration:.3s;opacity:0}.ios .toggle-active-state::before{transform:scale(.75)}.ios .toggle-active-state .toggle-icon{background:0 0;transform:translateX(var(--f7-toggle-knob-tx)) scale(1.4)}.ios .toggle-active-state .toggle-icon::before{opacity:1}.ios .toggle-active-state .toggle-icon::after{opacity:1}.md .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-bg-color);border-color:var(--f7-toggle-active-border-color)}.md .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height)))) scale(1);background:var(--f7-toggle-active-knob-bg-color)}.md .toggle.active-state input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height)))) scale(1.1)}.md .toggle-icon{background:var(--f7-toggle-inactive-bg-color);border:2px solid var(--f7-toggle-inactive-border-color)}.md .toggle-icon:after{background:var(--f7-toggle-inactive-knob-bg-color);height:calc(var(--f7-toggle-height) - 8px);width:calc(var(--f7-toggle-height) - 8px);top:2px;border-radius:var(--f7-toggle-height);transform:scale(.666);right:2px}.md .toggle-icon.active-state:after{transform:scale(1.1)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ios{--f7-toggle-width:
|
|
1
|
+
.ios{--f7-toggle-width:64px;--f7-toggle-height:28px;--f7-toggle-inactive-knob-bg-color:#fff;--f7-toggle-active-knob-bg-color:#fff;--f7-toggle-inactive-border-color:#e5e5e5;--f7-toggle-inactive-bg-color:#fff}.ios .dark,.ios.dark{--f7-toggle-inactive-border-color:#555;--f7-toggle-inactive-bg-color:#555}.md{--f7-toggle-width:52px;--f7-toggle-height:32px}.md,.md .dark,.md [class*=color-]{--f7-toggle-inactive-bg-color:var(--f7-md-surface-variant);--f7-toggle-active-bg-color:var(--f7-theme-color);--f7-toggle-inactive-knob-bg-color:var(--f7-md-outline);--f7-toggle-active-knob-bg-color:var(--f7-md-on-primary);--f7-toggle-inactive-border-color:var(--f7-md-outline);--f7-toggle-active-border-color:var(--f7-theme-color)}.toggle,.toggle-icon{width:var(--f7-toggle-width);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height)}.toggle{display:inline-block;vertical-align:middle;position:relative;box-sizing:border-box;align-self:center;-webkit-user-select:none;user-select:none}.toggle input[type=checkbox]{display:none}.toggle input[disabled]~.toggle-icon{pointer-events:none}.toggle-icon{z-index:0;margin:0;padding:0;appearance:none;border:none;position:relative;transition:.3s;box-sizing:border-box;display:block;cursor:pointer}.toggle-icon:after,.toggle-icon:before{content:''}.toggle-icon:after{position:absolute;z-index:2;transform:translateX(0px);transition-duration:.3s}.ios .toggle{--f7-toggle-knob-tx:0px}.ios .toggle::before{content:'';border-radius:inherit;inset:0;position:absolute;background:var(--f7-toggle-inactive-border-color);transition-duration:.3s;z-index:0}.ios .toggle::after{content:'';position:absolute;left:0;transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)));top:0;width:var(--f7-toggle-height);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height);background:var(--f7-toggle-inactive-border-color);transition-duration:.3s;z-index:0}.ios .toggle:has(input[type=checkbox]:checked){--f7-toggle-knob-tx:calc(var(--f7-toggle-width) - 38px - 4px)}.ios .toggle:has(input[type=checkbox]:checked)::before{background:var(--f7-toggle-active-bg-color,var(--f7-theme-color))}.ios .toggle:has(input[type=checkbox]:checked)::after{background:var(--f7-toggle-active-bg-color,var(--f7-theme-color));transform:translateX(0)}.ios .toggle-icon{background:var(--f7-toggle-inactive-knob-bg-color);height:calc(var(--f7-toggle-height) - 4px);width:38px;top:2px;left:2px;box-shadow:0 2px 4px rgba(0,0,0,.3);border-radius:calc(var(--f7-toggle-height) - 4px);transition-duration:.3s;transform:translateX(var(--f7-toggle-knob-tx)) scale(1);position:relative;z-index:1;transform-origin:center}.ios .toggle-icon::before{content:'';position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;transition-duration:.3s;box-shadow:0px 0px 40px 15px rgba(var(--f7-theme-color-rgb),.75)}.ios .toggle-icon::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:var(--f7-glass-shadow-thumb);transition-duration:.3s;opacity:0}.ios .toggle-active-state::before{transform:scale(.75)}.ios .toggle-active-state .toggle-icon{background:0 0;transform:translateX(var(--f7-toggle-knob-tx)) scale(1.4)}.ios .toggle-active-state .toggle-icon::before{opacity:1}.ios .toggle-active-state .toggle-icon::after{opacity:1}.md .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-bg-color);border-color:var(--f7-toggle-active-border-color)}.md .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))) scale(1);background:var(--f7-toggle-active-knob-bg-color)}.md .toggle.active-state input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))) scale(1.1)}.md .toggle-icon{background:var(--f7-toggle-inactive-bg-color);border:2px solid var(--f7-toggle-inactive-border-color)}.md .toggle-icon:after{background:var(--f7-toggle-inactive-knob-bg-color);height:calc(var(--f7-toggle-height) - 8px);width:calc(var(--f7-toggle-height) - 8px);top:2px;border-radius:var(--f7-toggle-height);transform:scale(.666);left:2px}.md .toggle-icon.active-state:after{transform:scale(1.1)}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { getDocument } from 'ssr-window';
|
|
2
|
+
const startAnimation = data => {
|
|
3
|
+
data.raf = requestAnimationFrame(() => {
|
|
4
|
+
if (!data.setTransform) return;
|
|
5
|
+
const highlightEl = data.highlightEl;
|
|
6
|
+
if (!highlightEl) return;
|
|
7
|
+
highlightEl.style.transform = data.setTransform;
|
|
8
|
+
highlightEl.style.transitionTimingFunction = 'ease-out';
|
|
9
|
+
data.setTransform = null;
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
const stopAnimation = data => {
|
|
13
|
+
cancelAnimationFrame(data.raf);
|
|
14
|
+
};
|
|
15
|
+
const setHighlightOnTouch = (data, e) => {
|
|
16
|
+
const {
|
|
17
|
+
rect,
|
|
18
|
+
linkEls,
|
|
19
|
+
highlightEl
|
|
20
|
+
} = data;
|
|
21
|
+
if (!highlightEl) return;
|
|
22
|
+
const {
|
|
23
|
+
clientX
|
|
24
|
+
} = e;
|
|
25
|
+
const highlightWidth = rect.width / linkEls.length;
|
|
26
|
+
const leftOffset = clientX - rect.left - highlightWidth / 2;
|
|
27
|
+
const minLeft = 0;
|
|
28
|
+
const maxLeft = rect.width - highlightWidth;
|
|
29
|
+
const translateX = Math.max(minLeft, Math.min(leftOffset, maxLeft));
|
|
30
|
+
const linkCenters = [...linkEls].map((el, index) => {
|
|
31
|
+
return index * highlightWidth + highlightWidth / 2;
|
|
32
|
+
});
|
|
33
|
+
const closestLinkCenter = linkCenters.reduce((prev, curr) => {
|
|
34
|
+
const highlightCenter = translateX + highlightWidth / 2;
|
|
35
|
+
return Math.abs(curr - highlightCenter) < Math.abs(prev - highlightCenter) ? curr : prev;
|
|
36
|
+
}, linkCenters[0]);
|
|
37
|
+
const closestLinkIndex = linkCenters.indexOf(closestLinkCenter);
|
|
38
|
+
data.newActiveIndex = closestLinkIndex;
|
|
39
|
+
highlightEl.classList.add('tab-link-highlight-pressed');
|
|
40
|
+
data.setTransform = `translateX(${translateX}px)`;
|
|
41
|
+
startAnimation(data);
|
|
42
|
+
};
|
|
43
|
+
const unsetHighlightOnTouch = data => {
|
|
44
|
+
cancelAnimationFrame(data.raf);
|
|
45
|
+
data.setTransform = null;
|
|
46
|
+
const {
|
|
47
|
+
highlightEl
|
|
48
|
+
} = data;
|
|
49
|
+
if (!highlightEl) return;
|
|
50
|
+
highlightEl.classList.remove('tab-link-highlight-pressed');
|
|
51
|
+
const {
|
|
52
|
+
activeIndex,
|
|
53
|
+
newActiveIndex,
|
|
54
|
+
linkEls
|
|
55
|
+
} = data;
|
|
56
|
+
if (activeIndex !== newActiveIndex) {
|
|
57
|
+
linkEls[newActiveIndex].click();
|
|
58
|
+
}
|
|
59
|
+
highlightEl.style.transform = `translateX(${newActiveIndex * 100}%)`;
|
|
60
|
+
highlightEl.style.transitionTimingFunction = '';
|
|
61
|
+
highlightEl.style.transform = `translateX(${newActiveIndex * 100}%)`;
|
|
62
|
+
};
|
|
63
|
+
export const initTabbarHighlight = el => {
|
|
64
|
+
const document = getDocument();
|
|
65
|
+
if (!el) return;
|
|
66
|
+
if (el.classList.contains('tabbar-scrollable')) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const highlightEl = el.querySelector('.tab-link-highlight');
|
|
70
|
+
const toolbarPaneEl = el.querySelector('.toolbar-pane');
|
|
71
|
+
if (!highlightEl || !toolbarPaneEl) return;
|
|
72
|
+
const data = {
|
|
73
|
+
el,
|
|
74
|
+
highlightEl,
|
|
75
|
+
touched: false,
|
|
76
|
+
moved: false,
|
|
77
|
+
rect: null,
|
|
78
|
+
setTransform: null,
|
|
79
|
+
raf: null
|
|
80
|
+
};
|
|
81
|
+
el.f7ToolbarHighlightData = data;
|
|
82
|
+
el.f7ToolbarOnPointer = e => {
|
|
83
|
+
if (e.type === 'touchstart') {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
}
|
|
86
|
+
if (e.pointerType !== 'touch') return;
|
|
87
|
+
if (!el) return;
|
|
88
|
+
if (e.type === 'pointerdown') {
|
|
89
|
+
data.linkEls = el.querySelectorAll('.tab-link');
|
|
90
|
+
data.rect = toolbarPaneEl.getBoundingClientRect();
|
|
91
|
+
data.touched = true;
|
|
92
|
+
setHighlightOnTouch(data, e);
|
|
93
|
+
startAnimation(data);
|
|
94
|
+
}
|
|
95
|
+
if (e.type === 'pointermove') {
|
|
96
|
+
if (!data.touched) return;
|
|
97
|
+
data.moved = true;
|
|
98
|
+
setHighlightOnTouch(data, e);
|
|
99
|
+
}
|
|
100
|
+
if (e.type === 'pointerup') {
|
|
101
|
+
if (!data.touched) return;
|
|
102
|
+
data.touched = false;
|
|
103
|
+
data.moved = false;
|
|
104
|
+
unsetHighlightOnTouch(data);
|
|
105
|
+
stopAnimation(data);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
el.addEventListener('touchstart', el.f7ToolbarOnPointer, {
|
|
109
|
+
passive: false
|
|
110
|
+
});
|
|
111
|
+
el.addEventListener('pointerdown', el.f7ToolbarOnPointer, {
|
|
112
|
+
passive: false
|
|
113
|
+
});
|
|
114
|
+
document.addEventListener('pointermove', el.f7ToolbarOnPointer, {
|
|
115
|
+
passive: false
|
|
116
|
+
});
|
|
117
|
+
document.addEventListener('pointerup', el.f7ToolbarOnPointer, {
|
|
118
|
+
passive: false
|
|
119
|
+
});
|
|
120
|
+
document.addEventListener('pointercancel', el.f7ToolbarOnPointer, {
|
|
121
|
+
passive: false
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
export const destroyTabbarHighlight = el => {
|
|
125
|
+
if (!el || !el.f7ToolbarOnPointer) return;
|
|
126
|
+
const document = getDocument();
|
|
127
|
+
el.removeEventListener('touchstart', el.f7ToolbarOnPointer);
|
|
128
|
+
el.removeEventListener('pointerdown', el.f7ToolbarOnPointer);
|
|
129
|
+
document.removeEventListener('pointermove', el.f7ToolbarOnPointer);
|
|
130
|
+
document.removeEventListener('pointerup', el.f7ToolbarOnPointer);
|
|
131
|
+
document.removeEventListener('pointercancel', el.f7ToolbarOnPointer);
|
|
132
|
+
el.f7ToolbarOnPointer = null;
|
|
133
|
+
el.f7ToolbarHighlightData = null;
|
|
134
|
+
};
|
|
@@ -1,13 +1,111 @@
|
|
|
1
1
|
.ios {
|
|
2
|
+
.toolbar-pane {
|
|
3
|
+
user-select: none;
|
|
4
|
+
}
|
|
5
|
+
.toolbar-pane,
|
|
6
|
+
.toolbar .left,
|
|
7
|
+
.toolbar .right {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
height: 100%;
|
|
12
|
+
position: relative;
|
|
13
|
+
z-index: 1;
|
|
14
|
+
border-radius: 32px;
|
|
15
|
+
.ios-glass();
|
|
16
|
+
}
|
|
2
17
|
.toolbar {
|
|
3
|
-
|
|
4
|
-
|
|
18
|
+
.left {
|
|
19
|
+
margin-right: auto;
|
|
20
|
+
}
|
|
21
|
+
.right {
|
|
22
|
+
margin-left: auto;
|
|
23
|
+
}
|
|
24
|
+
.left:empty,
|
|
25
|
+
.right:empty {
|
|
26
|
+
display: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
a:is(.icon-only, :has(i:only-child), :has(svg:only-child)) {
|
|
5
30
|
display: flex;
|
|
6
31
|
justify-content: center;
|
|
7
32
|
align-items: center;
|
|
8
33
|
margin: 0;
|
|
9
|
-
min-width:
|
|
34
|
+
min-width: 48px;
|
|
35
|
+
min-height: 48px;
|
|
36
|
+
padding: 0;
|
|
37
|
+
}
|
|
38
|
+
.link {
|
|
39
|
+
padding: 0 12px;
|
|
40
|
+
height: 100%;
|
|
41
|
+
}
|
|
42
|
+
&::before,
|
|
43
|
+
&::after {
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
content: '';
|
|
46
|
+
position: absolute;
|
|
47
|
+
inset: 0;
|
|
10
48
|
}
|
|
49
|
+
&::before {
|
|
50
|
+
backdrop-filter: blur(2px);
|
|
51
|
+
mask-image: linear-gradient(to top, black 50%, transparent 100%);
|
|
52
|
+
}
|
|
53
|
+
&::after {
|
|
54
|
+
background-image: linear-gradient(
|
|
55
|
+
to top,
|
|
56
|
+
var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)) 0%,
|
|
57
|
+
transparent 100%
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
&.toolbar-bottom,
|
|
61
|
+
&.messagebar {
|
|
62
|
+
&::before,
|
|
63
|
+
&::after {
|
|
64
|
+
top: -16px;
|
|
65
|
+
}
|
|
66
|
+
.toolbar-inner {
|
|
67
|
+
padding-bottom: 16px;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
&.toolbar-top,
|
|
71
|
+
&:not(.toolbar-bottom, .toolbar-top, .messagebar) {
|
|
72
|
+
&::before {
|
|
73
|
+
mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
|
|
74
|
+
}
|
|
75
|
+
&::after {
|
|
76
|
+
background-image: linear-gradient(
|
|
77
|
+
to bottom,
|
|
78
|
+
var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)) 0%,
|
|
79
|
+
transparent 100%
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
&::before,
|
|
83
|
+
&::after {
|
|
84
|
+
bottom: -16px;
|
|
85
|
+
}
|
|
86
|
+
.toolbar-inner {
|
|
87
|
+
padding-top: 16px;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
.navbar ~ .toolbar-top {
|
|
92
|
+
&::before,
|
|
93
|
+
&::after {
|
|
94
|
+
display: none;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
.toolbar-inner {
|
|
98
|
+
justify-content: center;
|
|
99
|
+
overflow: visible;
|
|
100
|
+
gap: 16px;
|
|
101
|
+
}
|
|
102
|
+
.tabbar-scrollable .toolbar-pane {
|
|
103
|
+
.scrollable();
|
|
104
|
+
.no-scrollbar();
|
|
105
|
+
justify-content: flex-start;
|
|
106
|
+
}
|
|
107
|
+
.tabbar:not(.tabbar-scrollable) {
|
|
108
|
+
touch-action: none;
|
|
11
109
|
}
|
|
12
110
|
.tabbar-icons {
|
|
13
111
|
.tab-link,
|
|
@@ -20,17 +118,16 @@
|
|
|
20
118
|
}
|
|
21
119
|
}
|
|
22
120
|
}
|
|
23
|
-
@media (
|
|
24
|
-
.tabbar
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
121
|
+
@media (max-width: 767px) {
|
|
122
|
+
.tabbar .toolbar-pane {
|
|
123
|
+
width: 100%;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
@media (min-width: 768px) {
|
|
127
|
+
.tabbar .tab-link {
|
|
128
|
+
padding-left: 16px;
|
|
129
|
+
padding-right: 16px;
|
|
130
|
+
min-width: 96px;
|
|
34
131
|
}
|
|
35
132
|
}
|
|
36
133
|
|
|
@@ -44,4 +141,45 @@
|
|
|
44
141
|
padding: 0 8px;
|
|
45
142
|
}
|
|
46
143
|
}
|
|
144
|
+
.tab-link-highlight {
|
|
145
|
+
position: absolute;
|
|
146
|
+
height: 100%;
|
|
147
|
+
top: 0;
|
|
148
|
+
transition-duration: 300ms;
|
|
149
|
+
border-radius: inherit;
|
|
150
|
+
.ltr({
|
|
151
|
+
left: 0;
|
|
152
|
+
});
|
|
153
|
+
.rtl({
|
|
154
|
+
right: 0;
|
|
155
|
+
});
|
|
156
|
+
&::before,
|
|
157
|
+
&::after {
|
|
158
|
+
content: '';
|
|
159
|
+
position: absolute;
|
|
160
|
+
inset: 4px;
|
|
161
|
+
border-radius: inherit;
|
|
162
|
+
transition-duration: 300ms;
|
|
163
|
+
}
|
|
164
|
+
&::before {
|
|
165
|
+
background-color: var(--f7-tabbar-link-highlight-bg-color);
|
|
166
|
+
}
|
|
167
|
+
&::after {
|
|
168
|
+
opacity: 0;
|
|
169
|
+
box-shadow: var(--f7-glass-shadow-thumb);
|
|
170
|
+
background-color: var(--f7-tabbar-link-highlight-active-bg-color);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
.tab-link-highlight-pressed {
|
|
174
|
+
&::before {
|
|
175
|
+
opacity: 0;
|
|
176
|
+
}
|
|
177
|
+
&::after {
|
|
178
|
+
opacity: 1;
|
|
179
|
+
}
|
|
180
|
+
&::before,
|
|
181
|
+
&::after {
|
|
182
|
+
scale: 1.4;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
47
185
|
}
|
|
@@ -1,14 +1,58 @@
|
|
|
1
1
|
.md {
|
|
2
|
+
.toolbar-pane {
|
|
3
|
+
display: contents;
|
|
4
|
+
}
|
|
2
5
|
.toolbar {
|
|
6
|
+
background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color));
|
|
3
7
|
.link {
|
|
4
8
|
justify-content: center;
|
|
5
9
|
padding: 0 12px;
|
|
6
10
|
min-width: 48px;
|
|
11
|
+
min-height: 48px;
|
|
12
|
+
line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height));
|
|
13
|
+
height: var(--f7-toolbar-link-height, var(--f7-toolbar-height));
|
|
7
14
|
}
|
|
8
|
-
a.icon-only {
|
|
9
|
-
min-width:
|
|
15
|
+
a:is(.icon-only, :has(i:only-child), :has(svg:only-child)) {
|
|
16
|
+
min-width: 48px;
|
|
10
17
|
flex-shrink: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
.toolbar-top,
|
|
22
|
+
.md .toolbar-top-md {
|
|
23
|
+
&.no-outline {
|
|
24
|
+
&:after {
|
|
25
|
+
display: none !important;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
&.toolbar-hidden {
|
|
29
|
+
&:before {
|
|
30
|
+
display: none !important;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
&:after,
|
|
34
|
+
&:before {
|
|
35
|
+
backface-visibility: hidden;
|
|
36
|
+
}
|
|
37
|
+
.hairline(bottom, var(--f7-toolbar-border-color, var(--f7-bars-border-color)));
|
|
38
|
+
}
|
|
39
|
+
.toolbar-bottom,
|
|
40
|
+
.md .toolbar-bottom-md {
|
|
41
|
+
&.no-outline {
|
|
42
|
+
&:before {
|
|
43
|
+
display: none !important;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
&.toolbar-hidden {
|
|
47
|
+
&:after {
|
|
48
|
+
display: none !important;
|
|
49
|
+
}
|
|
11
50
|
}
|
|
51
|
+
.hairline(top, var(--f7-toolbar-border-color, var(--f7-bars-border-color)));
|
|
52
|
+
}
|
|
53
|
+
.toolbar-inner {
|
|
54
|
+
justify-content: space-between;
|
|
55
|
+
overflow: hidden;
|
|
12
56
|
}
|
|
13
57
|
.tabbar,
|
|
14
58
|
.tabbar-icons {
|
|
@@ -17,7 +61,7 @@
|
|
|
17
61
|
padding-left: 0;
|
|
18
62
|
padding-right: 0;
|
|
19
63
|
}
|
|
20
|
-
a.icon-only {
|
|
64
|
+
a:is(.icon-only, :has(i:only-child), :has(svg:only-child)) {
|
|
21
65
|
flex-shrink: initial;
|
|
22
66
|
}
|
|
23
67
|
.tab-link {
|
|
@@ -74,4 +118,34 @@
|
|
|
74
118
|
padding: 0 12px;
|
|
75
119
|
}
|
|
76
120
|
}
|
|
121
|
+
.toolbar-top-md,
|
|
122
|
+
.toolbar-top {
|
|
123
|
+
.tab-link-highlight {
|
|
124
|
+
bottom: 0;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
.toolbar-bottom,
|
|
128
|
+
.toolbar-bottom-md {
|
|
129
|
+
.tab-link-highlight {
|
|
130
|
+
top: 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
.tabbar,
|
|
134
|
+
.tabbar-icons {
|
|
135
|
+
&.tabbar-icons .tab-link-highlight {
|
|
136
|
+
display: none;
|
|
137
|
+
}
|
|
138
|
+
&:not(.tabbar-icons) .tab-link-highlight {
|
|
139
|
+
position: absolute;
|
|
140
|
+
height: 2px;
|
|
141
|
+
background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color));
|
|
142
|
+
transition-duration: 300ms;
|
|
143
|
+
.ltr({
|
|
144
|
+
left: 0;
|
|
145
|
+
});
|
|
146
|
+
.rtl({
|
|
147
|
+
right: 0;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
77
151
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
--f7-toolbar-bg-color: var(--f7-bars-bg-color);
|
|
4
4
|
--f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
|
|
5
5
|
--f7-toolbar-border-color: var(--f7-bars-border-color);
|
|
6
|
-
--f7-toolbar-link-color: var(--f7-bars-link-color);
|
|
7
6
|
--f7-toolbar-text-color: var(--f7-bars-text-color);
|
|
8
7
|
*/
|
|
9
8
|
--f7-tabbar-link-active-bg-color: transparent;
|
|
@@ -11,18 +10,20 @@
|
|
|
11
10
|
--f7-toolbar-hide-show-transition-duration: 400ms;
|
|
12
11
|
}
|
|
13
12
|
.ios-vars({
|
|
14
|
-
--f7-toolbar-height:
|
|
13
|
+
--f7-toolbar-height: 64px;
|
|
15
14
|
--f7-toolbar-font-size: 17px;
|
|
16
|
-
--f7-toolbar-inner-padding-left:
|
|
17
|
-
--f7-toolbar-inner-padding-right:
|
|
15
|
+
--f7-toolbar-inner-padding-left: 16px;
|
|
16
|
+
--f7-toolbar-inner-padding-right: 16px;
|
|
18
17
|
--f7-toolbar-link-font-weight: 400;
|
|
18
|
+
--f7-toolbar-link-color: var(--f7-bars-text-color);
|
|
19
|
+
--f7-tabbar-link-inactive-color: var(--f7-bars-text-color);
|
|
19
20
|
/*
|
|
20
21
|
--f7-toolbar-link-height: var(--f7-toolbar-height);
|
|
21
22
|
--f7-toolbar-link-line-height: var(--f7-toolbar-height);
|
|
22
23
|
--f7-tabbar-link-active-color: var(--f7-theme-color);
|
|
23
24
|
*/
|
|
24
|
-
--f7-tabbar-icons-height:
|
|
25
|
-
--f7-tabbar-icons-tablet-height:
|
|
25
|
+
--f7-tabbar-icons-height: 80px;
|
|
26
|
+
--f7-tabbar-icons-tablet-height: 80px;
|
|
26
27
|
--f7-tabbar-icon-size: 28px;
|
|
27
28
|
--f7-tabbar-link-text-transform: none;
|
|
28
29
|
--f7-tabbar-link-font-weight: 400;
|
|
@@ -32,11 +33,13 @@
|
|
|
32
33
|
--f7-tabbar-label-tablet-font-size: 14px;
|
|
33
34
|
--f7-tabbar-label-font-weight: 500;
|
|
34
35
|
--f7-tabbar-label-letter-spacing: 0.01;
|
|
35
|
-
.light-vars({
|
|
36
|
-
--f7-tabbar-link-inactive-color: rgba(0,0,0,0.4);
|
|
37
|
-
});
|
|
38
36
|
.dark-vars({
|
|
39
|
-
--f7-tabbar-link-
|
|
37
|
+
--f7-tabbar-link-highlight-bg-color: rgba(255,255,255,0.15);
|
|
38
|
+
--f7-tabbar-link-highlight-active-bg-color: rgba(255,255,255,0.1);
|
|
39
|
+
});
|
|
40
|
+
.light-vars({
|
|
41
|
+
--f7-tabbar-link-highlight-bg-color: rgba(0,0,0,0.1);
|
|
42
|
+
--f7-tabbar-link-highlight-active-bg-color: rgba(0,0,0,0.05);
|
|
40
43
|
});
|
|
41
44
|
|
|
42
45
|
});
|
|
@@ -46,6 +49,7 @@
|
|
|
46
49
|
--f7-toolbar-inner-padding-left: 0px;
|
|
47
50
|
--f7-toolbar-inner-padding-right: 0px;
|
|
48
51
|
/*
|
|
52
|
+
--f7-toolbar-link-color: var(--f7-bars-link-color);
|
|
49
53
|
--f7-toolbar-link-height: var(--f7-toolbar-height);
|
|
50
54
|
--f7-toolbar-link-line-height: var(--f7-toolbar-height);
|
|
51
55
|
*/
|