Button

Interactive button component with multiple variants, colors, and sizes.

Variants

Four visual styles: solid, outline, ghost, and link.

Colors

Primary, secondary, and destructive color schemes.

Sizes

Four size options.

Border Radius

Control the corner rounding.

States

Disabled and loading states.

Open Markdown
FreeButton

Primary actions, secondary actions, and icon buttons.

Install with the Proa CLI
proa ui add button

Installs the reviewed component source, dependencies, shared support files, and required legal notices.

CLI and registry setup
recipe.rs
// SPDX-FileCopyrightText: 2026 Proa Labs, Inc.
// SPDX-License-Identifier: (MIT OR Apache-2.0) AND MIT

//! Button recipe - type-safe styling system for Button component
//!
//! Inspired by Panda CSS and Ark UI patterns, this module provides a fully
//! typed recipe system for generating Tailwind classes with compile-time safety.
//!
//! # Architecture
//!
//! This module defines:
//! 1. **Variant enums** (ButtonSize, ButtonColor, ButtonVariant, ButtonRadius)
//! 2. **ButtonRecipeProps** - Optional author inputs
//! 3. **ButtonRecipe** - Defaults plus canonical compound resolution
//! 4. **ButtonStyle** - A resolved, streamable attribute value
//!
//! # Theme Integration
//!
//! This recipe composes primitive design tokens from `theme.rs` into component-specific styles.
//! Following Panda CSS principles:
//! - **Theme contains primitives only**: `Colors::BLUE_600`, `Spacing::SPACING_4`, etc.
//! - **Theme provides utility modules**: `theme::bg`, `theme::text`, `theme::hover_bg`, etc.

Search

Type at least 2 characters

Customize

Make it yours

Palette

Radius

Overview
Components
Settings

Build your own

Themed Proa UI surface

Preview
Components52
RecipesTyped
customer-portal