Magoo Component UI logo Magoo Component UI
← Catalog

Challenge Card

challenge-card molecule experimental

A fitness-challenge card with an optional cover image, meta row, and a join button that toggles to a joined state.

Also in: Cards

The width preview needs a screen wider than the chosen width — use a larger device (or a desktop browser) to see the desktop and tablet layouts.

Default

30-Day Plank Challenge

Build core strength with a daily plank that grows a little longer each day.

1,240 joined 30 days
Joined

10K Steps a Day

Hit ten thousand steps every day for two weeks and keep the momentum going.

8,530 joined 14 days

Props

NameTypeReq
title string ✓
description string
image string
participants string
days string
joined boolean

Related components

How to use

The join state lives on the button's data-joined attribute; the template's data-[joined=true]:* and group-data-[joined=true]/jc:* variants swap the label and colour with no JavaScript, so the static render and screenshots honour the joined prop. behavior.js flips data-joined on click, updates aria-pressed, and dispatches a bubbling challenge:join CustomEvent (detail { joined }) for a host to persist. Images use a /stock path in the catalog.

Use cases

cardgrid WCAG AA SEO 40 dir: both ai-generated