# Linear progress

The Linear Progress component is a way to display information to the end user while a complex backend process is executing, for instance. This is an alternative to using the Loader property of the [Container](/library/ui-components/container.md#show-loader) component, or the [Circular Progress](/library/ui-components/circular-progress.md) component.

{% hint style="info" %}
A full example setup of the **Linear progress** component is available in our [Showroom](https://showroom.appfarm.app/ui-components/progress)! You may view a demo, as well as access the setup in Appfarm Create. If you do not have access, you may register [here](https://showroom.appfarm.app/sign-up).
{% endhint %}

## Properties

### Variant

The Variant of the component can be set to *Determinate*, *Indeterminate*, *Buffer* or *Query*.

**Determinate**

When the Variant is set to Determinate, a numerical value between 0 and 100 can be bound to the component. This will serve as a progress indicator, letting the user know how much of the action is completed. For example, an App Variable can be bound to the loader, which can be updated from the background action throughout the process, and keep the user updated as the action progresses.

**Indeterminate**

An indeterminate linear progress component will repeat the same pattern for the whole time it is visible. This gives the user information that something is loading, but will not give any progress indication until the process is finished and the component is hidden again.

**Buffer**

Unlike a Determinate variant, a Buffer variant gives the user two different possible values to data bind. The "Value" property acts the same as the Determinate variant, while the "Value Buffer" property provides an animation in the section of the loader which isn't yet "loaded". The most common use case is to bind Value and Value Buffer to the same data value, or to only bind Value Buffer to a property, to make the most of the Buffer variant.

**Query**

A query variant looks similar to an Indeterminate variant, except the loading animation shifts from right to left instead of left to right.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appfarm.io/library/ui-components/linear-progress.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
