@@ -29,10 +29,10 @@ ruleTester.run('no-color-css-vars', rule, {
29
29
invalid : [
30
30
{
31
31
code : `<Button sx={{color: 'var(--color-fg-muted)'}}>Test</Button>` ,
32
- output : `<Button sx={{color: 'fg. muted'}}>Test</Button>` ,
32
+ output : `<Button sx={{color: 'var(--fgColor-muted, var(--color-fg- muted)) '}}>Test</Button>` ,
33
33
errors : [
34
34
{
35
- message : 'Replace var(--color-fg-muted) with fg. muted'
35
+ message : 'Replace var(--color-fg-muted) with var(--fgColor-muted, var(--color-fg- muted)) '
36
36
}
37
37
]
38
38
} ,
@@ -47,67 +47,40 @@ ruleTester.run('no-color-css-vars', rule, {
47
47
output : `
48
48
<Box sx={{
49
49
'&:hover [data-component="copy-link"] button, &:focus [data-component="copy-link"] button': {
50
- color: 'accent.fg '
50
+ color: 'var(--fgColor- accent, var(--color-accent-fg)) '
51
51
}
52
52
}}>
53
53
</Box>` ,
54
54
errors : [
55
55
{
56
- message : 'Replace var(--color-accent-fg) with accent.fg '
56
+ message : 'Replace var(--color-accent-fg) with var(--fgColor- accent, var(--color-accent-fg)) '
57
57
}
58
58
]
59
59
} ,
60
60
{
61
61
code : `<Box sx={{boxShadow: '0 0 0 2px var(--color-canvas-subtle)'}} />` ,
62
- output : `<Box sx={{boxShadow: '0 0 0 2px canvas. subtle'}} />` ,
62
+ output : `<Box sx={{boxShadow: '0 0 0 2px var(--bgColor-muted, var(--color- canvas- subtle)) '}} />` ,
63
63
errors : [
64
64
{
65
- message : 'Replace var(--color-canvas-subtle) with canvas. subtle'
65
+ message : 'Replace var(--color-canvas-subtle) with var(--bgColor-muted, var(--color- canvas- subtle)) '
66
66
}
67
67
]
68
68
} ,
69
69
{
70
70
code : `<Box sx={{border: 'solid 2px var(--color-border-default)'}} />` ,
71
- output : `<Box sx={{border: 'solid 2px border. default'}} />` ,
71
+ output : `<Box sx={{border: 'solid 2px var(--borderColor-default, var(--color- border- default)) '}} />` ,
72
72
errors : [
73
73
{
74
- message : 'Replace var(--color-border-default) with border.default'
75
- }
76
- ]
77
- } ,
78
- {
79
- code : `<Box sx={{borderColor: 'var(--color-border-default)'}} />` ,
80
- output : `<Box sx={{borderColor: 'border.default'}} />` ,
81
- errors : [
82
- {
83
- message : 'Replace var(--color-border-default) with border.default'
74
+ message : 'Replace var(--color-border-default) with var(--borderColor-default, var(--color-border-default))'
84
75
}
85
76
]
86
77
} ,
87
78
{
88
79
code : `<Box sx={{backgroundColor: 'var(--color-canvas-default)'}} />` ,
89
- output : `<Box sx={{backgroundColor: 'canvas.default'}} />` ,
90
- errors : [
91
- {
92
- message : 'Replace var(--color-canvas-default) with canvas.default'
93
- }
94
- ]
95
- } ,
96
- {
97
- code : `<Box backgroundColor="var(--color-canvas-default)" />` ,
98
- output : `<Box backgroundColor="canvas.default" />` ,
99
- errors : [
100
- {
101
- message : 'Replace var(--color-canvas-default) with canvas.default'
102
- }
103
- ]
104
- } ,
105
- {
106
- code : `<Box bg="var(--color-canvas-default)" />` ,
107
- output : `<Box bg="canvas.default" />` ,
80
+ output : `<Box sx={{backgroundColor: 'var(--bgColor-default, var(--color-canvas-default))'}} />` ,
108
81
errors : [
109
82
{
110
- message : 'Replace var(--color-canvas-default) with canvas. default'
83
+ message : 'Replace var(--color-canvas-default) with var(--bgColor-default, var(--color- canvas- default)) '
111
84
}
112
85
]
113
86
} ,
@@ -118,12 +91,12 @@ ruleTester.run('no-color-css-vars', rule, {
118
91
export const Fixture = <Button sx={baseStyles}>Test</Button>
119
92
` ,
120
93
output : `
121
- const baseStyles = { color: 'fg. muted' }
94
+ const baseStyles = { color: 'var(--fgColor-muted, var(--color-fg- muted)) ' }
122
95
export const Fixture = <Button sx={baseStyles}>Test</Button>
123
96
` ,
124
97
errors : [
125
98
{
126
- message : 'Replace var(--color-fg-muted) with fg. muted'
99
+ message : 'Replace var(--color-fg-muted) with var(--fgColor-muted, var(--color-fg- muted)) '
127
100
}
128
101
]
129
102
} ,
@@ -135,14 +108,24 @@ ruleTester.run('no-color-css-vars', rule, {
135
108
` ,
136
109
output : `
137
110
import {merge} from '@primer/react'
138
- export const Fixture = props => <Button sx={merge({color: 'fg. muted'}, props.sx)}>Test</Button>
111
+ export const Fixture = props => <Button sx={merge({color: 'var(--fgColor-muted, var(--color-fg- muted)) '}, props.sx)}>Test</Button>
139
112
` ,
140
113
errors : [
141
114
{
142
- message : 'Replace var(--color-fg-muted) with fg.muted'
115
+ message : 'Replace var(--color-fg-muted) with var(--fgColor-muted, var(--color-fg-muted))'
116
+ }
117
+ ]
118
+ } ,
119
+ {
120
+ code : `<Box sx={{borderColor: 'var(--color-border-default)'}} />` ,
121
+ output : `<Box sx={{borderColor: 'var(--borderColor-default, var(--color-border-default))'}} />` ,
122
+ errors : [
123
+ {
124
+ message : 'Replace var(--color-border-default) with var(--borderColor-default, var(--color-border-default))'
143
125
}
144
126
]
145
127
}
128
+ // broken tests start below
146
129
// {
147
130
// name: 'variable in styled.component',
148
131
// code: `
@@ -158,7 +141,7 @@ ruleTester.run('no-color-css-vars', rule, {
158
141
// output: `
159
142
// import {sx, SxProp} from '@primer/react'
160
143
// export const HighlightToken = styled.span<SxProp>\`
161
- // color: accent. emphasis;
144
+ // color: var(--bgColor- accent- emphasis, var(--color-accent-emphasis)) ;
162
145
// \${sx}
163
146
// \`
164
147
// const ClickableTokenSpan = styled(HighlightToken)\`
@@ -167,41 +150,42 @@ ruleTester.run('no-color-css-vars', rule, {
167
150
// `,
168
151
// errors: [
169
152
// {
170
- // message: 'Replace var(--color-accent-emphasis) with accent.emphasis'
153
+ // message:
154
+ // 'Replace var(--color-accent-emphasis) with var(--bgColor-accent-emphasis, var(--color-accent-emphasis))'
171
155
// }
172
156
// ]
173
- // },
157
+ // }
174
158
// {
175
159
// name: 'MemberExpression in sx: not handled',
176
160
// code: `
177
161
// const colors = { muted: 'var(--color-fg-muted)' }
178
162
// export const Fixture = <Button sx={colors.muted}>Test</Button>
179
163
// `,
180
164
// output: `
181
- // const colors = { muted: 'fg. muted' }
165
+ // const colors = { muted: 'var(--fgColor-muted, var(--color-fg- muted)) ' }
182
166
// export const Fixture = <Button sx={colors.muted}>Test</Button>
183
167
// `,
184
168
// errors: [
185
169
// {
186
- // message: 'Replace var(--color-fg-muted) with fg.muted'
187
- // }
188
- // ]
189
- // },
190
- // {
191
- // name: 'CallExpression in sx: not handled',
192
- // code: `
193
- // const getColors = () => 'var(--color-fg-muted)'
194
- // export const Fixture = <Button sx={getColors()}>Test</Button>
195
- // `,
196
- // output: `
197
- // const getColors = () => 'fg.muted'
198
- // export const Fixture = <Button sx={getColors()}>Test</Button>
199
- // `,
200
- // errors: [
201
- // {
202
- // message: 'Replace var(--color-fg-muted) with fg.muted'
170
+ // message: 'Replace var(--color-fg-muted) with var(--fgColor-muted, var(--color-fg-muted))'
203
171
// }
204
172
// ]
205
173
// }
174
+ // {
175
+ // name: 'CallExpression in sx: not handled',
176
+ // code: `
177
+ // const getColors = () => 'var(--color-fg-muted)'
178
+ // export const Fixture = <Button sx={getColors()}>Test</Button>
179
+ // `,
180
+ // output: `
181
+ // const getColors = () => 'var(--fgColor-muted, var(--color-fg-muted))'
182
+ // export const Fixture = <Button sx={getColors()}>Test</Button>
183
+ // `,
184
+ // errors: [
185
+ // {
186
+ // message: 'Replace var(--color-fg-muted) with var(--fgColor-muted, var(--color-fg-muted))'
187
+ // }
188
+ // ]
189
+ // }
206
190
]
207
191
} )
0 commit comments