@ionic/core 8.8.16-dev.11784841344.1aa1a41c → 8.8.16-dev.11784914346.10d0804c

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.
Files changed (205) hide show
  1. package/components/ion-accordion.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-avatar.js +1 -1
  5. package/components/ion-back-button.js +1 -1
  6. package/components/ion-badge.js +1 -1
  7. package/components/ion-breadcrumb.js +1 -1
  8. package/components/ion-button.js +1 -1
  9. package/components/ion-buttons.js +1 -1
  10. package/components/ion-content.js +1 -1
  11. package/components/ion-datetime.js +1 -1
  12. package/components/ion-fab-button.js +1 -1
  13. package/components/ion-footer.js +1 -1
  14. package/components/ion-header.js +1 -1
  15. package/components/ion-icon.js +1 -1
  16. package/components/ion-input-password-toggle.js +1 -1
  17. package/components/ion-input.js +1 -1
  18. package/components/ion-item-option.js +1 -1
  19. package/components/ion-item.js +1 -1
  20. package/components/ion-menu-button.js +1 -1
  21. package/components/ion-refresher-content.js +1 -1
  22. package/components/ion-reorder.js +1 -1
  23. package/components/ion-searchbar.js +1 -1
  24. package/components/ion-segment-button.js +1 -1
  25. package/components/ion-select-modal.js +1 -1
  26. package/components/ion-select-popover.js +1 -1
  27. package/components/ion-select.js +1 -1
  28. package/components/ion-tab-bar.js +1 -1
  29. package/components/ion-tab-button.js +1 -1
  30. package/components/ion-title.js +1 -1
  31. package/components/ion-toast.js +1 -1
  32. package/components/ion-toggle.js +1 -1
  33. package/components/{p-DiKh2eQw.js → p-4u9RNymb.js} +1 -1
  34. package/components/{p-B8KYxaMx.js → p-B8xhFBOE.js} +1 -1
  35. package/components/p-BAnNwWMA.js +4 -0
  36. package/components/p-BYZR_5L4.js +4 -0
  37. package/components/p-B_zaqq5F.js +4 -0
  38. package/components/p-CO9VfZyc.js +4 -0
  39. package/components/p-Cjx0xPoU.js +4 -0
  40. package/components/p-CyWeCU8e.js +4 -0
  41. package/components/p-DRnK3A-V.js +4 -0
  42. package/components/p-DcVqGRkT.js +4 -0
  43. package/components/p-Dght1fh7.js +4 -0
  44. package/components/p-GpxJMpJu.js +4 -0
  45. package/dist/cjs/{index-Cu9JNpPi.js → index-CgAbCW6L.js} +1 -1
  46. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-alert.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-app_8.cjs.entry.js +194 -65
  50. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  51. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  53. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
  57. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  58. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  60. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-refresher_2.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  65. package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
  66. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  67. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +78 -80
  68. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  69. package/dist/cjs/ionic.cjs.js +1 -1
  70. package/dist/cjs/loader.cjs.js +1 -1
  71. package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +345 -0
  72. package/dist/collection/components/action-sheet/action-sheet.ionic.css +2 -5
  73. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -1
  74. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -1
  75. package/dist/collection/components/alert/alert.ionic.css +2 -5
  76. package/dist/collection/components/alert/alert.ios.css +2 -1
  77. package/dist/collection/components/alert/alert.md.css +2 -1
  78. package/dist/collection/components/avatar/avatar.ionic.css +12 -6
  79. package/dist/collection/components/badge/badge.ionic.css +6 -3
  80. package/dist/collection/components/badge/badge.ios.css +4 -2
  81. package/dist/collection/components/badge/badge.md.css +2 -1
  82. package/dist/collection/components/button/button.ionic.css +4 -2
  83. package/dist/collection/components/buttons/buttons.ionic.css +1 -1
  84. package/dist/collection/components/content/content.css +39 -0
  85. package/dist/collection/components/footer/footer-interface.js +1 -0
  86. package/dist/collection/components/footer/footer.ios.css +19 -4
  87. package/dist/collection/components/footer/footer.js +102 -15
  88. package/dist/collection/components/footer/footer.md.css +28 -0
  89. package/dist/collection/components/header/header-interface.js +1 -0
  90. package/dist/collection/components/header/header.ionic.css +153 -0
  91. package/dist/collection/components/header/header.ios.css +153 -123
  92. package/dist/collection/components/header/header.js +139 -28
  93. package/dist/collection/components/header/header.md.css +176 -1
  94. package/dist/collection/components/header/header.utils.js +6 -13
  95. package/dist/collection/components/input/input.ionic.css +2 -1
  96. package/dist/collection/components/input/input.ios.css +2 -1
  97. package/dist/collection/components/input/input.md.css +2 -1
  98. package/dist/collection/components/item-option/item-option.ionic.css +2 -1
  99. package/dist/collection/components/searchbar/searchbar.ionic.css +6 -2
  100. package/dist/collection/components/segment-button/segment-button.ionic.css +2 -1
  101. package/dist/collection/components/select/select.ionic.css +2 -1
  102. package/dist/collection/components/select-modal/select-modal.ionic.css +2 -5
  103. package/dist/collection/components/select-modal/select-modal.ios.css +2 -1
  104. package/dist/collection/components/select-modal/select-modal.md.css +2 -1
  105. package/dist/collection/components/select-popover/select-popover.ionic.css +2 -5
  106. package/dist/collection/components/select-popover/select-popover.ios.css +2 -1
  107. package/dist/collection/components/select-popover/select-popover.md.css +2 -1
  108. package/dist/collection/components/tab-bar/tab-bar.ionic.css +25 -3
  109. package/dist/collection/components/tab-bar/tab-bar.ios.css +15 -0
  110. package/dist/collection/components/tab-bar/tab-bar.js +94 -88
  111. package/dist/collection/components/tab-bar/tab-bar.md.css +15 -0
  112. package/dist/collection/components/tab-button/tab-button.ionic.css +2 -1
  113. package/dist/collection/components/title/title.md.css +7 -0
  114. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  115. package/dist/docs.json +144 -32
  116. package/dist/esm/{index-1y3VhUSy.js → index-D2tu5BUg.js} +1 -1
  117. package/dist/esm/ion-accordion_2.entry.js +1 -1
  118. package/dist/esm/ion-action-sheet.entry.js +3 -3
  119. package/dist/esm/ion-alert.entry.js +3 -3
  120. package/dist/esm/ion-app_8.entry.js +194 -65
  121. package/dist/esm/ion-avatar_3.entry.js +4 -4
  122. package/dist/esm/ion-back-button.entry.js +1 -1
  123. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  124. package/dist/esm/ion-button_2.entry.js +3 -3
  125. package/dist/esm/ion-datetime_3.entry.js +1 -1
  126. package/dist/esm/ion-fab_3.entry.js +1 -1
  127. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  128. package/dist/esm/ion-input.entry.js +4 -4
  129. package/dist/esm/ion-item-option_3.entry.js +1 -1
  130. package/dist/esm/ion-item_8.entry.js +1 -1
  131. package/dist/esm/ion-menu_3.entry.js +1 -1
  132. package/dist/esm/ion-refresher_2.entry.js +1 -1
  133. package/dist/esm/ion-reorder_2.entry.js +1 -1
  134. package/dist/esm/ion-searchbar.entry.js +2 -2
  135. package/dist/esm/ion-segment_2.entry.js +1 -1
  136. package/dist/esm/ion-select-modal.entry.js +4 -4
  137. package/dist/esm/ion-select_3.entry.js +5 -5
  138. package/dist/esm/ion-tab-bar_2.entry.js +79 -81
  139. package/dist/esm/ion-toggle.entry.js +1 -1
  140. package/dist/esm/ionic.js +1 -1
  141. package/dist/esm/loader.js +1 -1
  142. package/dist/esm/scroll-hide-controller-CUNW7EpD.js +342 -0
  143. package/dist/html.html-data.json +36 -4
  144. package/dist/ionic/ionic.esm.js +1 -1
  145. package/dist/ionic/p-07bd8446.entry.js +4 -0
  146. package/dist/ionic/p-103e1d9f.entry.js +4 -0
  147. package/dist/ionic/{p-eeb7b373.entry.js → p-18bc4f2d.entry.js} +1 -1
  148. package/dist/ionic/p-248265c2.entry.js +4 -0
  149. package/dist/ionic/{p-fb457fdd.entry.js → p-3bc5b5e9.entry.js} +1 -1
  150. package/dist/ionic/{p-42a882b7.entry.js → p-43b00c5b.entry.js} +1 -1
  151. package/dist/ionic/{p-d0f253fc.entry.js → p-56224b93.entry.js} +1 -1
  152. package/dist/ionic/p-5732396e.entry.js +4 -0
  153. package/dist/ionic/{p-b3d04a86.entry.js → p-58d8877d.entry.js} +1 -1
  154. package/dist/ionic/{p-9e9be378.entry.js → p-5d079dc1.entry.js} +1 -1
  155. package/dist/ionic/{p-d0dfc9a3.entry.js → p-5e9665dd.entry.js} +1 -1
  156. package/dist/ionic/{p-7b2fe639.entry.js → p-5fee5cc1.entry.js} +1 -1
  157. package/dist/ionic/p-64734604.entry.js +4 -0
  158. package/dist/ionic/p-69feeff9.entry.js +4 -0
  159. package/dist/ionic/p-83acfa2d.entry.js +4 -0
  160. package/dist/ionic/{p-f692219d.entry.js → p-849b1759.entry.js} +1 -1
  161. package/dist/ionic/{p-a09c7a4c.entry.js → p-86f040e0.entry.js} +1 -1
  162. package/dist/ionic/p-8cb23f27.entry.js +4 -0
  163. package/dist/ionic/p-C1I_d964.js +4 -0
  164. package/dist/ionic/p-b97778f5.entry.js +4 -0
  165. package/dist/ionic/p-be9db7e8.entry.js +4 -0
  166. package/dist/ionic/{p-2fba8f15.entry.js → p-c04429f2.entry.js} +1 -1
  167. package/dist/ionic/p-c25a2a9b.entry.js +4 -0
  168. package/dist/ionic/{p-a797625e.entry.js → p-d272ff4f.entry.js} +1 -1
  169. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  170. package/dist/types/components/footer/footer.d.ts +16 -0
  171. package/dist/types/components/header/header-interface.d.ts +1 -0
  172. package/dist/types/components/header/header.d.ts +17 -0
  173. package/dist/types/components/header/header.utils.d.ts +4 -5
  174. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  175. package/dist/types/components/tab-bar/tab-bar.d.ts +17 -14
  176. package/dist/types/components.d.ts +37 -13
  177. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  178. package/hydrate/index.js +477 -175
  179. package/hydrate/index.mjs +477 -175
  180. package/package.json +2 -2
  181. package/components/p-BZwQa9ey.js +0 -4
  182. package/components/p-CJCMdFb9.js +0 -4
  183. package/components/p-Ck_9SoHZ.js +0 -4
  184. package/components/p-CmnPD02Z.js +0 -4
  185. package/components/p-D-Xa9lMG.js +0 -4
  186. package/components/p-DFSqPtzD.js +0 -4
  187. package/components/p-NPsFR8Ng.js +0 -4
  188. package/components/p-U2gyA6Z0.js +0 -4
  189. package/components/p-q8wGOPJB.js +0 -4
  190. package/dist/cjs/keyboard-controller-CefyW9lm.js +0 -169
  191. package/dist/esm/keyboard-controller-BFwRdk2T.js +0 -167
  192. package/dist/ionic/p-0c4d9d7c.entry.js +0 -4
  193. package/dist/ionic/p-40dc9dbd.entry.js +0 -4
  194. package/dist/ionic/p-54419365.entry.js +0 -4
  195. package/dist/ionic/p-6293e9f1.entry.js +0 -4
  196. package/dist/ionic/p-7de397c7.entry.js +0 -4
  197. package/dist/ionic/p-8cf82b85.entry.js +0 -4
  198. package/dist/ionic/p-MqqcZQSB.js +0 -4
  199. package/dist/ionic/p-a6e04ca3.entry.js +0 -4
  200. package/dist/ionic/p-a6fe63f0.entry.js +0 -4
  201. package/dist/ionic/p-b275f17e.entry.js +0 -4
  202. package/dist/ionic/p-c5635175.entry.js +0 -4
  203. package/dist/ionic/p-dc8e0b91.entry.js +0 -4
  204. /package/components/{p-J03hHbbL.js → p-BaPtaYEC.js} +0 -0
  205. /package/dist/ionic/{p-1y3VhUSy.js → p-D2tu5BUg.js} +0 -0
