Skip to content
Sign in
EffectsBraille progressMenu

Braille progressPro

Determinate progress drawn with braille characters at eight steps per character, for terminal styled surfaces.

ProModel weights downloading in a terminal at eight steps per character.

Installation

$ pnpm dlx shadcn@latest add @chatcn-pro/braille-progress

Usage

tsx
import { BrailleProgress } from "@/components/ui/chatcn/pro/braille-progress"

<BrailleProgress value={bytes} max={total} label="unet.safetensors" />

A 20 character bar resolves 160 steps, finer than block characters. It is real text, so it copies into a log as is. Leave value undefined for work of unknown length and the bar sweeps.

Examples

States

ProSub-steps, every status, unknown length, track styles and a long label.

Props

PropTypeNotes
valuenumber | nullProgress from 0 to max. Undefined sweeps
maxnumberDefault 100
widthnumberBar width in characters. Default 20
status"running" | "paused" | "done" | "failed"Defaults to done at max, otherwise running
labelReactNodeText before the bar
showValuebooleanThe tabular percent. Default true
track"dots" | "line" | "none"How unfilled cells look. Default dots

Keyboard

Not interactive.

Accessibility

  • role="progressbar" with aria-valuenow and a value text such as "71%, failed". Without a value it has no aria-valuenow, the indeterminate pattern.
  • Paused, done and failed print their word after the percent, so status never depends on color.

Motion

  • The fill moves one dot at a time as the value changes; there is no tween to fake smoothness.
  • The unknown length sweep ticks every 60 ms and stops while the tab is hidden. Under reduced motion it holds still.