Progress
Display progress relative to a limit or related to a task.
Usage
First of all, you need to import the Progress component from the kitchn package.
import { Progress } from "kitchn"Default
<Progress value={30} />↓Code Editor
↓Code Editor
<Progress value={30} />Custom max
<Progress value={30} max={40} />↓Code Editor
↓Code Editor
<Progress value={30} max={40} />Dynamic colors
() => {
const [value, setValue] = React.useState(0);
const { theme } = useTheme();
return (
<Container>
<Progress
value={value}
colors={{
0: theme.colors.accent.danger,
25: theme.colors.accent.warning,
50: theme.colors.accent.success,
75: theme.colors.accent.info,
100: theme.colors.accent.primary,
}}
/>
<Container gap={5} row>
<Button type={"dark"} onClick={() => setValue(value - 10)}>
-
</Button>
<Button type={"dark"} onClick={() => setValue(value + 10)}>
+
</Button>
<Button type={"dark"} onClick={() => setValue(0)}>
reset
</Button>
</Container>
</Container>
)}↓Code Editor
↓Code Editor
() => {
const [value, setValue] = React.useState(0);
const { theme } = useTheme();
return (
<Container>
<Progress
value={value}
colors={{
0: theme.colors.accent.danger,
25: theme.colors.accent.warning,
50: theme.colors.accent.success,
75: theme.colors.accent.info,
100: theme.colors.accent.primary,
}}
/>
<Container gap={5} row>
<Button type={"dark"} onClick={() => setValue(value - 10)}>
-
</Button>
<Button type={"dark"} onClick={() => setValue(value + 10)}>
+
</Button>
<Button type={"dark"} onClick={() => setValue(0)}>
reset
</Button>
</Container>
</Container>
)}States
() => {
const [value2, setValue2] = React.useState(0);
const { theme } = useTheme();
return (
<Container gap={"small"}>
<Progress
value={value2}
colors={{
0: theme.colors.accent.danger,
25: theme.colors.accent.warning,
50: theme.colors.accent.success,
75: theme.colors.accent.info,
100: theme.colors.accent.primary,
}}
states={{
0: "Your package is in our hands",
25: "It is in our network",
50: "Your package has arrived at its delivery site",
75: "We are preparing your package for delivery",
100: "Your package has been delivered",
}}
/>
<Container gap={"tiny"} row>
<Button type={"dark"} onClick={() => setValue2(value2 - 25)}>
-
</Button>
<Button type={"dark"} onClick={() => setValue2(value2 + 25)}>
+
</Button>
<Button type={"dark"} onClick={() => setValue2(0)}>
reset
</Button>
</Container>
</Container>
)}↓Code Editor
↓Code Editor
() => {
const [value2, setValue2] = React.useState(0);
const { theme } = useTheme();
return (
<Container gap={"small"}>
<Progress
value={value2}
colors={{
0: theme.colors.accent.danger,
25: theme.colors.accent.warning,
50: theme.colors.accent.success,
75: theme.colors.accent.info,
100: theme.colors.accent.primary,
}}
states={{
0: "Your package is in our hands",
25: "It is in our network",
50: "Your package has arrived at its delivery site",
75: "We are preparing your package for delivery",
100: "Your package has been delivered",
}}
/>
<Container gap={"tiny"} row>
<Button type={"dark"} onClick={() => setValue2(value2 - 25)}>
-
</Button>
<Button type={"dark"} onClick={() => setValue2(value2 + 25)}>
+
</Button>
<Button type={"dark"} onClick={() => setValue2(0)}>
reset
</Button>
</Container>
</Container>
)}Props
| Name | Type | Default | Required | Description | Accepted values |
|---|---|---|---|---|---|
value | number | 0 | ✅ | The current value of the progress bar. | - |
max | number | 100 | - | The max value of the progress bar. | - |
colors | Record<number, string> | - | - | The custom colors for the progress bar. | - |
states | Record<number, string | React.ReactNode > | - | - | The custom states for the progress bar. | - |
title | boolean | true | - | The title of the progress bar. | - |
checkpointTitle | boolean | true | - | The title of the progress bar's checkpoint. | - |