1 звезда на GitHub = 1 новый компонент.

Поставить звезду
Уведомленияprogressbar

Glass Progress

Линейная полоса прогресса с эффектом матового стекла и процентами.

Живое превью

Uploading files...75%
Storage used45%

Использование

Скопируйте и вставьте этот код в ваш React-компонент:

tsx
import { GlassProgress } from 'react-component-kit-ui/feedback';

<GlassProgress value={64} label="Upload progress" />

Ручная установка

Если вы не используете пакет npm, создайте файл и вставьте следующий код: src/components/GlassProgress.tsx + GlassProgress.css:

GlassProgress.tsx
'use client';

import type { HTMLAttributes } from 'react';
import './GlassProgress.css';

/**
 * GlassProgress — A horizontal linear progress bar with glassmorphism and gradient fill.
 *
 * @param value - Required. 0–100.
 * @param label - Optional. Accessible label. Default 'Progress bar'.
 */
export interface GlassProgressProps extends HTMLAttributes<HTMLDivElement> {
  value: number;
  label?: string;
}

export function GlassProgress({ value, label = 'Progress bar', className, ...rest }: GlassProgressProps) {
  const clamped = Math.min(100, Math.max(0, value));
  return (
    <div
      {...rest}
      className={['progress-container', className].filter(Boolean).join(' ')}
      role="progressbar"
      aria-valuenow={clamped}
      aria-valuemin={0}
      aria-valuemax={100}
      aria-label={label}
    >
      <div className="progress-fill" style={{ width: `${clamped}%` }} />
    </div>
  );
}

export default GlassProgress;
GlassProgress.css
/* GlassProgress — ported from astro-component-kit (feedback/GlassProgress.astro) */

.progress-container { 
  height: 10px; 
  background: var(--c-bg-elev, rgba(255,255,255,0.05)); 
  border-radius: var(--r-full, 10px); 
  overflow: hidden; 
  border: 1px solid var(--c-border, rgba(255,255,255,0.1)); 
  width: 100%;
}

.progress-fill { 
  height: 100%; 
  background: linear-gradient(90deg, var(--c-primary, #6366f1), var(--c-primary-light, #c084fc)); 
  border-radius: inherit; 
  transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1); 
  box-shadow: 0 0 10px rgba(99,102,241,0.3); 
}

Краткая информация

Категория
Уведомления
Имя файла
GlassProgress.tsx
Зависимости
Нет — чистый React + CSS
Теги
progressbar