Workshop Registration List
A grid of workshop cards, each with an instructor profile blurb (name, small avatar), a skill-level badge ('Beginner'/'Intermediate'/'Advanced'), a short list of prerequisites, and a capacity indicator (a small progress bar plus '32/40 seats filled' text). Perfect for hands-on conference workshops and training sessions.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its avatar, avatar-initials, badge dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/workshop-registration-list.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/event/event19.tsx instead.
Usage
The file also exports event19Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Event19, event19Demo } from "@/components/blocks/event/event19"; export default function Page() { return <Event19 {...event19Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | "Hands-on workshops" | Section heading. |
| description | string | undefined | Supporting paragraph under the heading. |
| workshops | Event19Workshop[] | none | List of workshop cards to render. |
| className | string | none | Extra classes for the outer section element. |
Types
type Event19Level = "Beginner" | "Intermediate" | "Advanced"; interface Event19Workshop { title: string; level: Event19Level; instructorName: string; instructorBlurb: string; instructorAvatar?: { src: string; alt: string }; prerequisites: string[]; seatsFilled: number; seatsTotal: number; }
Behavior notes
- The capacity bar's fill width is computed once from the static seatsFilled/seatsTotal props at render time; it is a plain styled div, not an interactive or animated control.
- seatsFilled/seatsTotal are static demo numbers, not a live registration count.
- Instructor avatars fall back to initials (via AvatarFallback/initialsFromName) when no avatar image is supplied or the image fails to load.
More Event Blocks
View all →conference-hero-with-image
Conference Hero with Image
Split hero with a featured photo, date badge, location, attendee stat, and dual CTAs.
minimal-event-hero
Minimal Event Hero
Centered, image-free hero with an oversized heading, date/location line, and two CTAs.
event-hero-with-ticket-pricing
Event Hero with Ticket Pricing
Centered hero with an early-bird price, a strikethrough original price, and a deadline note.
event-hero-with-social-proof
Event Hero with Social Proof
Hero with a heading, a 3-stat strip (attendees/speakers/countries), and a trusted-by company row.
personal-schedule-builder
Personal Schedule Builder
Interactive session picker that lets attendees build their own conference agenda.
team-discount-calculator
Team Discount Calculator
Live quantity stepper that applies tiered group discounts to a seat total.