@@ -9,6 +9,159 @@ ion-header ion-toolbar:first-of-type {
9
9
  padding-top: var(--ion-safe-area-top, 0);
10
10
  }
11
11
 
12
+ .header-collapse-fade ion-toolbar {
13
+ --opacity-scale: inherit;
14
+ }
15
+
16
+ /**
17
+ * Override styles applied during the page transition to prevent
18
+ * header flickering.
19
+ */
20
+ .header-collapse-fade.header-transitioning ion-toolbar {
21
+ --background: transparent;
22
+ --border-style: none;
23
+ }
24
+
25
+ .header-collapse-condense {
26
+ z-index: 9;
27
+ }
28
+
29
+ .header-collapse-condense ion-toolbar {
30
+ position: sticky;
31
+ top: 0;
32
+ }
33
+
34
+ .header-collapse-condense ion-toolbar:first-of-type {
35
+ /**
36
+ * The toolbar that contains the collapsible
37
+ * large title should not have safe area padding applied.
38
+ */
39
+ padding-top: 0px;
40
+ z-index: 1;
41
+ }
42
+
43
+ /**
44
+ * Large title toolbar should just use the content background
45
+ * since it needs to blend in with the header above it.
46
+ */
47
+ .header-collapse-condense ion-toolbar {
48
+ z-index: 0;
49
+ }
50
+
51
+ .header-collapse-condense ion-toolbar:last-of-type {
52
+ --border-width: 0px;
53
+ }
54
+
55
+ .header-collapse-condense ion-toolbar ion-searchbar {
56
+ padding-top: 0px;
57
+ padding-bottom: 13px;
58
+ }
59
+
60
+ .header-collapse-main {
61
+ --opacity-scale: 1;
62
+ }
63
+
64
+ .header-collapse-main ion-toolbar {
65
+ --opacity-scale: inherit;
66
+ }
67
+
68
+ .header-collapse-main ion-toolbar.in-toolbar ion-title,
69
+ .header-collapse-main ion-toolbar.in-toolbar ion-buttons {
70
+ transition: all 0.2s ease-in-out;
71
+ }
72
+
73
+ /**
74
+ * Large title toolbar should just use the content background
75
+ * since it needs to blend in with the header above it.
76
+ */
77
+ .header-collapse-condense ion-toolbar,
78
+ .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
79
+ --background: var(--ion-background-color, #fff);
80
+ }
81
+
82
+ /**
83
+ * Override styles applied during the page transition to prevent
84
+ * header flickering.
85
+ */
86
+ .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
87
+ --border-style: none;
88
+ --opacity-scale: 1;
89
+ }
90
+
91
+ .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,
92
+ .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
93
+ opacity: 0;
94
+ pointer-events: none;
95
+ }
96
+
97
+ /**
98
+ * There is a bug in Safari where changing
99
+ * the opacity of an element in a scrollable container
100
+ * while rubber-banding causes the scroll position
101
+ * to jump to the top
102
+ */
103
+ .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,
104
+ .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
105
+ visibility: hidden;
106
+ }
107
+
108
+ /**
109
+ * The main header is only hidden once the collapsible large
110
+ * title is configured. As a result, if the main header loads
111
+ * before the collapsible large title is configured then the
112
+ * main header will be visible briefly before being hidden
113
+ * by the collapsible large title.
114
+ *
115
+ * The following selector ensures that any main header
116
+ * on a page with a collapsible large title is hidden
117
+ * before the collapsible large title is configured.
118
+ * Once the collapsible large title is configured the main
119
+ * header will have the ".header-collapse-main" class, and
120
+ * this selector will no longer apply.
121
+ *
122
+ * The :has(...) part of the selector ensures a couple things:
123
+ * 1. This will only apply within a page view since the content
124
+ * must be a subsequent-sibling of the header (~ ion-content).
125
+ * 2. This will only apply when that content has an active condense
126
+ * header (the .header-collapse-condense class).
127
+ *
128
+ * We use opacity: 0 to avoid a layout shift.
129
+ * We use the class (not the attribute) because the class is only
130
+ * added when the condense effect is valid (large title present).
131
+ * The attribute alone is not sufficient since it would match even
132
+ * when the effect is guarded (e.g. no large title).
133
+ */
134
+ ion-header:not(.header-collapse-main):has(~ ion-content ion-header.header-collapse-condense) {
135
+ opacity: 0;
136
+ }
137
+
138
+ /**
139
+ * The deprecated collapse="condense" prop is iOS-only.
140
+ * On non-iOS themes, the condense header should be hidden since
141
+ * the JS won't activate it. Uses a class instead of an attribute
142
+ * selector because collapse is not a reflected prop, and framework
143
+ * proxies (Angular/Vue) bind it as a property.
144
+ */
145
+ .header-collapse-condense-hidden {
146
+ display: none;
147
+ }
148
+
149
+ ion-header.header-scroll-effect-hide {
150
+ transition: transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);
151
+ }
152
+
153
+ ion-header.header-scroll-effect-hide.header-scroll-hidden {
154
+ transform: translateY(-100%);
155
+ transition: transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);
156
+ opacity: 0;
157
+ }
158
+
159
+ @media (prefers-reduced-motion: reduce) {
160
+ ion-header.header-scroll-effect-hide,
161
+ ion-header.header-scroll-effect-hide.header-scroll-hidden {
162
+ transition: none;
163
+ }
164
+ }
12
165
  /**
13
166
  * Convert a pixels given value into rem
14
167
  *
@@ -139,8 +292,30 @@ ion-header {
139
292
  box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
140
293
  }
141
294
 
295
+ /**
296
+ * The condense header should blend seamlessly with the
297
+ * main header above it, so remove the box-shadow.
298
+ */
142
299
  .header-md.header-collapse-condense {
143
- display: none;
300
+ box-shadow: none;
301
+ }
302
+
303
+ /**
304
+ * When the condense header is active (large title visible),
305
+ * the main header's box-shadow should be hidden so it blends
306
+ * with the condense header below it.
307
+ */
308
+ .header-md.header-collapse-condense-inactive:not(.header-collapse-condense) {
309
+ box-shadow: none;
310
+ }
311
+
312
+ /**
313
+ * The fade effect fades the toolbar background via --opacity-scale,
314
+ * but box-shadow is not affected by that variable. Remove it so
315
+ * the shadow doesn't persist when the background is faded out.
316
+ */
317
+ .header-md.header-collapse-fade {
318
+ box-shadow: none;
144
319
  }
