Toggle Sidebar B
AppearanceLight & dark mode D

Aurora Button

Layered gradient button with a luminous rim, a directional shadow and a blended hover bloom. Vue port of MicroKit UI's Aurora Download Button.

Default

Hover it for the bloom and a small lift, press it and it sinks. The icon and label go in the default slot.

Dark previewReplay preview

Colors

Twenty presets through colorVariant. Deep hues carry white text, orange through sky carry their own 950 shade, and muted follows the theme. Every one keeps the label at 4.5:1 or better against the lightest point under it, sheen included. blue starts from the MicroKit pair, deepened just enough to pass.

Dark previewReplay preview
red
orange
amber
yellow
lime
green
emerald
teal
cyan
sky
blue
indigo
violet
purple
fuchsia
pink
rose
slate
zinc
muted

Secondary

muted is the quiet partner for a second action. It is built from the theme's muted, background and foreground tokens, so it follows light and dark: a pale pill with dark text on light pages, a grey one with light text on dark pages, each with a hairline ring and a softer shadow and sheen than the colored presets. Flip the preview theme to compare.

Dark previewReplay preview

Custom colors

Pass color for the deep end of the gradient and highlight for the top left. Leave highlight out and it is mixed from color. Text stays white unless you pass foreground, which a light color needs.

Dark previewReplay preview

Sizes

sm, default and lg. An icon without a size class follows the button.

Dark previewReplay preview

Download buttons

One button per platform, each on its own palette.

Dark previewReplay preview

Playground

Pick a preset or mix your own. The snippet lists only what differs from the defaults.

Dark previewReplay preview
Color
Size
<AuroraButton>Get for Mac</AuroraButton>

API Reference

AuroraButton

PropTypeDefaultDescription
size"sm" | "default" | "lg""default"Height 32, 40 or 48px, with padding, radius and icon size to match.
colorVariant"red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "zinc" | "muted""blue"Hand-tuned palette. Deep hues carry white text, orange through sky their own 950 shade, muted follows the theme tokens. color and highlight override it.
colorstringDeep end of the gradient, any CSS color. Overrides colorVariant.
highlightstringTop-left end of the gradient. Mixed from color when unset.
foregroundstringText and icon color. Custom colors default to white; a light color needs a dark one.
tostringRenders a NuxtLink. External URLs get target _blank and rel noopener.
targetstringLink target. Overrides the external default.
asstring"button"Element to render when to is empty.
disabledbooleanfalseDisables the button, or marks the link aria-disabled.
SlotDescription
defaultIcon and label. An svg without a size class gets 16 or 20px from size.

Accessibility

Keyboard shortcuts and ARIA behavior.

  • Renders a native button, or a link when to is set, so Enter and Space behave as usual.
  • Every preset keeps its label at 4.5:1 or better at rest and 4:1 or better under the hover bloom, measured at the lightest point behind the text.
  • The rim and the bloom are aria-hidden with pointer-events none. Only the content is read and clicked.
  • Keyboard focus draws the ring outline 4px out and gives the same lift and bloom as hover.
  • With prefers-reduced-motion: reduce the lift and the bloom switch instantly instead of easing.