定制 mrshanebarron/progress 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mrshanebarron/progress

最新稳定版本:v1.0.4

Composer 安装命令:

composer require mrshanebarron/progress

包简介

Progress bar component for Laravel - supports Livewire and Vue

README 文档

README

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" attribute
  • aria-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

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: Vue

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-14

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固