Skip to content

Vue Spinner - Flowbite

Use the spinner component as a loader indicator in your projects when fetching data based on an animated SVG using the utility classes from Tailwind CSS


The spinner component can be used as a loading indicator which comes in multiple colors, sizes, and styles separately or inside elements such as buttons to improve the user experience whenever data is being fetched from your server.

Basic example

vue
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner />
</template>
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner />
</template>

Prop - size

typescript
type SpinnerSize = '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12'

defineProps({
    size: {
        type: String as PropType<SpinnerSize>, // any string for w-${size} and h-${size} tailwind classes
        default: '4',
    },
})
type SpinnerSize = '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12'

defineProps({
    size: {
        type: String as PropType<SpinnerSize>, // any string for w-${size} and h-${size} tailwind classes
        default: '4',
    },
})
vue
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner />
  <spinner size="6" />
  <spinner size="8" />
  <spinner size="10" />
  <spinner size="12" />
</template>
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner />
  <spinner size="6" />
  <spinner size="8" />
  <spinner size="10" />
  <spinner size="12" />
</template>

Prop - color

typescript
type SpinnerColor = 'blue' | 'gray' | 'green' | 'red' | 'yellow' | 'pink' | 'purple' | 'white'

defineProps({
    color: {
        type: String as PropType<SpinnerColor>,
        default: 'blue',
    },
})
type SpinnerColor = 'blue' | 'gray' | 'green' | 'red' | 'yellow' | 'pink' | 'purple' | 'white'

defineProps({
    color: {
        type: String as PropType<SpinnerColor>,
        default: 'blue',
    },
})
vue
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner color="blue" size="6" />
  <spinner color="pink" size="8" />
  <spinner color="gray" size="10" />
  <spinner color="green" size="12" />
  <spinner color="purple" size="10" />
  <spinner color="white" size="8" />
  <spinner color="yellow" size="6" />
  <spinner color="red" size="4" />
</template>
<script setup>
import { Spinner } from 'flowbite-vue'
</script>
<template>
  <spinner color="blue" size="6" />
  <spinner color="pink" size="8" />
  <spinner color="gray" size="10" />
  <spinner color="green" size="12" />
  <spinner color="purple" size="10" />
  <spinner color="white" size="8" />
  <spinner color="yellow" size="6" />
  <spinner color="red" size="4" />
</template>

Released under the MIT License.