.empty-state supplies the dashed border, rounded corners, centered layout and spacing. Its header, icon, title, description and action classes supply the standard appearance without additional utilities or JavaScript.
Provide a title or description, and use a short action when the user can resolve the empty state. Omit the action when that capability is unavailable.
Add Bootstrap utility classes directly to the .empty-state root element for additional styling. For example, border-0 removes the boundary, bg-body-tertiary adds a surface, and text-start align-items-start gives a start-aligned variant. Directional text utilities follow the host's Bootstrap CSS distribution; an RTL host supplies its RTL utility definitions.
Place a decorative icon inside .empty-state-icon and native links or buttons inside .empty-state-actions. Mark decorative icons aria-hidden="true"; the standard icon frame sizes elements with data-icon. Escape untrusted text and attributes before adding them to HTML.
For filtered collections, explain that no results match and offer a filter reset. For an empty collection, explain how to create the first item. Native navigation, form ownership and permissions remain with the action and its host.