Performance: Split button dropdowns
MEDIUM IMPACT
Split button dropdowns affect page interactivity and rendering speed by adding extra DOM elements and event listeners.
<div class="btn-group"> <button type="button" class="btn btn-primary" id="mainAction">Action</button> <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown" data-bs-toggle="dropdown"></button> <ul class="dropdown-menu" aria-labelledby="mainAction"> <li><button class="dropdown-item" type="button">Option 1</button></li> <li><button class="dropdown-item" type="button">Option 2</button></li> </ul> </div>
<div class="btn-group"> <button type="button" class="btn btn-primary">Action</button> <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Option 1</a></li> <li><a class="dropdown-item" href="#">Option 2</a></li> </ul> </div>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Split button with multiple buttons and dropdown | High (multiple buttons + menu items) | 3+ on open | Medium (dropdown repaint) | [X] Bad |
| Split button with semantic buttons and ARIA, minimal DOM | Low (few buttons + menu items) | 1 on open | Low (transform-based animation) | [OK] Good |