> For the complete documentation index, see [llms.txt](https://docs.appfarm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appfarm.io/library/ui-components/linear-progress.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
