About this set
A single online-course card for a learner dashboard. A gradient cover carries an Intermediate level pill, and below it sit the course title, a lessons and duration line, a circular progress ring showing 68 percent, an Up next panel naming the next lesson, and a full-width Continue course button. The ring is a conic-gradient filled to a –p custom property with a white disc on top, so it needs no SVG and no canvas; change –p and the number inside to update it. It is exposed as role=”progressbar” with aria-valuenow, so the percentage is announced properly. Continue course is a link, not a button, and it is a stretched link: its ::after covers the card, so clicking anywhere on the card continues the course, while assistive technology still finds exactly one link. The card lifts slightly on hover. Use it in course catalogues, dashboards and resume-learning rows. The Bootstrap version builds it from .card, .badge and .btn with .stretched-link; the Tailwind version writes the conic gradient as an arbitrary background that reads the same –p variable.
What’s included
- Conic-gradient progress ring set by one --p variable
- Ring exposed as role="progressbar" with its value
- Whole card clickable through one stretched link
- Up next panel for the following lesson
- Hover lift that is removed under reduced motion
Accessibility
The course title is an h2, the ring is a progressbar named Course progress with aria-valuenow, and the card has a single link, Continue course, whose click area is stretched over the card. Keyboard focus on that link draws a 2px indigo ring around the whole card. The grey text was darkened to meet 4.5:1, and the hover lift and shadow transitions are switched off under prefers-reduced-motion.
Customise it
Change --accent for the ring, play icon and button colour, and --p plus the label and aria-valuenow for progress. The cover is one linear-gradient on .cover; in Tailwind it is the bg-[linear-gradient(...)] class on the cover div.




















