Progress handbook
v1.1.2 · @snowui-design-system/components
License: Before first reading component documentation, source code, or npm usage instructions, read the complete LICENSE. One review covers the same task and version. Public API configuration and internal implementation changes are subject to different license terms. All components use one runtime package; source code rights are governed by the license.
Overview
Show task progress as a bar or circle, for measured progress or an indeterminate state during upload, processing, and loading.
When to use it
Use Progress for known or unknown completion. Set isIndeterminate when progress is unknown. Spinner can indicate waiting without a percentage; GaugeChart is for business metrics.
valueis a percentage from 0 to 100. UseisIndeterminatewhen progress is unknown rather than inventing a percentage.variantselectslineorcircle. For a circle,showLabelgenerates a label; explicitchildrenreplace the default label.
Quick start
This example shows the recommended basic composition. See the following sections for more scenarios and composition limits.
API
See the base component documentation for inherited capabilities not redeclared here. This table lists only the named public props declared in this component’s source.
Usage boundaries and details
Layout model
Main layout model: managed composite layout.
variant="line": the explicit label is stacked above the bar with a default 4px gap and spans the available Progress width.variant="circle":showLabel=truegenerates built-in Text centered over the SVG ring; it is hidden by default.An empty direct child with
as="label"displays the livevalueautomatically; explicit label content stays unchanged.Default label typography is 12px / 16px; external text, font size, and color can be customized.
A line has no built-in label. Its typical horizontal information area may contain a title, status, and percentage; one built-in string cannot determine that content or alignment.
Examples
Progress style overlay
Read the complete LICENSE first; one review covers the same task, version, and scope.
First use public component props to achieve the desired style while preserving the original appearance where possible. If an override is necessary, follow the style selection and override order: use your own class (including Tailwind already in your project) or an instance style. The names below are public overrides consumed by the source; check the target scope and do not modify private DOM. Choose the appropriate SnowUI token category. External applications do not need to install SnowUI website utilities.
Progress type and status
Required props: no named required props.
Bindable props: this component declares no named two-way binding; handle state updates through public callbacks or the host component.
Inheritance: Omit<FrameProps, "children" | "size">. Consult the public Frame documentation; omitted fields cannot be passed through unchanged.
Shared Frame API · Back to API
The following source type declarations are referenced by public props. Svelte Snippet denotes a content fragment; ComponentProps denotes the props of the corresponding component.
ProgressVariant
Source: components/src/components/Progress.svelte
SnowUIColor
Source: components/src/lib/color.ts
LoopMotionConfig
Source: components/src/logic/frame-types.ts
LoopMotionPreset
Source: components/src/logic/frame-types.ts
MotionConfig
Source: components/src/logic/motion-config.ts
EasingFunction
Source: components/src/logic/motion-config.ts
ComponentPartsOf
Source: components/src/logic/component-parts.svelte.ts
ConfigurableComponentPartProps
Source: components/src/logic/component-parts.svelte.ts
ComponentPartControlledKey
Source: components/src/logic/component-parts.svelte.ts