Performance: First-child and last-child targeting
MEDIUM IMPACT
This affects how CSS selectors target elements, impacting style calculation and layout performance.
<ul class="list-none"> <li class="text-red-500">Item 1</li> <li>Item 2</li> <li class="text-blue-500">Item 3</li> </ul>
<ul class="list-none"> <li class="first:text-red-500 last:text-blue-500">Item 1</li> <li class="first:text-red-500 last:text-blue-500">Item 2</li> <li class="first:text-red-500 last:text-blue-500">Item 3</li> </ul>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| :first-child and :last-child selectors on large lists | High (checks each child element) | Medium (style recalculation triggers layout) | Medium (style changes may repaint) | [X] Bad |
| Direct class application to first and last items | Low (no complex selector matching) | Low (minimal style recalculation) | Low (only changed elements repaint) | [OK] Good |