Files
vant/src/circle/README.md
T
neverlandandGitHub f2eb7550a5 docs: improve typing (#9362)
* docs: improve typing

* docs: upd
2021-09-01 10:42:11 +08:00

4.0 KiB
Raw Blame History

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"
/>

Start Position

<van-circle
  v-model:current-rate="currentRate"
  :rate="rate"
  :text="Left"
  start-position="left"
/>
<van-circle
  v-model:current-rate="currentRate"
  :rate="rate"
  text="Right"
  start-position="right"
/>
<van-circle
  v-model:current-rate="currentRate"
  :rate="rate"
  text="Bottom"
  start-position="bottom"
/>

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 speedrate/s number | string 0
text Text string -
stroke-width Stroke width number | string 40
stroke-linecap Stroke linecapcan be set to square butt string round
clockwise Whether to be clockwise boolean true
start-position v3.2.1 Progress start positioncan be set to leftrightbottom CircleStartPosition top

Slots

Name Description
default custom text content

Types

The component exports the following type definitions:

import type { CircleStartPosition } from 'vant';

Theming

CSS Variables

The component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.

Name Default Value Description
--van-circle-size 100px -
--van-circle-color var(--van-primary-color) -
--van-circle-layer-color var(--van-white) -
--van-circle-text-color var(--van-text-color) -
--van-circle-text-font-weight var(--van-font-weight-bold) -
--van-circle-text-font-size var(--van-font-size-md) -
--van-circle-text-line-height var(--van-line-height-md) -