Education
Professional Development Card - Staff Training
Track teacher professional development and training progress. Monitor staff development and certification requirements.
Professional Development Card
The Professional Development Card displays professional development hours completed toward certification requirements with progress tracking.
Preview
Installation
npx shadcn@latest add https://vectormotion.vercel.app/registry/professional-dev-card.jsonProfessional Development Card
'use client'import React from 'react';import { Award } from 'lucide-react';import { motion } from 'motion/react';import { clsx, type ClassValue } from "clsx";import { twMerge } from "tailwind-merge";import { ResponsiveContainer, RadialBarChart, RadialBar, Tooltip } from 'recharts';function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs));}interface DevData { name: string; hours: number; fill: string; [key: string]: any;}interface ProfessionalDevCardProps { className?: string; title?: string; subtitle?: string; deadline?: string; data?: DevData[];}const DEFAULT_DATA: DevData[] = [ { name: 'Completed', hours: 24, fill: '#f97316' },];const DEFAULT_TITLE = "PD Hours";const DEFAULT_SUBTITLE = "Certification";const DEFAULT_DEADLINE = "Deadline: Dec 31";export const ProfessionalDevCard: React.FC<ProfessionalDevCardProps> = ({ className = "", title = DEFAULT_TITLE, subtitle = DEFAULT_SUBTITLE, deadline = DEFAULT_DEADLINE, data = DEFAULT_DATA,}) => { return ( <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.5, delay: 0.2 }} className={cn( "relative overflow-hidden rounded-2xl border border-border bg-card text-card-foreground shadow-sm transition-all hover:border-orange-300 dark:hover:border-orange-700 hover:shadow-md flex flex-col h-full", className )} > <div className="p-5 flex flex-col h-full relative z-10"> <div className="mb-4 flex items-start justify-between"> <div> <h3 className="font-bold text-lg text-foreground"> {title} </h3> <p className="text-sm text-muted-foreground font-medium"> {subtitle} </p> </div> <div className="rounded-xl bg-orange-500/10 p-2.5 text-orange-500 dark:text-orange-400 flex items-center justify-center ring-1 ring-orange-100 dark:ring-orange-800"> <Award className="h-5 w-5" /> </div> </div> <div className="flex-1 w-full min-h-[120px] relative"> <ResponsiveContainer width="100%" height="100%"> <RadialBarChart cx="50%" cy="50%" innerRadius="70%" outerRadius="100%" barSize={10} data={data} startAngle={90} endAngle={-200} /> </ResponsiveContainer> <div className="text-center text-xs text-muted-foreground">{deadline}</div> </div> </div> </motion.div> );};Usage
This component helps educators track their professional development progress toward certification and continuing education requirements.
Prop
Type