Skip to content

Commit ecf7295

Browse files
feat(button): add spinner sizes for ionic theme
1 parent ab81f3d commit ecf7295

File tree

2 files changed

+43
-10
lines changed

2 files changed

+43
-10
lines changed

core/src/components/button/button.common.scss

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,11 @@
211211
flex-shrink: 0;
212212
}
213213

214-
// Button Icons
214+
// Button Icons & Spinners
215215
// --------------------------------------------------
216216

217-
::slotted(ion-icon) {
217+
::slotted(ion-icon),
218+
::slotted(ion-spinner) {
218219
pointer-events: none;
219220
}
220221

core/src/components/button/button.ionic.scss

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@
9696
/* Extra Small and Small Button */
9797
:host(.button-xsmall),
9898
:host(.button-small) {
99-
::slotted(ion-icon[slot="start"]) {
99+
::slotted(ion-icon[slot="start"]),
100+
::slotted(ion-spinner[slot="start"]) {
100101
@include globals.margin-horizontal(null, globals.$ion-space-100);
101102
}
102103

103-
::slotted(ion-icon[slot="end"]) {
104+
::slotted(ion-icon[slot="end"]),
105+
::slotted(ion-spinner[slot="end"]) {
104106
@include globals.margin-horizontal(globals.$ion-space-100, null);
105107
}
106108
}
@@ -163,6 +165,7 @@
163165
::slotted(ion-icon[slot="end"]),
164166
::slotted(ion-icon[slot="icon-only"]) {
165167
font-size: inherit;
168+
166169
}
167170
}
168171

@@ -172,6 +175,25 @@
172175
aspect-ratio: 1 / 1;
173176
}
174177

178+
// Button with Spinner
179+
// -------------------------------------------------------------------------------
180+
::slotted(ion-spinner) {
181+
--color: currentColor;
182+
}
183+
184+
/* Button containing only a spinner */
185+
::slotted(ion-spinner[slot="start"]),
186+
::slotted(ion-spinner[slot="end"]),
187+
::slotted(ion-spinner[slot="icon-only"]) {
188+
height: globals.$ion-space-500;
189+
width: globals.$ion-space-500
190+
}
191+
192+
:host(.button-xlarge) ::slotted(ion-spinner){
193+
height: globals.$ion-space-600;
194+
width: globals.$ion-space-600;
195+
}
196+
175197
// Button Shapes
176198
// -------------------------------------------------------------------------------
177199

@@ -246,26 +268,36 @@
246268
font-size: globals.$ion-font-size-500;
247269
}
248270

249-
:host(.button-small) ::slotted(ion-icon[slot="start"]) {
271+
:host(.button-small)
272+
::slotted(ion-icon[slot="start"]),
273+
::slotted(ion-spinner[slot="start"]) {
250274
@include globals.margin-horizontal(null, globals.$ion-space-200);
251275
}
252276

253-
::slotted(ion-icon[slot="start"]) {
277+
::slotted(ion-icon[slot="start"]),
278+
::slotted(ion-spinner[slot="start"]) {
254279
@include globals.margin-horizontal(null, globals.$ion-space-250);
255280
}
256281

257-
:host(.button-large) ::slotted(ion-icon[slot="start"]) {
282+
:host(.button-large)
283+
::slotted(ion-icon[slot="start"]),
284+
::slotted(ion-spinner[slot="start"]) {
258285
@include globals.margin-horizontal(null, globals.$ion-space-300);
259286
}
260287

261-
:host(.button-small) ::slotted(ion-icon[slot="end"]) {
288+
:host(.button-small)
289+
::slotted(ion-icon[slot="end"]),
290+
::slotted(ion-spinner[slot="end"]) {
262291
@include globals.margin-horizontal(globals.$ion-space-200, null);
263292
}
264293

265-
::slotted(ion-icon[slot="end"]) {
294+
::slotted(ion-icon[slot="end"]),
295+
::slotted(ion-spinner[slot="end"]) {
266296
@include globals.margin-horizontal(globals.$ion-space-250, null);
267297
}
268298

269-
:host(.button-large) ::slotted(ion-icon[slot="end"]) {
299+
:host(.button-large)
300+
::slotted(ion-icon[slot="end"]),
301+
::slotted(ion-spinner[slot="end"]) {
270302
@include globals.margin-horizontal(globals.$ion-space-300, null);
271303
}

0 commit comments

Comments
 (0)