Skip to content

Commit fdf3e61

Browse files
alisonaileamacandcheesegeospatialem
authored andcommitted
feat(accordion): add new component tokens and deprecate old tokens (#11390)
**Related Issue:** #10830 ## Summary Deprecate `--calcite-accordion-item-background-color` Deprecate `--calcite-accordion-item-border-color` Deprecate `--calcite-accordion-item-icon-color` Deprecate `--calcite-accordion-item-text-color` Deprecate `--calcite-accordion-item-text-color-hover` Deprecate `--calcite-accordion-item-text-color-press` --calcite-accordion-border-color: Specifies the component's border color. --calcite-accordion-background-color: Specifies the component's background color. --calcite-accordion-text-color: Specifies the component's text color. --calcite-accordion-text-color-hover: Specifies the component's main text color on hover. --calcite-accordion-text-color-press: Specifies the component's main text color when pressed. --calcite-accordion-item-background-color: [Deprecated] Use --calcite-accordion-background-color. Specifies the component's background color. --calcite-accordion-item-border-color: [Deprecated] Use --calcite-accordion-border-color. Specifies the component's border color. --calcite-accordion-item-content-space: Specifies the component's padding. --calcite-accordion-item-end-icon-color: Specifies the component's iconEnd color. Fallback to --calcite-accordion-item-icon-color or current color. --calcite-accordion-item-expand-icon-color: Specifies the component's expand icon color. --calcite-accordion-item-header-background-color: Specifies the component's heading background color. --calcite-accordion-item-heading-text-color: Specifies the component's heading text color. --calcite-accordion-item-icon-color: [Deprecated] Use --calcite-icon-color. Specifies the component's default icon color. --calcite-accordion-item-start-icon-color: Specifies the component's iconStart color. Fallback to --calcite-accordion-item-icon-color or current color. --calcite-accordion-item-text-color: [Deprecated] Use --calcite-accordion-text-color. Specifies the component's text color. --calcite-accordion-item-text-color-hover: [Deprecated] Use --calcite-accordion-text-color-hover. Specifies the component's text color on hover. --calcite-accordion-item-text-color-press: [Deprecated] Use --calcite-accordion-text-color-press. Specifies the component's text color on press. --------- Co-authored-by: Adam Tirella <[email protected]> Co-authored-by: Kitty Hurley <[email protected]>
1 parent 16c3e8e commit fdf3e61

File tree

7 files changed

+340
-65
lines changed

7 files changed

+340
-65
lines changed

packages/calcite-components/src/components/accordion-item/accordion-item.e2e.ts

+93-19
Original file line numberDiff line numberDiff line change
@@ -37,37 +37,29 @@ describe("calcite-accordion-item", () => {
3737
>content</calcite-accordion-item
3838
>`,
3939
{
40-
"--calcite-accordion-item-text-color": {
41-
shadowSelector: `.${CSS.description}`,
42-
targetProp: "color",
40+
"--calcite-accordion-item-content-space": {
41+
targetProp: "padding",
42+
shadowSelector: `.${CSS.content}`,
4343
},
4444
"--calcite-accordion-item-header-background-color": {
4545
targetProp: "backgroundColor",
4646
shadowSelector: `.${CSS.header}`,
4747
},
48-
"--calcite-accordion-item-background-color": {
49-
targetProp: "backgroundColor",
50-
},
51-
"--calcite-accordion-item-expand-icon-color": {
52-
shadowSelector: `.${CSS.expandIcon}`,
48+
"--calcite-accordion-item-heading-text-color": {
49+
shadowSelector: `.${CSS.headerContent}`,
5350
targetProp: "color",
5451
},
55-
"--calcite-accordion-item-icon-color": [
56-
{
57-
shadowSelector: `.${CSS.iconStart}`,
58-
targetProp: "color",
59-
},
60-
{
61-
shadowSelector: `.${CSS.iconEnd}`,
62-
targetProp: "color",
63-
},
64-
],
6552
},
6653
);
6754
});
6855
describe("icons", () => {
6956
themed(
70-
html`<calcite-accordion-item heading="Heading" description="Description" icon-start="home" icon-end="home"
57+
html`<calcite-accordion-item
58+
heading="Heading"
59+
description="Description"
60+
icon-start="home"
61+
icon-end="home"
62+
expanded
7163
>content</calcite-accordion-item
7264
>`,
7365
{
@@ -79,9 +71,91 @@ describe("calcite-accordion-item", () => {
7971
shadowSelector: `.${CSS.iconEnd}`,
8072
targetProp: "color",
8173
},
74+
"--calcite-accordion-item-expand-icon-color": {
75+
shadowSelector: `.${CSS.expandIcon}`,
76+
targetProp: "color",
77+
},
8278
},
8379
);
8480
});
81+
describe("deprecate", () => {
82+
describe("default", async () => {
83+
themed(
84+
html`<calcite-accordion-item heading="Heading" description="Description" icon-start="home" icon-end="home"
85+
>content</calcite-accordion-item
86+
>`,
87+
{
88+
"--calcite-accordion-item-text-color": [
89+
{
90+
targetProp: "color",
91+
},
92+
{
93+
targetProp: "color",
94+
shadowSelector: `.${CSS.expandIcon}`,
95+
},
96+
],
97+
"--calcite-accordion-item-text-color-hover": [
98+
{
99+
targetProp: "color",
100+
shadowSelector: `.${CSS.heading}`,
101+
},
102+
],
103+
"--calcite-accordion-item-background-color": {
104+
targetProp: "backgroundColor",
105+
},
106+
"--calcite-accordion-border-color": [
107+
{
108+
shadowSelector: `.${CSS.header}`,
109+
targetProp: "borderColor",
110+
},
111+
{
112+
shadowSelector: `.${CSS.content}`,
113+
targetProp: "borderColor",
114+
},
115+
],
116+
"--calcite-accordion-item-icon-color": [
117+
{
118+
shadowSelector: `.${CSS.iconStart}`,
119+
targetProp: "color",
120+
},
121+
{
122+
shadowSelector: `.${CSS.iconEnd}`,
123+
targetProp: "color",
124+
},
125+
],
126+
},
127+
);
128+
});
129+
describe("expanded", async () => {
130+
themed(
131+
html`<calcite-accordion-item
132+
expanded
133+
heading="Heading"
134+
description="Description"
135+
icon-start="home"
136+
icon-end="home"
137+
>content</calcite-accordion-item
138+
>`,
139+
{
140+
"--calcite-accordion-item-text-color-hover": [
141+
{
142+
targetProp: "color",
143+
shadowSelector: `.${CSS.expandIcon}`,
144+
},
145+
{
146+
targetProp: "color",
147+
shadowSelector: `.${CSS.description}`,
148+
},
149+
],
150+
"--calcite-accordion-item-heading-text-color": {
151+
selector: "calcite-accordion-item",
152+
shadowSelector: `.${CSS.heading}`,
153+
targetProp: "color",
154+
},
155+
},
156+
);
157+
});
158+
});
85159
});
86160

