SemiCircleProgress
SemiCircleProgress
반원 다이어그램으로 진행률을 표현하는 컴포넌트예요. 반원 형태의 진행률 표시줄을 만들어요.
출처: 문서
본문
사용법 (Usage)
SemiCircleProgress로 반원 진행률을 표시해요. value prop으로 값을 설정하고, label, fillDirection, orientation, size, thickness 등으로 모양을 제어할 수 있어요.
import { SemiCircleProgress } from '@mantine/core';
function Demo() {
return <SemiCircleProgress value={60} label="60%" />;
}
빈 세그먼트 색상 변경 (Change empty segment color)
emptySegmentColor prop으로 빈 세그먼트의 색상을 변경할 수 있어요. theme.colors의 키 또는 유효한 CSS 색상 값을 받아요.
import { SemiCircleProgress } from '@mantine/core';
function Demo() {
return <SemiCircleProgress value={60} emptySegmentColor="var(--mantine-color-gray-4)" />;
}
라벨 위치 변경 (Change label position)
기본적으로 라벨은 컴포넌트 하단에 표시돼요. labelPosition prop을 사용하면 위치를 center로 변경할 수 있어요.
import { SemiCircleProgress } from '@mantine/core';
function Demo() {
return (
<>
<SemiCircleProgress value={60} label="Bottom" />
<SemiCircleProgress value={60} label="Center" labelPosition="center" />
</>
);
}
채워진 세그먼트 전환 (Filled segment transition)
기본적으로 전환(transition)은 비활성화돼 있어요. 활성화하려면 transitionDuration prop에 밀리초 단위 숫자를 설정해요.
import { useState } from 'react';
import { Button, SemiCircleProgress } from '@mantine/core';
function Demo() {
const [value, setValue] = useState(30);
return (
<>
<SemiCircleProgress value={value} transitionDuration={300} label={`${value}%`} />
<Button onClick={() => setValue(Math.floor(Math.random() * 100))} mt="xl" fullWidth>
Set random value
</Button>
</>
);
}