eslint-plugin-react-native-unistyles
Version:
React Native Unistyles rules for ESLint
126 lines (93 loc) • 3.27 kB
Markdown
# ESLint Plugin for React Native Unistyles

 [](https://github.com/RodSarhan/eslint-plugin-react-native-unistyles)  [](https://github.com/RodSarhan/eslint-plugin-react-native-unistyles/blob/main/LICENSE)
> ESLint rules for [React Native Unistyles](https://github.com/jpudysz/react-native-unistyles) to help you write cleaner, more maintainable stylesheets.
## 📋 Requirements
- ESLint
- React Native Unistyles `^3.0.0`
## 📦 Installation
Install the plugin as a dev dependency:
```bash
yarn add eslint-plugin-react-native-unistyles -D
```
## ⚙️ Configuration
### ESLint Flat Config (Recommended)
For ESLint 9+ with flat config:
```js
import { defineConfig } from 'eslint/config';
import unistyles from 'eslint-plugin-react-native-unistyles';
export default defineConfig([
// Your other configs...
unistyles.configs.recommended,
]);
```
#### Custom Configuration
```js
import unistyles from 'eslint-plugin-react-native-unistyles';
export default defineConfig([
{
plugins: {
'react-native-unistyles': unistyles,
},
rules: {
'react-native-unistyles/no-unused-styles': 'error',
'react-native-unistyles/sort-styles': [
'warn',
'asc',
{
ignoreStyleNames: false,
ignoreStyleProperties: false
}
],
},
},
]);
```
### Legacy Configuration (.eslintrc)
For older ESLint versions:
```json
{
"extends": ["plugin:react-native-unistyles/legacy-recommended"]
}
```
#### Manual Rule Configuration
```json
{
"plugins": ["react-native-unistyles"],
"rules": {
"react-native-unistyles/no-unused-styles": "warn",
"react-native-unistyles/sort-styles": [
"warn",
"asc",
{
"ignoreStyleNames": false,
"ignoreStyleProperties": false
}
]
}
}
```
### Note
If it is not already the case you must also configure `ESLint` to support JSX.
```json
{
"languageOptions": {
"parserOptions": {
"ecmaFeatures": {"jsx": true}
}
}
}
```
## 📖 Rules
| Rule | Description |
|------|-------------|
| [`no-unused-styles`](docs/rules/no-unused-styles.md) | Detect unused stylesheet definitions |
| [`sort-styles`](docs/rules/sort-styles.md) | Enforce sorted style properties |
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- Inspired by [eslint-plugin-react-native](https://github.com/Intellicode/eslint-plugin-react-native)
- Built for [React Native Unistyles](https://github.com/jpudysz/react-native-unistyles) by [@jpudysz](https://github.com/jpudysz)
## 📚 Related Projects
- [React Native Unistyles](https://github.com/jpudysz/react-native-unistyles) - The styling library this plugin supports
- [ESLint](https://eslint.org/) - The pluggable linting utility for JavaScript