feat: rewrite to use app config and rework docs (#143)

Co-authored-by: Daniel Roe <daniel@roe.dev>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
This commit is contained in:
Benjamin Canac
2023-05-04 14:49:19 +02:00
committed by GitHub
parent 56230ea915
commit 6da0db0113
144 changed files with 10470 additions and 8109 deletions

View File

@@ -0,0 +1,100 @@
---
github: true
---
## Usage
::component-card
---
props:
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
alt: 'Avatar'
---
::
### Size
Use the `size` prop to change the size of the Avatar.
::component-card
---
props:
size: 'md'
baseProps:
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
alt: 'Avatar'
---
::
### Chip
Use the `chipColor`, `chipVariant` and `chipPosition` props to display a chip on the Avatar.
::component-card
---
props:
chipColor: 'primary'
chipVariant: 'solid'
chipPosition: 'top-right'
baseProps:
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
alt: 'Avatar'
---
::
### Placeholder
If there is an error loading the `src` of the avatar or `src` is null a background placeholder will be displayed, customizable in `ui.avatar.background`.
If there's an `alt` prop initials will be displayed on top of the background, customizable in `ui.avatar.placeholder`.
::component-card
---
props:
alt: 'Benjamin Canac'
---
::
### Group
To stack avatars as a group, use the `AvatarGroup` component.
- To limit the amount of avatars to show, use the `max` prop. It'll truncate the avatars and show a "+X" label (where X is the remaining avatars)
- To size all the avatars equally, pass the `size` prop
- To adjust the spacing or the ring between avatars, customize with `ui.avatarGroup.margin` or `ui.avatarGroup.ring`
::component-card{slug="AvatarGroup"}
---
props:
size: 'md'
max: 2
ui:
size:
'3xs': ''
'2xs': ''
xs: ''
sm: ''
md: ''
lg: ''
xl: ''
'2xl': ''
'3xl': ''
code: |
<UAvatar src="https://avatars.githubusercontent.com/u/739984?v=4" alt="benjamincanac" />
<UAvatar src="https://avatars.githubusercontent.com/u/904724?v=4" alt="Atinux" />
<UAvatar src="https://avatars.githubusercontent.com/u/7547335?v=4" alt="smarroufin" />
---
#default
:u-avatar{src="https://avatars.githubusercontent.com/u/739984?v=4" alt="Avatar"}
:u-avatar{src="https://avatars.githubusercontent.com/u/904724?v=4" alt="Avatar"}
:u-avatar{src="https://avatars.githubusercontent.com/u/7547335?v=4" alt="Avatar"}
::
## Props
:component-props
## Preset
:component-preset

View File

@@ -0,0 +1,59 @@
---
github: true
---
## Usage
Use the default slot to set the text of the Badge.
::component-card
---
code: Badge
---
Badge
::
You can also use the `label` prop:
::component-card
---
props:
label: Badge
---
::
### Style
Use the `color` and `variant` props to change the visual style of the Badge.
::component-card
---
props:
color: 'primary'
variant: 'solid'
---
Badge
::
### Size
Use the `size` prop to change the size of the Badge.
::component-card
---
props:
size: 'md'
---
Badge
::
## Props
:component-props
## Preset
:component-preset

View File

@@ -0,0 +1,280 @@
---
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

View File

@@ -0,0 +1,56 @@
---
github: true
headlessui:
label: 'Menu'
to: 'https://headlessui.com/vue/menu'
---
## Usage
::component-example
#default
:dropdown-example
#code
```vue
<script setup>
const items = [
[{
label: 'Profile',
avatar: {
src: 'https://avatars.githubusercontent.com/u/739984?v=4'
}
}], [{
label: 'Edit',
icon: 'i-heroicons-pencil-square-20-solid'
}, {
label: 'Duplicate',
icon: 'i-heroicons-document-duplicate-20-solid'
}], [{
label: 'Archive',
icon: 'i-heroicons-archive-box-20-solid'
}, {
label: 'Move',
icon: 'i-heroicons-arrow-right-circle-20-solid'
}], [{
label: 'Delete',
icon: 'i-heroicons-trash-20-solid'
}]
]
</script>
<template>
<UDropdown :items="items" :popper="{ placement: 'bottom-start' }">
<UButton color="white" label="Options" trailing-icon="i-heroicons-chevron-down-20-solid" />
</UDropdown>
</template>
```
::
## Props
:component-props
## Preset
:component-preset