@ionic/core 8.2.3-dev.11723022900.1196a7bf → 8.2.3-dev.11724326037.1eacfaff
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/button.js +7 -6
- package/components/ion-card-content.js +5 -5
- package/components/ion-card-header.js +4 -4
- package/components/ion-card-subtitle.js +4 -4
- package/components/ion-card.js +3 -3
- package/components/ion-input-password-toggle.js +11 -7
- package/components/item.js +11 -4
- package/components/ripple-effect.js +15 -5
- package/components/spinner.js +4 -5
- package/dist/cjs/ion-button_2.cjs.entry.js +6 -5
- package/dist/cjs/ion-card_5.cjs.entry.js +16 -16
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +11 -7
- package/dist/cjs/ion-item_8.cjs.entry.js +11 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -4
- package/dist/cjs/ion-spinner.cjs.entry.js +3 -4
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/button/button.ionic.css +346 -211
- package/dist/collection/components/button/button.ios.css +87 -20
- package/dist/collection/components/button/button.js +4 -3
- package/dist/collection/components/button/button.md.css +87 -20
- package/dist/collection/components/button/test/basic/button.e2e.js +3 -3
- package/dist/collection/components/button/test/clear/button.e2e.js +1 -1
- package/dist/collection/components/button/test/outline/button.e2e.js +1 -1
- package/dist/collection/components/card/card.ionic.css +61 -10
- package/dist/collection/components/card/card.ios.css +37 -12
- package/dist/collection/components/card/card.md.css +37 -12
- package/dist/collection/components/card-content/card-content.ionic.css +92 -0
- package/dist/collection/components/card-content/card-content.ios.css +4 -1
- package/dist/collection/components/card-content/card-content.js +3 -3
- package/dist/collection/components/card-content/card-content.md.css +4 -1
- package/dist/collection/components/card-header/card-header.ionic.css +89 -0
- package/dist/collection/components/card-header/card-header.ios.css +15 -15
- package/dist/collection/components/card-header/card-header.js +4 -4
- package/dist/collection/components/card-header/card-header.md.css +15 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +148 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +4 -4
- package/dist/collection/components/card-title/card-title.ios.css +61 -0
- package/dist/collection/components/card-title/card-title.md.css +61 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.common.css +61 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +137 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +9 -7
- package/dist/collection/components/input-password-toggle/test/basic/input-password-toggle.e2e.js +1 -1
- package/dist/collection/components/item/item.ionic.css +12 -0
- package/dist/collection/components/item/item.js +10 -3
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +154 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +7 -3
- package/dist/collection/components/spinner/spinner.js +4 -5
- package/dist/docs.json +157 -1
- package/dist/esm/ion-button_2.entry.js +7 -6
- package/dist/esm/ion-card_5.entry.js +16 -16
- package/dist/esm/ion-input-password-toggle.entry.js +11 -7
- package/dist/esm/ion-item_8.entry.js +11 -4
- package/dist/esm/ion-ripple-effect.entry.js +14 -4
- package/dist/esm/ion-spinner.entry.js +4 -5
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-22952d7a.system.entry.js +4 -0
- package/dist/ionic/p-33dd8047.system.entry.js +4 -0
- package/dist/ionic/p-3d9c39bc.entry.js +4 -0
- package/dist/ionic/p-4f053633.system.entry.js +4 -0
- package/dist/ionic/p-7b590e46.system.js +1 -1
- package/dist/ionic/p-8b09c4cb.system.entry.js +4 -0
- package/dist/ionic/p-91b33f25.entry.js +4 -0
- package/dist/ionic/p-a0e155e1.system.entry.js +4 -0
- package/dist/ionic/p-a814eee1.entry.js +4 -0
- package/dist/ionic/p-c1bb715a.entry.js +4 -0
- package/dist/ionic/p-d3c9617d.system.entry.js +4 -0
- package/dist/ionic/p-d45fd591.entry.js +4 -0
- package/dist/ionic/p-f1aa5723.entry.js +4 -0
- package/dist/types/components/item/item.d.ts +5 -0
- package/hydrate/index.js +62 -41
- package/package.json +1 -1
- package/dist/collection/components/input-password-toggle/input-password-toggle.css +0 -0
- package/dist/ionic/p-128f0f15.system.entry.js +0 -4
- package/dist/ionic/p-1be0295f.entry.js +0 -4
- package/dist/ionic/p-41c9fb60.entry.js +0 -4
- package/dist/ionic/p-42452dc9.entry.js +0 -4
- package/dist/ionic/p-4d6c2031.system.entry.js +0 -4
- package/dist/ionic/p-4fdbf0ef.entry.js +0 -4
- package/dist/ionic/p-7459eeb7.system.entry.js +0 -4
- package/dist/ionic/p-8102551e.system.entry.js +0 -4
- package/dist/ionic/p-924deb6b.entry.js +0 -4
- package/dist/ionic/p-b1938594.entry.js +0 -4
- package/dist/ionic/p-bbefc52b.system.entry.js +0 -4
- package/dist/ionic/p-d774e194.system.entry.js +0 -4
- /package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +0 -0
|
@@ -63,8 +63,101 @@
|
|
|
63
63
|
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
64
64
|
* convert to a unit other than $baselineUnit.
|
|
65
65
|
*/
|
|
66
|
+
/**
|
|
67
|
+
* Convert a pixels given value into rem
|
|
68
|
+
*
|
|
69
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
70
|
+
* @param context (optional) - Baseline value
|
|
71
|
+
*/
|
|
72
|
+
/**
|
|
73
|
+
* Convert a font size to a dynamic font size.
|
|
74
|
+
* Fonts that participate in Dynamic Type should use
|
|
75
|
+
* dynamic font sizes.
|
|
76
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
77
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
78
|
+
* convert to a unit other than $baselineUnit.
|
|
79
|
+
*/
|
|
80
|
+
/**
|
|
81
|
+
* Convert a font size to a dynamic font size but impose
|
|
82
|
+
* a maximum font size.
|
|
83
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
84
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
85
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
86
|
+
* convert to a unit other than $baselineUnit.
|
|
87
|
+
*/
|
|
88
|
+
/**
|
|
89
|
+
* Convert a font size to a dynamic font size but impose
|
|
90
|
+
* a minimum font size.
|
|
91
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
92
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
93
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
94
|
+
* convert to a unit other than $baselineUnit.
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* Convert a font size to a dynamic font size but impose
|
|
98
|
+
* maximum and minimum font sizes.
|
|
99
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
100
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
101
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
102
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
103
|
+
* convert to a unit other than $baselineUnit.
|
|
104
|
+
*/
|
|
105
|
+
/**
|
|
106
|
+
* A heuristic that applies CSS to tablet
|
|
107
|
+
* viewports.
|
|
108
|
+
*
|
|
109
|
+
* Usage:
|
|
110
|
+
* @include tablet-viewport() {
|
|
111
|
+
* :host {
|
|
112
|
+
* background-color: green;
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
*/
|
|
116
|
+
/**
|
|
117
|
+
* A heuristic that applies CSS to mobile
|
|
118
|
+
* viewports (i.e. phones, not tablets).
|
|
119
|
+
*
|
|
120
|
+
* Usage:
|
|
121
|
+
* @include mobile-viewport() {
|
|
122
|
+
* :host {
|
|
123
|
+
* background-color: blue;
|
|
124
|
+
* }
|
|
125
|
+
* }
|
|
126
|
+
*/
|
|
66
127
|
:host {
|
|
128
|
+
/**
|
|
129
|
+
* @prop --background: Background of the button
|
|
130
|
+
* @prop --background-activated: Background of the button when pressed. Note: setting this will interfere with the Material Design ripple.
|
|
131
|
+
* @prop --background-activated-opacity: Opacity of the button when pressed
|
|
132
|
+
* @prop --background-focused: Background of the button when focused with the tab key
|
|
133
|
+
* @prop --background-focused-opacity: Opacity of the button when focused with the tab key
|
|
134
|
+
* @prop --background-hover: Background of the button on hover
|
|
135
|
+
* @prop --background-hover-opacity: Opacity of the background on hover
|
|
136
|
+
*
|
|
137
|
+
* @prop --color: Text color of the button
|
|
138
|
+
* @prop --color-activated: Text color of the button when pressed
|
|
139
|
+
* @prop --color-focused: Text color of the button when focused with the tab key
|
|
140
|
+
* @prop --color-hover: Text color of the button when hover
|
|
141
|
+
*
|
|
142
|
+
* @prop --transition: Transition of the button
|
|
143
|
+
*
|
|
144
|
+
* @prop --border-radius: Border radius of the button
|
|
145
|
+
* @prop --border-width: Border width of the button
|
|
146
|
+
* @prop --border-style: Border style of the button
|
|
147
|
+
* @prop --border-color: Border color of the button
|
|
148
|
+
*
|
|
149
|
+
* @prop --ripple-color: Color of the button ripple effect
|
|
150
|
+
*
|
|
151
|
+
* @prop --box-shadow: Box shadow of the button
|
|
152
|
+
* @prop --opacity: Opacity of the button
|
|
153
|
+
*
|
|
154
|
+
* @prop --padding-top: Top padding of the button
|
|
155
|
+
* @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the button
|
|
156
|
+
* @prop --padding-bottom: Bottom padding of the button
|
|
157
|
+
* @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the button
|
|
158
|
+
*/
|
|
67
159
|
--overflow: hidden;
|
|
160
|
+
--ripple-color: currentColor;
|
|
68
161
|
--border-width: initial;
|
|
69
162
|
--border-color: initial;
|
|
70
163
|
--border-style: initial;
|
|
@@ -72,19 +165,9 @@
|
|
|
72
165
|
--color-focused: var(--color);
|
|
73
166
|
--color-hover: var(--color);
|
|
74
167
|
--box-shadow: none;
|
|
75
|
-
--padding-bottom: var(--padding-top);
|
|
76
|
-
--padding-end: var(--ionic-space-400, 16px);
|
|
77
|
-
--padding-start: var(--padding-end);
|
|
78
|
-
--padding-top: var(--ionic-space-300, 12px);
|
|
79
|
-
--focus-ring-color: var(--ionic-state-focus-1, #9ec4fd);
|
|
80
|
-
--focus-ring-width: var(--ionic-border-size-050, 2px);
|
|
81
168
|
display: inline-block;
|
|
82
|
-
position: relative;
|
|
83
169
|
width: auto;
|
|
84
|
-
min-height: var(--ionic-scale-1000, 40px);
|
|
85
170
|
color: var(--color);
|
|
86
|
-
font-family: var(--ionic-font-family, "Inter", sans-serif);
|
|
87
|
-
font-size: var(--ionic-font-size-350, 0.875rem);
|
|
88
171
|
text-align: center;
|
|
89
172
|
text-decoration: none;
|
|
90
173
|
white-space: normal;
|
|
@@ -93,221 +176,28 @@
|
|
|
93
176
|
vertical-align: -webkit-baseline-middle;
|
|
94
177
|
font-kerning: none;
|
|
95
178
|
}
|
|
96
|
-
:host::after {
|
|
97
|
-
right: 0;
|
|
98
|
-
left: 0;
|
|
99
|
-
top: 50%;
|
|
100
|
-
position: absolute;
|
|
101
|
-
height: 100%;
|
|
102
|
-
min-height: var(--ionic-scale-1200, 48px);
|
|
103
|
-
transform: translateY(-50%);
|
|
104
|
-
content: "";
|
|
105
|
-
cursor: pointer;
|
|
106
|
-
z-index: 1;
|
|
107
|
-
}
|
|
108
|
-
:host ::slotted(ion-icon[slot=start]) {
|
|
109
|
-
-webkit-margin-end: var(--ionic-space-200, 8px);
|
|
110
|
-
margin-inline-end: var(--ionic-space-200, 8px);
|
|
111
|
-
}
|
|
112
|
-
:host ::slotted(ion-icon[slot=end]) {
|
|
113
|
-
-webkit-margin-start: var(--ionic-space-200, 8px);
|
|
114
|
-
margin-inline-start: var(--ionic-space-200, 8px);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
:host(.button-solid.ion-color) .button-native {
|
|
118
|
-
background: var(--ion-color-base);
|
|
119
|
-
color: var(--ion-color-contrast);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
:host(.button-outline.ion-color) .button-native {
|
|
123
|
-
border-color: var(--ion-color-base);
|
|
124
|
-
background: transparent;
|
|
125
|
-
color: var(--ion-color-base);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
:host(.button-clear.ion-color) .button-native {
|
|
129
|
-
background: transparent;
|
|
130
|
-
color: var(--ion-color-base);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/* Extra Small and Small Button */
|
|
134
|
-
:host(.button-xsmall) ::slotted(ion-icon[slot=start]),
|
|
135
|
-
:host(.button-small) ::slotted(ion-icon[slot=start]) {
|
|
136
|
-
-webkit-margin-end: var(--ionic-space-100, 4px);
|
|
137
|
-
margin-inline-end: var(--ionic-space-100, 4px);
|
|
138
|
-
}
|
|
139
|
-
:host(.button-xsmall) ::slotted(ion-icon[slot=end]),
|
|
140
|
-
:host(.button-small) ::slotted(ion-icon[slot=end]) {
|
|
141
|
-
-webkit-margin-start: var(--ionic-space-100, 4px);
|
|
142
|
-
margin-inline-start: var(--ionic-space-100, 4px);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/* Extra Small Button */
|
|
146
|
-
:host(.button-xsmall) {
|
|
147
|
-
--padding-top: var(--ionic-space-100, 4px);
|
|
148
|
-
--padding-end: var(--ionic-space-300, 12px);
|
|
149
|
-
min-height: var(--ionic-space-600, 24px);
|
|
150
|
-
font-size: var(--ionic-font-size-300, 0.75rem);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* Small Button */
|
|
154
|
-
:host(.button-small) {
|
|
155
|
-
--padding-top: var(--ionic-space-200, 8px);
|
|
156
|
-
--padding-end: var(--ionic-space-400, 16px);
|
|
157
|
-
min-height: var(--ionic-scale-800, 32px);
|
|
158
|
-
font-size: var(--ionic-font-size-300, 0.75rem);
|
|
159
|
-
}
|
|
160
179
|
|
|
161
|
-
/* Large Button */
|
|
162
|
-
:host(.button-large) {
|
|
163
|
-
--padding-top: var(--ionic-space-400, 16px);
|
|
164
|
-
--padding-end: var(--ionic-space-600, 24px);
|
|
165
|
-
min-height: var(--ionic-scale-1200, 48px);
|
|
166
|
-
font-size: var(--ionic-font-size-400, 1rem);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/* Extra Large Button */
|
|
170
|
-
:host(.button-xlarge) {
|
|
171
|
-
--padding-top: var(--ionic-space-400, 16px);
|
|
172
|
-
--padding-end: var(--ionic-space-800, 32px);
|
|
173
|
-
min-height: var(--ionic-scale-1400, 56px);
|
|
174
|
-
font-size: var(--ionic-font-size-500, 1.25rem);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/* Button containing only an icon */
|
|
178
|
-
::slotted(ion-icon[slot=start]),
|
|
179
|
-
::slotted(ion-icon[slot=end]),
|
|
180
|
-
::slotted(ion-icon[slot=icon-only]) {
|
|
181
|
-
font-size: var(--ionic-font-size-400, 1rem);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
:host(.button-xsmall) ::slotted(ion-icon[slot=start]),
|
|
185
|
-
:host(.button-xsmall) ::slotted(ion-icon[slot=end]),
|
|
186
|
-
:host(.button-xsmall) ::slotted(ion-icon[slot=icon-only]),
|
|
187
|
-
:host(.button-small) ::slotted(ion-icon[slot=start]),
|
|
188
|
-
:host(.button-small) ::slotted(ion-icon[slot=end]),
|
|
189
|
-
:host(.button-small) ::slotted(ion-icon[slot=icon-only]),
|
|
190
|
-
:host(.button-large) ::slotted(ion-icon[slot=start]),
|
|
191
|
-
:host(.button-large) ::slotted(ion-icon[slot=end]),
|
|
192
|
-
:host(.button-large) ::slotted(ion-icon[slot=icon-only]),
|
|
193
|
-
:host(.button-xlarge) ::slotted(ion-icon[slot=start]),
|
|
194
|
-
:host(.button-xlarge) ::slotted(ion-icon[slot=end]),
|
|
195
|
-
:host(.button-xlarge) ::slotted(ion-icon[slot=icon-only]) {
|
|
196
|
-
font-size: inherit;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
:host(.button-has-icon-only) {
|
|
200
|
-
--padding-end: var(--padding-top);
|
|
201
|
-
aspect-ratio: 1/1;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
:host(.button-soft) {
|
|
205
|
-
--border-radius: var(--ionic-border-radius-200, 8px);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
:host(.button-soft.button-xsmall),
|
|
209
|
-
:host(.button-soft.button-small) {
|
|
210
|
-
--border-radius: var(--ionic-border-radius-100, 4px);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
:host(.button-round) {
|
|
214
|
-
--border-radius: var(--ionic-border-radius-full, 999px);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
:host(.button-rectangular) {
|
|
218
|
-
--border-radius: var(--ionic-border-radius-0, 0px);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
:host(.ion-focused) .button-native {
|
|
222
|
-
outline: var(--focus-ring-width) var(--ionic-border-style-solid, solid) var(--focus-ring-color);
|
|
223
|
-
outline-offset: var(--ionic-border-size-050, 2px);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
:host(.button-solid) {
|
|
227
|
-
--background-activated: var(--ionic-color-primary-base, #105cef);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
:host(.button-solid.ion-activated) .button-native::after {
|
|
231
|
-
background: var(--ionic-color-primary-900, #0d4bc3);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
:host(.button-outline) {
|
|
235
|
-
--border-width: var(--ionic-border-size-025, 1px);
|
|
236
|
-
--border-style: var(--ionic-border-style-solid, solid);
|
|
237
|
-
--background-activated: var(--ionic-color-neutral-200, #e7e7e7);
|
|
238
|
-
--background-activated-opacity: 1;
|
|
239
|
-
--background-focused: transparent;
|
|
240
|
-
--background-hover: transparent;
|
|
241
|
-
--background-focused-opacity: 0.1;
|
|
242
|
-
--color-activated: var(--ionic-color-primary-base, #105cef);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
:host(.button-outline.ion-focused) {
|
|
246
|
-
--border-color: transparent;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
:host(.button-clear) {
|
|
250
|
-
--background-activated: var(--ionic-color-neutral-200, #e7e7e7);
|
|
251
|
-
--background-activated-opacity: 1;
|
|
252
|
-
--background-focused: transparent;
|
|
253
|
-
--background-hover: transparent;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
:host(.button-solid) {
|
|
257
|
-
--background-hover: var(--ionic-color-primary-800, #0f54da);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
:host(.button-outline),
|
|
261
|
-
:host(.button-clear) {
|
|
262
|
-
--background-hover: var(--ionic-color-neutral-100, #f1f1f1);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Only allow overriding of opacity here
|
|
267
|
-
* as developers should not be overriding
|
|
268
|
-
* colors when using the color prop.
|
|
269
|
-
*/
|
|
270
|
-
:host(.button-solid.ion-color.ion-focused) .button-native::after {
|
|
271
|
-
background: current-color(contrast);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
:host(.button-clear.ion-color.ion-focused) .button-native::after,
|
|
275
|
-
:host(.button-outline.ion-color.ion-focused) .button-native::after {
|
|
276
|
-
background: current-color(base);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
@media (any-hover: hover) {
|
|
280
|
-
:host(.button-solid.ion-color:hover) .button-native::after {
|
|
281
|
-
background: current-color(contrast);
|
|
282
|
-
}
|
|
283
|
-
:host(.button-clear.ion-color:hover) .button-native::after,
|
|
284
|
-
:host(.button-outline.ion-color:hover) .button-native::after {
|
|
285
|
-
background: current-color(base);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
180
|
:host(.button-disabled) {
|
|
289
|
-
--background: var(--ionic-state-disabled, rgba(255, 255, 255, 0.6));
|
|
290
|
-
--border-color: var(--color);
|
|
291
181
|
cursor: default;
|
|
292
182
|
opacity: 0.5;
|
|
293
183
|
pointer-events: none;
|
|
294
184
|
}
|
|
295
185
|
|
|
296
186
|
:host(.button-solid) {
|
|
297
|
-
--background: var(--
|
|
298
|
-
--color: var(--
|
|
187
|
+
--background: var(--ion-color-primary, #0054e9);
|
|
188
|
+
--color: var(--ion-color-primary-contrast, #fff);
|
|
299
189
|
}
|
|
300
190
|
|
|
301
191
|
:host(.button-outline) {
|
|
302
|
-
--border-color: var(--ion-color-primary, #
|
|
303
|
-
--background:
|
|
304
|
-
--color: var(--ion-color-primary, #
|
|
192
|
+
--border-color: var(--ion-color-primary, #0054e9);
|
|
193
|
+
--background: transparent;
|
|
194
|
+
--color: var(--ion-color-primary, #0054e9);
|
|
305
195
|
}
|
|
306
196
|
|
|
307
197
|
:host(.button-clear) {
|
|
308
|
-
--border-width:
|
|
198
|
+
--border-width: 0;
|
|
309
199
|
--background: transparent;
|
|
310
|
-
--color: var(--
|
|
200
|
+
--color: var(--ion-color-primary, #0054e9);
|
|
311
201
|
}
|
|
312
202
|
|
|
313
203
|
:host(.button-block) {
|
|
@@ -414,10 +304,13 @@
|
|
|
414
304
|
}
|
|
415
305
|
|
|
416
306
|
::slotted(ion-icon) {
|
|
417
|
-
font-size: var(--ionic-font-size-500, 1.25rem);
|
|
418
307
|
pointer-events: none;
|
|
419
308
|
}
|
|
420
309
|
|
|
310
|
+
ion-ripple-effect {
|
|
311
|
+
color: var(--ripple-color);
|
|
312
|
+
}
|
|
313
|
+
|
|
421
314
|
.button-native::after {
|
|
422
315
|
right: 0;
|
|
423
316
|
left: 0;
|
|
@@ -453,4 +346,246 @@
|
|
|
453
346
|
:host(.ion-activated) .button-native::after {
|
|
454
347
|
background: var(--background-activated);
|
|
455
348
|
opacity: var(--background-activated-opacity);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
:host(.button-solid.ion-color) .button-native {
|
|
352
|
+
background: var(--ion-color-base);
|
|
353
|
+
color: var(--ion-color-contrast);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
:host(.button-outline.ion-color) .button-native {
|
|
357
|
+
border-color: var(--ion-color-base);
|
|
358
|
+
background: transparent;
|
|
359
|
+
color: var(--ion-color-base);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
:host(.button-clear.ion-color) .button-native {
|
|
363
|
+
background: transparent;
|
|
364
|
+
color: var(--ion-color-base);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
368
|
+
color: var(--ion-toolbar-color, var(--color));
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
372
|
+
border-color: var(--ion-toolbar-color, var(--color, var(--border-color)));
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
376
|
+
background: var(--ion-toolbar-color, var(--background));
|
|
377
|
+
color: var(--ion-toolbar-background, var(--color));
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
:host {
|
|
381
|
+
--padding-bottom: var(--padding-top);
|
|
382
|
+
--padding-end: var(--ionic-space-500, 20px);
|
|
383
|
+
--padding-start: var(--padding-end);
|
|
384
|
+
--padding-top: var(--ionic-space-0, 0px);
|
|
385
|
+
--focus-ring-color: var(--ionic-state-focus-1, #9ec4fd);
|
|
386
|
+
--focus-ring-width: var(--ionic-border-size-050, 2px);
|
|
387
|
+
position: relative;
|
|
388
|
+
min-height: var(--ionic-scale-1000, 40px);
|
|
389
|
+
font-family: var(--ionic-font-family, "Inter", sans-serif);
|
|
390
|
+
font-size: var(--ionic-font-size-350, 0.875rem);
|
|
391
|
+
}
|
|
392
|
+
:host::after {
|
|
393
|
+
right: 0;
|
|
394
|
+
left: 0;
|
|
395
|
+
top: 50%;
|
|
396
|
+
position: absolute;
|
|
397
|
+
height: 100%;
|
|
398
|
+
min-height: var(--ionic-scale-1200, 48px);
|
|
399
|
+
transform: translateY(-50%);
|
|
400
|
+
content: "";
|
|
401
|
+
cursor: pointer;
|
|
402
|
+
z-index: 1;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
:host(.button-solid) {
|
|
406
|
+
--background-activated: var(--ion-color-primary-shade, get-color-shade(#105cef));
|
|
407
|
+
--background-hover: var(--ion-color-primary-contrast, #fff);
|
|
408
|
+
--background-focused: var(--ion-color-primary-contrast, #fff);
|
|
409
|
+
--background-focused-opacity: 0.24;
|
|
410
|
+
--background-hover-opacity: 0.08;
|
|
411
|
+
--ripple-opacity: var(--background-activated-opacity, 1);
|
|
412
|
+
--ripple-color: var(--background-activated);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
:host(.button-outline) {
|
|
416
|
+
--border-width: var(--ionic-border-size-025, 1px);
|
|
417
|
+
--border-style: var(--ionic-border-style-solid, solid);
|
|
418
|
+
--background-activated: var(--ionic-color-neutral-200, #e7e7e7);
|
|
419
|
+
--background-focused: transparent;
|
|
420
|
+
--background-hover: var(--ion-color-primary, #105cef);
|
|
421
|
+
--background-hover-opacity: 0.04;
|
|
422
|
+
--ripple-opacity: var(--background-activated-opacity, 1);
|
|
423
|
+
--ripple-color: var(--background-activated);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
:host(.button-clear) {
|
|
427
|
+
--background-activated: var(--ionic-color-neutral-200, #e7e7e7);
|
|
428
|
+
--background-focused: transparent;
|
|
429
|
+
--background-hover: var(--ion-color-primary, #105cef);
|
|
430
|
+
--background-hover-opacity: 0.04;
|
|
431
|
+
--ripple-opacity: var(--background-activated-opacity, 1);
|
|
432
|
+
--ripple-color: var(--background-activated);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
:host(.button-solid.ion-color) ion-ripple-effect {
|
|
436
|
+
color: var(--ion-color-shade);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
:host(.button-outline.ion-color) ion-ripple-effect,
|
|
440
|
+
:host(.button-clear.ion-color) ion-ripple-effect {
|
|
441
|
+
color: var(--ionic-color-neutral-200, #e7e7e7);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/* Extra Small and Small Button */
|
|
445
|
+
:host(.button-xsmall) ::slotted(ion-icon[slot=start]),
|
|
446
|
+
:host(.button-small) ::slotted(ion-icon[slot=start]) {
|
|
447
|
+
-webkit-margin-end: var(--ionic-space-100, 4px);
|
|
448
|
+
margin-inline-end: var(--ionic-space-100, 4px);
|
|
449
|
+
}
|
|
450
|
+
:host(.button-xsmall) ::slotted(ion-icon[slot=end]),
|
|
451
|
+
:host(.button-small) ::slotted(ion-icon[slot=end]) {
|
|
452
|
+
-webkit-margin-start: var(--ionic-space-100, 4px);
|
|
453
|
+
margin-inline-start: var(--ionic-space-100, 4px);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/* Extra Small Button */
|
|
457
|
+
:host(.button-xsmall) {
|
|
458
|
+
--padding-top: var(--ionic-space-100, 4px);
|
|
459
|
+
--padding-end: var(--ionic-space-300, 12px);
|
|
460
|
+
min-height: var(--ionic-space-600, 24px);
|
|
461
|
+
font-size: var(--ionic-font-size-300, 0.75rem);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/* Small Button */
|
|
465
|
+
:host(.button-small) {
|
|
466
|
+
--padding-top: var(--ionic-space-200, 8px);
|
|
467
|
+
--padding-end: var(--ionic-space-400, 16px);
|
|
468
|
+
min-height: var(--ionic-scale-800, 32px);
|
|
469
|
+
font-size: var(--ionic-font-size-300, 0.75rem);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/* Large Button */
|
|
473
|
+
:host(.button-large) {
|
|
474
|
+
--padding-top: var(--ionic-space-400, 16px);
|
|
475
|
+
--padding-end: var(--ionic-space-600, 24px);
|
|
476
|
+
min-height: var(--ionic-scale-1200, 48px);
|
|
477
|
+
font-size: var(--ionic-font-size-400, 1rem);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/* Extra Large Button */
|
|
481
|
+
:host(.button-xlarge) {
|
|
482
|
+
--padding-top: var(--ionic-space-400, 16px);
|
|
483
|
+
--padding-end: var(--ionic-space-800, 32px);
|
|
484
|
+
min-height: var(--ionic-scale-1400, 56px);
|
|
485
|
+
font-size: var(--ionic-font-size-500, 1.25rem);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/* Button containing only an icon */
|
|
489
|
+
::slotted(ion-icon[slot=start]),
|
|
490
|
+
::slotted(ion-icon[slot=end]),
|
|
491
|
+
::slotted(ion-icon[slot=icon-only]) {
|
|
492
|
+
font-size: var(--ionic-font-size-400, 1rem);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
:host(.button-xsmall) ::slotted(ion-icon[slot=start]),
|
|
496
|
+
:host(.button-xsmall) ::slotted(ion-icon[slot=end]),
|
|
497
|
+
:host(.button-xsmall) ::slotted(ion-icon[slot=icon-only]),
|
|
498
|
+
:host(.button-small) ::slotted(ion-icon[slot=start]),
|
|
499
|
+
:host(.button-small) ::slotted(ion-icon[slot=end]),
|
|
500
|
+
:host(.button-small) ::slotted(ion-icon[slot=icon-only]),
|
|
501
|
+
:host(.button-large) ::slotted(ion-icon[slot=start]),
|
|
502
|
+
:host(.button-large) ::slotted(ion-icon[slot=end]),
|
|
503
|
+
:host(.button-large) ::slotted(ion-icon[slot=icon-only]),
|
|
504
|
+
:host(.button-xlarge) ::slotted(ion-icon[slot=start]),
|
|
505
|
+
:host(.button-xlarge) ::slotted(ion-icon[slot=end]),
|
|
506
|
+
:host(.button-xlarge) ::slotted(ion-icon[slot=icon-only]) {
|
|
507
|
+
font-size: inherit;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
:host(.button-has-icon-only) {
|
|
511
|
+
--padding-end: var(--padding-top);
|
|
512
|
+
aspect-ratio: 1/1;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
:host(.button-soft) {
|
|
516
|
+
--border-radius: var(--ionic-border-radius-200, 8px);
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
:host(.button-soft.button-xsmall),
|
|
520
|
+
:host(.button-soft.button-small) {
|
|
521
|
+
--border-radius: var(--ionic-border-radius-100, 4px);
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
:host(.button-round) {
|
|
525
|
+
--border-radius: var(--ionic-border-radius-full, 999px);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
:host(.button-rectangular) {
|
|
529
|
+
--border-radius: var(--ionic-border-radius-0, 0px);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
:host(.ion-focused) .button-native {
|
|
533
|
+
outline: var(--focus-ring-width) var(--ionic-border-style-solid, solid) var(--focus-ring-color);
|
|
534
|
+
outline-offset: var(--ionic-border-size-050, 2px);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Only allow overriding of opacity here
|
|
539
|
+
* as developers should not be overriding
|
|
540
|
+
* colors when using the color prop.
|
|
541
|
+
*/
|
|
542
|
+
:host(.button-solid.ion-color.ion-focused) .button-native::after {
|
|
543
|
+
background: var(--ion-color-contrast);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
:host(.button-solid.ion-color.ion-activated) .button-native::after {
|
|
547
|
+
background: var(--ion-color-shade);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
:host(.ion-activated) .button-native:has(ion-ripple-effect)::after,
|
|
551
|
+
:host(.button-solid.ion-color.ion-activated) .button-native:has(ion-ripple-effect)::after {
|
|
552
|
+
background: transparent;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
:host(.button-disabled) {
|
|
556
|
+
opacity: 0.6;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
::slotted(ion-icon) {
|
|
560
|
+
font-size: var(--ionic-font-size-500, 1.25rem);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
:host(.button-small) ::slotted(ion-icon[slot=start]) {
|
|
564
|
+
-webkit-margin-end: var(--ionic-space-200, 8px);
|
|
565
|
+
margin-inline-end: var(--ionic-space-200, 8px);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
::slotted(ion-icon[slot=start]) {
|
|
569
|
+
-webkit-margin-end: var(--ionic-space-250, 10px);
|
|
570
|
+
margin-inline-end: var(--ionic-space-250, 10px);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
:host(.button-large) ::slotted(ion-icon[slot=start]) {
|
|
574
|
+
-webkit-margin-end: var(--ionic-space-300, 12px);
|
|
575
|
+
margin-inline-end: var(--ionic-space-300, 12px);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
:host(.button-small) ::slotted(ion-icon[slot=end]) {
|
|
579
|
+
-webkit-margin-start: var(--ionic-space-200, 8px);
|
|
580
|
+
margin-inline-start: var(--ionic-space-200, 8px);
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
::slotted(ion-icon[slot=end]) {
|
|
584
|
+
-webkit-margin-start: var(--ionic-space-250, 10px);
|
|
585
|
+
margin-inline-start: var(--ionic-space-250, 10px);
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
:host(.button-large) ::slotted(ion-icon[slot=end]) {
|
|
589
|
+
-webkit-margin-start: var(--ionic-space-300, 12px);
|
|
590
|
+
margin-inline-start: var(--ionic-space-300, 12px);
|
|
456
591
|
}
|