Cards
Cards group related content into distinct, scannable containers: dashboard widgets, list items, or feature highlights. They give visual weight to content and show users what belongs together. The CTD Learns App has four Card variants defined in the theme: featureCard (dashboard tiles with CTAs), listCard (row items with actions), courseMaterials (content pages), and studentDashboard (data widgets). Always use a theme variant. Don't create one-off card styles in individual components.
Interactive Preview
Card — All theme variants
Workflows
Create and manage automated process workflows.
Props
variant
title
body
Variants
Calendar
Schedule and manage events, deadlines, and important dates across all CTD Learns activities.
variant="featureCard"Onboarding
variant="listCard"Introduction To Databases And SQL
Learn the fundamentals of relational databases, SQL queries, and data management techniques essential for modern application development.
variant="courseMaterials"Upcoming Deadlines
Assignment 3
Apr 10
Final Project
Apr 25
variant="studentDashboard"Card Specs
Background
#FFFFFFsurfaceLight#1E1E20surfaceDarkBorder
1px solid #E2E2E4gray200Border radius
10pxradiusLgShadow
0 1px 3px rgba(0,0,0,0.08)shadow.cardInternal padding
24pxspacing.cardPaddingCode
<Card variant="featureCard">
<CardContent>
<Stack direction="row" alignItems="center" gap={1.5} mb={2}>
<CalendarIcon sx={{ color: 'primary.main' }} />
<Typography variant="h4">Calendar</Typography>
</Stack>
<Typography variant="body2" color="text.secondary" mb={3}>
{description}
</Typography>
<Button variant="contained" fullWidth>
View calendar
</Button>
</CardContent>
</Card><Card variant="listCard">
<CardContent>
<Typography variant="h5">Onboarding</Typography>
<Chip label="Active" color="success" size="small" />
<Button variant="contained" size="small">Manage</Button>
</CardContent>
</Card><Card variant="courseMaterials">
<CardContent>
<Typography variant="h5" color="primary.main">
Introduction To Databases And SQL
</Typography>
<Typography variant="body2">{description}</Typography>
</CardContent>
</Card>