87161
it("properly uses ARIA and roles", async () => {

packages/calcite-components/src/components/accordion-item/accordion-item.scss

+41-25
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@
33
*
44
* These properties can be overridden using the component's tag as selector.
55
*
6-
* @prop --calcite-accordion-border-color: [Deprecated] Use `--calcite-accordion-item-border-color`. Specifies the component's border color.
7-
* @prop --calcite-accordion-item-background-color: Specifies the component's background color.
8-
* @prop --calcite-accordion-item-border-color: Specifies the component's border color.
9-
* @prop --calcite-accordion-item-icon-color-end: Specifies the component's `iconEnd` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
10-
* @prop --calcite-accordion-item-icon-color-start: Specifies the component's `iconStart` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
6+
* @prop --calcite-accordion-border-color: Specifies the component's border color.
7+
* @prop --calcite-accordion-background-color: Specifies the component's background color.
8+
* @prop --calcite-accordion-text-color: Specifies the component's text color.
9+
* @prop --calcite-accordion-text-color-hover: Specifies the component's main text color on hover.
10+
* @prop --calcite-accordion-text-color-press: Specifies the component's main text color when pressed.
11+
* @prop --calcite-accordion-item-background-color: [Deprecated] Use `--calcite-accordion-background-color`. Specifies the component's background color.
12+
* @prop --calcite-accordion-item-border-color: [Deprecated] Use `--calcite-accordion-border-color`. Specifies the component's border color.
1113
* @prop --calcite-accordion-item-content-space: Specifies the component's padding.
12-
* @prop --calcite-accordion-item-end-icon-color: [Deprecated] Use `--calcite-accordion-item-icon-color-end`. Specifies the component's `iconEnd` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
14+
* @prop --calcite-accordion-item-end-icon-color: Specifies the component's `iconEnd` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
1315
* @prop --calcite-accordion-item-expand-icon-color: Specifies the component's expand icon color.
1416
* @prop --calcite-accordion-item-header-background-color: Specifies the component's `heading` background color.
1517
* @prop --calcite-accordion-item-heading-text-color: Specifies the component's `heading` text color.
16-
* @prop --calcite-accordion-item-icon-color: Specifies the component's default icon color.
17-
* @prop --calcite-accordion-item-start-icon-color: [Deprecated] Use `--calcite-accordion-item-icon-color-start`. Specifies the component's `iconStart` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
18-
* @prop --calcite-accordion-item-text-color: Specifies the component's text color.
19-
* @prop --calcite-accordion-text-color-hover: [Deprecated] Use `--calcite-accordion-item-text-color-hover`. Specifies the component's main text color on hover.
20-
* @prop --calcite-accordion-text-color-pressed: [Deprecated] Use `--calcite-accordion-item-text-color-press`. Specifies the component's main text color when pressed.
21-
* @prop --calcite-accordion-text-color: [Deprecated] Use `--calcite-accordion-item-text-color`. Specifies the component's text color.
18+
* @prop --calcite-accordion-item-icon-color: [Deprecated] Use `--calcite-icon-color`. Specifies the component's default icon color.
19+
* @prop --calcite-accordion-item-start-icon-color: Specifies the component's `iconStart` color. Falls back to `--calcite-accordion-item-icon-color` or current color.
20+
* @prop --calcite-accordion-item-text-color: [Deprecated] Use `--calcite-accordion-text-color`. Specifies the component's text color.
21+
* @prop --calcite-accordion-item-text-color-hover: [Deprecated] Use `--calcite-accordion-text-color-hover`. Specifies the component's text color on hover.
22+
* @prop --calcite-accordion-item-text-color-press: [Deprecated] Use `--calcite-accordion-text-color-press`. Specifies the component's text color on press.
2223
*/
2324

2425
%icon-position {
@@ -35,8 +36,8 @@
3536
flex-col
3637
no-underline;
3738

38-
color: var(--calcite-accordion-item-text-color, var(--calcite-accordion-text-color, var(--calcite-color-text-3)));
39-
background-color: var(--calcite-accordion-item-background-color);
39+
color: var(--calcite-accordion-text-color, var(--calcite-accordion-item-text-color, var(--calcite-color-text-3)));
40+
background-color: var(--calcite-accordion-background-color, var(--calcite-accordion-item-background-color));
4041
border-width: 0;
4142

4243
.header {
@@ -72,8 +73,8 @@
7273
border-block-end-width: var(--calcite-border-width-sm);
7374
border-block-end-style: solid;
7475
border-color: var(
75-
--calcite-accordion-item-border-color,
76-
var(--calcite-accordion-border-color, theme("borderColor.color.2"))
76+
--calcite-accordion-border-color,
77+
var(--calcite-accordion-item-border-color, theme("borderColor.color.2"))
7778
);
7879
}
7980

@@ -130,7 +131,7 @@
130131
.heading {
131132
color: var(
132133
--calcite-accordion-item-heading-text-color,
133-
var(--calcite-accordion-text-color-pressed, var(--calcite-color-text-1))
134+
var(--calcite-accordion-text-color-press, var(--calcite-color-text-1))
134135
);
135136
}
136137
}
@@ -193,7 +194,7 @@
193194
.expand-icon {
194195
color: var(
195196
--calcite-accordion-item-expand-icon-color,
196-
var(--calcite-accordion-item-text-color, var(--calcite-accordion-text-color, var(--calcite-color-text-3)))
197+
var(--calcite-accordion-text-color, var(--calcite-accordion-item-text-color, var(--calcite-color-text-3)))
197198
);
198199
margin-inline-start: var(--calcite-internal-accordion-item-icon-spacing-start);
199200
margin-inline-end: var(--calcite-internal-accordion-item-icon-spacing-end);
@@ -217,15 +218,18 @@
217218
.heading {
218219
color: var(
219220
--calcite-accordion-item-heading-text-color,
220-
var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2))
221+
var(
222+
--calcite-accordion-text-color-hover,
223+
var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2))
224+
)
221225
);
222226
}
223227
}
224228

