Thrive Design System

Foundation

Icons

A consistent icon system that provides visual clarity and reinforces meaning across the interface.

Usage

Overview

The Thrive Design System uses Material Design Icons via the react-icons/md package as its primary icon set. These icons are used throughout components for actions, navigation, status indicators, and visual cues.

  • Icons provide visual anchors that help users quickly scan and understand interface elements.
  • All icons are rendered as inline SVGs for crisp rendering at any size.
  • Icons inherit the current text color by default, making them easy to theme.

Icon Sources

SourcePackageUsage
Material Designreact-icons/mdPrimary icon set for actions, navigation, and UI elements
Custom Icons@thrivecart/ui/iconsProduct-specific icons for branding and specialized features

Custom Product Icons

The design system includes a set of custom product icons for Thrive-specific features:

IconNameUsage
AutomationAutomationIconAutomation workflows
BuilderBuilderIconPage/funnel builder
CampaignCampaignDuotoneIconCampaign management
ChatbotChatbotIconChatbot features
ContactsContactsIconContact management
Content ManagerContentManagerIconContent management
DashboardDashboardIconDashboard views
MailMailIconEmail features
SettingsSettingsDuotoneIconSettings and configuration
SocialSocialIconSocial media features

Best Practices

  • Use icons consistently across similar actions and contexts.
  • Pair icons with text labels when the icon meaning may be ambiguous.
  • Use the Icon wrapper component for consistent sizing and alignment.
  • Maintain a 1:1 aspect ratio for all icons.
  • Use semantic color tokens for icon colors (e.g., text-icon, text-icon-primary).

When Not to Use

  • Avoid decorative icons that add no meaning or context.
  • Don't use icons as the sole means of conveying critical information without accessible text alternatives.
  • Don't mix icon sets inconsistently within the same interface section.

Sizing

Icons follow a consistent sizing scale that aligns with the component size system:

SizeDimensionsUse Case
xs12pxCompact elements, inline indicators
sm16pxSmall buttons, form fields, table cells
md20pxDefault size, most UI contexts
lg24pxProminent actions, headers
xl32pxFeature highlights, empty states

Color

Icons use semantic color tokens to ensure proper contrast and meaning:

TokenCSS VariableUsage
Default--color-iconStandard icon color
Light--color-icon-lightSubtle, secondary icons
Primary--color-icon-primaryPrimary action icons
Destructive--color-icon-destructiveDestructive action icons

Accessibility

  • Always provide aria-label or aria-hidden="true" on icon elements.
  • Icons used as interactive elements (icon buttons) must have accessible names.
  • Decorative icons should be hidden from screen readers with aria-hidden="true".
  • Ensure icon color contrast meets WCAG 2.1 AA standards (3:1 ratio for non-text elements).