diff --git a/core/src/components/avatar/avatar.ionic.scss b/core/src/components/avatar/avatar.ionic.scss
index a37227748ff..5fe8380f1cd 100644
--- a/core/src/components/avatar/avatar.ionic.scss
+++ b/core/src/components/avatar/avatar.ionic.scss
@@ -153,23 +153,77 @@
height: globals.$ion-scale-1000;
}
-// Avatar Empty Badge (hint)
+// Avatar Badge Empty (hint)
// --------------------------------------------------
:host ::slotted(ion-badge.badge-vertical-top:empty) {
- transform: translate(globals.$ion-scale-050, calc(globals.$ion-scale-050 * -1));
+ @include globals.transform(translate(globals.$ion-scale-050, calc(globals.$ion-scale-050 * -1)));
}
:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-top:empty) {
- transform: translate(globals.$ion-scale-100, calc(globals.$ion-scale-100 * -1));
+ @include globals.transform(translate(globals.$ion-scale-100, calc(globals.$ion-scale-100 * -1)));
}
:host ::slotted(ion-badge.badge-vertical-bottom:empty) {
- transform: translate(0, globals.$ion-scale-100);
+ @include globals.transform(translate(0, globals.$ion-scale-100));
}
:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-bottom:empty) {
- transform: translate(globals.$ion-scale-100, calc(globals.$ion-scale-100));
+ @include globals.transform(translate(globals.$ion-scale-100, globals.$ion-scale-100));
+}
+
+// Avatar Badge Bottom (hint)
+// --------------------------------------------------
+
+:host ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.transform(translate(50%, 50%));
+}
+
+:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.position(null, globals.$ion-scale-100, globals.$ion-scale-100, null);
+ @include globals.transform(translate(100%, 100%));
+}
+
+:host(.avatar-xsmall) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.position(null, calc(globals.$ion-scale-050 * -1), calc(globals.$ion-scale-050 * -1), null);
+}
+
+:host(.avatar-small) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)),
+:host(.avatar-medium) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)),
+:host(.avatar-large) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.position(null, globals.$ion-scale-050, globals.$ion-scale-050, null);
+}
+
+:host(.avatar-xlarge) ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.position(null, globals.$ion-scale-150, globals.$ion-scale-150, null);
+}
+
+// Avatar Badge Top (hint)
+// --------------------------------------------------
+
+:host ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.transform(translate(50%, -50%));
+}
+
+:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.position(globals.$ion-scale-050, 0, null, null);
+}
+
+:host(.avatar-xsmall) ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.position(globals.$ion-scale-100, calc(globals.$ion-scale-050 * -1), null, null);
+}
+
+:host(.avatar-small) ::slotted(ion-badge.badge-vertical-top:not(:empty)),
+:host(.avatar-medium) ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.position(globals.$ion-scale-150, 0, null, null);
+}
+
+:host(.avatar-large) ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.position(globals.$ion-scale-150, globals.$ion-scale-050, null, null);
+}
+
+:host(.avatar-xlarge) ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.position(globals.$ion-scale-150, globals.$ion-scale-150, null, null);
}
// Avatar Disabled
diff --git a/core/src/components/avatar/avatar.md.scss b/core/src/components/avatar/avatar.md.scss
index 91d365c7a58..cfcd2520280 100644
--- a/core/src/components/avatar/avatar.md.scss
+++ b/core/src/components/avatar/avatar.md.scss
@@ -1,3 +1,4 @@
+@use "../../themes/native/native.globals.md" as globals;
@import "./avatar.common";
@import "./avatar.md.vars";
@@ -15,9 +16,17 @@
// --------------------------------------------------
::slotted(ion-badge.badge-vertical-top:empty) {
- transform: translate(-50%, 50%);
+ @include globals.transform(translate(-50%, 50%));
}
::slotted(ion-badge.badge-vertical-bottom:empty) {
- transform: translateX(-100%);
+ @include globals.transform(translateX(-100%));
+}
+
+:host ::slotted(ion-badge.badge-vertical-top:not(:empty)) {
+ @include globals.transform(translate(0, 100%));
+}
+
+:host ::slotted(ion-badge.badge-vertical-bottom:not(:empty)) {
+ @include globals.transform(translate(0, -100%));
}
diff --git a/core/src/components/badge/badge.common.scss b/core/src/components/badge/badge.common.scss
index 47dfa9d0d08..b751d670dd1 100644
--- a/core/src/components/badge/badge.common.scss
+++ b/core/src/components/badge/badge.common.scss
@@ -48,7 +48,7 @@
color: #{color.current-color(contrast)};
}
-// Badge Empty (hint)
+// Badge (hint)
// --------------------------------------------------
:host([vertical]:not(.in-tab-button)) {
@@ -56,10 +56,10 @@
position: absolute;
}
-:host(:not(.in-tab-button):empty.badge-vertical-top) {
+:host(:not(.in-tab-button)[vertical].badge-vertical-top) {
top: 0;
}
-:host(:not(.in-tab-button):empty.badge-vertical-bottom) {
+:host(:not(.in-tab-button)[vertical].badge-vertical-bottom) {
bottom: 0;
}
diff --git a/core/src/components/badge/badge.ionic.scss b/core/src/components/badge/badge.ionic.scss
index b8f1504d83d..efa7690fefe 100644
--- a/core/src/components/badge/badge.ionic.scss
+++ b/core/src/components/badge/badge.ionic.scss
@@ -146,7 +146,7 @@
height: globals.$ion-scale-1000;
}
-// Badge Empty
+// Badge (hint)
// --------------------------------------------------
:host(:empty) {
@@ -154,7 +154,14 @@
--padding-end: 0;
}
-// Badge Sizes Empty
+:host([vertical]:not(:empty)) {
+ --padding-start: #{globals.$ion-scale-100};
+ --padding-end: #{globals.$ion-scale-100};
+ --padding-top: #{globals.$ion-scale-100};
+ --padding-bottom: #{globals.$ion-scale-100};
+}
+
+// Badge (hint) Sizes
// --------------------------------------------------
/* sm */
@@ -182,8 +189,9 @@
position: relative;
}
-// Badge Icon when Inside Tab Button
-:host([vertical].in-tab-button) ::slotted(ion-icon) {
+// Icon Inside Badge Hint
+// --------------------------------------------------
+:host([vertical]) ::slotted(ion-icon) {
@include globals.position(50%, null, null, 50%);
position: absolute;
diff --git a/core/src/components/badge/badge.native.scss b/core/src/components/badge/badge.native.scss
index e0538cf63af..f2422de7ddb 100644
--- a/core/src/components/badge/badge.native.scss
+++ b/core/src/components/badge/badge.native.scss
@@ -1,6 +1,6 @@
@import "../../themes/native/native.globals.md";
@import "./badge.common";
-@import "./badge.common.vars";
+@import "./badge.native.vars";
// Badge
// --------------------------------------------------
@@ -13,6 +13,7 @@
}
// TODO(ROU-10747): Review size styles when sizes are defined for native themes.
+:host([vertical]:not(.in-tab-button)),
:host(:empty) {
--padding-start: 0;
--padding-end: 0;
@@ -23,4 +24,8 @@
width: $badge-min-width;
height: $badge-min-width;
+
+ font-size: $badge-hint-font-size;
+
+ line-height: 10px;
}
diff --git a/core/src/components/badge/badge.native.vars.scss b/core/src/components/badge/badge.native.vars.scss
new file mode 100644
index 00000000000..76cdfed047f
--- /dev/null
+++ b/core/src/components/badge/badge.native.vars.scss
@@ -0,0 +1,10 @@
+@import "../../themes/functions.font";
+
+// Badge
+// --------------------------------------------------
+
+/// @prop - Font size of the badge hint
+$badge-hint-baseline-font-size: 8px;
+
+/// @prop - Font size of the badge hint
+$badge-hint-font-size: dynamic-font($badge-hint-baseline-font-size);
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Chrome-linux.png
index a20aa73400a..5d962d25b98 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Chrome-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Firefox-linux.png
index aaafbd16897..be3a2b6c0fb 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Firefox-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Safari-linux.png
index 2670789ba98..ee42c239a1a 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Safari-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Chrome-linux.png
index 9e9e9179dab..7fc5d28f8af 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Chrome-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Firefox-linux.png
index 20bad41c2a5..7b669f1f0c6 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Firefox-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Safari-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Safari-linux.png
index f7ce7b61852..9fc851229eb 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Chrome-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Chrome-linux.png
index 4c1228dc074..6a19e33950c 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Firefox-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Firefox-linux.png
index 177ed499938..38e4f7fe1d5 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Safari-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Safari-linux.png
index 87d3cc7adc1..a7d3b2637a1 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Safari-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-avatar-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Chrome-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Chrome-linux.png
index e5d1bb184e5..41a730bfaba 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Firefox-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Firefox-linux.png
index 13ae67e41e2..75e8f1fb034 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-empty-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Chrome-linux.png
index f2bee3c0ba7..50eb4307d5f 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Firefox-linux.png
index 2c805e55881..7269fc2dbaa 100644
Binary files a/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/badge/test/hint/badge.e2e.ts-snapshots/badge-hint-tab-button-icon-bottom-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/badge/test/hint/index.html b/core/src/components/badge/test/hint/index.html
index cafcdf170e6..064da263eb3 100644
--- a/core/src/components/badge/test/hint/index.html
+++ b/core/src/components/badge/test/hint/index.html
@@ -104,6 +104,136 @@