waiting
components / 17
marked progress
progress should look like work being made. the line grows from the same hand that marks completion.
shadcn
npx shadcn@latest add berkantay/cheez/marked-progresslive
64% completeplayground
rendering preview
64%
18% is buffered ahead.
xprogress
buffer
variant
size
character
value
segments
ink
<MarkedProgress
label="rendering preview"
value={64}
variant="marker"
size="medium"
character="rushed"
buffer={82}
valuePosition="label"
color="#8f74ff"
/>lifecycle
empty to completeevery state
collecting files
18%
streaming preview
46%
seven of twelve
58%
preparing export
published
100%
character
same value, different pressurethree drawing tools
linex
precise task
72%
markerx
human task
72%
boxedx
bounded task
72%
composition
several tasks, one rhythmrelease pipeline
01
type checks
100%
all packages are clean.
x02
component tests
39 / 48
39 of 48 suites finished.
x03
registry build
working through dependency order.
x04
deployment
0%
starts after every build passes.
xformatting
visible and spoken valuesnot everything is a percent
uploading field-notes.mov
192 MB
48 MB remaining
xreference
one composed Base UI progress rootapi
| prop | type | default | purpose |
|---|---|---|---|
value | number | null | required | current amount; null is indeterminate |
min | number | 0 | minimum value |
max | number | 100 | completion value |
label | ReactNode | required | accessible progress label |
description | ReactNode | — | connected supporting copy |
variant | "line" | "marker" | "boxed" | "line" | ink and track treatment |
size | "small" | "medium" | "large" | "medium" | track and type scale |
valuePosition | "label" | "track" | "none" | "label" | visible value placement |
formatValue | (value, percentage) => ReactNode | percent | custom visible value |
getAriaValueText | function | Base UI | custom spoken value |
buffer | number | — | secondary loaded amount |
bufferColor | string | muted purple | secondary ink |
segments | number | 0 | up to twenty visual divisions |
color | string | "#8f74ff" | active ink |
trackColor | string | muted white | baseline or frame ink |
completeColor | string | "#b7ff3c" | completion ink |
indicatorMark | CheezType | variant-aware | active drawing override |
trackMark | CheezType | "rounded-box" | boxed boundary drawing |
completeMark | CheezType | "check" | completion glyph |
character | CheezCharacter | "rushed" | drawing personality |
thickness | number | 1 | pen weight |
locale | Intl.LocalesArgument | runtime | Base UI number locale |
format | Intl.NumberFormatOptions | — | Base UI raw number formatting |
behavior notes
- Base UI provides the progressbar role, value range, label connection, and status attributes
- values outside the declared range are clamped before rendering or announcing
- null removes aria-valuenow and switches to indeterminate progress
- the moving indeterminate element is a completed Cheez stroke, not a generic shimmer
- segments and buffers are visual supplements; the numeric value remains the source of truth
- completion changes both color and shape by drawing a check beside the value