mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 12:14:41 +01:00
Co-authored-by: Daniel Roe <daniel@roe.dev> Co-authored-by: Sébastien Chopin <seb@nuxt.com>
281 lines
3.7 KiB
Markdown
281 lines
3.7 KiB
Markdown
---
|
|
github: true
|
|
---
|
|
|
|
## Usage
|
|
|
|
Use the default slot to set the text of the Button.
|
|
|
|
::component-card
|
|
---
|
|
code: Button
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
You can also use the `label` prop.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
label: Button
|
|
---
|
|
::
|
|
|
|
### Style
|
|
|
|
Use the `color` and `variant` props to change the visual style of the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
color: 'primary'
|
|
variant: 'solid'
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
Besides all the colors from the `ui.colors` object, you can also use the `white` and `gray` and `black` colors with their pre-defined variants.
|
|
|
|
#### White
|
|
|
|
::component-card
|
|
---
|
|
backgroundClass: 'bg-gray-50 dark:bg-gray-800'
|
|
props:
|
|
color: 'white'
|
|
variant: 'solid'
|
|
ui:
|
|
variant:
|
|
solid: 1
|
|
ghost: 1
|
|
excludedProps:
|
|
- color
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
#### Gray
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
color: 'gray'
|
|
variant: 'solid'
|
|
ui:
|
|
variant:
|
|
solid: 1
|
|
ghost: 1
|
|
link: 1
|
|
excludedProps:
|
|
- color
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
#### Black
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
color: 'black'
|
|
variant: 'solid'
|
|
ui:
|
|
variant:
|
|
solid: 1
|
|
link: 1
|
|
excludedProps:
|
|
- color
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Size
|
|
|
|
Use the `size` prop to change the size of the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
size: 'sm'
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Icon
|
|
|
|
Use any icon from [Iconify](https://icones.js.org) 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 `leadingIcon` and `trailingIcon` props to set a different icon for each position.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
icon: 'i-heroicons-pencil-square'
|
|
size: 'sm'
|
|
color: 'primary'
|
|
variant: 'solid'
|
|
label: Button
|
|
trailing: false
|
|
excludedProps:
|
|
- icon
|
|
---
|
|
::
|
|
|
|
The `label` as prop or slot is optional so you can use the Button as an icon-only button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
icon: 'i-heroicons-pencil-square'
|
|
size: 'sm'
|
|
color: 'primary'
|
|
square: true
|
|
variant: 'solid'
|
|
excludedProps:
|
|
- icon
|
|
- square
|
|
---
|
|
::
|
|
|
|
### Disabled
|
|
|
|
Use the `disabled` prop to disable the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
disabled: true
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Loading
|
|
|
|
Use the `loading` prop to show a loading icon and disable the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
loading: true
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Block
|
|
|
|
Use the `block` prop to make the Button fill the width of its container.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
block: true
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Link
|
|
|
|
Use the `to` prop to make the Button a link.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
to: 'https://volta.net'
|
|
target: '_blank'
|
|
---
|
|
|
|
Button
|
|
::
|
|
|
|
### Padded
|
|
|
|
Use the `padded` prop to remove the padding of the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
padded: false
|
|
baseProps:
|
|
color: 'gray'
|
|
variant: 'link'
|
|
icon: 'i-heroicons-x-mark-20-solid'
|
|
---
|
|
::
|
|
|
|
### Square
|
|
|
|
Use the `square` prop to force the Button to have the same padding horizontally and vertically.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
square: true
|
|
baseProps:
|
|
label: 'Button'
|
|
color: 'gray'
|
|
variant: 'solid'
|
|
---
|
|
::
|
|
|
|
### Truncate
|
|
|
|
Use the `truncate` prop to truncate the label of the Button.
|
|
|
|
::component-card
|
|
---
|
|
props:
|
|
truncate: true
|
|
class: 'w-20'
|
|
label: 'Button with a long text'
|
|
excludedProps:
|
|
- class
|
|
---
|
|
::
|
|
|
|
### Group
|
|
|
|
To stack buttons as a group, use the `ButtonGroup` component.
|
|
|
|
- To size all the buttons equally, pass the `size` prop
|
|
- To adjust the rounded or the shadow around buttons, customize with `ui.buttonGroup.rounded` or `ui.buttonGroup.shadow`
|
|
|
|
::component-card{slug="ButtonGroup"}
|
|
---
|
|
props:
|
|
size: 'sm'
|
|
ui:
|
|
size:
|
|
xxs: ''
|
|
xs: ''
|
|
sm: ''
|
|
md: ''
|
|
lg: ''
|
|
xl: ''
|
|
code: |
|
|
<UButton label="Action" color="white" />
|
|
<UButton icon="i-heroicons-chevron-down-20-solid" color="gray" />
|
|
---
|
|
|
|
#default
|
|
:u-button{label="Action" color="white"}
|
|
:u-button{icon="i-heroicons-chevron-down-20-solid" color="gray"}
|
|
::
|
|
|
|
## Props
|
|
|
|
:component-props
|
|
|
|
## Preset
|
|
|
|
:component-preset
|