Icons
MemberPulse uses Lucide Icons - the same icon library used by shadcn/ui. Lucide is a beautiful and consistent icon library with 1000+ icons.Icon Basics
Icon Sizing
Icon Colours
Icons inherit the current text colour by default. Use these colour classes:Common Icons
Navigation Icons
Home
Home - Dashboard, main pageMenu
Menu - Navigation menuSettings
Settings - ConfigurationSearch
Search - Search functionalityBell
Bell - NotificationsUser
User - Profile, accountLog Out
LogOut - Sign outChevron
ChevronRight - NavigationAction Icons
Plus
Plus - Add, createPencil
Pencil - EditTrash
Trash2 - DeleteCopy
Copy - DuplicateDownload
Download - ExportUpload
Upload - ImportShare
Share2 - ShareExternal
ExternalLink - Open in new tabStatus Icons
Check
Check - Success, completeX
X - Close, errorAlert
AlertTriangle - WarningInfo
Info - InformationCircle Check
CheckCircle - VerifiedCircle X
XCircle - FailedLoader
Loader2 - Loading (animated)Clock
Clock - Pending, timeContent Icons
File
File - DocumentFile Text
FileText - Text documentImage
Image - PhotoVideo
Video - Video contentFolder
Folder - DirectoryLink
Link - URLMail - EmailPhone
Phone - ContactData Icons
Bar Chart
BarChart2 - StatisticsLine Chart
TrendingUp - TrendsPie Chart
PieChart - DistributionTable
Table - Data tableFilter
Filter - Filter dataSort
ArrowUpDown - SortCalendar
Calendar - Date pickerList
List - List viewMemberPulse Domain Icons
Member Management
Events
Learning & CPD
Payments & Plans
Icon Usage
In Buttons
In Navigation
Status Indicators
Icon Best Practices
Consistency
Consistency
- Use the same icon for the same concept throughout the app
- Maintain consistent icon sizes within contexts
- Keep icon weight consistent (outline vs filled)
Clarity
Clarity
- Icons should enhance, not replace text labels
- Use tooltips for icon-only buttons
- Choose recognizable, standard icons
Accessibility
Accessibility
- Add
aria-labelfor icon-only buttons - Ensure icons have sufficient contrast
- Don’t rely on colour alone for meaning
Performance
Performance
- Import icons individually, not the entire library
- Use tree-shaking for production builds
- Consider SVG sprites for heavily-used icons