prefer-classlist-toggle

March 27, 2026 ยท View on GitHub

๐Ÿ“ Prefer using Element#classList.toggle() to toggle class names.

๐Ÿ’ผ This rule is enabled in the following configs: โœ… recommended, โ˜‘๏ธ unopinionated.

๐Ÿ”ง๐Ÿ’ก This rule is automatically fixable by the --fix CLI option and manually fixable by editor suggestions.

Prefer using Element#classList.toggle() instead of conditionally calling classList.add() and classList.remove().

Examples

// โŒ
if (element.classList.contains('className')) {
	element.classList.remove('className');
} else {
	element.classList.add('className');
}

// โŒ
element.classList.contains('className')
	? element.classList.remove('className')
	: element.classList.add('className');

// โŒ
element.classList[element.classList.contains('className') ? 'remove' : 'add']('className');

// โœ…
element.classList.toggle('className');
// โŒ
if (condition) {
	element.classList.add('className');
} else {
	element.classList.remove('className');
}

// โŒ
condition
	? element.classList.add('className')
	: element.classList.remove('className');

// โŒ
element.classList[condition ? 'add' : 'remove']('className');

// โœ…
element.classList.toggle('className', condition);