An open API service indexing awesome lists of open source software.

https://github.com/arshdeepgrover/groupix-spinner-library

A lightweight Angular spinner library to show loading indicators in your application.
https://github.com/arshdeepgrover/groupix-spinner-library

angular cli library npm npm-package package

Last synced: 2 months ago
JSON representation

A lightweight Angular spinner library to show loading indicators in your application.

Awesome Lists containing this project

README

          

# 🚀 Groupix Spinner

![NPM Downloads](https://img.shields.io/npm/dm/%40groupix%2Fgroupix-spinner?color=blue&label=Downloads)
![NPM Type Definitions](https://img.shields.io/npm/types/%40groupix%2Fgroupix-spinner?color=green&label=Type%20Definitions)
![NPM License](https://img.shields.io/npm/l/%40groupix%2Fgroupix-spinner?color=orange&label=License)
![Bundle Size](https://img.shields.io/bundlephobia/min/%40groupix%2Fgroupix-spinner?color=red&label=Bundle%20Size)

### ⚡ A lightweight Angular spinner library for seamless loading animations

---

## 🎯 Features

✔️ Easy to integrate
✔️ Lightweight and fast performance
✔️ Customizable ball count (3-9 balls)
✔️ Multiple size options (sm, m, l, xl, xxl)

---

## 📦 Installation

Install the package using NPM:

```sh
npm install @groupix/groupix-spinner --save
```

---

## 🚀 Usage

### 1️⃣ Import the module in `app.module.ts`

```typescript
import { GroupixSpinnerModule } from '@groupix/groupix-spinner';

@NgModule({
declarations: [AppComponent],
imports: [GroupixSpinnerModule],
bootstrap: [AppComponent]
})
export class AppModule {}
```

### 2️⃣ Add the spinner component to your template

```html

```

---

## ⚙️ Configuration Options

| Property | Type | Default | Description |
|----------|------|---------|-------------|
| `ballCount` | `number` | `3` | Number of bouncing balls (3-9) |
| `size` | `'sm' \| 'm' \| 'l' \| 'xl' \| 'xxl'` | `'l'` | Size of the balls |

---

## 📏 Size Options

Choose the perfect size for your spinner! Each size is optimized for different use cases:

### 🔸 Available Sizes

| Size | Dimensions | Best For | Example |
|------|------------|----------|---------|
| `sm` | 20×20px | Small buttons, inline loading | `` |
| `m` | 30×30px | Form inputs, compact spaces | `` |
| `l` | 40×40px | **Default** - General purpose | `` |
| `xl` | 50×50px | Page loading, prominent areas | `` |
| `xxl` | 60×60px | Full-screen loading, hero sections | `` |

### 🎨 Size Examples

```html


{{ loading ? 'Loading...' : 'Submit' }}





Loading your content...





```

### 💡 Size Tips

- **Responsive Design**: Use CSS media queries to change sizes on different screens
- **Performance**: Smaller sizes with fewer balls load faster
- **Accessibility**: Larger sizes are easier to see for users with visual impairments
- **Context**: Match the spinner size to the content it's loading

---

## 🎮 Live Demo

🚀 Check out the live demo: [Groupix Spinner Demo](https://groupix-spinner.vercel.app/)

---

## ❓ FAQ

### 🔹 How do I show/hide the spinner dynamically?

Use Angular binding:

```html

Toggle Spinner
```

### 🔹 How do I customize the spinner appearance?

You can customize ball count and size:

```html

```

### 🔹 What's the valid range for ball count?

The ball count must be between 3 and 9. Values outside this range will be automatically clamped.

---

## 🤝 Contributing

We ❤️ contributions! If you have any suggestions or want to improve this library, feel free to open an issue or submit a PR.

---

## 👨‍💻 Created by

# **Arshdeep Singh**

📧
💼 [LinkedIn](https://linkedin.com/in/arshdeepgrover)
🌐 [Personal Website](https://arshdeepsingh.info)

---

## 📄 License

This project is licensed under the **MIT License**.