elements
Button
Create a button with icon or link capabilities.
Usage
Use the default slot to set the text of the Button.
<UButton>Button</UButton>You can also use the label prop.
<UButton label="Button" />Style
Use the color and variant props to change the visual style of the Button.
<UButton color="primary" variant="solid" />Besides all the colors from the ui.colors object, you can also use the white, gray and black colors with their pre-defined variants.
White
<UButton color="white" variant="solid" />Gray
<UButton color="gray" variant="solid" />Black
<UButton color="black" variant="solid" />Size
Use the size prop to change the size of the Button.
<UButton size="sm" />Rounded
To customize the border radius of the Button, you can use the ui prop.
<UButton :ui="{ rounded: 'rounded-full' }" />ui prop.Icon
Use any icon from Iconify by setting the icon prop by using this pattern: i-{collection_name}-{icon_name}.
Use the leading and trailing props to set the icon position or the leading-icon and trailing-icon props to set a different icon for each position.
<UButton icon="i-heroicons-pencil-square" size="sm" color="primary" variant="solid" label="Button" :trailing="false" />The label as prop or slot is optional so you can use the Button as an icon-only button.
<UButton icon="i-heroicons-pencil-square" size="sm" color="primary" square variant="solid" />Disabled
Use the disabled prop to disable the Button.
<UButton disabled />Loading
Use the loading prop to show a loading icon and disable the Button.
Use the loading-icon prop to set a different icon or change it globally in ui.button.default.loadingIcon. Defaults to i-heroicons-arrow-path-20-solid.
<UButton loading />Block
Use the block prop to make the Button fill the width of its container.
<UButton block />Link
Use the to prop to make the Button a link.
You can also pass any property from the NuxtLink component such as target, exact, etc.
Padded
Use the padded prop to remove the padding of the Button.
<UButton :padded="false" />Square
Use the square prop to force the Button to have the same padding horizontally and vertically.
<UButton square />Truncate
Use the truncate prop to truncate the label of the Button.
<UButton truncate class="w-20" label="Button with a long text" />Group
To stack buttons as a group, use the ButtonGroup component.
- To size all the buttons equally, pass the
sizeprop - To change the orientation of the buttons, set the
orientationprop tovertical - To adjust the rounded or the shadow around buttons, customize with
ui.buttonGroup.roundedorui.buttonGroup.shadow
<UButtonGroup size="sm" orientation="horizontal">
<UButton label="Action" color="white" />
<UButton icon="i-heroicons-chevron-down-20-solid" color="gray" />
</UButtonGroup>Slots
leading
Use the #leading slot to set the content of the leading icon.
<UButton label="Button" color="gray">
<template #leading>
<UAvatar src="https://avatars.githubusercontent.com/u/739984?v=4" size="3xs" />
</template>
</UButton>trailing
Use the #trailing slot to set the content of the trailing icon.
<UButton label="Button" color="gray">
<template #trailing>
<UIcon name="i-heroicons-arrow-right-20-solid" />
</template>
</UButton>Props
config.default.size
undefined
"button"
config.default.color
config.default.variant
"link""solid""outline""soft""ghost"null
null
config.default.loadingIcon
null
null
false
false
false
false
true
false
false
false
Preset
undefined