Varendo

Progress

Determinate or unknown progress honestly; no invented completion percentages.

FamilyfeedbackLicenseApache-2.0
StandaloneAvailable

Use the web element directly without the semantic runtime.

Semantic bindingAvailable

A registered presentation adapter can bind this component to host-owned meaning and state.

Automatic adaptationNo standard recipe

The standard recipe resolver does not select this component automatically.

Import and live example

One determinate report-loading progress bar at 62 percent.

Interactive preview requires JavaScript.

View the complete example source
import {registerAeliqoElements} from "@varendo/web";
import {
  AeliqoAlertElement,
  AeliqoDialogElement,
  AeliqoDrawerElement,
  AeliqoEmptyStateElement,
  AeliqoPopoverElement,
  AeliqoProgressElement,
  AeliqoSkeletonElement,
  AeliqoToastElement,
  AeliqoTooltipElement,
} from "@varendo/web/feedback";



registerAeliqoElements();

const host = document.querySelector<HTMLElement>("#aeliqo-example") ?? (() => {
  const created = document.createElement("div");
  created.id = "aeliqo-example";
  (document.body ?? document.documentElement).append(created);
  return created;
})();

function createCatalogRoot(container: HTMLElement): HTMLElement {
  const root = document.createElement("div");
  root.dataset.catalogSourceRoot = "true";
  root.style.display = "grid";
  root.style.gap = "12px";
  container.append(root);
  return root;
}

function createCatalogElement<T extends HTMLElement>(tagName: string, container: HTMLElement): T {
  const element = document.createElement(tagName) as T;
  element.setAttribute("data-aeliqo-theme", "light");
  container.append(element);
  return element;
}

function appendSlottedText(root: HTMLElement, slot: string, textContent: string): void {
  const content = document.createElement("span");
  content.slot = slot;
  content.textContent = textContent;
  root.append(content);
}

const root = createCatalogRoot(host);
(((root) => {
		const element = createCatalogElement<AeliqoProgressElement>("aeliqo-progress", root);
		element.label = "Loading report";
		element.value = 62;
		element.max = 100;
	}))(root);

Purpose

Reports an ongoing operation with native progress semantics. A bounded value shows determinate progress; no value stays indeterminate, so nothing is invented.

When to use it

When to use a different component

Properties and defaults

Leave value absent for an indeterminate operation; the host owns the operation and completion meaning.

Properties, ownership, and initial values
PropertyUse and ownershipDeclared typeInitial value
valueControls the current value. Apply accepted user proposals back to this property.numberundefined
maxSets the upper bound for max.number100
labelProvides the visible label and accessible name for the component.string'Progress'

Events

States and failure handling

Relevant states:

Expected result: Progress exposes the current bounded value and accessible label without claiming completion.

With no finite value, the component renders an indeterminate progressbar. For determinate progress, it clamps the displayed value to the range from zero to max; an invalid or nonpositive max falls back to 100. The host should report completion only when the underlying operation actually finishes.

Keyboard, focus, and accessibility

Keyboard behavior:

Exposed semantics:

Responsive behavior

The bar follows its host width while the label remains readable. Do not use color alone to report the current value.

Style hooks

Generated TypeScript declaration

View generated declaration
export declare class AeliqoProgressElement extends AeliqoFoundationElement {
    static readonly properties: {
        value: {
            type: NumberConstructor;
        };
        max: {
            type: NumberConstructor;
        };
        label: {
            type: StringConstructor;
        };
    };
    static readonly styles: import("lit").CSSResult[];
    value?: number;
    max: number;
    label: string;
    protected render(): import("lit").TemplateResult<1>;
}

Version

This page documents the Varendo 0.6 component contract.