Skip to content

Commit ca5cdbf

Browse files
authored
refactor(theme): [filter-panel] refactor filter-panel theme vars (#2288)
* refactor(theme): [filter-panel] refactor filter-panel theme vars * refactor(theme): [filter-panel] refactor filter-panel theme vars
1 parent 7667e14 commit ca5cdbf

File tree

6 files changed

+82
-78
lines changed

6 files changed

+82
-78
lines changed

examples/sites/demos/pc/app/filter-panel/basic-usage.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('基本用法', async ({ page }) => {
1313

1414
await button.click()
1515
await popPanel.isVisible()
16-
await page.getByRole('radio', { name: '等于' }).click()
16+
await page.locator('label').filter({ hasText: '等于' }).click()
1717
await button.getByText('物品数量等于').isVisible()
1818
await inputEl.click()
1919
await inputEl.fill('10')

examples/sites/demos/pc/app/filter-panel/event.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('事件', async ({ page }) => {
1313
// handle-clear事件
1414
await button.click()
1515
await popPanel.isVisible()
16-
await page.getByRole('radio', { name: '等于' }).click()
16+
await page.locator('label').filter({ hasText: '等于' }).click()
1717
await expect(button).toHaveText('物品数量等于')
1818
await clear.click()
1919
await expect(button).toHaveText('物品数量')

packages/theme/src/filter-box/index.less

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,119 +16,117 @@
1616
@filter-box-prefix-cls: ~'@{css-prefix}filter-box';
1717

1818
.@{filter-box-prefix-cls} {
19-
.component-css-vars-filter-box();
19+
.inject-FilterBox-vars();
2020

2121
width: fit-content;
22-
height: var(--ti-filter-box-btn-height);
23-
line-height: var(--ti-filter-box-btn-height);
22+
height: var(--tv-FilterBox-btn-height);
23+
line-height: var(--tv-FilterBox-btn-height);
2424
border-radius: 4px;
25-
background: var(--ti-filter-box-btn-bg-color);
26-
color: #161e26;
27-
padding: 4px var(--ti-filter-box-btn-padding-horizontal);
25+
background: var(--tv-FilterBox-btn-bg-color);
26+
color: var(--tv-FilterBox-btn-text-color);
27+
padding: 4px var(--tv-FilterBox-btn-padding-x);
2828
display: flex;
2929
align-items: center;
30-
font-size: 12px;
31-
32-
&:hover {
33-
background: var(--ti-filter-box-btn-hover-bg-color);
34-
}
30+
font-size: var(--tv-FilterBox-btn-font-size);
3531

3632
&.disabled {
3733
cursor: not-allowed;
3834

3935
.title label {
40-
color: #b5bbc1;
36+
color: var(--tv-FilterBox-btn-disabled-text-color);
4137
}
4238

4339
.value {
44-
color: #5c6976;
40+
color: var(--tv-FilterBox-btn-disabled-text-color);
4541
}
4642

4743
svg.filter-box-icon {
48-
fill: #b5bbce;
44+
fill: var(--tv-FilterBox-icon-color-disabled);
4945
cursor: not-allowed;
5046
}
5147
}
5248

5349
.title {
5450
height: inherit;
55-
line-height: var(--ti-filter-box-btn-title-line-height);
56-
font-size: var(--ti-filter-box-btn-font-size);
57-
/* TODO: title 这个类名不符合组件类名规范,被公共样式污染,故在此处重置间距为 0.计划优化这个类名 */
58-
margin-right: 0px;
51+
line-height: var(--tv-FilterBox-btn-title-line-height);
52+
font-size: var(--tv-FilterBox-btn-font-size);
53+
margin-right: 0;
5954

6055
label {
6156
display: inline-block;
6257
max-width: 100px;
6358
overflow: hidden;
6459
text-overflow: ellipsis;
6560
white-space: nowrap;
66-
color: var(--ti-filter-box-btn-text-color);
61+
color: var(--tv-FilterBox-btn-text-color);
6762
margin-right: 8px;
6863
margin-top: 3px;
6964
}
7065

7166
&.active label {
72-
color: var(--ti-filter-box-btn-hover-text-color);
67+
color: var(--tv-FilterBox-btn-active-text-color);
7368
}
7469

70+
// 问号图标
7571
svg {
76-
width: 16px;
77-
height: 16px;
78-
margin-right: var(--ti-filter-box-help-btn-margin-right);
79-
fill: var(--ti-filter-box-help-btn-icon-color);
72+
width: var(--tv-FilterBox-icon-size);
73+
height: var(--tv-FilterBox-icon-size);
74+
margin-right: var(--tv-FilterBox-help-btn-margin-right);
75+
fill: var(--tv-FilterBox-icon-color);
8076
position: relative;
81-
top: var(--ti-filter-box-help-btn-position-top);
77+
top: var(--tv-FilterBox-help-btn-position-top);
8278
vertical-align: super;
8379

8480
&:hover {
85-
fill: var(--ti-filter-box-btn-hover-text-color);
81+
fill: var(--tv-FilterBox-icon-color-hover);
8682
}
8783
}
8884
}
8985

9086
.value {
9187
max-width: 100px;
9288
height: inherit;
93-
line-height: 1.5;
9489
margin-right: 4px;
90+
vertical-align: middle;
9591
overflow: hidden;
9692
text-overflow: ellipsis;
9793
white-space: nowrap;
98-
font-size: 12px;
99-
color: #161e26;
94+
font-size: var(--tv-FilterBox-btn-font-size);
95+
color: var(--tv-color-text);
10096

10197
&.placeholder {
102-
color: #aeaeae;
98+
color: var(--tv-FilterBox-btn-text-color-placeholder);
10399
}
104100
}
105101

106102
.filter-box-icon {
107-
width: var(--ti-filter-box-expand-btn-icon-size);
108-
height: var(--ti-filter-box-expand-btn-icon-size);
103+
width: var(--tv-FilterBox-icon-size);
104+
height: var(--tv-FilterBox-icon-size);
109105
cursor: pointer;
110-
fill: var(--ti-filter-box-expand-btn-icon-color);
106+
fill: var(--tv-FilterBox-icon-color);
111107
transition: transform 0.3s;
112108

113109
&.is-reverse {
114110
transform: rotate(180deg);
115111
}
116112
}
117113

118-
&:hover {
119-
.filter-box-icon {
120-
fill: var(--ti-filter-box-expand-btn-icon-color-hover);
121-
}
122-
}
123-
124114
.filter-icon-close {
125-
width: 16px;
126-
height: 16px;
115+
width: var(--tv-FilterBox-icon-size);
116+
height: var(--tv-FilterBox-icon-size);
127117
cursor: pointer;
128-
fill: #b5bbc1;
118+
fill: var(--tv-FilterBox-icon-color);
129119

130120
&:hover {
131-
fill: #78828d;
121+
fill: var(--tv-FilterBox-icon-color-hover);
122+
}
123+
}
124+
125+
&:not(.disabled):hover {
126+
background: var(--tv-FilterBox-btn-hover-bg-color);
127+
128+
.filter-box-icon {
129+
fill: var(--tv-FilterBox-icon-color-hover);
132130
}
133131
}
134132

packages/theme/src/filter-box/vars.less

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,39 @@
99
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
1010
*
1111
*/
12-
.component-css-vars-filter-box() {
12+
.inject-FilterBox-vars() {
1313
// 按钮高度
14-
--ti-filter-box-btn-height: var(--ti-common-size-height-small, 24px);
14+
--tv-FilterBox-btn-height: var(--tv-size-height-xs);
1515
// 按钮背景色
16-
--ti-filter-box-btn-bg-color: var(--ti-common-color-bg-6, #f5f5f5);
17-
// 按钮展开图标尺寸
18-
--ti-filter-box-btn-hover-bg-color: var(--ti-common-color-bg-6, #f5f5f5);
16+
--tv-FilterBox-btn-bg-color: var(--tv-color-bg);
17+
// 按钮悬浮背景色
18+
--tv-FilterBox-btn-hover-bg-color: var(--tv-color-bg-hover-1);
1919
// 按钮水平内边距
20-
--ti-filter-box-btn-padding-horizontal: var(--ti-common-space-2x, 8px);
20+
--tv-FilterBox-btn-padding-x: var(--tv-space-md);
2121
// 按钮文本色
22-
--ti-filter-box-btn-text-color: var(--ti-common-color-text-weaken, #808080);
23-
// 按钮悬浮文本色和图标色
24-
--ti-filter-box-btn-hover-text-color: var(--ti-common-color-text-primary, #191919);
22+
--tv-FilterBox-btn-text-color: var(--tv-color-text-weaken);
23+
// 按钮占位文本色
24+
--tv-FilterBox-btn-text-color-placeholder: var(--tv-color-text-placeholder);
25+
// 按钮激活文本色
26+
--tv-FilterBox-btn-active-text-color: var(--tv-color-text-active);
27+
// 按钮文本禁用色
28+
--tv-FilterBox-btn-disabled-text-color: var(--tv-color-text-disabled);
2529
// 按钮文本字号
26-
--ti-filter-box-btn-font-size: var(--ti-common-font-size-0, 12px);
30+
--tv-FilterBox-btn-font-size: var(--tv-font-size-sm);
2731
// 按钮文本行高
28-
--ti-filter-box-btn-title-line-height: var(--ti-common-line-height-number, 1.5);
29-
// 按钮问号图标色
30-
--ti-filter-box-help-btn-icon-color: var(--ti-common-color-text-primary, #191919);
32+
--tv-FilterBox-btn-title-line-height: var(--tv-line-height-number);
33+
3134
// 按钮帮助图标右边距
32-
--ti-filter-box-help-btn-margin-right: var(--ti-common-space-base, 4px);
33-
// 按钮问号top定位(hide)
34-
--ti-filter-box-help-btn-position-top: var(--ti-common-space-base, 4px);
35-
// 按钮展开图标色
36-
--ti-filter-box-expand-btn-icon-color: var(--ti-common-color-icon-normal, #808080);
37-
// 按钮展开图标悬浮色
38-
--ti-filter-box-expand-btn-icon-color-hover: var(--ti-common-color-icon-hover, #191919);
39-
// 按钮展开图标尺寸
40-
--ti-filter-box-expand-btn-icon-size: var(--ti-common-font-size-2, 16px);
35+
--tv-FilterBox-help-btn-margin-right: var(--tv-space-sm);
36+
// 按钮帮助图标上边距
37+
--tv-FilterBox-help-btn-position-top: var(--tv-space-sm);
38+
39+
// 按钮图标色
40+
--tv-FilterBox-icon-color: var(--tv-color-icon);
41+
// 按钮图标悬浮色
42+
--tv-FilterBox-icon-color-hover: var(--tv-color-icon-hover);
43+
// 按钮图标禁用色
44+
--tv-FilterBox-icon-color-disabled: var(--tv-color-icon-disabled);
45+
// 按钮图标尺寸
46+
--tv-FilterBox-icon-size: var(--tv-icon-size);
4147
}

packages/theme/src/filter-panel/index.less

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@
1717

1818
.@{filter-panel-prefix-cls} {
1919
&__popover {
20-
.component-css-vars-filter-panel();
20+
.inject-FilterPanel-vars();
2121
}
2222

2323
&__popover.tiny-popover.tiny-popper {
2424
min-width: 200px;
25-
padding: var(--ti-filter-panel-padding-vertical) var(--ti-filter-panel-padding-horizontal);
25+
padding: var(--tv-FilterPanel-padding-y) var(--tv-FilterPanel-padding-x);
2626

2727
&[x-placement^='bottom'] {
28-
margin-top: var(--ti-filter-panel-margin-top);
29-
box-shadow: var(--ti-filter-panel-bottom-box-shadow);
28+
margin-top: var(--tv-FilterPanel-margin-top);
29+
box-shadow: var(--tv-FilterPanel-bottom-box-shadow);
3030
}
3131

3232
&[x-placement^='top'] {
3333
margin-bottom: 4px;
34-
box-shadow: var(--ti-filter-panel-top-box-shadow);
34+
box-shadow: var(--tv-FilterPanel-top-box-shadow);
3535
}
3636
}
3737
}

packages/theme/src/filter-panel/vars.less

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
1010
*
1111
*/
12-
.component-css-vars-filter-panel() {
12+
.inject-FilterPanel-vars() {
1313
// 面板上外边距
14-
--ti-filter-panel-margin-top: var(--ti-common-space-2x, 8px);
14+
--tv-FilterPanel-margin-top: var(--tv-space-md);
1515
// 面板垂直内边距
16-
--ti-filter-panel-padding-vertical: var(--ti-common-space-6x, 24px);
16+
--tv-FilterPanel-padding-y: 24px;
1717
// 面板水平内边距
18-
--ti-filter-panel-padding-horizontal: var(--ti-common-space-6x, 24px);
18+
--tv-FilterPanel-padding-x: 24px;
1919
// 朝下的面板阴影
20-
--ti-filter-panel-bottom-box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.18);
20+
--tv-FilterPanel-bottom-box-shadow: var(--tv-shadow-4-down);
2121
// 朝上的面板阴影
22-
--ti-filter-panel-top-box-shadow: 8px 0px 24px 0px rgba(0, 0, 0, 0.18);
22+
--tv-FilterPanel-top-box-shadow: var(--tv-shadow-4-up);
2323
}

0 commit comments

Comments
 (0)