components / 17

marked progress

progress should look like work being made. the line grows from the same hand that marks completion.

shadcnnpx shadcn@latest add berkantay/cheez/marked-progress
live

playground

64% complete
rendering preview

18% is buffered ahead.

x
progress
64%
buffer
82%
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

every state

empty to complete
empty
waiting
x
starting
collecting files
x
buffered
streaming preview
x
segmented
seven of twelve
x
indeterminate
preparing export
x
complete
published
x
character

three drawing tools

same value, different pressure
line
precise task
x
marker
human task
x
boxed
bounded task
x
composition

release pipeline

several tasks, one rhythm
01
type checks

all packages are clean.

x
02
component tests

39 of 48 suites finished.

x
03
registry build

working through dependency order.

x
04
deployment

starts after every build passes.

x
formatting

not everything is a percent

visible and spoken values
uploading field-notes.mov

48 MB remaining

x
reference

api

one composed Base UI progress root
proptypedefaultpurpose
valuenumber | nullrequiredcurrent amount; null is indeterminate
minnumber0minimum value
maxnumber100completion value
labelReactNoderequiredaccessible progress label
descriptionReactNodeconnected 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) => ReactNodepercentcustom visible value
getAriaValueTextfunctionBase UIcustom spoken value
buffernumbersecondary loaded amount
bufferColorstringmuted purplesecondary ink
segmentsnumber0up to twenty visual divisions
colorstring"#8f74ff"active ink
trackColorstringmuted whitebaseline or frame ink
completeColorstring"#b7ff3c"completion ink
indicatorMarkCheezTypevariant-awareactive drawing override
trackMarkCheezType"rounded-box"boxed boundary drawing
completeMarkCheezType"check"completion glyph
characterCheezCharacter"rushed"drawing personality
thicknessnumber1pen weight
localeIntl.LocalesArgumentruntimeBase UI number locale
formatIntl.NumberFormatOptionsBase 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