A macOS push button (NSButton). Supports default, prominent, and destructive variants in the five standard control sizes.
vue<script setup lang="ts">
import { MacButton } from 'macvue'
</script>
<template>
<MacButton>Click me</MacButton>
</template>
Usage
vue<script setup lang="ts">
import { MacButton } from 'macvue'
</script>
<template>
<MacButton>Click me</MacButton>
</template>
Variants
vue<script setup lang="ts">
import { MacButton } from 'macvue'
</script>
<template>
<div style="display: flex; align-items: center; gap: 12px">
<MacButton>Default</MacButton>
<MacButton variant="prominent">
Prominent
</MacButton>
<MacButton variant="destructive">
Destructive
</MacButton>
</div>
</template>
Sizes
All five macOS control sizes; regular is the default.
vue<script setup lang="ts">
import { MacButton } from 'macvue'
</script>
<template>
<div style="display: flex; align-items: center; gap: 12px">
<MacButton size="extra-large">
Extra large
</MacButton>
<MacButton size="large">
Large
</MacButton>
<MacButton size="regular">
Regular
</MacButton>
<MacButton size="small">
Small
</MacButton>
<MacButton size="mini">
Mini
</MacButton>
</div>
</template>
Disabled
vue<script setup lang="ts">
import { MacButton } from 'macvue'
</script>
<template>
<div style="display: flex; align-items: center; gap: 12px">
<MacButton disabled>
Default
</MacButton>
<MacButton
variant="prominent"
disabled
>
Prominent
</MacButton>
<MacButton
variant="destructive"
disabled
>
Destructive
</MacButton>
</div>
</template>
API
Props
| Prop | Type | Default |
|---|
size | 'extra-large' | 'large' | 'regular' | 'small' | 'mini' | 'regular' |
variant | 'default' | 'prominent' | 'destructive' | 'default' |
disabled | boolean | false |
Slots
| Slot | Description |
|---|
default | Button label content. |
Exposed
| Name | Type | Description |
|---|
el | Ref<HTMLButtonElement | null> | The underlying button element. |
focus | () => void | Focuses the button. |
blur | () => void | Removes focus from the button. |