Usage
Loader
component supports 3 types of loaders: oval
, bars
and dots
by default. All
loaders are animated with CSS for better performance.
Size prop
You can pass any valid CSS values and numbers to size
prop. Numbers are treated as px, but
converted to rem. For example, size={32}
will produce
--loader-size: 2rem
CSS variable.
Adding custom loaders
Loader
component is used in other components (Button, ActionIcon, LoadingOverlay, etc.).
You can change loader type with default props by setting type
.
You can also add a custom CSS or SVG loader with loaders
default prop.
Custom CSS only loader
Note that in order for size
and color
props to work with custom loaders, you need to
use --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 – loader may look glitchy on low-end devices
- Loader animation may not start playing until js is loaded – user may see static loader
In your SVG loader, you need to use --loader-size
and --loader-color
variables the same
way as in CSS only custom loader in order for 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
Loader
supports children
prop. If you pass anything to children
, it will be rendered
instead of the loader. This is useful when you want to control Loader
representation
in components that use loaderProps
, for example Button, LoadingOverlay, Dropzone.