Skip to content

Spinner

  • 데이터 로딩, 작업 진행 중 등의 대기 상태를 사용자에게 시각적으로 표시하는 컴포넌트
  • 원형으로 회전하는 애니메이션을 통해 진행 중인 상태를 나타냄

Props

PropTypeDefaultDescription
typestring'default'스피너 타입 ('default', 'progress')
colorstringvar(--overlay-primary-900)스피너의 색상
circleColorstringvar(--overlay-primary-100)progress 타입에서 배경 원의 색상
durationnumber1000애니메이션 완료 시간 (밀리초)
sizestring'medium'스피너 크기 ('small', 'medium', 'large')

Basic

vue
<script setup lang="ts">
import { Spinner } from '@jennifersoft/vue-components-v2';
</script>
<template>
    <Spinner />
</template>

Sizes

  • Spinner는 small, medium, large 세 가지 크기로 제공됩니다
vue
<template>
    <div class="flex items-center space-x-4">
        <Spinner size="small" />
        <Spinner size="medium" />
        <Spinner size="large" />
    </div>
</template>

Custom Color

  • Spinner의 색상을 변경할 수 있습니다
vue
<template>
    <div class="flex items-center space-x-4">
        <Spinner color="var(--primary-700)" />
        <Spinner color="var(--red-700)" />
        <Spinner color="var(--green-700)" />
    </div>
</template>

Custom Animation Duration

  • Spinner의 애니메이션 속도를 조절할 수 있습니다 (기본값: 1000ms)
vue
<script setup lang="ts">
import { ref } from 'vue';
import { Spinner } from '@jennifersoft/vue-components-v2';

const customDuration = ref(2000); // 2 seconds
</script>
<template>
    <div class="flex items-center space-x-4">
        <div class="flex flex-col items-center">
            <span>Fast (500ms)</span>
            <Spinner :duration="500" />
        </div>
        <div class="flex flex-col items-center">
            <span>Default (1000ms)</span>
            <Spinner :duration="1000" />
        </div>
        <div class="flex flex-col items-center">
            <span>Slow (2000ms)</span>
            <Spinner :duration="customDuration" />
        </div>
    </div>
</template>
Fast (500ms)
Default (1000ms)
Slow (2000ms)

Progress Type

  • Progress 타입의 스피너는 배경 원이 표시되어 진행 상태를 시각적으로 더 명확하게 보여줍니다
vue
<template>
    <div class="flex items-center space-x-4">
        <Spinner type="progress" size="small" />
        <Spinner type="progress" size="medium" />
        <Spinner type="progress" size="large" />
    </div>
</template>

Progress with Custom Colors

  • Progress 타입에서는 배경 원의 색상을 circleColor prop으로 설정할 수 있습니다
vue
<template>
    <div class="flex items-center space-x-4">
        <Spinner
            type="progress"
            color="var(--overlay-purple-900)"
            circleColor="var(--overlay-purple-100)"
        />
        <Spinner
            type="progress"
            color="var(--overlay-red-900)"
            circleColor="var(--overlay-red-100)"
        />
        <Spinner
            type="progress"
            color="var(--overlay-blue-900)"
            circleColor="var(--overlay-blue-100)"
        />
    </div>
</template>