Lynx

Progress Circle

작업이 진행 중임을 알리거나 작업 시간을 시각적으로 나타내는 데 사용됩니다.

Engine ≥ 3.6
사용 가능 버전@seed-design/lynx-react@0.1.0, @seed-design/lynx-css@0.1.0
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli add ui:progress-circle

Props

Prop

Type

minValue?number | undefined
maxValue?number | undefined
value?number | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

Examples

Neutral

Lynx 예제를 불러오는 중입니다.

Brand

Lynx 예제를 불러오는 중입니다.

Static White

staticWhite는 어두운 배경 위에서 사용합니다.

Lynx 예제를 불러오는 중입니다.

Size=40

Lynx 예제를 불러오는 중입니다.

Size=24

Lynx 예제를 불러오는 중입니다.

Determinate

minValue, maxValue, value를 모두 지정하면 정해진 진행률을 표시합니다.

Lynx 예제를 불러오는 중입니다.

Indeterminate

value를 생략하면 완료 시점을 알 수 없는 작업의 진행 상태를 표시합니다.

Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

Lynx 버전은 플랫폼 제약으로 인해 웹(@seed-design/react) 버전과 내부 구현이 다릅니다. 공개 variant와 진행률 API는 같지만 조합 방식과 렌더링 방식에 차이가 있습니다.

웹 (React)Lynx
조합 방식단일 ProgressCircle 컴포넌트ProgressCircle.RootProgressCircle.Range 조합
렌더링SVG <circle>stroke-dasharrayCSS clip-path 기반 pie sector
애니메이션CSS @keyframesanimationMain thread requestAnimationFramesetStyleProperty
Determinate 전환CSS transitionMain thread requestAnimationFrame 기반 easing 애니메이션
Track<ProgressCircle.Track /> SVG circleRoot의 CSS backgroundclip-path로 렌더링하며 별도 Track 컴포넌트 없음

Lynx에서는 clip-path가 애니메이션 속성이 아니어서 매 프레임 path 문자열을 만듭니다. Indeterminate 인스턴스를 한 화면에 많이 렌더링하면 성능이 저하될 수 있습니다.

Last updated on

목차