UNPKG

@omnedia/ngx-particles

Version:

A simple component library to create a container with an animated background.

143 lines (110 loc) 3.92 kB
# ngx-particles <a href="https://ngxui.com" target="_blank" style="display: flex;gap: .5rem;align-items: center;cursor: pointer; padding: 0 0 0 0; height: fit-content;"> <img src="https://ngxui.com/assets/img/ngxui-logo.png" style="width: 64px;height: 64px;"> </a> This Library is part of the NGXUI ecosystem. <br> View all available components at https://ngxui.com `@omnedia/ngx-particles` is an Angular library that provides a dynamic and interactive particle animation effect. The particles react to mouse movements, creating a visually engaging and customizable background for your Angular components. ## Features - Interactive particle animation that responds to mouse movements. - Customizable particle quantity, size, color, and motion dynamics. - Lightweight and easy to integrate as a standalone component. ## Installation Install the library using npm: ```bash npm install @omnedia/ngx-particles ``` ## Usage Import the `NgxParticlesComponent` in your Angular module or component: ```typescript import {NgxParticlesComponent} from '@omnedia/ngx-particles'; @Component({ ... imports: [ ... NgxParticlesComponent, ], ... }) ``` Use the component in your template: ```html <om-particles [quantity]="150" [size]="0.5" [circleColor]="'#ff69b4'" [staticity]="60" [ease]="40" [particleSpeed]="1" [vx]="0.1" [vy]="0.1" styleClass="custom-particles" > <h1>Your content here</h1> </om-particles> ``` ## API ```html <om-particles [quantity]="quantity" [size]="size" [circleColor]="circleColor" [staticity]="staticity" [ease]="ease" [particleSpeed]="particleSpeed" [vx]="vx" [vy]="vy" styleClass="your-custom-class" > <ng-content></ng-content> </om-particles> ``` - `quantity` (optional): The number of particles. Defaults to 100. - `size` (optional): The size of the particles. Defaults to 0.4. - `circleColor` (optional): The color of the particles. Accepts any valid CSS color value (e.g., '#ff69b4', 'rgba(255, 105, 180, 0.8)'). Default is white - `staticity` (optional): Controls the responsiveness of the particles to the mouse. Higher values reduce particle movement. Defaults to 50. - `ease` (optional): Controls the smoothness of the particle movement. Lower values increase the speed of the transition. Defaults to 50. - `particleSpeed` (optional): Controls the speed of the particle movement. Higher values increase the speed of the particles. Defaults to 1. - `vx` (optional): Horizontal velocity of the particles. Defaults to 0. - `vy` (optional): Vertical velocity of the particles. Defaults to 0. - `styleClass` (optional): A custom CSS class to apply to the particle container. ## Example ```html <om-particles [quantity]="200" [size]="0.6" [circleColor]="'#00ffcc'" [staticity]="70" [ease]="30" [particleSpeed]="2" [vx]="0.05" [vy]="0.05" styleClass="particles-background" > <div class="content">Interactive Particle Background</div> </om-particles> ``` This example creates a particle background with 200 particles, cyan-colored, and with custom motion dynamics. The particles will move more fluidly in response to mouse movements. ## Styling To further customize the appearance of the particles or the container, use the styleClass input to apply your own CSS classes. ```css .particles-background { background-color: #000; position: relative; height: 100vh; overflow: hidden; } .content { position: relative; z-index: 1; color: white; text-align: center; padding-top: 50px; } ``` This will create a fullscreen particle background with a centered text content overlay. ## Contributing Contributions are welcome. Please submit a pull request or open an issue to discuss your ideas. ## License This project is licensed under the MIT License.