Docs Components Feedback

Progress

React example follows below.
ts
const progressFixture = {
id: "progress",
value: 64,
max: 100,
label: "Upload progress",
indeterminateLabel: "Loading",
} satisfies {
id: string;
value: number;
max: number;
label: string;
indeterminateLabel: string;
};
import { Progress } from "@grassroot/ui-react";
export default function ProgressDemo() {
return (
<div className="flex w-full max-w-[420px] flex-col gap-3.5">
<Progress
value={progressFixture.value}
max={progressFixture.max}
label={progressFixture.label}
/>
<Progress indeterminate label={progressFixture.indeterminateLabel} />
</div>
);
}
ts
<script setup lang="ts">
const progressFixture = {
id: "progress",
value: 64,
max: 100,
label: "Upload progress",
indeterminateLabel: "Loading",
} satisfies {
id: string;
value: number;
max: number;
label: string;
indeterminateLabel: string;
};
import { Progress } from "@grassroot/ui-vue";
</script>
<template>
<div class="flex w-full max-w-[420px] flex-col gap-3.5">
<Progress
:value="progressFixture.value"
:max="progressFixture.max"
:label="progressFixture.label"
/>
<Progress indeterminate :label="progressFixture.indeterminateLabel" />
</div>
</template>
ts
import { Component } from "@angular/core";
const progressFixture = {
id: "progress",
value: 64,
max: 100,
label: "Upload progress",
indeterminateLabel: "Loading",
} satisfies {
id: string;
value: number;
max: number;
label: string;
indeterminateLabel: string;
};
import { GrassrootProgress } from "@grassroot/ui-angular";
@Component({
selector: "app-progress-demo",
standalone: true,
imports: [GrassrootProgress],
host: { style: "display: contents" },
template: `
<div class="flex w-full max-w-[420px] flex-col gap-3.5">
<grassroot-progress [value]="fixture.value" [max]="fixture.max" [label]="fixture.label" />
<grassroot-progress [indeterminate]="true" [label]="fixture.indeterminateLabel" />
</div>
`,
})
export class ProgressDemoComponent {
protected readonly fixture = progressFixture;
}
export default ProgressDemoComponent;
ts
<script lang="ts">
import { Progress } from "@grassroot/ui-svelte";
const progressFixture = {
id: "progress",
value: 64,
max: 100,
label: "Upload progress",
indeterminateLabel: "Loading",
} satisfies {
id: string;
value: number;
max: number;
label: string;
indeterminateLabel: string;
};
</script>
<div class="flex w-full max-w-[420px] flex-col gap-3.5">
<Progress value={progressFixture.value} max={progressFixture.max} label={progressFixture.label} />
<Progress indeterminate label={progressFixture.indeterminateLabel} />
</div>
ts
/** @jsxImportSource solid-js */
import { Progress } from "@grassroot/ui-solid";
const progressFixture = {
id: "progress",
value: 64,
max: 100,
label: "Upload progress",
indeterminateLabel: "Loading",
} satisfies {
id: string;
value: number;
max: number;
label: string;
indeterminateLabel: string;
};
export default function ProgressDemo() {
return (
<div class="flex w-full max-w-[420px] flex-col gap-3.5">
<Progress
value={progressFixture.value}
max={progressFixture.max}
label={progressFixture.label}
/>
<Progress indeterminate label={progressFixture.indeterminateLabel} />
</div>
);
}

Installation

API Reference

Import

import { Progress } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
value
number | undefined
0
optional
Current value.
max
number | undefined
100
optional
indeterminate
boolean | undefined
false
optional
Unbounded loading state — no value reported.
label
string | undefined
optional
Accessible label for the bar.
"aria-label"
string | undefined
optional
Accessible label for the bar.
tone
Tone | undefined
"accent"
optional
Brand colour of the bar.
Prop
value
Type
number | undefined
Default
0
Requirement
optional
Description
Current value.
Prop
max
Type
number | undefined
Default
100
Requirement
optional
Description
Prop
indeterminate
Type
boolean | undefined
Default
false
Requirement
optional
Description
Unbounded loading state — no value reported.
Prop
label
Type
string | undefined
Default
Requirement
optional
Description
Accessible label for the bar.
Prop
"aria-label"
Type
string | undefined
Default
Requirement
optional
Description
Accessible label for the bar.
Prop
tone
Type
Tone | undefined
Default
"accent"
Requirement
optional
Description
Brand colour of the bar.

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { Progress } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
value
number | undefined
0
optional
max
number | undefined
100
optional
label
string | undefined
optional
aria-label
string | undefined
optional
indeterminate
boolean | undefined
false
optional
tone
"accent" | "amber" | "teal" | "indigo" | undefined
"accent"
optional
Prop
value
Type
number | undefined
Default
0
Requirement
optional
Prop
max
Type
number | undefined
Default
100
Requirement
optional
Prop
label
Type
string | undefined
Default
Requirement
optional
Prop
aria-label
Type
string | undefined
Default
Requirement
optional
Prop
indeterminate
Type
boolean | undefined
Default
false
Requirement
optional
Prop
tone
Type
"accent" | "amber" | "teal" | "indigo" | undefined
Default
"accent"
Requirement
optional

Import

import { Component } from "@angular/core";
import { GrassrootProgress } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
value
number
0
optional
max
number
100
optional
label
string
optional
"aria-label"
string | undefined
undefined
optional
indeterminate
boolean
false
optional
tone
"accent" | "amber" | "teal" | "indigo"
"accent"
optional
Prop
value
Type
number
Default
0
Requirement
optional
Prop
max
Type
number
Default
100
Requirement
optional
Prop
label
Type
string
Default
Requirement
optional
Prop
"aria-label"
Type
string | undefined
Default
undefined
Requirement
optional
Prop
indeterminate
Type
boolean
Default
false
Requirement
optional
Prop
tone
Type
"accent" | "amber" | "teal" | "indigo"
Default
"accent"
Requirement
optional

Import

import { Progress } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
value
number
0
optional
max
number
100
optional
label
string
optional
aria-label
string
optional
indeterminate
boolean
false
optional
tone
"accent" | "amber" | "teal" | "indigo"
"accent"
optional
className
string
optional
Prop
value
Type
number
Default
0
Requirement
optional
Prop
max
Type
number
Default
100
Requirement
optional
Prop
label
Type
string
Default
Requirement
optional
Prop
aria-label
Type
string
Default
Requirement
optional
Prop
indeterminate
Type
boolean
Default
false
Requirement
optional
Prop
tone
Type
"accent" | "amber" | "teal" | "indigo"
Default
"accent"
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Import

import { Progress } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
value
number
0
optional
max
number
100
optional
label
string
optional
aria-label
string
optional
indeterminate
boolean
false
optional
tone
"accent" | "amber" | "teal" | "indigo"
"accent"
optional
className
string
optional
Prop
value
Type
number
Default
0
Requirement
optional
Prop
max
Type
number
Default
100
Requirement
optional
Prop
label
Type
string
Default
Requirement
optional
Prop
aria-label
Type
string
Default
Requirement
optional
Prop
indeterminate
Type
boolean
Default
false
Requirement
optional
Prop
tone
Type
"accent" | "amber" | "teal" | "indigo"
Default
"accent"
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional