How I Built an Animated Circle Progress Component Using FSCSS (No JavaScript)

Published: (March 6, 2026 at 11:20 AM EST)
1 min read
Source: Dev.to

Source: Dev.to

The Idea

The component uses a conic-gradient to draw the progress arc and a radial mask to turn it into a ring.
A small glowing dot follows the arc to give it a dynamic UI feel.

Features

  • All logic wrapped in an FSCSS plugin: @circle-progress()
  • Animated circular arc
  • Animated glow dot
  • Progress value display
  • Customizable colors
  • Responsive sizing

Installation

First include FSCSS:

Then initialize the plugin:

@import(exec(_init circle-progress));

Usage

Create the progress component:

72%

Set the value with FSCSS:

.p72 { @progress-range(72); }

Customizing Colors

You can create color variants easily:

.blue {
  --progress-color-arc: #4d9fff;
  --progress-color-glow: rgba(77,159,255,0.45);
}

Example

45%

Changing Size

Scale the component using a helper class:

.big { @progress-size(260px); }

Example

72%

Implementation Details

FSCSS allows reusable CSS logic using @define and @use.
Instead of repeating complex CSS, the entire component becomes a single reusable function:

@define circle-progress(selector) {
  /* component implementation */
}

This makes it easy to build UI components purely with CSS preprocessing logic.

Repository:

0 views
Back to Blog

Related posts

Read more »

Mobile-Optimized Smart Breadcrumbs

!Cover image for Mobile-Optimized Smart Breadcrumbshttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fde...