# Spinner
## Examples
### Default
```html
```
### Sizes
```html
```
### InButton
```html
Loading
```
## Usage
**Use the Loading Spinner to:**
- Indicate asynchronous actions, such as fetching data from an API.
- Show progress when a process takes more than a second.
- Prevent users from interacting with UI elements while waiting for a response.
- Provide feedback when loading components dynamically in a lazy-loading scenario.
**Do not use the Loading Spinner to:**
- Indicate progress for long-running actions (use a progress bar if the duration is predictable).
- Replace skeleton screens where content placeholders would be more appropriate.
- Block the entire page unless necessary—prefer inline spinners for non-critical loading states.
## Use case examples
- Submitting a job application, approving a request.
- Updating a salary breakdown, filtering a job listing.
- Loading a user dashboard after login.
- Saving user settings in a modal.
## Other Considerations
- Avoid unnecessary loading indicators—if a process is fast, the spinner can feel disruptive.
- If possible, use progressive loading (e.g., show part of the UI while the rest loads).
- Avoid excessive animations that may feel distracting.
## Design Rationale
- Instant Feedback: Prevents users from wondering if an action was registered.
- Guides User Expectations: Helps manage perception of system performance.
- Consistent Interaction Model: Standardized loading behavior across different UI elements.
- Enhances Usability: Ensures users don’t take unintended actions while waiting.
- Lightweight and optimized for performance (CSS-based preferred).
- Match the UI theme (size, color, and speed).