griffel/packages/eslint-plugin
Fluent UI Build 8ca5e8154b applying package updates 2024-10-31 16:16:50 +00:00
..
src feat(eslint-plugin): add top-level-styles eslint rule (#595) 2024-08-21 10:31:01 +02:00
.babelrc
.eslintrc.json
CHANGELOG.json applying package updates 2024-10-31 16:16:50 +00:00
CHANGELOG.md applying package updates 2024-10-31 16:16:50 +00:00
README.md feat(eslint-plugin): add top-level-styles eslint rule (#595) 2024-08-21 10:31:01 +02:00
jest.config.ts
package.json applying package updates 2024-10-31 16:16:50 +00:00
project.json
tsconfig.json
tsconfig.lib.json
tsconfig.spec.json

README.md

ESLint plugin for Griffel

ESLint plugin to follow best practices and anticipate common mistakes when writing styles with Griffel

Install

yarn add --dev @griffel/eslint-plugin
# or
npm install --save-dev @griffel/eslint-plugin

Usage

Add @griffel to the plugins section and plugin:@griffel/recommended to the extends section of your .eslintrc configuration file:

{
  "plugins": ["@griffel"],
  "extends": ["plugin:@griffel/recommended"]
}

Shareable configurations

This plugin exports recommended configuration that enforce good practices, but you can choose to use only the ones that are necessary for your use case:

{
  "plugins": ["@griffel"],
  "rules": {
    "@griffel/hook-naming": "error",
    "@griffel/no-shorthands": "error",
    "@griffel/pseudo-element-naming": "error"
  }
}

You can find more info about enabled rules in the Supported Rules section below.

Supported Rules

Key: 🔧 = fixable

Name Description 🔧
@griffel/hook-naming Ensure that hooks returned by the makeStyles() function start with "use"
@griffel/no-invalid-shorthand-arguments All shorthands must not use space separators, and instead pass in multiple arguments
@griffel/no-shorthands Enforce usage of CSS longhands
@griffel/styles-file Ensures that all makeStyles() and makeResetStyles() calls are placed in a .styles.js or .styles.ts file
@griffel/pseudo-element-naming Ensures that all Pseudo Elements start with two colons
@griffel/top-level-styles Ensures that all makeStyles(), makeResetStyles() and makeStaticStyles() calls are written in the top level of a file to discourage developer misuse.