145
320
 
146
321
  .header-md.ion-no-border {
@@ -50,13 +50,14 @@ export const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
50
50
  });
51
51
  };
52
52
  export const setToolbarBackgroundOpacity = (headerEl, opacity) => {
53
+ var _a;
53
54
  /**
54
55
  * Fading in the backdrop opacity
55
56
  * should happen after the large title
56
57
  * has collapsed, so it is handled
57
58
  * by handleHeaderFade()
58
59
  */
59
- if (headerEl.collapse === 'fade') {
60
+ if (((_a = headerEl.scrollEffect) !== null && _a !== void 0 ? _a : headerEl.collapse) === 'fade') {
60
61
  return;
61
62
  }
62
63
  if (opacity === undefined) {
@@ -214,23 +215,15 @@ export const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
214
215
  * Get the role type for the ion-header.
215
216
  *
216
217
  * @param isInsideMenu If ion-header is inside ion-menu.
217
- * @param isCondensed If ion-header has collapse="condense".
218
- * @param theme The current theme.
219
- * @returns 'none' if inside ion-menu or if condensed in md
220
- * theme, otherwise 'banner'.
218
+ * @returns 'none' if inside ion-menu, otherwise 'banner'.
219
+ * Condensed headers start as 'banner' and have their role
220
+ * toggled dynamically by setHeaderActive() on scroll.
221
221
  */
222
- export const getRoleType = (isInsideMenu, isCondensed, theme) => {
222
+ export const getRoleType = (isInsideMenu) => {
223
223
  // If the header is inside a menu, it should not have the banner role.
224
224
  if (isInsideMenu) {
225
225
  return ROLE_NONE;
226
226
  }
227
- /**
228
- * Only apply role="none" to `md` & `ionic` theme condensed headers
229
- * since the large header is never shown.
230
- */
231
- if (isCondensed && theme !== 'ios') {
232
- return ROLE_NONE;
233
- }
234
227
  // Default to banner role.
235
228
  return ROLE_BANNER;
236
229
  };
@@ -775,7 +775,8 @@
775
775
  }
776
776
 
777
777
  .input-clear-icon ion-icon {
778
- font-size: var(--token-font-size-400, 1rem);
778
+ width: 100%;
779
+ height: 100%;
779
780
  }
780
781
 
781
782
  /**
@@ -813,7 +813,8 @@
813
813
  }
814
814
 
815
815
  .input-clear-icon ion-icon {
816
- font-size: 18px;
816
+ width: 18px;
817
+ height: 18px;
817
818
  }
818
819
 
819
820
  :host(.input-disabled) {
@@ -1176,7 +1176,8 @@
1176
1176
  }
1177
1177
 
1178
1178
  .input-clear-icon ion-icon {
1179
- font-size: 22px;
1179
+ width: 22px;
1180
+ height: 22px;
1180
1181
  }
1181
1182
 
1182
1183
  :host(.input-disabled) {
@@ -215,8 +215,9 @@
215
215
  margin-right: 0;
216
216
  margin-top: 0;
217
217
  margin-bottom: 0;
218
+ width: var(--token-scale-500, 20px);
218
219
  min-width: initial;
219
- font-size: var(--token-font-size-500, 1.25rem);
220
+ height: var(--token-scale-500, 20px);
220
221
  }
221
222
 
222
223
  /* Round */
@@ -238,7 +238,8 @@
238
238
  }
239
239
 
240
240
  .searchbar-search-icon {
241
- font-size: var(--token-font-size-400, 1rem);
241
+ width: var(--token-scale-400, 16px);
242
+ height: var(--token-scale-400, 16px);
242
243
  }
243
244
 
244
245
  .searchbar-input {
@@ -252,7 +253,7 @@
252
253
  width: var(--token-scale-400, 16px);
253
254
  height: var(--token-scale-400, 16px);
254
255
  background-color: transparent;
255
- font-size: var(--token-font-size-400, 1rem);
256
+ font-size: var(--token-scale-400, 16px);
256
257
  contain: strict;
257
258
  }
258
259
 
@@ -521,6 +522,9 @@
521
522
  :host(.searchbar-size-large) .searchbar-cancel-button {
522
523
  width: var(--token-scale-500, 20px);
523
524
  height: var(--token-scale-500, 20px);
525
+ }
526
+
527
+ :host(.searchbar-size-large) .searchbar-cancel-button {
524
528
  font-size: var(--token-font-size-500, 1.25rem);
525
529
  }
526
530
 
@@ -311,7 +311,8 @@
311
311
  }
312
312
 
313
313
  ::slotted(ion-icon) {
314
- font-size: var(--token-font-size-600, 1.5rem);
314
+ width: var(--token-scale-600, 24px);
315
+ height: var(--token-scale-600, 24px);
315
316
  }
316
317
 
317
318
  :host(.segment-button-checked) ::slotted(*) {
@@ -748,7 +748,8 @@ button {
748
748
 
749
749
  .select-icon,
750
750
  ::slotted(ion-icon) {
751
- font-size: var(--token-font-size-400, 1rem);
751
+ width: var(--token-scale-400, 16px);
752
+ height: var(--token-scale-400, 16px);
752
753
  }
753
754
 
754
755
  .select-icon {
@@ -103,22 +103,19 @@
103
103
  .select-option-start > ion-avatar,
104
104
  .select-option-start > ion-img,
105
105
  .select-option-start > ion-thumbnail,
106
+ .select-option-start > ion-icon,
106
107
  .select-option-start > img,
107
108
  .select-option-start > svg,
108
109
  .select-option-end > ion-avatar,
109
110
  .select-option-end > ion-img,
110
111
  .select-option-end > ion-thumbnail,
112
+ .select-option-end > ion-icon,
111
113
  .select-option-end > img,
112
114
  .select-option-end > svg {
113
115
  width: var(--token-scale-1200, 48px);
114
116
  height: var(--token-scale-1200, 48px);
115
117
  }
116
118
 
117
- .select-option-start > ion-icon,
118
- .select-option-end > ion-icon {
119
- font-size: var(--token-scale-1200, 48px);
120
- }
121
-
122
119
  .action-sheet-button-label-has-rich-content,
123
120
  .alert-radio-label-has-rich-content,
124
121
  .alert-checkbox-label-has-rich-content,
@@ -224,7 +224,8 @@
224
224
 
225
225
  .select-option-start > ion-icon,
226
226
  .select-option-end > ion-icon {
227
- font-size: 28px;
227
+ width: 28px;
228
+ height: 28px;
228
229
  }
229
230
 
230
231
  .action-sheet-button-label-text {
@@ -155,7 +155,8 @@
155
155
 
156
156
  .select-option-start > ion-icon,
157
157
  .select-option-end > ion-icon {
158
- font-size: 24px;
158
+ width: 24px;
159
+ height: 24px;
159
160
  }
160
161
 
161
162
  .select-option-start > ion-img,
@@ -103,22 +103,19 @@
103
103
  .select-option-start > ion-avatar,
104
104
  .select-option-start > ion-img,
105
105
  .select-option-start > ion-thumbnail,
106
+ .select-option-start > ion-icon,
106
107
  .select-option-start > img,
107
108
  .select-option-start > svg,
108
109
  .select-option-end > ion-avatar,
109
110
  .select-option-end > ion-img,
110
111
  .select-option-end > ion-thumbnail,
112
+ .select-option-end > ion-icon,
111
113
  .select-option-end > img,
112
114
  .select-option-end > svg {
113
115
  width: var(--token-scale-1200, 48px);
114
116
  height: var(--token-scale-1200, 48px);
115
117
  }
116
118
 
117
- .select-option-start > ion-icon,
118
- .select-option-end > ion-icon {
119
- font-size: var(--token-scale-1200, 48px);
120
- }
121
-
122
119
  .action-sheet-button-label-has-rich-content,
123
120
  .alert-radio-label-has-rich-content,
124
121
  .alert-checkbox-label-has-rich-content,
@@ -224,7 +224,8 @@
224
224
 
225
225
  .select-option-start > ion-icon,
226
226
  .select-option-end > ion-icon {
227
- font-size: 28px;
227
+ width: 28px;
228
+ height: 28px;
228
229
  }
229
230
 
230
231
  .action-sheet-button-label-text {
@@ -155,7 +155,8 @@
155
155
 
156
156
  .select-option-start > ion-icon,
157
157
  .select-option-end > ion-icon {
158
- font-size: 24px;
158
+ width: 24px;
159
+ height: 24px;
159
160
  }
160
161
 
161
162
  .select-option-start > ion-img,
@@ -112,6 +112,21 @@
112
112
  padding-bottom: 0;
113
113
  }
114
114
 
115
+ :host(.tab-bar-scroll-effect-hide) {
116
+ transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
117
+ }
118
+
119
+ :host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
120
+ transform: translateY(100%);
121
+ transition: transform 350ms cubic-bezier(0.4, 0, 1, 1);
122
+ }
123
+
124
+ @media (prefers-reduced-motion: reduce) {
125
+ :host(.tab-bar-scroll-effect-hide),
126
+ :host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
127
+ transition: none;
128
+ }
129
+ }
115
130
  :host {
116
131
  --background: var(--ion-tab-bar-background, var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff)));
117
132
  --background-activated: var(--ion-tab-bar-background-activated, var(--token-bg-select-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc))));
