Компонент Progress используется для отображения прогресса выполнения задачи. Он визуально показывает, какая часть работы завершена, и может быть настроен по цвету, размеру, ориентации и стилю. В Chakra UI Progress реализован с поддержкой полностью настраиваемых тем и легко интегрируется с другими компонентами библиотеки.
import { Progress } from "@chakra-ui/react";
<Progress value={60} />
Здесь value указывает текущий процент прогресса.
Значение по умолчанию — 0, максимальное —
100.
"xs",
"sm", "md", "lg"."blue", "green", "red".hasStripe.<Progress value={40} size="lg" colorScheme="green" borderRadius="md" />
<Progress value={75} size="sm" colorScheme="blue" hasStripe isAnimated />
<Progress isIndeterminate size="md" colorScheme="pink" />
Для отображения текста с текущим прогрессом используется комбинация Progress с обычными компонентами, такими как Box или Flex. Chakra UI позволяет легко создавать кастомные прогресс-бары с цифрами:
import { Progress, Box, Text, Flex } from "@chakra-ui/react";
<Flex align="center">
<Box flex="1" mr="4">
<Progress value={50} colorScheme="teal" borderRadius="md" />
</Box>
<Text>50%</Text>
</Flex>
Здесь Flex обеспечивает горизонтальное расположение полосы прогресса и текста. Такой подход позволяет создавать наглядные и информативные индикаторы.
Если точный процент выполнения задачи неизвестен, используется
свойство isIndeterminate. Полоса будет двигаться
непрерывно, показывая активность процесса:
<Progress size="lg" isIndeterminate colorScheme="purple" />
Это часто применяется при загрузке данных с сервера или при длительных асинхронных операциях.
Chakra UI позволяет полностью настраивать внешний вид
Progress через sx или тему:
<Progress
value={70}
size="md"
colorScheme="orange"
sx={{
bg: "gray.200",
"& > div": {
borderRadius: "full",
},
}}
/>
bg — цвет фона полосы."& > div" — позволяет изменить внутреннюю полосу
прогресса.borderRadius: "full" — делает края полностью
закругленными.Можно также комбинировать с другими системами Chakra, например с useColorMode для автоматической адаптации к светлой и темной теме.
По умолчанию Progress горизонтальный, но с помощью CSS можно сделать вертикальный:
<Progress
value={60}
orientation="vertical"
height="200px"
colorScheme="cyan"
/>
Свойство orientation принимает "horizontal"
или "vertical". Высота (height) задает
визуальный размер вертикального прогресс-бара.
Компонент Progress часто комбинируется с карточками, списками задач, панелями статистики:
<Box w="300px" p="4" borderWidth="1px" borderRadius="md">
<Text mb="2">Загрузка данных</Text>
<Progress value={30} colorScheme="blue" hasStripe isAnimated />
</Box>
Такой подход позволяет визуально выделять состояние загрузки, прогресса выполнения операций или завершения этапов задач.
Progress в Chakra UI — гибкий и мощный инструмент для отображения выполнения задач. Он поддерживает:
Благодаря этому компонент легко внедряется в сложные интерфейсы, создавая информативные и визуально привлекательные индикаторы прогресса.