From 7c6048ed5f2db69ea2fdc15c42bb51e9d76b6516 Mon Sep 17 00:00:00 2001
From: Sylvester Kaczmarek
<16242628+sylvesterkaczmarek@users.noreply.github.com>
Date: Tue, 22 Sep 2026 00:46:40 +0100
Subject: [PATCH 1/2] fix(web-components): respect text resize in stepper
layout
---
.../src/components/ic-stepper/ic-stepper.tsx | 29 +++++++---
.../ic-stepper/test/basic/ic-stepper.spec.ts | 58 +++++++++++++++++++
2 files changed, 78 insertions(+), 9 deletions(-)
diff --git a/packages/web-components/src/components/ic-stepper/ic-stepper.tsx b/packages/web-components/src/components/ic-stepper/ic-stepper.tsx
index 3d4cbb29762..86d1f6ee388 100644
--- a/packages/web-components/src/components/ic-stepper/ic-stepper.tsx
+++ b/packages/web-components/src/components/ic-stepper/ic-stepper.tsx
@@ -320,17 +320,22 @@ export class Stepper {
});
};
+ private getMinimumDefaultStepperWidth = (): number => {
+ const rootFontSize =
+ parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;
+ const baseStepWidth =
+ this.aligned === "left" &&
+ this.connectorWidth &&
+ this.connectorWidth > 100
+ ? this.connectorWidth + 48
+ : 148;
+
+ return (baseStepWidth / 16) * rootFontSize * this.steps.length;
+ };
+
private overrideVariant = () => {
if (this.variantOverride) {
- let minDefaultStepperWidth = 148 * this.steps.length;
-
- if (
- this.aligned === "left" &&
- this.connectorWidth &&
- this.connectorWidth > 100
- ) {
- minDefaultStepperWidth = (this.connectorWidth + 48) * this.steps.length;
- }
+ const minDefaultStepperWidth = this.getMinimumDefaultStepperWidth();
if (this.el.clientWidth < minDefaultStepperWidth) {
this.variant = "compact";
} else {
@@ -339,8 +344,13 @@ export class Stepper {
}
};
+ private observeSteps = () => {
+ this.steps.forEach((step) => this.resizeObserver?.observe(step));
+ };
+
private resizeObserverCallback = () => {
this.getChildren();
+ this.observeSteps();
this.checkStepTitles();
this.overrideVariant();
this.setStepperWidth();
@@ -353,6 +363,7 @@ export class Stepper {
this.resizeObserverCallback();
});
this.resizeObserver.observe(this.el);
+ this.observeSteps();
};
render() {
diff --git a/packages/web-components/src/components/ic-stepper/test/basic/ic-stepper.spec.ts b/packages/web-components/src/components/ic-stepper/test/basic/ic-stepper.spec.ts
index 7b95a478808..1d1355ad321 100644
--- a/packages/web-components/src/components/ic-stepper/test/basic/ic-stepper.spec.ts
+++ b/packages/web-components/src/components/ic-stepper/test/basic/ic-stepper.spec.ts
@@ -1034,3 +1034,61 @@ describe("switch between the compact and default stepper depending on whether th
});
});
});
+
+const textResizeStepperMarkup = `
+