Skip to content

Commit 3fccb72

Browse files
committed
Update docs
1 parent 587b69a commit 3fccb72

File tree

3 files changed

+129
-10
lines changed

3 files changed

+129
-10
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ Where rules are included in the configs `recommended`, or `all` it is indicated
8787
| [`@pandacss/no-hardcoded-color`](docs/rules/no-hardcoded-color.md) | |
8888
| [`@pandacss/no-important`](docs/rules/no-important.md) | |
8989
| [`@pandacss/no-invalid-token-paths`](docs/rules/no-invalid-token-paths.md) | ✔️ |
90+
| [`@pandacss/no-invalid-nesting`](docs/rules/no-invalid-nesting.md) | ✔️ |
9091
| [`@pandacss/no-property-renaming`](docs/rules/no-property-renaming.md) | ✔️ |
9192
| [`@pandacss/no-unsafe-token-fn-usage`](docs/rules/no-unsafe-token-fn-usage.md) | |
9293
| [`@pandacss/prefer-longhand-properties`](docs/rules/prefer-longhand-properties.md) | |

docs/rules/no-invalid-nesting.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
[//]: # (This file is generated by eslint-docgen. Do not edit it directly.)
2+
3+
# no-invalid-nesting
4+
5+
Warn against invalid nesting. i.e. nested styles that don't contain the `&` character.
6+
7+
📋 This rule is enabled in `plugin:@pandacss/all`.
8+
9+
📋 This rule is enabled in `plugin:@pandacss/recommended`.
10+
11+
## Rule details
12+
13+
❌ Examples of **incorrect** code:
14+
```js
15+
import { css } from './panda/css';
16+
17+
const styles = css({
18+
':hover': { marginLeft: '4px' },
19+
});
20+
```
21+
```js
22+
23+
import { css } from './panda/css';
24+
25+
function App() {
26+
return (
27+
<div
28+
className={css({
29+
'.dark ': { background: 'red.100' },
30+
})}
31+
/>
32+
);
33+
};
34+
```
35+
```js
36+
37+
import { Circle } from './panda/jsx';
38+
39+
function App() {
40+
return (
41+
<Circle
42+
css={{
43+
'[data-focus]': { position: 'absolute' },
44+
}}
45+
/>
46+
);
47+
}
48+
```
49+
50+
✔️ Examples of **correct** code:
51+
```js
52+
import { css } from './panda/css';
53+
54+
const styles = css({
55+
'&:hover': { marginLeft: '4px' },
56+
});
57+
```
58+
```js
59+
60+
import { css } from './panda/css';
61+
62+
function App() {
63+
return (
64+
<div
65+
className={css({
66+
'.dark &': { background: 'red.100' },
67+
})}
68+
/>
69+
);
70+
};
71+
```
72+
```js
73+
74+
import { Circle } from './panda/jsx';
75+
76+
function App() {
77+
return (
78+
<Circle
79+
css={{
80+
'&[data-focus]': { position: 'absolute' },
81+
}}
82+
/>
83+
);
84+
}
85+
```
86+
87+
## Resources
88+
89+
* [Rule source](/plugin/src/rules/no-invalid-nesting.ts)
90+
* [Test source](/tests/no-invalid-nesting.test.ts)

plugin/tests/no-invalid-nesting.test.ts

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,38 @@ const valids = [
88
code: javascript`
99
import { css } from './panda/css';
1010
11-
const styles = css({ '&:hover': { marginLeft: '4px' } })`,
11+
const styles = css({
12+
'&:hover': { marginLeft: '4px' },
13+
})`,
1214
},
1315

1416
{
1517
code: javascript`
1618
import { css } from './panda/css';
1719
18-
function App(){
19-
return <div className={css({ '.dark &': { background: 'red.100' } })} />;
20+
function App() {
21+
return (
22+
<div
23+
className={css({
24+
'.dark &': { background: 'red.100' },
25+
})}
26+
/>
27+
);
2028
}`,
2129
},
2230

2331
{
2432
code: javascript`
2533
import { Circle } from './panda/jsx';
2634
27-
function App(){
28-
return <Circle css={{ '&[data-focus]': { position: 'absolute' } }} />;
35+
function App() {
36+
return (
37+
<Circle
38+
css={{
39+
'&[data-focus]': { position: 'absolute' },
40+
}}
41+
/>
42+
);
2943
}`,
3044
},
3145
]
@@ -35,24 +49,38 @@ const invalids = [
3549
code: javascript`
3650
import { css } from './panda/css';
3751
38-
const styles = css({ ':hover': { marginLeft: '4px' } })`,
52+
const styles = css({
53+
':hover': { marginLeft: '4px' },
54+
})`,
3955
},
4056

4157
{
4258
code: javascript`
4359
import { css } from './panda/css';
4460
45-
function App(){
46-
return <div className={css({ '.dark ': { background: 'red.100' } })} />;
61+
function App() {
62+
return (
63+
<div
64+
className={css({
65+
'.dark ': { background: 'red.100' },
66+
})}
67+
/>
68+
);
4769
}`,
4870
},
4971

5072
{
5173
code: javascript`
5274
import { Circle } from './panda/jsx';
5375
54-
function App(){
55-
return <Circle css={{ '[data-focus]': { position: 'absolute' } }} />;
76+
function App() {
77+
return (
78+
<Circle
79+
css={{
80+
'[data-focus]': { position: 'absolute' },
81+
}}
82+
/>
83+
);
5684
}`,
5785
},
5886
]

0 commit comments

Comments
 (0)