mrshanebarron/progress
Progress bar component for Laravel - supports Livewire and Vue
14
| Install | |
|---|---|
composer require mrshanebarron/progress |
|
| Latest Version: | v1.0.4 |
| PHP: | ^8.1 |
| License: | MIT |
| Last Updated: | Dec 21, 2025 |
| Links: | GitHub · Packagist |
Maintainer: mrshanebarron
Progress
A progress bar component for Laravel applications. Supports multiple colors, sizes, labels, and animated stripes. Works with Livewire and Vue 3.
Installation
composer require mrshanebarron/progress
Livewire Usage
Basic Usage
<livewire:sb-progress :value="75" />
With Label
<livewire:sb-progress :value="65" :show-label="true">
Upload Progress
</livewire:sb-progress>
Different Colors
<livewire:sb-progress :value="80" color="blue" />
<livewire:sb-progress :value="60" color="green" />
<livewire:sb-progress :value="40" color="red" />
<livewire:sb-progress :value="50" color="yellow" />
<livewire:sb-progress :value="70" color="purple" />
Different Sizes
<livewire:sb-progress :value="75" size="sm" />
<livewire:sb-progress :value="75" size="md" />
<livewire:sb-progress :value="75" size="lg" />
<livewire:sb-progress :value="75" size="xl" />
Striped & Animated
<livewire:sb-progress :value="50" :striped="true" />
<livewire:sb-progress :value="50" :striped="true" :animated="true" />
Custom Max Value
<livewire:sb-progress :value="30" :max="50" :show-label="true">
30 of 50 items
</livewire:sb-progress>
Livewire Props
| Prop | Type | Default | Description |
|---|---|---|---|
value |
number | 0 |
Current progress value |
max |
number | 100 |
Maximum value |
size |
string | 'md' |
Size: sm, md, lg, xl |
color |
string | 'blue' |
Color theme |
show-label |
boolean | false |
Show percentage label |
striped |
boolean | false |
Add stripe pattern |
animated |
boolean | false |
Animate stripes |
Vue 3 Usage
Setup
import { SbProgress } from './vendor/sb-progress';
app.component('SbProgress', SbProgress);
Basic Usage
<template>
<SbProgress :value="75" />
</template>
With Label
<template>
<SbProgress :value="progress" :show-label="true">
Upload Progress
</SbProgress>
</template>
<script setup>
import { ref } from 'vue';
const progress = ref(45);
</script>
Colors
<template>
<SbProgress :value="80" color="blue" />
<SbProgress :value="60" color="green" />
<SbProgress :value="40" color="red" />
<SbProgress :value="50" color="yellow" />
<SbProgress :value="70" color="purple" />
<SbProgress :value="30" color="gray" />
</template>
Sizes
<template>
<SbProgress :value="75" size="sm" /> <!-- 4px height -->
<SbProgress :value="75" size="md" /> <!-- 8px height -->
<SbProgress :value="75" size="lg" /> <!-- 16px height -->
<SbProgress :value="75" size="xl" /> <!-- 24px height -->
</template>
Striped Progress
<template>
<!-- Static stripes -->
<SbProgress :value="50" striped />
<!-- Animated stripes -->
<SbProgress :value="50" striped animated />
</template>
File Upload Example
<template>
<div class="space-y-2">
<div class="flex justify-between text-sm">
<span>{{ file.name }}</span>
<span>{{ formatBytes(file.size) }}</span>
</div>
<SbProgress
:value="uploadProgress"
:color="uploadProgress === 100 ? 'green' : 'blue'"
striped
:animated="uploadProgress < 100"
/>
</div>
</template>
Multi-Step Progress
<template>
<SbProgress
:value="currentStep"
:max="totalSteps"
:show-label="true"
color="purple"
size="lg"
>
Step {{ currentStep }} of {{ totalSteps }}
</SbProgress>
</template>
<script setup>
const currentStep = ref(2);
const totalSteps = 5;
</script>
Vue Props
| Prop | Type | Default | Description |
|---|---|---|---|
value |
Number | 0 |
Current value |
max |
Number | 100 |
Maximum value |
size |
String | 'md' |
Height: sm, md, lg, xl |
color |
String | 'blue' |
Color: blue, green, red, yellow, purple, gray |
showLabel |
Boolean | false |
Display percentage |
striped |
Boolean | false |
Stripe pattern overlay |
animated |
Boolean | false |
Animate stripe movement |
Slots
| Slot | Description |
|---|---|
| default | Label text (left side) |
Size Reference
| Size | Height |
|---|---|
sm |
4px |
md |
8px |
lg |
16px |
xl |
24px |
Color Options
| Color | Class |
|---|---|
blue |
bg-blue-600 |
green |
bg-green-600 |
red |
bg-red-600 |
yellow |
bg-yellow-500 |
purple |
bg-purple-600 |
gray |
bg-gray-600 |
Accessibility
role="progressbar"attributearia-valuenow,aria-valuemin,aria-valuemax- Percentage label for screen readers
Requirements
- PHP 8.1+
- Laravel 10, 11, or 12
- Tailwind CSS 3.x
License
MIT License
Related Packages
mrshanebarron/skeleton
Skeleton loading placeholder component for Laravel - supports Livewire and Vue
13
0
lacodix/laravel-metric-cards
Get insights in your laravel applications key business values with metrics visua...
1,303
1
sazzadbinashique/laravel-excel-importer
A Laravel package for importing Excel files with preview, validation, progress t...
5
4
rahasistiyak/laravel-super-artisan
A powerful Laravel scaffolding package — generate Models, Controllers, Repositor...
9
5
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.0.4 | ^8.1 | ^10.0| | MIT | |
| v1.0.3 | ^8.1 | ^10.0| | MIT | |
| v1.0.2 | ^8.1 | ^10.0| | MIT | |
| v1.0.1 | ^8.1 | ^10.0| | MIT | |
| v1.0.0 | ^8.1 | ^10.0| | MIT |