Primitive

Button

Auto-emitted from DSKintsugiCatalog.button. Tier atom.

Live Preview
Variant

Themed button matrix

Active theme drives the colours — try the picker top-right
primary .ds-cta-primary Themed accent bg · gold halo on hover

rest

hover

pressed

disabled

secondary .ds-cta-secondary Transparent hairline · gold halo on hover

rest

hover

pressed

disabled

danger .ds-cta-secondary-red Carmine accent · use for destructive actions

rest

hover

pressed

disabled

Native · macOS
macOS SwiftUI render of Button
DSL usage
// KatagamiCore ViewNode tree — single source of truth
ViewNode.button(
    label: .text("Apply", style: .body),
    action: .submit,
    style: ButtonStyle(variant: .primary)
)

// SwiftUI consumption (renders via KatagamiSwiftUI):
Button("Apply") {
    viewModel.applyFilters()
}
.buttonStyle(.primary)

// Web emit (this storybook page is the proof):
<button class="ds-cta-btn ds-cta-primary">Apply</button>
Attributes
NameTypeDefaultDescription
label String Button label text
style ButtonStyle primary primary | secondary | ghost
action () -> Void Closure executed on tap
density Density regular compact | regular | expanded
locale Locale en BCP-47 locale tag for locale-aware rendering
Used in
FundsScreener