Performance: Focus variant
Focus variants affect interaction responsiveness and visual stability by applying styles when elements receive keyboard or programmatic focus.
<button class="focus:outline-none focus:ring-2 focus:ring-blue-500">Click me</button><button class="focus:outline-none focus:ring-4 focus:ring-blue-500 focus:ring-opacity-50 focus:shadow-lg focus:translate-x-1 focus:translate-y-1">Click me</button>| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Complex focus styles with transform and shadow | No new DOM nodes | 0 reflows | 3 repaints per focus | [X] Bad |
| Simple focus styles with outline and ring | No new DOM nodes | 0 reflows | 1 repaint per focus | [OK] Good |
focus: variant in Tailwind CSS do?focus: variant applies styles when an element receives keyboard or mouse focus, helping users identify the active element.variant:utility, so focus variant is focus: before the utility class.focus:text-blue-500 matches the correct syntax. Others misuse colons or underscores.focus: prefix before utility class [OK]<button class="text-gray-700 focus:text-red-600">Click me</button>
text-gray-700 and changes to text-red-600 only on focus.focus:text-red-600 overrides base gray color. When not focused, base gray applies.<input class="border focus-border-blue-500" />
focus:border-blue-500. The code uses focus-border-blue-500 which is invalid.border-blue-500 is a valid utility and inputs support focus styles, so no issues there.bg-green-500 for normal background and border to set border width (default border color).focus:bg-yellow-400 to change background on focus and focus:border-black to change border color to black only on focus.bg-green-500 focus:bg-yellow-400 border focus:border-black correctly uses base green background and border, and changes background and border color on focus. Others misuse border color or width.Pass the test and this pattern moves unknown