Place icons inside inputs with has-icons-left or has-icons-right on the control wrapper, then add a child span.icon. The input needs matching padding—Bulma handles this when structure is correct.
Icon sets
Bulma does not ship an icon font. Teams pair Bulma with Font Awesome, Heroicons as inline SVG, or Material Symbols. Keep decorative icons aria-hidden="true"; meaningful icons need text alternatives.
Clickable icons
Password reveal or clear buttons should be real button elements inside the control, not bare spans, so keyboard users can activate them.
Self-check
- Which class aligns an icon on the left inside an input?
- Why should icon-only controls still have accessible names?