94 lines
2.5 KiB
Markdown
94 lines
2.5 KiB
Markdown
|
# Button
|
||
|
|
||
|
## Demos
|
||
|
|
||
|
### Stylistic variants
|
||
|
|
||
|
Available style variants for the `ui` prop: `primary`/`strong`/`translucent`/`text`/`icon`.
|
||
|
|
||
|
[[ demo src="/demo/button/style.vue" ]]
|
||
|
|
||
|
### Size variants
|
||
|
|
||
|
Available size variants for the `ui` prop: `xs`/`s`/`m`/`l`/`xl`.
|
||
|
|
||
|
[[ demo src="/demo/button/size.vue" ]]
|
||
|
|
||
|
### Disabled state
|
||
|
|
||
|
Use the `disabled` prop to set a button to disabled state.
|
||
|
|
||
|
[[ demo src="/demo/button/disabled.vue" ]]
|
||
|
|
||
|
### Loading state
|
||
|
|
||
|
Use the `loading` prop to set a button to loading state (which will not respond upon clicks).
|
||
|
|
||
|
[[ demo src="/demo/button/loading.vue" ]]
|
||
|
|
||
|
## API
|
||
|
|
||
|
### Props
|
||
|
|
||
|
| Name | Type | Default | Description |
|
||
|
| -- | -- | -- | -- |
|
||
|
| `ui` | `string=` | - | [^ui] |
|
||
|
| `disabled` | `boolean=` | `false` | Whether the button is disabled. |
|
||
|
| `type` | `string=` | `'button'` | [^type] |
|
||
|
| `loading` | `boolean=` | `false` | Whether the button is in loading state. Loading buttons won't respond to user interactions. |
|
||
|
|
||
|
^^^ui
|
||
|
Style variants. A space-separated list of enum values.
|
||
|
|
||
|
+++Enum values
|
||
|
| Value | Description |
|
||
|
| -- | -- |
|
||
|
| `normal` | Normal button. Default style. |
|
||
|
| `primary` | Primary button. |
|
||
|
| `basic` | Basic button. |
|
||
|
| `strong` | Strong button. Can be used alone or together with `text`/`icon`. |
|
||
|
| `translucent` | Translucent button, typically used on dark background. |
|
||
|
| `text` | Text button. |
|
||
|
| `icon` | Icon button. |
|
||
|
| `aux` | Auxilary button. Need to be used with `text`/`icon` styles. |
|
||
|
| `square` | Square button. Can be used with other styles. |
|
||
|
| `xs` | Extra small. |
|
||
|
| `s` | Small. |
|
||
|
| `m` | Medium. |
|
||
|
| `l` | Large. |
|
||
|
| `xl` | Extra large. |
|
||
|
+++
|
||
|
^^^
|
||
|
|
||
|
^^^type
|
||
|
The type of the button. See the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type) attribute of HTML's native `<button>` element.
|
||
|
|
||
|
+++Enum
|
||
|
| Value | Description |
|
||
|
| -- | -- |
|
||
|
| `button` | Normal button. |
|
||
|
| `submit` | Submit button. Will cause an ancestor form to be submitted upon clicks. |
|
||
|
| `reset` | Reset button. Will reset all fields to initial value upon clicks. |
|
||
|
+++
|
||
|
|
||
|
:::warning
|
||
|
Note that the default value is different from the native `<button>` element. You need to explicitly set `type` to `submit` if you want to trigger a form submit.
|
||
|
:::
|
||
|
^^^
|
||
|
|
||
|
### Slots
|
||
|
|
||
|
| Name | Description |
|
||
|
| -- | -- |
|
||
|
| `default` | Content of the button. |
|
||
|
|
||
|
### Events
|
||
|
|
||
|
Additionally, `Button` exposes all native events available for native `<button>` element. The callback parameter is the corresponding native event object for all events.
|
||
|
|
||
|
### Icons
|
||
|
|
||
|
| Name | Description |
|
||
|
| -- | -- |
|
||
|
| `loading` | The loading spinner. |
|