mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
Circle
Intro
Circular progress bar component, and supports gradient color animation.
Install
Register component globally via app.use
, refer to Component Registration for more registration ways.
import { createApp } from 'vue';
import { Circle } from 'vant';
const app = createApp();
app.use(Circle);
Usage
Basic Usage
<van-circle
v-model:current-rate="currentRate"
:rate="30"
:speed="100"
:text="text"
/>
import { ref, computed } from 'vue';
export default {
setup() {
const currentRate = ref(0);
const text = computed(() => currentRate.value.toFixed(0) + '%');
return {
text,
currentRate,
};
},
};
Custom Width
<van-circle
v-model:current-rate="currentRate"
:rate="rate"
:stroke-width="60"
text="Custom Width"
/>
Custom Color
<van-circle
v-model:current-rate="currentRate"
:rate="rate"
layer-color="#ebedf0"
text="Custom Color"
/>
Gradient
<van-circle
v-model:current-rate="currentRate"
:rate="rate"
:color="gradientColor"
text="Gradient"
/>
import { ref } from 'vue';
export default {
setup() {
const currentRate = ref(0);
const gradientColor = {
'0%': '#3fecff',
'100%': '#6149f6',
};
return {
currentRate,
gradientColor,
};
},
};
Counter Clockwise
<van-circle
v-model:current-rate="currentRate"
:rate="rate"
:clockwise="false"
text="Counter Clockwise"
/>
Custom Size
<van-circle
v-model:current-rate="currentRate"
:rate="rate"
size="120px"
text="Custom Size"
/>
API
Props
Attribute | Description | Type | Default |
---|---|---|---|
v-model:current-rate | 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.
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 |
- |