0.9.1
DU

Buttons

Interactive button components with multiple variants, styles, sizes, and states.

Variants (Solid Style)

All 9 semantic color variants rendered as solid buttons.

<%= bui_button(variant: :primary) { "Primary" } %>
<%= bui_button(variant: :secondary) { "Secondary" } %>
<%= bui_button(variant: :accent) { "Accent" } %>
<%= bui_button(variant: :success) { "Success" } %>
<%= bui_button(variant: :danger) { "Danger" } %>
<%= bui_button(variant: :warning) { "Warning" } %>
<%= bui_button(variant: :info) { "Info" } %>
<%= bui_button(variant: :light) { "Light" } %>
<%= bui_button(variant: :dark) { "Dark" } %>

Visual Styles

Four visual styles: solid, outline, ghost, and soft. Shown with primary, success, and danger variants.

Solid

Outline

Ghost

Soft

<%# Solid (default) %>
<%= bui_button(variant: :primary, style: :solid) { "Primary" } %>

<%# Outline %>
<%= bui_button(variant: :primary, style: :outline) { "Primary" } %>

<%# Ghost %>
<%= bui_button(variant: :primary, style: :ghost) { "Primary" } %>

<%# Soft %>
<%= bui_button(variant: :primary, style: :soft) { "Primary" } %>

Sizes

Five sizes from extra-small to extra-large.

<%= bui_button(variant: :primary, size: :xs) { "Extra Small" } %>
<%= bui_button(variant: :primary, size: :sm) { "Small" } %>
<%= bui_button(variant: :primary, size: :md) { "Medium" } %>
<%= bui_button(variant: :primary, size: :lg) { "Large" } %>
<%= bui_button(variant: :primary, size: :xl) { "Extra Large" } %>

Loading States

Buttons can show a loading spinner immediately or on click.

Show Loader (always visible)

Show Loader on Click (click to see)

<%# Always show loader %>
<%= bui_button(variant: :primary, show_loader: true) { "Loading..." } %>

<%# Show loader on click %>
<%= bui_button(variant: :primary, show_loader_on_click: true) { "Click Me" } %>

Disabled State

Disabled buttons across different visual styles.

<%= bui_button(variant: :primary, style: :solid, disabled: true) { "Solid Disabled" } %>
<%= bui_button(variant: :primary, style: :outline, disabled: true) { "Outline Disabled" } %>
<%= bui_button(variant: :primary, style: :ghost, disabled: true) { "Ghost Disabled" } %>

Button Types

HTML button types: button (default), submit, and reset.

<%= bui_button(variant: :primary, type: :button) { "Button (default)" } %>
<%= bui_button(variant: :success, type: :submit) { "Submit" } %>
<%= bui_button(variant: :warning, type: :reset) { "Reset" } %>

Link Buttons

Buttons with an href render as anchor tags, combining button styling with link behavior.

<%# Renders as <a> tag with button styling %>
<%= bui_button(variant: :primary, href: demos_path) { "Internal Link" } %>

<%# External link with target="_blank" %>
<%= bui_button(variant: :accent, style: :outline, href: "https://github.com", target: "_blank") { "External Link" } %>

<%# Disabled link button %>
<%= bui_button(variant: :danger, style: :soft, href: "#", disabled: true) { "Disabled Link" } %>