diff --git a/chips/internal/_shared.scss b/chips/internal/_shared.scss
index 54d95949b3..fd5489f06a 100644
--- a/chips/internal/_shared.scss
+++ b/chips/internal/_shared.scss
@@ -96,6 +96,9 @@
}
.primary.action {
+ // Set a min-width on the primary action so that trailing actions remain
+ // inside the chip as the chip is resized.
+ min-width: 0;
padding-inline-start: var(--_leading-space);
padding-inline-end: var(--_trailing-space);
}
@@ -151,11 +154,21 @@
display: flex;
font-family: var(--_label-text-font);
font-size: var(--_label-text-size);
- line-height: var(--_label-text-line-height);
font-weight: var(--_label-text-weight);
height: 100%;
- text-overflow: ellipsis;
+ line-height: var(--_label-text-line-height);
+ overflow: hidden;
user-select: none;
+ }
+
+ // An inner span is needed to truncate the label, since elements with a flex
+ // display do not support the text-overflow property. The outer wrapper .label
+ // needs to be a flex display to correctly set the element's baseline,
+ // supporting external elements aligning to the baseline of the chip's text
+ // instead of its edges or icons.
+ .label-text {
+ overflow: hidden;
+ text-overflow: ellipsis;
white-space: nowrap;
}
diff --git a/chips/internal/chip.ts b/chips/internal/chip.ts
index a1b4595254..a5ad833e1b 100644
--- a/chips/internal/chip.ts
+++ b/chips/internal/chip.ts
@@ -128,7 +128,9 @@ export abstract class Chip extends chipBaseClass {
${this.renderLeadingIcon()}
- ${this.label}
+
+ ${this.label}
+
`;
}