For the complete documentation index, see llms.txt. Markdown variants are available by appending .md to any URL or sending an Accept: text/markdown header. An agent skill is available at /.well-known/agent-skills/site-skill.md.
/
3
Sponsor

Button

A macOS push button with bordered, prominent, and destructive variants.

Import

use maccn::{ButtonVariant, MacButton, MacControlSize};

Usage

MacButton::new("save").child("Save");
 
MacButton::new("delete")
    .variant(ButtonVariant::Destructive)
    .child("Delete");

Variants

use gpui::div;
use maccn::{ButtonVariant, MacButton};
 
div()
    .flex()
    .items_center()
    .gap_2()
    .child(MacButton::new("btn-bordered").child("Bordered"))
    .child(
        MacButton::new("btn-prominent")
            .variant(ButtonVariant::Prominent)
            .child("Prominent"),
    )
    .child(
        MacButton::new("btn-destructive")
            .variant(ButtonVariant::Destructive)
            .child("Delete"),
    )

Sizes

use gpui::div;
use maccn::{ButtonVariant, MacButton, MacControlSize};
 
div()
    .flex()
    .items_center()
    .gap_2()
    .child(
        MacButton::new("btn-xl")
            .size(MacControlSize::ExtraLarge)
            .variant(ButtonVariant::Prominent)
            .child("Extra Large"),
    )
    .child(
        MacButton::new("btn-l")
            .size(MacControlSize::Large)
            .child("Large"),
    )
    .child(MacButton::new("btn-r").child("Regular"))
    .child(MacButton::new("btn-s").size(MacControlSize::Small).child("Small"))
    .child(MacButton::new("btn-m").size(MacControlSize::Mini).child("Mini"))

Disabled

use gpui::div;
use maccn::{ButtonVariant, MacButton};
 
div()
    .flex()
    .items_center()
    .gap_2()
    .child(MacButton::new("btn-d1").disabled(true).child("Bordered"))
    .child(
        MacButton::new("btn-d2")
            .variant(ButtonVariant::Prominent)
            .disabled(true)
            .child("Prominent"),
    )
    .child(
        MacButton::new("btn-d3")
            .variant(ButtonVariant::Destructive)
            .disabled(true)
            .child("Delete"),
    )

API

Props

PropTypeDefault
variantButtonVariantBordered
sizeMacControlSizeRegular
disabledboolfalse

Variants

VariantDescription
BorderedNeutral bordered button (default).
ProminentAccent-filled button.
DestructiveRed bordered destructive button.

Events

EventPayload
on_click(&ClickEvent, &mut Window, &mut App)