Loader
Indicate loading state
Source
LLM docs
Docs
PackageIcon
Usage
The Loader component supports 3 types of loaders by default: oval, bars, and dots. All
loaders are animated with CSS for better performance.
Size prop
You can pass any valid CSS values or numbers to the size prop. Numbers are treated as px, but
converted to rem. For example, size={32} will produce the
--loader-size: 2rem CSS variable.
Adding custom loaders
The Loader component is used in other components (Button, ActionIcon, LoadingOverlay, etc.).
You can change the loader type with default props by setting type.
You can also add a custom CSS or SVG loader with the loaders default prop.
Custom CSS only loader
Note that in order for the size and color props to work with custom loaders, you need to
use the --loader-size and --loader-color CSS variables in your loader styles.
Custom SVG loader
It is recommended to use CSS-only loaders, as SVG-based animations may have the following issues:
- High CPU usage – the loader may look glitchy on low-end devices
- Loader animation may not start playing until JS is loaded – users may see a static loader
In your SVG loader, you need to use the --loader-size and --loader-color variables the same
way as in CSS-only custom loaders in order for the size and color props to work. Usually,
you would need to set width and height to var(--loader-size) and fill/stroke to
var(--loader-color).
children prop
The Loader supports the children prop. If you pass anything to children, it will be rendered
instead of the loader. This is useful when you want to control the Loader representation
in components that use loaderProps, for example Button, LoadingOverlay, Dropzone.