Skip to content

Commit e5c8c10

Browse files
fix(components): include mode classes on components for use in shadow (#17838)
- removes mode-less component classes from the internal CSS, use element instead - adds mode specific classes `md` or `ios` for styling inside of shadow components - adds e2e test that verifies mode classes exist on all ionic components, plus checks for specific classes that the components need for internal styling fixes #17608
1 parent 38ae362 commit e5c8c10

File tree

93 files changed

+685
-119
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+685
-119
lines changed

core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"loader/"
3131
],
3232
"dependencies": {
33-
"ionicons": "4.5.5"
33+
"ionicons": "4.5.6"
3434
},
3535
"devDependencies": {
3636
"@stencil/core": "0.17.3-0",

core/src/components/action-sheet/action-sheet.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ export class ActionSheet implements ComponentInterface, OverlayInterface {
196196
zIndex: 20000 + this.overlayIndex,
197197
},
198198
class: {
199+
[`${this.mode}`]: true,
200+
199201
...getClassMap(this.cssClass),
200202
'action-sheet-translucent': this.translucent
201203
}

core/src/components/alert/alert.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ export class Alert implements ComponentInterface, OverlayInterface {
392392
},
393393
class: {
394394
...getClassMap(this.cssClass),
395+
[`${this.mode}`]: true,
395396
'alert-translucent': this.translucent
396397
}
397398
};

core/src/components/anchor/anchor.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, ComponentInterface, Listen, Prop } from '@stencil/core';
22

3-
import { Color, RouterDirection } from '../../interface';
3+
import { Color, Mode, RouterDirection } from '../../interface';
44
import { createColorClasses, openURL } from '../../utils/theme';
55

66
@Component({
@@ -9,6 +9,7 @@ import { createColorClasses, openURL } from '../../utils/theme';
99
shadow: true
1010
})
1111
export class Anchor implements ComponentInterface {
12+
mode!: Mode;
1213

1314
@Prop({ context: 'window' }) win!: Window;
1415

@@ -40,6 +41,7 @@ export class Anchor implements ComponentInterface {
4041
return {
4142
class: {
4243
...createColorClasses(this.color),
44+
[`${this.mode}`]: true,
4345
'ion-activatable': true
4446
}
4547
};

core/src/components/app/app.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, ComponentInterface, Element, Prop, QueueApi } from '@stencil/core';
22

3-
import { Config } from '../../interface';
3+
import { Config, Mode } from '../../interface';
44
import { rIC } from '../../utils/helpers';
55
import { isPlatform } from '../../utils/platform';
66

@@ -9,6 +9,7 @@ import { isPlatform } from '../../utils/platform';
99
styleUrl: 'app.scss'
1010
})
1111
export class App implements ComponentInterface {
12+
mode!: Mode;
1213

1314
@Element() el!: HTMLElement;
1415

@@ -34,6 +35,7 @@ export class App implements ComponentInterface {
3435
hostData() {
3536
return {
3637
class: {
38+
[`${this.mode}`]: true,
3739
'ion-page': true,
3840
'force-statusbar-padding': this.config.getBoolean('_forceStatusbarPadding')
3941
}

core/src/components/avatar/avatar.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { Component, ComponentInterface } from '@stencil/core';
22

3+
import { Mode } from '../../interface';
4+
35
@Component({
46
tag: 'ion-avatar',
57
styleUrls: {
@@ -9,6 +11,15 @@ import { Component, ComponentInterface } from '@stencil/core';
911
shadow: true
1012
})
1113
export class Avatar implements ComponentInterface {
14+
mode!: Mode;
15+
16+
hostData() {
17+
return {
18+
class: {
19+
[`${this.mode}`]: true,
20+
}
21+
};
22+
}
1223

1324
render() {
1425
return <slot></slot>;

core/src/components/back-button/back-button.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export class BackButton implements ComponentInterface {
6262
return {
6363
class: {
6464
...createColorClasses(this.color),
65+
[`${this.mode}`]: true,
6566

6667
'button': true, // ion-buttons target .button
6768
'ion-activatable': true,

core/src/components/backdrop/backdrop.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Component, ComponentInterface, Event, EventEmitter, Listen, Prop } from '@stencil/core';
22

3+
import { Mode } from '../../interface';
34
import { GESTURE_CONTROLLER } from '../../utils/gesture';
45
import { now } from '../../utils/helpers';
56

@@ -12,6 +13,7 @@ import { now } from '../../utils/helpers';
1213
shadow: true
1314
})
1415
export class Backdrop implements ComponentInterface {
16+
mode!: Mode;
1517

1618
private lastClick = -10000;
1719
private blocker = GESTURE_CONTROLLER.createBlocker({
@@ -78,6 +80,7 @@ export class Backdrop implements ComponentInterface {
7880
return {
7981
tabindex: '-1',
8082
class: {
83+
[`${this.mode}`]: true,
8184
'backdrop-hide': !this.visible,
8285
'backdrop-no-tappable': !this.tappable,
8386
}

core/src/components/badge/badge.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ export class Badge implements ComponentInterface {
2626

2727
hostData() {
2828
return {
29-
class: createColorClasses(this.color)
29+
class: {
30+
...createColorClasses(this.color),
31+
[`${this.mode}`]: true
32+
}
3033
};
3134
}
3235

core/src/components/button/button.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ export class Button implements ComponentInterface {
148148
'aria-disabled': disabled ? 'true' : null,
149149
class: {
150150
...createColorClasses(color),
151+
[`${this.mode}`]: true,
151152
[buttonType]: true,
152153
[`${buttonType}-${expand}`]: expand !== undefined,
153154
[`${buttonType}-${size}`]: size !== undefined,

0 commit comments

Comments
 (0)