# Icon

:::tip
VEUI's `Icon` component is compatible with [Vue-Awesome](https://github.com/Justineo/vue-awesome), including icon registration and specifying icon with a string-typed [`name`](#props-name) prop. The [`name`](#props-name) prop also accept a component definition directly.
:::

## Demos

[[ demo src="/demo/icon/default.vue"]]

## API

### Props

| Name | Type | Default | Description |
| -- | -- | -- | -- |
| ``name`` | `string | Object` | - | The name of the icon or its component definition. |
| ``label`` | `string` | - | The descriptive label for the icon, which is accessible to assistive devices. The icon is hidden for assistive devices if `label` doesn't exist. |
| ``scale`` | `number` | - | The size scale of the icon. Doesn't scale by default. |
| ``spin`` | `boolean` | `false` | Whether the icon should be spinning. |
| ``pulse`` | `boolean` | `false` | Whether the icon should be pulsing. |
| ``inverse`` | `boolean` | `false` | Whether to inverse the color. (Having a white foreground to be used against dark backgrounds.) |
| ``flip`` | `string` | - | How to flip an icon. Can be either `'horizontal'` or `'vertical'`. |

:::warning
When specifying a component definition for the [`name`](#props-name) prop, only [`spin`](#props-spin) prop is supported.
:::

### Slots

| Name | Description |
| -- | -- |
| ``default`` | Can be used to implement a stacked icon. The embedded `Icon` components will be stacked together, being centered. The wrapper `Icon` doesn't require the [`name`](#props-name) prop. |
