Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Workout Log Task List Block for React

A strength session in Warm-up, Main set and Cool-down with a set chip per set, muscle badges, a derived kilograms-lifted total and a rest timer that starts when you press Start.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Log a lifting session as you go, with this workout checklist block for React with Base UI. Three bands hold the exercises, each with its plan ("3 × 5 at 80 kg"), muscle-group Badges and one chip per set that you press when the set is finished. Pressing a set sets the Timer in the Rest band to that exercise's rest and says so; it counts down only when you press Start, can be paused and skipped, and runs one rest at a time. An exercise shows Done when every set is ticked. A Progress bar counts the sets, and the volume ("800 kg lifted") is worked out from the sets you ticked, reps times kilograms. Guides rule the bands. For fitness apps, coaching tools and any plan made of repeated sets.

FAQ

How is the volume worked out?

For each exercise measured in reps, it multiplies the ticked sets by the reps and the kilograms; bodyweight and timed holds add nothing. It is derived from the ticks, never typed, so unticking a set lowers it.

When does the rest timer start?

Only when you press Start rest. Ticking a set just sets the timer to that exercise's rest and announces it. Pausing, resuming and skipping are separate buttons, and the status line speaks when a rest is set, started, paused, skipped or done, not every second. Exercises with no rest, such as the stretch, say so instead.

How do I change the plan?

Edit EXERCISES. Each has a section, a set count, reps (or seconds with unit: "sec"), kilograms, a rest in seconds and its muscles. Add a section to SECTIONS for a new band.

What stays local, and how do I save for real?

Ticks and the timer live on the page and reset on reload. Nothing is stored. In your app save each tick from tick as a logged set with its weight and time.

How does it look on a phone?

Set chips wrap onto a second line inside each exercise, the Rest band keeps its height, and the counts sit above the bar.