Common page furniture
button, badge, alert, card, table| #1201 | Agency retainer | $820 |
| #1202 | Hosting | $40 |
WebBlocks is strongest when buttons, fields, overlays, and navigation patterns are treated as working parts of a page. This index groups the library by job: data entry, feedback, movement, visibility, and interaction.
These are the pieces that appear almost everywhere. They should not need explanation once the naming is learned.
| #1201 | Agency retainer | $820 |
| #1202 | Hosting | $40 |
Form fields, selects, switches, grouped inputs, radio cards, and validation states share the same token logic. The goal is steady rhythm, not flashy field chrome.
Breadcrumbs, pagination, nav groups, tabs, filter bars, list groups, and action menus exist to reduce friction between states.
Modals, drawers, dropdowns, tooltips, popovers, command palettes, toast notifications, accordions, and collapse patterns are wired through explicit attributes and small modules. The HTML still tells you what the page can do.
Modal, confirm, drawer, dropdown, popover, tooltip, and toast cover visibility changes and temporary surfaces.
Accordion, collapse, nav group, and dismiss manage sections that open, close, or leave the page.
Command palette, AJAX toggle, and action menus help pages feel interactive without becoming opaque.
These pieces support marketing pages, editorial sections, release pages, and structured website content without introducing a second design language.
wb-section-heading, wb-inline-list
Editorial intro
`wb-section-heading` gives public sections an eyebrow, title, and supporting copy that stay visually related.
wb-promo, wb-card-muted, wb-card-accent
The promo panel pairs well with muted or accent-tinted cards for pricing, release notes, signup nudges, or editorial conversion blocks.
Use for softer supporting content, side notes, or quiet summaries.
Use for featured highlights, launch notes, or tighter attention points.
The naming system is intentionally plain. You should be able to copy a pattern, change the surrounding semantics, and still understand what every line is doing six months later.
<div class="wb-card">
<div class="wb-card-header wb-split">
<strong>Invoice</strong>
<span class="wb-badge wb-badge-success wb-badge-dot">Paid</span>
</div>
<div class="wb-card-body">
<button class="wb-btn wb-btn-outline wb-btn-sm">View</button>
</div>
</div>