Button Loading

Buttons with loading states for async operations.

Loading Variants

1const [isLoading, setIsLoading] = useState(false);
2
3const handleClick = () => {

Practical Examples

1<ButtonLoading isLoading={isSubmitting} onClick={handleSubmit}>
2 Submit Form
3</ButtonLoading>

Sizes

1<ButtonLoading size="sm" isLoading>Small</ButtonLoading>
2<ButtonLoading size="md" isLoading>Medium</ButtonLoading>
3<ButtonLoading size="lg" isLoading>Large</ButtonLoading>

Button Variants

1<ButtonLoading variant="default" isLoading>Default</ButtonLoading>
2<ButtonLoading variant="outline" isLoading>Outline</ButtonLoading>
3<ButtonLoading variant="ghost" isLoading>Ghost</ButtonLoading>

Completed State

1const [isLoading, setIsLoading] = useState(false);
2const [isCompleted, setIsCompleted] = useState(false);
3

Installation

npx zeroui@latest add button-loading

Props

nametypedefaultdescription
variant"default" | "outline" | "ghost""default"-
size"sm" | "md" | "lg""md"-
loadingVariant"spinner" | "dots" | "pulse""spinner"-
isLoadingbooleanfalse-
isCompletedbooleanfalse-
completedTextstring"Done"-
childrenReactNode--
classNamestring""-
disabledbooleanfalse-