---
description: >-
  This feature provides customizable animation behaviors to control how the
  spinner animates, including rotation styles, pulsing, progressive animation,
  and rotation speed.
---

# Animation Settings

## Overview

The Animation Settings in the SiticoneLoadingSpinner control allow developers to fine-tune the visual behavior of the spinner’s movement. Developers can select between different animation styles (Rotation, Bounce, Wave, Progressive), enable a pulse effect with adjustable scale, control progressive animation steps, and modify the rotation speed. These settings ensure that the spinner's animation can be tailored to match the desired user experience and interface dynamics.

***

### Detailed Animation Settings

The table below summarizes the key animation-related properties and settings available for customization.

| Property / Setting | Description                                                                            | Valid Values / Defaults                                                      |
| ------------------ | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| Style              | Determines the overall animation style for the spinner.                                | AnimationStyle enum: Rotation, Bounce, Wave, Progressive (default: Rotation) |
| PulseEffect        | Enables or disables the pulsing effect during animation.                               | Boolean (default: false)                                                     |
| PulseScale         | Specifies the maximum scale factor to which the spinner pulses.                        | Float range: 0.5f to 2.0f (default: 1.0f)                                    |
| Progressive        | Enables a progressive animation effect that fills spokes gradually.                    | Boolean (default: false)                                                     |
| ProgressiveSteps   | Determines the number of spokes activated during progressive animation.                | Integer (min: 2, max: NumberOfSpokes, default: 4)                            |
| RotationSpeed      | Controls the rotation speed of the spinner; a higher value results in faster rotation. | Integer range: 1 to 100 (default: 30)                                        |

Additional extension methods, such as UseConcentricStyle, UseParticleStyle, and UseTrailStyle, offer preconfigured animation settings to quickly apply popular animation schemes.

***

### Code Examples & Integration Samples

#### Selecting an Animation Style

Set the animation style using the Style property. For example, to use the Wave style:

```csharp
// Create the spinner control.
var spinner = new SiticoneLoadingSpinner();

// Set the animation style to Wave.
spinner.Style = SiticoneLoadingSpinner.AnimationStyle.Wave;

// Start the spinner animation.
spinner.Start();
```

#### Enabling and Configuring the Pulse Effect

Enable the pulse effect and configure its scale to create a breathing animation:

```csharp
spinner.PulseEffect = true;
spinner.PulseScale = 1.5f; // The spinner will pulse up to 150% of its normal size.
spinner.Start();
```

#### Progressive Animation Example

Enable progressive animation to gradually light up spokes based on progress:

```csharp
spinner.Progressive = true;
spinner.ProgressiveSteps = 6; // Adjust the number of active spokes in progressive mode.
spinner.Style = SiticoneLoadingSpinner.AnimationStyle.Progressive;
spinner.Start();
```

#### Adjusting Rotation Speed

Control the rotation speed to match the desired animation pace:

```csharp
spinner.RotationSpeed = 60; // Increase the rotation speed.
spinner.Start();
```

#### Using Predefined Animation Styles via Extensions

Apply a predefined configuration style using extension methods:

```csharp
// Use the Particle style configuration.
spinner.UseParticleStyle();
spinner.Start();
```

***

### Key Points

| Key Aspect            | Details                                                                                                        |
| --------------------- | -------------------------------------------------------------------------------------------------------------- |
| Animation Style       | The Style property lets you choose from several predefined animation styles, affecting overall movement.       |
| Pulse Effect          | Enabling PulseEffect with an appropriate PulseScale adds a rhythmic expansion and contraction to the spinner.  |
| Progressive Animation | The Progressive mode and ProgressiveSteps allow for a gradual activation of spokes for progress indication.    |
| Rotation Speed        | The RotationSpeed property adjusts how quickly the spinner rotates, providing control over animation dynamics. |

***

### Best Practices

| Best Practice                                  | Recommendation                                                                                                              |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Choose an appropriate animation style          | Select a style (Rotation, Bounce, Wave, Progressive) that best fits the application's overall design and user feedback.     |
| Test pulse effect performance                  | When enabling PulseEffect, ensure that the PulseScale value is not too high, as extreme values might affect visual clarity. |
| Balance rotation speed                         | Adjust RotationSpeed carefully to provide a smooth animation; avoid too high speeds that might distract the user.           |
| Use extension methods for common patterns      | Leverage predefined configurations like UseConcentricStyle and UseParticleStyle to rapidly prototype and iterate on design. |
| Consistent animation with progress integration | When using Progressive animation, ensure the number of ProgressiveSteps correlates with the total number of spokes.         |

***

### Common Pitfalls

| Common Issue                  | Explanation & Resolution                                                                                                                                   |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Overloading the pulse effect  | Using an excessively high PulseScale value can result in jarring animations; use values within the recommended range (0.5 to 2.0).                         |
| Inconsistent rotation speed   | Changing RotationSpeed during an active animation might result in jerky transitions; consider stopping the spinner, updating the value, and restarting it. |
| Conflicting animation modes   | Ensure that only one specialized animation mode (e.g., Progressive vs. PulseEffect) is emphasized to avoid visual clutter.                                 |
| Ignoring hardware performance | High-frequency timer updates (e.g., with a very fast rotation speed) may impact performance on lower-end machines.                                         |

***

### Usage Scenarios

| Scenario                        | Description & Sample Code                                                                                                             |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Data Loading Indicator          | Use a subtle Rotation style with moderate speed to indicate background processing without distracting the user.                       |
| Attention-Grabbing Animation    | Enable PulseEffect with a noticeable PulseScale to create a "breathing" spinner that draws user attention during critical operations. |
| Progress Feedback               | Utilize Progressive animation to visually represent task completion by gradually filling the spokes as progress increases.            |
| Rapid Updates or Status Changes | Increase RotationSpeed to ensure the spinner reacts quickly to changes in application state.                                          |

***

### Review

The Animation Settings feature of the SiticoneLoadingSpinner control offers a flexible set of properties for tailoring the spinner's behavior. Developers can choose between several animation styles and effects, such as pulsing and progressive animations, to provide an engaging and context-appropriate visual indicator. The ability to adjust rotation speed further enhances the control's adaptability, allowing it to seamlessly integrate with various application scenarios.

***

### Summary

Animation Settings in the SiticoneLoadingSpinner control empower developers to customize the spinner’s behavior through multiple properties including Style, PulseEffect, PulseScale, Progressive, ProgressiveSteps, and RotationSpeed. These settings provide fine-grained control over how the spinner animates, ensuring that it can be adapted to suit the visual and performance requirements of diverse applications. Leveraging predefined extension methods further streamlines the configuration process, enabling rapid prototyping and consistent visual effects.

***

### Additional Tips

| Tip                          | Recommendation                                                                                                                        |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Experiment with combinations | Try different combinations of PulseEffect, Progressive settings, and RotationSpeed to find the optimal animation for your app.        |
| Profile performance          | Test the spinner’s performance under load, particularly when using effects like PulseEffect and Progressive animation.                |
| Document your customizations | When using the Configure() method to set animation properties, comment your code to indicate why specific values were chosen.         |
| Maintain visual consistency  | Ensure that the animation settings align with the overall theme and design of your application to provide a cohesive user experience. |

This comprehensive documentation for the Animation Settings feature should help developers integrate and customize the SiticoneLoadingSpinner’s animations effectively in their .NET WinForms applications.
