--- name: shopify-polaris-icons description: Guide for using Shopify Polaris Icons in Shopify Apps. Covers icon usage patterns, accessibility, tone variants, and common icon categories for commerce applications. --- # Shopify Polaris Icons Skill Polaris Icons is Shopify's official icon library with **400+ carefully designed icons** focused on commerce and entrepreneurship. These icons are designed to work seamlessly with the Polaris Design System. ## Installation ```bash npm install @shopify/polaris-icons # or yarn add @shopify/polaris-icons ``` > [!NOTE] > The `@shopify/polaris-icons` package is typically installed alongside `@shopify/polaris`. If you're using Polaris, you likely already have access to these icons. ## Basic Usage ### With Polaris Icon Component (Recommended) ```jsx import { Icon } from '@shopify/polaris'; import { PlusCircleIcon } from '@shopify/polaris-icons'; function MyComponent() { return ; } ``` ### With Accessibility Label When an icon appears without accompanying text, **always** provide an accessibility label: ```jsx import { Icon } from '@shopify/polaris'; import { DeleteIcon } from '@shopify/polaris-icons'; function DeleteButton() { return ( ); } ``` ### Icon Tones Use the `tone` prop to set the icon color semantically: ```jsx import { Icon } from '@shopify/polaris'; import { AlertCircleIcon, CheckCircleIcon, InfoIcon } from '@shopify/polaris-icons'; // Available tones // Green - positive actions // Red - errors, destructive // Yellow - warnings // Orange - caution // Blue - information // Default text color // Muted/secondary // Link/action color // Inherit from parent // AI/Magic features // Emphasized content // Primary brand color ``` ## Icon Naming Convention All icons follow a consistent naming pattern: `{Name}Icon` ```jsx // Examples import { HomeIcon, // Navigation ProductIcon, // Commerce OrderIcon, // Orders CustomerIcon, // Customers SettingsIcon, // Settings PlusIcon, // Actions EditIcon, // Actions DeleteIcon, // Actions SearchIcon, // Search FilterIcon, // Filtering } from '@shopify/polaris-icons'; ``` ## Common Icon Categories ### Navigation & Layout ```jsx import { HomeIcon, MenuIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, ArrowLeftIcon, ArrowRightIcon, ExternalIcon, MaximizeIcon, MinimizeIcon, } from '@shopify/polaris-icons'; ``` ### Commerce & Products ```jsx import { ProductIcon, CollectionIcon, InventoryIcon, PriceTagIcon, // Renamed from TagIcon GiftCardIcon, DiscountIcon, CartIcon, CartAbandonedIcon, StorefrontIcon, } from '@shopify/polaris-icons'; ``` ### Orders & Fulfillment ```jsx import { OrderIcon, OrderDraftIcon, OrderFulfilledIcon, DeliveryIcon, ShippingLabelIcon, PackageIcon, ReturnIcon, RefundIcon, } from '@shopify/polaris-icons'; ``` ### Customers & Users ```jsx import { CustomerIcon, CustomerPlusIcon, PersonIcon, PersonAddIcon, TeamIcon, ProfileIcon, } from '@shopify/polaris-icons'; ``` ### Actions ```jsx import { PlusIcon, PlusCircleIcon, MinusIcon, MinusCircleIcon, EditIcon, DeleteIcon, DuplicateIcon, ArchiveIcon, SaveIcon, UndoIcon, RedoIcon, RefreshIcon, ImportIcon, ExportIcon, UploadIcon, DownloadIcon, } from '@shopify/polaris-icons'; ``` ### Status & Feedback ```jsx import { CheckIcon, CheckCircleIcon, XIcon, XCircleIcon, AlertCircleIcon, AlertTriangleIcon, InfoIcon, QuestionCircleIcon, ClockIcon, CalendarIcon, } from '@shopify/polaris-icons'; ``` ### Communication ```jsx import { EmailIcon, ChatIcon, NotificationIcon, BellIcon, PhoneIcon, SendIcon, NoteIcon, } from '@shopify/polaris-icons'; ``` ### Settings & Tools ```jsx import { SettingsIcon, ToolsIcon, KeyIcon, LockIcon, UnlockIcon, EyeIcon, HideIcon, FilterIcon, SortIcon, SearchIcon, CodeIcon, ApiIcon, } from '@shopify/polaris-icons'; ``` ### Analytics & Reports ```jsx import { AnalyticsIcon, ChartVerticalIcon, ChartHorizontalIcon, ReportIcon, TrendingUpIcon, TrendingDownIcon, } from '@shopify/polaris-icons'; ``` ### Media ```jsx import { ImageIcon, ImageAltIcon, VideoIcon, FileIcon, FolderIcon, AttachmentIcon, LinkIcon, } from '@shopify/polaris-icons'; ``` ### AI & Magic (Shopify Magic) ```jsx import { MagicIcon, SparklesIcon, // AI-generated content WandIcon, } from '@shopify/polaris-icons'; ``` ## Usage in Polaris Components ### Button with Icon ```jsx import { Button } from '@shopify/polaris'; import { PlusIcon, DeleteIcon } from '@shopify/polaris-icons'; // Icon before text // Destructive action // Icon-only button (requires accessibilityLabel) // No accessibilityLabel needed - "Add product" describes the action ``` 2. **Standalone Icons**: When an icon appears without text, always provide an `accessibilityLabel`: ```jsx