Feedback
Feedback components tell users what is happening in the system: what succeeded, what failed, what is loading. Status badges (chips) show state at a glance with color (green = active, yellow = paused, red = error). Empty states show when there is no data yet, and always include a clear next action. Modals interrupt the user for a focused task. Use them sparingly, and always give users a way to cancel. Accordions hide secondary content until requested. Useful for FAQs or settings groups.
Interactive Preview
Status Badge — Workflow status chips
Props
status
Status Badges
Click any badge to inspect its specs.
Background
#DCFCE7successLightText
#15803DsuccessDarkMUI prop
color="success"Use for
Workflows currently running, accepted studentsHeight
24pxBorder radius
9999pxradiusFullFont size
12pxFont weight
500Padding-x
10pxMUI component
Chipsize="small"Empty State
No workflows yet
Create your first workflow to get started.
No workflows yet
Create your first workflow to get started.
Modal / Dialog
Create new process
Width
440px640pxBorder radius
10pxradiusLgShadow
0 10px 25px rgba(0,0,0,0.15)shadow.modalScrim
rgba(0,0,0,0.45)Title font
18px600Actions padding
16px 24pxActions gap
8pxDecision Modal
Specialized modal used by the Admin Approvals pattern. Captures an Approve or Decline choice plus an optional comment. Used for single-row and bulk decisions.
Review application
Jane Doe
jane@email.com
Application: APP-2024-002, Canada, 1992
Container
DialogMUI modal, max-width smHeader
title + close icon1px divider belowSubject summary
name + email + key contextfrom row dataChoice input
RadioGroupApprove / DeclineComment field
TextField multilineoptionalSubmit
primary containedCancel
outlinedDisabled state
Submit disabled until choice pickedBulk Action Toolbar
Slides into a table toolbar when one or more rows are selected. Shows the selected count and exposes batch actions. Used by Admin Approvals and any future tables that need bulk operations.
Trigger
1+ rows selected via checkboxContainer
Stack inside table toolbaraction.hover backgroundSelected count
Chip with onDeleteclick X to clearPrimary action
contained successApproveDestructive action
outlined errorDeclineLayout
stacks on xsrow from smVisibility
hidden when nothing selectedProcess Card
A clickable card showing a process and its pending count. Used in the Admin Approvals queue and reusable anywhere a list of processes needs a count badge.
Admissions
Application Review
12
Mentoring
Mentor Approval
0
Container
Paper1px border, radiusLg, overflow hiddenColor stripe
4px topprocess accent colorTitle
18px600 weightSubtitle
14pxgray500, decision nameCount badge
36px circlestripe color, white textActive
background.paperhover: primary borderEmpty (zero)
action.hover bgopacity 0.7, gray400 stripeOn click
Navigate to detail screen for that processAccordion
Collapsible sections for progressive disclosure. Used for FAQ sections, settings groups, and any content that benefits from show/hide behavior.
Navigate to the Processes page and click "New Process". Fill in the name and description, then add workflow steps.
Yes. Open the workflow editor, click the 3-dot menu in the header, and select "Duplicate workflow".
Border
1px solidgray200Border radius
8pxradiusMdShadow
noneDivider line
hidden (::before removed)Summary font
16px600 weightExpanded margin
0 (no spacing change on expand)Expand icon
ExpandMoreIconCode
<Chip label="Active" color="success" size="small" />
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
<DialogTitle>
Create new process
<IconButton onClick={handleClose} sx={{ position: 'absolute', right: 8, top: 8 }}>
<CloseIcon />
</IconButton>
</DialogTitle>
<DialogContent>
<TextField label="Process name" fullWidth />
<TextField label="Description" fullWidth multiline minRows={3} />
</DialogContent>
<DialogActions>
<Button variant="outlined" onClick={handleClose}>Cancel</Button>
<Button variant="contained" onClick={handleCreate}>Create process</Button>
</DialogActions>
</Dialog><Accordion>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography fontWeight={600}>Section title</Typography>
</AccordionSummary>
<AccordionDetails>
<Typography variant="body2" color="text.secondary">
Collapsible content here.
</Typography>
</AccordionDetails>
</Accordion><Box textAlign="center" py={6}>
<InboxIcon sx={{ fontSize: 48, color: 'text.disabled', mb: 2 }} />
<Typography variant="h5" mb={1}>No workflows yet</Typography>
<Typography variant="body2" color="text.secondary" mb={3}>
Create your first workflow to get started.
</Typography>
<Button variant="contained" startIcon={<AddIcon />}>
New workflow
</Button>
</Box>