# Circle
### Install
```js
import Vue from 'vue';
import { Circle } from 'vant';
Vue.use(Circle);
```
## Usage
### Basic Usage
```html
```
```js
export default {
data() {
return {
currentRate: 0,
};
},
computed: {
text() {
return this.currentRate.toFixed(0) + '%';
},
},
};
```
### Custom Width
```html
```
### Custom Color
```html
```
### Gradient
```html
```
```js
export default {
data() {
return {
currentRate: 0,
gradientColor: {
'0%': '#3fecff',
'100%': '#6149f6',
},
};
},
};
```
### Counter Clockwise
```html
```
### Custom Size
```html
```
## API
### Props
| Attribute | Description | Type | Default |
| --- | --- | --- | --- |
| v-model | Current rate | _number_ | - |
| rate | Target rate | _number \| string_ | `100` |
| size | Circle size | _number \| string_ | `100px` |
| color | Progress color, passing object to render gradient | _string \| object_ | `#1989fa` |
| layer-color | Layer color | _string_ | `white` |
| fill | Fill color | _string_ | `none` |
| speed | Animate speed(rate/s) | _number \| string_ | `0` |
| text | Text | _string_ | - |
| stroke-width | Stroke width | _number \| string_ | `40` |
| stroke-linecap | Stroke linecap,can be set to `sqaure` `butt` | _string_ | `round` |
| clockwise | Whether to be clockwise | _boolean_ | `true` |
### Slots
| Name | Description |
| ------- | ------------------- |
| default | custom text content |
### Less Variables
How to use: [Custom Theme](#/en-US/theme).
| Name | Default Value | Description |
| ------------------------ | ------------------- | ----------- |
| @circle-size | `100px` | - |
| @circle-color | `@blue` | - |
| @circle-layer-color | `@white` | - |
| @circle-text-color | `@text-color` | - |
| @circle-text-font-weight | `@font-weight-bold` | - |
| @circle-text-font-size | `@font-size-md` | - |
| @circle-text-line-height | `@line-height-md` | - |