# Loader

The Loader component is a fundamental UI element. It visually communicates ongoing processes such as data fetching, form submission, or navigation transitions. The loader helps set user expectations by indicating that a background action is in progress, reducing uncertainty and improving perceived performance.

<figure><img src="/files/JUjAwATmzwQdlKOv14X7" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="Component React" %}

```
// Sample code

<Loader variant={"PageLoader"}/>

<Loader variant={"OverlayLoader"}/>
```

{% endtab %}

{% tab title="Component Flutter" %}

```
// Sample code

DigitLoader(
    isLoading: true,
    child: YourContentWidget(),
  )

```

{% endtab %}

{% tab title="Component Design" %}

{% endtab %}
{% endtabs %}

## Anatomy

<figure><img src="/files/qwIytLDNOt2TVCfRJVOE" alt=""><figcaption></figcaption></figure>

***

## Variants

***

<table data-header-hidden><thead><tr><th width="321"></th><th></th></tr></thead><tbody><tr><td><div><figure><img src="/files/G0yGThT2MB89mbGh4N7A" alt=""><figcaption></figcaption></figure></div></td><td><p><strong>Default</strong></p><p>A simple spinner with optional loading text. Typically used for inline or section-based loading indicators.</p></td></tr><tr><td><div><figure><img src="/files/houaWgJyNa95vdKagIzU" alt=""><figcaption></figcaption></figure></div></td><td><p><strong>Page Loader</strong></p><p>A fullscreen loader that appears during full-page transitions or major data loads, ensuring users are aware of system-level activity.</p></td></tr><tr><td><div><figure><img src="/files/PF8kLLaJKQGS0booyRIo" alt=""><figcaption></figcaption></figure></div></td><td><p><strong>Overlay Loader</strong></p><p>Appears over existing content with a dimmed background. Ideal for actions like uploading media or submitting forms, preventing user interaction during processing.</p></td></tr></tbody></table>

***

## Properties

|                                                                                                                                                                  |                                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| <p><strong>Loader Text</strong></p><p>Optional text (e.g., "Loading...") can be displayed alongside the spinner to clarify the ongoing process for the user.</p> | <div><figure><img src="/files/HHfIPjwk7wbWANM8ZtNJ" alt=""><figcaption></figcaption></figure></div> |

## Property Configuration Table

Each design component offers a range of configurable options. These options are intentionally platform-agnostic, allowing implementations to adapt and tailor them to align with the specific requirements of the chosen framework.

{% tabs %}
{% tab title="React" %}

<table><thead><tr><th width="257">Property</th><th>Value</th><th>Default</th></tr></thead><tbody><tr><td>variant</td><td>text</td><td></td></tr><tr><td>className</td><td>text</td><td></td></tr><tr><td>style</td><td>yes/no</td><td>no</td></tr><tr><td>loaderText</td><td>yes/no</td><td>no</td></tr><tr><td>animationStyles</td><td>number</td><td></td></tr></tbody></table>
{% endtab %}

{% tab title="Flutter" %}

<table><thead><tr><th>Property</th><th width="209">Value</th><th>Default</th></tr></thead><tbody><tr><td>context</td><td>BuildContext</td><td>required(if using page loader or overlay loader)</td></tr><tr><td>label</td><td>String</td><td>-</td></tr><tr><td>animationPath</td><td>String</td><td>-</td></tr><tr><td>backgroundColor</td><td>Color</td><td>(in case of page or overlay loader)</td></tr><tr><td>textStyle</td><td>TextStyle</td><td>-</td></tr><tr><td>size</td><td>int</td><td>-</td></tr><tr><td>barrierDismissible</td><td>bool</td><td>false(in case of overlay loader)</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

***

## Behaviours

|                                                                                                     |                                                                                                                                                                                                |
| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <div><figure><img src="/files/Dj7oKBMVQU6usLC13nb2" alt=""><figcaption></figcaption></figure></div> | <p><strong>Blocks Interaction</strong></p><p>While the loader is active, especially in page or overlay mode, user interaction is restricted to avoid conflicting inputs during processing.</p> |
| <div><figure><img src="/files/kElFNiujF77vnUjgKdbJ" alt=""><figcaption></figcaption></figure></div> | <p><strong>Auto Dismiss</strong></p><p>Loaders are dismissed automatically upon completion of the associated process, ensuring smooth transitions and minimising wait perception.</p>          |

***

## Usage Guide

***

| <p><strong>Use loaders for content that is loading</strong></p><p>Use medium or large loaders for content that is loading in large areas, without space constraints, such as web pages, panels, or dashboards.  </p><p></p><p>Avoid using small loaders for full-page or overlay loading, as they may not be noticeable or may seem visually unbalanced.</p> | <div><figure><img src="/files/XRSND55CoYGqvDTDSzRX" alt=""><figcaption></figcaption></figure></div> |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
|                                                                                                                                                                                                                                                                                                                                                              | <div><figure><img src="/files/rTsp5lTzlBojdm9vWO4s" alt=""><figcaption></figcaption></figure></div> |

## Changelog

***

| Date         | Number  | Notes                                                                                           |
| ------------ | ------- | ----------------------------------------------------------------------------------------------- |
| Dec 15, 2024 | v-0.0.2 | <p>This component is added to the website.<br>This component is now individually versioned.</p> |

## Design Checklist

***

<table data-header-hidden><thead><tr><th width="129" data-type="checkbox"></th><th></th></tr></thead><tbody><tr><td>true</td><td><strong>All interactive states</strong> - Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).</td></tr><tr><td>true</td><td><strong>Accessible use of colours</strong> - Colour is not used as the only visual means of conveying information (WCAG 2.1 1.4.1)</td></tr><tr><td>true</td><td><strong>Accessible contrast for text</strong> - Text has a contrast ratio of at least 4.5:1 for small text and at least 3:1 for large text (WCAG 2.0 1.4.3).</td></tr><tr><td>true</td><td><strong>Accessible contrast for UI components</strong> - Visual information required to identify components and states (except inactive components) has a contrast ratio of at least 3:1 (WCAG 2.1 1.4.11).</td></tr><tr><td>true</td><td><strong>Keyboard interactions</strong> - Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).</td></tr><tr><td>false</td><td><strong>Screen reader accessible</strong> - All content, including headings, labels, and descriptions, is meaningful, concise, contextual and accessible by screen readers.</td></tr><tr><td>true</td><td><strong>Responsive for all breakpoints</strong> - Responsiveness for 3 breakpoints - Mobile, Tablet and Desktop</td></tr><tr><td>true</td><td><strong>Usage guidelines</strong> - Includes a list of dos and don'ts that highlight best practices and common mistakes.</td></tr><tr><td>false</td><td><strong>Writing guidelines</strong> - Content standards and usage guidelines for writing and formatting in-product content for the component.</td></tr><tr><td>true</td><td><strong>Defined variants and properties</strong> - Includes relevant variants and properties (style, size, orientation, optional iconography, decorative elements, selection states, error states, etc.)</td></tr><tr><td>true</td><td><strong>Defined behaviours</strong> - Guidelines for keyboard navigation and focus, layout management (including wrapping, truncation, and overflow), animations, and user interactions.</td></tr><tr><td>true</td><td><strong>Design Kit</strong> - Access to the design file for the component in Figma, multiple options, states, colour themes, and platform scales.</td></tr></tbody></table>


---

# 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.digit.org/platform/guides/developer-guide/ui-developer-guide/digit-ui-components0.2.0/atom/checkbox-10.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.
