diff --git a/packages/calcite-components/src/components/stepper-item/stepper-item.e2e.ts b/packages/calcite-components/src/components/stepper-item/stepper-item.e2e.ts
index 3985048a427..6fd324d8670 100644
--- a/packages/calcite-components/src/components/stepper-item/stepper-item.e2e.ts
+++ b/packages/calcite-components/src/components/stepper-item/stepper-item.e2e.ts
@@ -1,6 +1,8 @@
import { newE2EPage } from "@stencil/core/testing";
-import { disabled, renders, hidden, t9n } from "../../tests/commonTests";
+import { disabled, renders, hidden, t9n, themed } from "../../tests/commonTests";
import { html } from "../../../support/formatting";
+import { ComponentTestTokens } from "../../tests/commonTests/themed";
+import { CSS } from "./resources";
describe("calcite-stepper-item", () => {
describe("renders", () => {
@@ -36,4 +38,39 @@ describe("calcite-stepper-item", () => {
await stepperItem.click();
expect(stepperItemSelect).toHaveReceivedEventTimes(1);
});
+
+ describe("theme", () => {
+ describe("default", () => {
+ const tokens: ComponentTestTokens = {
+ "--calcite-stepper-item-description-text-color": {
+ shadowSelector: `.${CSS.stepperItemDescription}`,
+ targetProp: "color",
+ },
+ "--calcite-stepper-item-heading-text-color": {
+ shadowSelector: `.${CSS.stepperItemHeading}`,
+ targetProp: "color",
+ },
+ "--calcite-stepper-item-icon-color": {
+ shadowSelector: `calcite-icon`,
+ targetProp: "--calcite-icon-color",
+ },
+ "--calcite-stepper-item-number-text-color": {
+ shadowSelector: `.${CSS.stepperItemNumber}`,
+ targetProp: "color",
+ },
+ "--calcite-stepper-item-text-color": {
+ shadowSelector: `.${CSS.container}`,
+ targetProp: "color",
+ },
+ };
+ themed(
+ html`
+
+ Step 1 Content Goes Here
+
+ `,
+ tokens,
+ );
+ });
+ });
});
diff --git a/packages/calcite-components/src/components/stepper-item/stepper-item.scss b/packages/calcite-components/src/components/stepper-item/stepper-item.scss
index 1e63d72c819..fb1eab225d0 100644
--- a/packages/calcite-components/src/components/stepper-item/stepper-item.scss
+++ b/packages/calcite-components/src/components/stepper-item/stepper-item.scss
@@ -113,7 +113,7 @@
h-3
flex-shrink-0
self-start;
- color: var(
+ --calcite-icon-color: var(
--calcite-stepper-item-icon-color,
var(--calcite-internal-stepper-item-icon-color, var(--calcite-color-text-3))
);
diff --git a/packages/calcite-components/src/components/stepper/resources.ts b/packages/calcite-components/src/components/stepper/resources.ts
index d45518e5026..6e0b28e335c 100644
--- a/packages/calcite-components/src/components/stepper/resources.ts
+++ b/packages/calcite-components/src/components/stepper/resources.ts
@@ -3,6 +3,11 @@ export const CSS = {
actionIconStart: "action-icon--start",
actionIconEnd: "action-icon--end",
actionContainer: "action-container",
+ rect: "rect",
+ stepBar: "step-bar",
+ stepBarComplete: "step-bar--complete",
+ stepBarError: "step-bar--error",
+ stepBarSelected: "step-bar--selected",
stepBarContainer: "step-bar-container",
singleView: "single-view",
};
diff --git a/packages/calcite-components/src/components/stepper/stepper.e2e.ts b/packages/calcite-components/src/components/stepper/stepper.e2e.ts
index 4c8dad75f2b..85df97d95d6 100644
--- a/packages/calcite-components/src/components/stepper/stepper.e2e.ts
+++ b/packages/calcite-components/src/components/stepper/stepper.e2e.ts
@@ -1,8 +1,10 @@
import { E2EPage, newE2EPage } from "@stencil/core/testing";
-import { defaults, hidden, reflects, renders, t9n } from "../../tests/commonTests";
+import { defaults, hidden, reflects, renders, t9n, themed } from "../../tests/commonTests";
import { html } from "../../../support/formatting";
import { NumberStringFormatOptions } from "../../utils/locale";
import { isElementFocused } from "../../tests/utils";
+import { ComponentTestTokens } from "../../tests/commonTests/themed";
+import { CSS } from "./resources";
// we use browser-context function to click on items to workaround `E2EElement#click` error
async function itemClicker(item: HTMLCalciteStepperItemElement) {
@@ -899,4 +901,74 @@ describe("calcite-stepper", () => {
expect(displayedItems.length).toBe(1);
});
});
+
+ describe("theme", () => {
+ describe("default", () => {
+ const tokens: ComponentTestTokens = {
+ "--calcite-stepper-action-background-color": {
+ shadowSelector: `calcite-action`,
+ targetProp: "--calcite-action-background-color",
+ },
+ "--calcite-stepper-action-background-color-hover": {
+ shadowSelector: `calcite-action`,
+ targetProp: "--calcite-action-background-color",
+ state: { hover: { attribute: "class", value: CSS.actionIcon } },
+ },
+ "--calcite-stepper-action-background-color-active": {
+ shadowSelector: `calcite-action`,
+ targetProp: "--calcite-action-background-color",
+ state: { press: { attribute: "class", value: CSS.actionIcon } },
+ },
+ "--calcite-stepper-step-bar-fill-color": {
+ shadowSelector: `.${CSS.stepBar} ${CSS.rect}`,
+ targetProp: "fill",
+ },
+ "--calcite-stepper-step-bar-fill-color-hover": {
+ shadowSelector: `.${CSS.stepBar} ${CSS.rect}`,
+ targetProp: "fill",
+ state: "hover",
+ },
+ "--calcite-stepper-step-bar-selected-fill-color": {
+ shadowSelector: `.${CSS.stepBarSelected}`,
+ targetProp: "fill",
+ },
+ "--calcite-stepper-step-bar-complete-fill-color": {
+ shadowSelector: `.${CSS.stepBarComplete}`,
+ targetProp: "fill",
+ },
+ "--calcite-stepper-step-bar-completed-fill-color-hover": {
+ shadowSelector: `.${CSS.stepBarComplete}`,
+ targetProp: "fill",
+ state: "hover",
+ },
+ "--calcite-stepper-step-bar-error-fill-color": {
+ shadowSelector: `.${CSS.stepBarError}`,
+ targetProp: "fill",
+ },
+ "--calcite-stepper-step-bar-error-fill-color-hover": {
+ shadowSelector: `.${CSS.stepBarError}`,
+ targetProp: "fill",
+ },
+ };
+ themed(
+ html`
+
+
+ Step 4 Content Goes Here
+
+
+ Step 1 Content Goes Here
+
+
+ Step 2 Content Goes Here
+
+
+ Step 3 Content Goes Here
+
+
+ `,
+ tokens,
+ );
+ });
+ });
});