eslint-plugin-custom-element v1.1.0
Custom Element ESLint Plugin
This plugin creates custom rules to lint custom elements in HTML.

Usage
This plugin leverages the @html-eslint/eslint-plugin and @html-eslint/parser packages to parse the DOM.
npm install -D eslint-plugin-custom-element eslint @html-eslint/eslint-plugin @html-eslint/parserNOTE: If you would like to have these rules automatically generated for you, check out the Custom Element ESLint Rule Generator.
Configuration
// eslint.config.js
import customElement from "eslint-plugin-custom-element";
import html from "@html-eslint/eslint-plugin";
import htmlParser from "@html-eslint/parser";
export default [
{
files: ["**/*.html"],
languageOptions: {
parser: htmlParser,
},
plugins: {
html,
"custom-element": customElement,
},
rules: {
/* Add configuration for custom element rules */
},
},
];For more configuration options, check out the HTML ESLint docs.
Rules
The plugin provides predefined rules for validating custom element APIs.
Constrained Attributes
The custom-element/constrained-attrs rule provides validation for attributes with predefined acceptable values.
// eslint.config.js
export default [
{
/* ...plugin config... */
rules: {
"custom-element/constrained-attrs": [
"error",
{
tag: "my-button",
attr: "appearance",
values: ["primary", "outline", "default", "transparent"],
},
],
},
},
];Deprecated Attributes
The custom-element/no-deprecated-attrs rule notifies the developer when an attribute for a custom element is deprecated.
// eslint.config.js
export default [
{
/* ...plugin config... */
rules: {
"custom-element/no-deprecated-attrs": [
"warn",
{
tag: "my-button",
attr: "size",
},
],
},
},
];Deprecated Tag
The custom-element/no-deprecated-tags rule notifies the developer when a custom element is deprecated.
// eslint.config.js
export default [
{
/* ...plugin config... */
rules: {
"custom-element/no-deprecated-tags": [
"warn",
{
tag: "your-element",
},
],
},
},
];Required Attributes
The custom-element/required-attrs rule notifies the developer if an expected attribute is not present on the custom element.
// eslint.config.js
export default [
{
/* ...plugin config... */
rules: {
"custom-element/required-attrs": [
"error",
{
tag: "my-button",
attr: "type",
},
],
},
},
];Boolean Attribute Values
The custom-element/no-boolean-attr-values rule notifies users that setting a value on boolean attributes will result in it always being true (ie - <my-button disabled="false"></my-button> will result in a disabled button).
// eslint.config.js
export default [
{
/* ...plugin config... */
rules: {
"custom-element/no-boolean-attr-values": [
"error",
{
tag: "my-button",
attr: "disabled",
},
],
},
},
];11 months ago
1 year ago
2 years ago
1 year ago
2 years ago