225229
:host([expanded]) {
226230
color: var(
227-
--calcite-accordion-item-text-color,
228-
var(--calcite-accordion-text-color, var(--calcite-accordion-text-color-pressed, var(--calcite-color-text-1)))
231+
--calcite-accordion-text-color-press,
232+
var(--calcite-accordion-text-color, var(--calcite-accordion-item-text-color, var(--calcite-color-text-1)))
229233
);
230234

231235
.header {
@@ -236,8 +240,14 @@
236240
color: var(
237241
--calcite-accordion-item-expand-icon-color,
238242
var(
239-
--calcite-accordion-item-text-color,
240-
var(--calcite-accordion-text-color, var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2)))
243+
--calcite-accordion-text-color-hover,
244+
var(
245+
--calcite-accordion-text-color,
246+
var(
247+
--calcite-accordion-item-text-color,
248+
var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2))
249+
)
250+
)
241251
)
242252
);
243253
transform: rotate(var(--calcite-internal-accordion-item-active-icon-rotation));
@@ -248,8 +258,14 @@
248258

249259
.description {
250260
color: var(
251-
--calcite-accordion-item-text-color,
252-
var(--calcite-accordion-text-color, var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2)))
261+
--calcite-accordion-text-color-hover,
262+
var(
263+
--calcite-accordion-text-color,
264+
var(
265+
--calcite-accordion-item-text-color,
266+
var(--calcite-accordion-item-text-color-hover, var(--calcite-color-text-2))
267+
)
268+
)
253269
);
254270
}
255271

