shopify-polaris-icons

Shopify Polaris Icons Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "shopify-polaris-icons" with this command: npx skills add toilahuongg/shopify-agents-kit/toilahuongg-shopify-agents-kit-shopify-polaris-icons

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

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)

import { Icon } from '@shopify/polaris'; import { PlusCircleIcon } from '@shopify/polaris-icons';

function MyComponent() { return <Icon source={PlusCircleIcon} />; }

With Accessibility Label

When an icon appears without accompanying text, always provide an accessibility label:

import { Icon } from '@shopify/polaris'; import { DeleteIcon } from '@shopify/polaris-icons';

function DeleteButton() { return ( <button> <Icon source={DeleteIcon} accessibilityLabel="Delete item" /> </button> ); }

Icon Tones

Use the tone prop to set the icon color semantically:

import { Icon } from '@shopify/polaris'; import { AlertCircleIcon, CheckCircleIcon, InfoIcon } from '@shopify/polaris-icons';

// Available tones <Icon source={CheckCircleIcon} tone="success" /> // Green - positive actions <Icon source={AlertCircleIcon} tone="critical" /> // Red - errors, destructive <Icon source={AlertCircleIcon} tone="warning" /> // Yellow - warnings <Icon source={AlertCircleIcon} tone="caution" /> // Orange - caution <Icon source={InfoIcon} tone="info" /> // Blue - information <Icon source={InfoIcon} tone="base" /> // Default text color <Icon source={InfoIcon} tone="subdued" /> // Muted/secondary <Icon source={InfoIcon} tone="interactive" /> // Link/action color <Icon source={InfoIcon} tone="inherit" /> // Inherit from parent <Icon source={InfoIcon} tone="magic" /> // AI/Magic features <Icon source={InfoIcon} tone="emphasis" /> // Emphasized content <Icon source={InfoIcon} tone="primary" /> // Primary brand color

Icon Naming Convention

All icons follow a consistent naming pattern: {Name}Icon

// 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

import { HomeIcon, MenuIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, ArrowLeftIcon, ArrowRightIcon, ExternalIcon, MaximizeIcon, MinimizeIcon, } from '@shopify/polaris-icons';

Commerce & Products

import { ProductIcon, CollectionIcon, InventoryIcon, PriceTagIcon, // Renamed from TagIcon GiftCardIcon, DiscountIcon, CartIcon, CartAbandonedIcon, StorefrontIcon, } from '@shopify/polaris-icons';

Orders & Fulfillment

import { OrderIcon, OrderDraftIcon, OrderFulfilledIcon, DeliveryIcon, ShippingLabelIcon, PackageIcon, ReturnIcon, RefundIcon, } from '@shopify/polaris-icons';

Customers & Users

import { CustomerIcon, CustomerPlusIcon, PersonIcon, PersonAddIcon, TeamIcon, ProfileIcon, } from '@shopify/polaris-icons';

Actions

import { PlusIcon, PlusCircleIcon, MinusIcon, MinusCircleIcon, EditIcon, DeleteIcon, DuplicateIcon, ArchiveIcon, SaveIcon, UndoIcon, RedoIcon, RefreshIcon, ImportIcon, ExportIcon, UploadIcon, DownloadIcon, } from '@shopify/polaris-icons';

Status & Feedback

import { CheckIcon, CheckCircleIcon, XIcon, XCircleIcon, AlertCircleIcon, AlertTriangleIcon, InfoIcon, QuestionCircleIcon, ClockIcon, CalendarIcon, } from '@shopify/polaris-icons';

Communication

import { EmailIcon, ChatIcon, NotificationIcon, BellIcon, PhoneIcon, SendIcon, NoteIcon, } from '@shopify/polaris-icons';

Settings & Tools

import { SettingsIcon, ToolsIcon, KeyIcon, LockIcon, UnlockIcon, EyeIcon, HideIcon, FilterIcon, SortIcon, SearchIcon, CodeIcon, ApiIcon, } from '@shopify/polaris-icons';

Analytics & Reports

import { AnalyticsIcon, ChartVerticalIcon, ChartHorizontalIcon, ReportIcon, TrendingUpIcon, TrendingDownIcon, } from '@shopify/polaris-icons';

Media

import { ImageIcon, ImageAltIcon, VideoIcon, FileIcon, FolderIcon, AttachmentIcon, LinkIcon, } from '@shopify/polaris-icons';

AI & Magic (Shopify Magic)

import { MagicIcon, SparklesIcon, // AI-generated content WandIcon, } from '@shopify/polaris-icons';

Usage in Polaris Components

Button with Icon

import { Button } from '@shopify/polaris'; import { PlusIcon, DeleteIcon } from '@shopify/polaris-icons';

// Icon before text <Button icon={PlusIcon}>Add product</Button>

// Destructive action <Button icon={DeleteIcon} variant="primary" tone="critical"> Delete </Button>

// Icon-only button (requires accessibilityLabel) <Button icon={EditIcon} accessibilityLabel="Edit product" />

TextField with Icon

import { TextField } from '@shopify/polaris'; import { SearchIcon } from '@shopify/polaris-icons';

<TextField label="Search" prefix={<Icon source={SearchIcon} />} placeholder="Search products..." />

Banner with Icon

import { Banner, Icon } from '@shopify/polaris'; import { AlertCircleIcon } from '@shopify/polaris-icons';

<Banner title="Warning" tone="warning" icon={AlertCircleIcon}

Please review your settings. </Banner>

Navigation Item

import { Navigation } from '@shopify/polaris'; import { HomeIcon, OrderIcon, ProductIcon } from '@shopify/polaris-icons';

<Navigation location="/"> <Navigation.Section items={[ { label: 'Home', icon: HomeIcon, url: '/' }, { label: 'Orders', icon: OrderIcon, url: '/orders' }, { label: 'Products', icon: ProductIcon, url: '/products' }, ]} /> </Navigation>

Accessibility Best Practices

Decorative Icons: When an icon accompanies text that already describes the action, the icon is decorative and doesn't need a label:

<Button icon={PlusIcon}>Add product</Button> // No accessibilityLabel needed - "Add product" describes the action

Standalone Icons: When an icon appears without text, always provide an accessibilityLabel :

<Button icon={EditIcon} accessibilityLabel="Edit product" />

Status Icons: For icons that convey important status information:

<Icon source={CheckCircleIcon} tone="success" accessibilityLabel="Completed" />

Anti-Patterns to Avoid

  • DO NOT use icons without context. Pair with text or provide accessibility labels.

  • DO NOT use non-Polaris icons in a Polaris app. This breaks visual consistency.

  • DO NOT manually set icon colors with CSS. Use the tone prop instead.

  • DO NOT resize icons using CSS. Polaris icons are designed for a 20x20 viewport.

  • DO NOT use icons for decoration only. Each icon should have semantic meaning.

References

  • Icon Categories - Complete categorized list of all Polaris icons

  • Migration Guide - Guide for migrating from older icon versions

External Resources

  • Polaris Icons Browser - Search and browse all icons

  • Icon Component Docs - Official component documentation

  • NPM Package - Package information and changelog

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

shopify-polaris-viz

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

shopify-api

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

shopify-extensions

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

email-template-design

No summary provided by upstream source.

Repository SourceNeeds Review