Enhance Your PowerApps with a Stylish SVG Loading Animation

Enhancing user experience in PowerApps is crucial, and a custom SVG loading spinner can make your app feel more dynamic and professional. Try this sleek, animated SVG loader with a spinning circle and bold red text saying “LOADING PLEASE WAIT.” By embedding the SVG as an encoded image, you can seamlessly integrate it into your PowerApps. This approach ensures a lightweight, visually appealing, and responsive loading indicator without relying on external images or heavy animations.

Just copy and paste the YAML code in your canvas app

- LoaingImage:
    Control: Image@2.2.3
    Properties:
      DisplayMode: =DisplayMode.View
      Fill: =RGBA(56, 96, 178, 0.1)
      Height: =Parent.Height
      Image: |
        =$"data:image/svg+xml;utf-8, {EncodeUrl("<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%' viewBox='0 0 100 100'>

        <style>
            .loading-text {
                font-family: Arial, sans-serif;
                font-size: 5px;
                font-weight: bold;
                fill: red;
                text-anchor: middle;
            }
            .spinner {
                animation: rotate 2s linear infinite;
                transform-origin: 50px 50px;
            }
            @keyframes rotate {
                0% { transform: rotate(0deg); }
                100% { transform: rotate(360deg); }
            }
            .track {
                fill: none;
                stroke: #ccc;
                stroke-width: 3;
            }
            .circle {
                fill: none;
                stroke: #010069;
                stroke-width: 3;
                stroke-linecap: round;
                stroke-dasharray: 45, 100;
                stroke-dashoffset: 0;
                animation: dash 1.5s ease-in-out infinite;
            }
            @keyframes dash {
                0% { stroke-dasharray: 1, 100; stroke-dashoffset: 0; }
                50% { stroke-dasharray: 45, 100; stroke-dashoffset: -25; }
                100% { stroke-dasharray: 45, 100; stroke-dashoffset: -75; }
            }
        </style>

        <!-- Bold red loading text ABOVE the circle -->
        <text x='50' y='25' class='loading-text'>Loading, please wait</text>

        <!-- Smaller static circle track -->
        <circle class='track' cx='50' cy='50' r='15'></circle>

        <!-- Smaller spinning progress circle -->
        <g class='spinner'>
            <circle class='circle' cx='50' cy='50' r='15'></circle>
        </g>

        </svg>")}"
      Transparency: =
      Width: =Parent.Width

Leave a Reply

Your email address will not be published. Required fields are marked *