packages/calcite-components/src/components/accordion/accordion.e2e.ts

+61-9
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ describe("calcite-accordion", () => {
1313
Content
1414
<calcite-action scale="s" icon="sound" label="Volume" slot="actions-end"></calcite-action>
1515
</calcite-accordion-item>
16-
<calcite-accordion-item heading="Accordion Title 1" id="2" expanded>Accordion Item Content </calcite-accordion-item>
16+
<calcite-accordion-item heading="Accordion Title 1" description="A description" id="2" expanded
17+
>Accordion Item Content
18+
</calcite-accordion-item>
1719
<calcite-accordion-item heading="Accordion Title 3" id="3">Accordion Item Content </calcite-accordion-item>
1820
`;
1921

@@ -291,14 +293,64 @@ describe("calcite-accordion", () => {
291293

292294
describe("theme", () => {
293295
themed(`<calcite-accordion>${accordionContent}</calcite-accordion>`, {
294-
"--calcite-accordion-background-color": {
295-
shadowSelector: `.${CSS.accordion}`,
296-
targetProp: "backgroundColor",
297-
},
298-
"--calcite-accordion-border-color": {
299-
shadowSelector: `.${CSS.accordion}`,
300-
targetProp: "borderColor",
301-
},
296+
"--calcite-accordion-background-color": [
297+
{
298+
shadowSelector: `.${CSS.accordion}`,
299+
targetProp: "backgroundColor",
300+
selector: "calcite-accordion",
301+
},
302+
{
303+
targetProp: "backgroundColor",
304+
selector: "calcite-accordion-item",
305+
},
306+
],
307+
"--calcite-accordion-border-color": [
308+
{
309+
shadowSelector: `.${CSS.accordion}`,
310+
targetProp: "borderColor",
311+
selector: "calcite-accordion",
312+
},
313+
{
314+
shadowSelector: `.${ACCORDION_ITEM_CSS.header}`,
315+
targetProp: "borderColor",
316+
selector: "calcite-accordion-item",
317+
},
318+
{
319+
shadowSelector: `.${ACCORDION_ITEM_CSS.content}`,
320+
targetProp: "borderColor",
321+
selector: "calcite-accordion-item",
322+
},
323+
],
324+
"--calcite-accordion-text-color": [
325+
{
326+
targetProp: "color",
327+
selector: "calcite-accordion-item",
328+
},
329+
{
330+
targetProp: "color",
331+
shadowSelector: `.${ACCORDION_ITEM_CSS.headerContent}`,
332+
selector: "calcite-accordion-item",
333+
},
334+
],
335+
"--calcite-accordion-text-color-hover": [
336+
{
337+
selector: "calcite-accordion-item[expanded]",
338+
shadowSelector: `.${ACCORDION_ITEM_CSS.expandIcon}`,
339+
targetProp: "color",
340+
},
341+
{
342+
selector: "calcite-accordion-item[expanded]",
343+
shadowSelector: `.${ACCORDION_ITEM_CSS.description}`,
344+
targetProp: "color",
345+
},
346+
],
347+
"--calcite-accordion-item-heading-text-color": [
348+
{
349+
selector: "calcite-accordion-item",
350+
shadowSelector: `.${ACCORDION_ITEM_CSS.heading}`,
351+
targetProp: "color",
352+
},
353+
],
302354
});
303355
});
304356
});

packages/calcite-components/src/components/accordion/accordion.scss

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
* These properties can be overridden using the component's tag as selector.
55
*
66
* @prop --calcite-accordion-border-color: Specifies the component's border color.
7-
* @prop --calcite-accordion-background-color: Specifies the component's background color.
7+
* @prop --calcite-accordion-background-color: Specifies the component's background color.
8+
* @prop --calcite-accordion-text-color: Specifies the component's text color.
9+
* @prop --calcite-accordion-text-color-hover: Specifies the component's main text color on hover.
10+
* @prop --calcite-accordion-text-color-press: Specifies the component's main text color when pressed.
811
*/
912

1013
:host {

packages/calcite-components/src/custom-theme/accordion-item.ts

+2-6
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,12 @@ import { placeholderImage } from "../../.storybook/placeholder-image";
22
import { html } from "../../support/formatting";
33

44
export const accordionItemTokens = {
5-
calciteAccordionItemBackgroundColor: "",
6-
calciteAccordionItemBorderColor: "",
7-
calciteAccordionItemIconColorEnd: "",
8-
calciteAccordionItemIconColorStart: "",
95
calciteAccordionItemContentSpace: "",
106
calciteAccordionItemExpandIconColor: "",
117
calciteAccordionItemHeaderBackgroundColor: "",
128
calciteAccordionItemHeadingTextColor: "",
13-
calciteAccordionItemIconColor: "",
14-
calciteAccordionItemTextColor: "",
9+
calciteAccordionItemIconColorEnd: "",
10+
calciteAccordionItemIconColorStart: "",
1511
};
1612

1713
export const accordionItem = (idx: number): string =>

0 commit comments

Comments
 (0)