Various button styles and sizes for actions and navigation.

Button Variants

Button Sizes

Theme Color Buttons

Theme Color Outline Buttons

Outline Buttons

Button States

Block Buttons

Button Groups - Basic

Horizontal (default)

Vertical

No-Wrap (prevents line breaks)

Button Groups - Gap Sizes

Semantic Gap Classes

gap-xs (4px)

gap-sm (8px)

gap-md (12px)

gap-base (16px)

gap-lg (24px)

gap-xl (32px)

Vertical Alignment

Use semantic gap classes (gap-sm, gap-md, gap-lg, gap-xl) to control vertical spacing between buttons.

Start gap-sm

Center gap-md

End gap-lg

Stretch gap-xl

Responsive Direction

Horizontal → Vertical at md (768px)

Resize window to see change

Vertical → Horizontal at lg (992px)

Starts vertical, becomes horizontal on large screens

Class Reference

  • --sm-vertical / --sm-horizontal at 576px
  • --md-vertical / --md-horizontal at 768px
  • --lg-vertical / --lg-horizontal at 992px
  • --xl-vertical / --xl-horizontal at 1200px

Split Buttons

Primary action + dropdown toggle combined into a single control

Sizes

Upward Placement

Use data-placement="top-end" to open the menu upward. Floating UI will auto-flip if there's not enough space.

Custom Icons (no rotation)

Omit pa-btn-split__chevron from the icon for static icons that don't rotate on open.

Items with Actions

Menu items can include inline action buttons for quick operations like delete.

Text Truncation

Use .text-truncate with a fixed width (.wr-*) to truncate long text with ellipsis

Buttons with Text Icons

Buttons with icons are automatically left-aligned with fixed-width icon container:

Icon Only Buttons

Icon-only button sizes (XS → XL):

Various colors - default size:

Compact (XS) - perfect for table actions:

With ripple and loading states (click to test):

Fixed Width Buttons

Use minwr-* + maxwr-* to constrain width. Add text-truncate on an inner span for ellipsis:

Different Widths (minwr-8 to minwr-20)

Button Text Alignment

Control text alignment within fixed-width buttons. Note the varied text lengths to show the effect:

Inline Start Aligned

Inline End Aligned

Center Aligned

Justified

Font Awesome Icons

Font Awesome icons with varied text lengths to show alignment:

Inline Start Aligned

Inline End Aligned

Center Aligned

Justified

Ripple Effect Buttons

Click buttons to see ripple animation effect:

Loading State Buttons

Click buttons to simulate loading states (1-3s):

Usage Guide

Ripple Effect

Add pa-btn--ripple class and data-ripple attribute to any button for click animation feedback.

Loading States

Use pa-btn--loading class to show spinner. JavaScript can toggle this class during async operations.

Best Practices

  • Fast Sites: Always show loading feedback, even for quick operations (200-500ms minimum)
  • User Confidence: Ripple effects confirm button clicks were registered
  • Prevent Double-clicks: Disable buttons during loading to prevent duplicate submissions
  • Accessibility: Loading states are announced to screen readers

CSS Classes Reference

Button Base

  • pa-btn - Base button styling

Button Variants (Colors)

  • pa-btn--primary - Primary accent color
  • pa-btn--secondary - Secondary/neutral color
  • pa-btn--success - Success/green color
  • pa-btn--warning - Warning/yellow color
  • pa-btn--danger - Danger/red color
  • pa-btn--info - Info/blue color
  • pa-btn--light - Light background
  • pa-btn--dark - Dark background

Outline Variants

  • pa-btn--outline-primary - Outline primary
  • pa-btn--outline-secondary - Outline secondary
  • pa-btn--outline-success - Outline success
  • pa-btn--outline-warning - Outline warning
  • pa-btn--outline-danger - Outline danger
  • pa-btn--outline-info - Outline info

Theme Color Variants

  • pa-btn--color--8 - Theme color slot buttons
  • pa-btn--outline-color--8 - Outline theme color slot buttons

Button Sizes

  • pa-btn--xs - Extra small button
  • pa-btn--sm - Small button
  • pa-btn--lg - Large button
  • pa-btn--xl - Extra large button

Button States & Modifiers

  • pa-btn--loading - Loading state with spinner
  • pa-btn--ripple - Enable ripple click effect
  • pa-btn--block - Full width block button
  • pa-btn--icon-only - Square icon-only button

Content Alignment

  • pa-btn--align-start - Inline-start align content (RTL: right)
  • pa-btn--align-end - Inline-end align content (RTL: left)
  • pa-btn--align-center - Center-align content
  • pa-btn--align-justify - Space-between content

Button Elements

  • pa-btn__icon - Icon container with fixed width
  • pa-btn__label - Text label wrapper (enables centering with icons)
  • pa-btn__spinner - Loading spinner element

Button Groups

  • pa-btn-group - Container for grouped buttons
  • pa-btn-group--vertical - Vertical stacking
  • pa-btn-group--nowrap - Prevent wrapping

Button Group Alignment (vertical only)

  • pa-btn-group--center - Center-align buttons
  • pa-btn-group--end - End-align buttons
  • pa-btn-group--stretch - Full width buttons

Split Buttons

  • pa-btn-split - Container for split button
  • pa-btn-split__toggle - Toggle/chevron button
  • pa-btn-split__chevron - Chevron icon (rotates on open)
  • pa-btn-split__menu - Dropdown menu panel
  • pa-btn-split__menu-inner - Inner wrapper (flex layout)
  • pa-btn-split__menu--open - Show dropdown menu
  • pa-btn-split__item - Menu item button
  • pa-btn-split__item--danger - Destructive action styling
  • pa-btn-split__item-icon - Menu item icon container
  • pa-btn-split__item-row - Row with item + inline action button
  • data-placement="top-end" - Open menu upward

Responsive Button Groups

  • pa-btn-group--sm-vertical - Vertical at 576px+
  • pa-btn-group--sm-horizontal - Horizontal at 576px+
  • pa-btn-group--md-vertical - Vertical at 768px+
  • pa-btn-group--md-horizontal - Horizontal at 768px+
  • pa-btn-group--lg-vertical - Vertical at 992px+
  • pa-btn-group--lg-horizontal - Horizontal at 992px+
  • pa-btn-group--xl-vertical - Vertical at 1200px+
  • pa-btn-group--xl-horizontal - Horizontal at 1200px+

John Doe

Administrator

Settings

Sidebar
Display
Profile Panel
Body text size. All elements scale proportionally.