@@ -189,16 +204,16 @@
189
204
  bottom: calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-bottom, 0));
190
205
  }
191
206
 
192
- :host(.tab-bar-hide-on-scroll) {
207
+ :host(.tab-bar-scroll-effect-hide) {
193
208
  transition: transform var(--token-transition-time-200, 200ms) var(--token-transition-curve-spring, cubic-bezier(0.16, 1, 0.3, 1));
194
209
  }
195
210
 
196
- :host(.tab-bar-scroll-hidden) {
211
+ :host(.tab-bar-compact.tab-bar-scroll-hidden) {
197
212
  transform: translateY(calc(100% + var(--ion-safe-area-bottom, 0) + var(--token-space-1000, var(--token-scale-1000, 40px)))) translateX(-50%);
198
213
  transition: transform var(--token-transition-time-350, 350ms) var(--token-transition-curve-base, cubic-bezier(0.4, 0, 1, 1));
199
214
  }
200
215
 
201
- :host([slot=top].tab-bar-scroll-hidden) {
216
+ :host([slot=top].tab-bar-compact.tab-bar-scroll-hidden) {
202
217
  transform: translateY(-100%) translateX(-50%);
203
218
  }
204
219
 
@@ -224,4 +239,11 @@
224
239
  /* Rectangular */
225
240
  :host(.tab-bar-rectangular) {
226
241
  border-radius: var(--token-border-radius-0, var(--token-scale-0, 0px));
242
+ }
243
+
244
+ @media (prefers-reduced-motion: reduce) {
245
+ :host(.tab-bar-scroll-effect-hide),
246
+ :host(.tab-bar-compact.tab-bar-scroll-hidden) {
247
+ transition: none;
248
+ }
227
249
  }
@@ -51,6 +51,21 @@
51
51
  padding-bottom: 0;
52
52
  }
53
53
 
54
+ :host(.tab-bar-scroll-effect-hide) {
55
+ transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
56
+ }
57
+
58
+ :host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
59
+ transform: translateY(100%);
60
+ transition: transform 350ms cubic-bezier(0.4, 0, 1, 1);
61
+ }
62
+
63
+ @media (prefers-reduced-motion: reduce) {
64
+ :host(.tab-bar-scroll-effect-hide),
65
+ :host(.tab-bar-scroll-effect-hide.tab-bar-scroll-hidden) {
66
+ transition: none;
67
+ }
68
+ }
54
69
  /**
55
70
  * Convert a pixels given value into rem
56
71
  *