diff --git a/BREAKING.md b/BREAKING.md
index 3575a2a4387..65569e4660c 100644
--- a/BREAKING.md
+++ b/BREAKING.md
@@ -28,7 +28,9 @@ This is a comprehensive list of the breaking changes introduced in the major ver
Card
-- The `border-radius` of the `ios` and `md` card now defaults to `14px` and `12px` instead of `8px` and `4px`, respectively, in accordance with the iOS and Material Design 3 guidelines. To revert to the previous appearance, set the `shape` to `"soft"`, or override the `--border-radius` CSS variable to specify a different value.
+- **ion-card**: The `border-radius` of the `ios` and `md` card now defaults to `14px` and `12px` instead of `8px` and `4px`, respectively, in accordance with the iOS and Material Design 3 guidelines. To revert to the previous appearance, set the `shape` to `"soft"`, or override the `--border-radius` CSS variable to specify a different value.
+
+- **ion-card-content**: The `ion-card-content` component has been updated to Shadow DOM. With this update, all card-related components now use Shadow DOM for style encapsulation.
Chip
@@ -41,6 +43,7 @@ This is a comprehensive list of the breaking changes introduced in the major ver
Example 1: Swap two columns
**Version up to 8.x**
+
```html
@@ -50,7 +53,9 @@ This is a comprehensive list of the breaking changes introduced in the major ver
```
+
**Version 9.x+**
+
```html
@@ -62,9 +67,11 @@ This is a comprehensive list of the breaking changes introduced in the major ver
```
Example 2: Reorder columns with specific sizes
+
To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `size="3" pull="9"`:
**Version up to 8.x**
+
```html
@@ -73,7 +80,9 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
```
+
**Version 9.x+**
+
```html
@@ -82,7 +91,9 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
```
+
Example 3: Push
+
```html
@@ -95,7 +106,9 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
```
+
**Version 9.x+**
+
```html
@@ -110,6 +123,7 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
```
Example 4: Push and Pull
+
```html
@@ -122,7 +136,9 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
```
+
**Version 9.x+**
+
```html
@@ -134,4 +150,4 @@ To reorder two columns where column 1 has `size="9" push="3"` and column 2 has `
-```
\ No newline at end of file
+```
diff --git a/core/api.txt b/core/api.txt
index e4597ef5934..38c1f188fc6 100644
--- a/core/api.txt
+++ b/core/api.txt
@@ -504,7 +504,7 @@ ion-card,css-prop,--color,ios
ion-card,css-prop,--color,md
ion-card,part,native
-ion-card-content,none
+ion-card-content,shadow
ion-card-content,prop,mode,"ios" | "md",undefined,false,false
ion-card-content,prop,theme,"ios" | "md" | "ionic",undefined,false,false
diff --git a/core/src/components/card-content/card-content.common.scss b/core/src/components/card-content/card-content.common.scss
index 499a6b5a87b..81bf1f72690 100644
--- a/core/src/components/card-content/card-content.common.scss
+++ b/core/src/components/card-content/card-content.common.scss
@@ -1,6 +1,6 @@
// Card Content
// --------------------------------------------------
-ion-card-content {
+:host {
position: relative;
}
diff --git a/core/src/components/card-content/card-content.ionic.scss b/core/src/components/card-content/card-content.ionic.scss
index 83504d47a12..6bb1e965684 100644
--- a/core/src/components/card-content/card-content.ionic.scss
+++ b/core/src/components/card-content/card-content.ionic.scss
@@ -4,7 +4,7 @@
// Ionic Card Content
// --------------------------------------------------
-.card-content-ionic {
+:host {
@include globals.padding(globals.$ion-space-400);
@include globals.typography(globals.$ion-body-md-regular);
@@ -13,12 +13,8 @@
flex-direction: column;
gap: globals.$ion-space-400;
-
- img {
- @include globals.margin(globals.$ion-space-200, 0, globals.$ion-space-200, 0);
- }
}
-ion-card-header + .card-content-ionic {
- padding-top: 0;
+::slotted(img) {
+ @include globals.margin(globals.$ion-space-200, 0, globals.$ion-space-200, 0);
}
diff --git a/core/src/components/card-content/card-content.ios.scss b/core/src/components/card-content/card-content.ios.scss
index 0b772b9d45c..51dc074b5ef 100644
--- a/core/src/components/card-content/card-content.ios.scss
+++ b/core/src/components/card-content/card-content.ios.scss
@@ -4,44 +4,40 @@
// iOS Card Header
// --------------------------------------------------
-.card-content-ios {
+:host {
@include padding($card-ios-padding-top, $card-ios-padding-end, $card-ios-padding-bottom, $card-ios-padding-start);
font-size: $card-ios-font-size;
line-height: 1.4;
+}
- h1 {
- @include margin(0, 0, 2px);
-
- font-size: dynamic-font(24px);
- font-weight: normal;
- }
-
- h2 {
- @include margin(2px, 0);
+::slotted(h1) {
+ @include margin(0, 0, 2px);
- font-size: dynamic-font(16px);
- font-weight: normal;
- }
+ font-size: dynamic-font(24px);
+ font-weight: normal;
+}
- h3,
- h4,
- h5,
- h6 {
- @include margin(2px, 0);
+::slotted(h2) {
+ @include margin(2px, 0);
- font-size: dynamic-font(14px);
- font-weight: normal;
- }
+ font-size: dynamic-font(16px);
+ font-weight: normal;
+}
- p {
- @include margin(0, 0, 2px);
+::slotted(h3),
+::slotted(h4),
+::slotted(h5),
+::slotted(h6) {
+ @include margin(2px, 0);
- font-size: dynamic-font(14px);
- }
+ font-size: dynamic-font(14px);
+ font-weight: normal;
}
-ion-card-header + .card-content-ios {
- padding-top: 0;
+::slotted(p) {
+ @include margin(0, 0, 2px);
+
+ font-size: dynamic-font(14px);
}
diff --git a/core/src/components/card-content/card-content.md.scss b/core/src/components/card-content/card-content.md.scss
index ed780fb8e4c..f8d123f5e9d 100644
--- a/core/src/components/card-content/card-content.md.scss
+++ b/core/src/components/card-content/card-content.md.scss
@@ -4,47 +4,43 @@
// Material Design Card Content
// --------------------------------------------------
-.card-content-md {
+:host {
@include padding($card-md-padding-top, $card-md-padding-end, $card-md-padding-bottom, $card-md-padding-start);
font-size: $card-md-font-size;
line-height: $card-md-line-height;
+}
- h1 {
- @include margin(0, 0, 2px);
-
- font-size: dynamic-font(24px);
- font-weight: normal;
- }
+::slotted(h1) {
+ @include margin(0, 0, 2px);
- h2 {
- @include margin(2px, 0);
+ font-size: dynamic-font(24px);
+ font-weight: normal;
+}
- font-size: dynamic-font(16px);
- font-weight: normal;
- }
+::slotted(h2) {
+ @include margin(2px, 0);
- h3,
- h4,
- h5,
- h6 {
- @include margin(2px, 0);
+ font-size: dynamic-font(16px);
+ font-weight: normal;
+}
- font-size: dynamic-font(14px);
- font-weight: normal;
- }
+::slotted(h3),
+::slotted(h4),
+::slotted(h5),
+::slotted(h6) {
+ @include margin(2px, 0);
- p {
- @include margin(0, 0, 2px);
+ font-size: dynamic-font(14px);
+ font-weight: normal;
+}
- font-size: dynamic-font(14px);
- font-weight: normal;
+::slotted(p) {
+ @include margin(0, 0, 2px);
- line-height: 1.5;
- }
-}
+ font-size: dynamic-font(14px);
+ font-weight: normal;
-ion-card-header + .card-content-md {
- padding-top: 0;
+ line-height: 1.5;
}
diff --git a/core/src/components/card-content/card-content.native.scss b/core/src/components/card-content/card-content.native.scss
index 4bb2efe89d2..8db97f01fd5 100644
--- a/core/src/components/card-content/card-content.native.scss
+++ b/core/src/components/card-content/card-content.native.scss
@@ -4,6 +4,6 @@
// Card Content
// --------------------------------------------------
-ion-card-content {
+:host {
display: block;
}
diff --git a/core/src/components/card-content/card-content.tsx b/core/src/components/card-content/card-content.tsx
index e39bead08ae..56e8acb3b1b 100644
--- a/core/src/components/card-content/card-content.tsx
+++ b/core/src/components/card-content/card-content.tsx
@@ -14,6 +14,7 @@ import { getIonTheme } from '../../global/ionic-global';
md: 'card-content.md.scss',
ionic: 'card-content.ionic.scss',
},
+ shadow: true,
})
export class CardContent implements ComponentInterface {
render() {
@@ -22,11 +23,10 @@ export class CardContent implements ComponentInterface {
+ >
+
+
);
}
}
diff --git a/core/src/components/card/test/basic/index.html b/core/src/components/card/test/basic/index.html
index 58c780a49bc..e3cbee7b989 100644
--- a/core/src/components/card/test/basic/index.html
+++ b/core/src/components/card/test/basic/index.html
@@ -34,6 +34,23 @@
in the woods. Wash your spirit clean.
+
+
+
+ Card Subtitle
+ Card Title
+
+
+
+ Heading 1
+ Heading 2
+ Heading 3
+ Heading 4
+ Heading 5
+ Heading 6
+ This is a paragraph
+
+