Skip to main content

Installation

    Usage

    All Gaia UI components use Hugeicons through this wrapper.
    import { HugeiconsIcon, Search01Icon, ChevronRightIcon } from "@/components/icons";
    
    export default function Example() {
      return (
        <div className="flex gap-2">
          <HugeiconsIcon icon={Search01Icon} size={20} />
          <HugeiconsIcon icon={ChevronRightIcon} size={16} />
        </div>
      );
    }
    

    Features

    Consistent API

    All icons use the same component:
    <HugeiconsIcon 
      icon={IconName} 
      size={24}              // Size in pixels
      strokeWidth={1.5}      // Optional stroke width
      className="text-blue-500"  // Optional styling
    />
    

    Size Control

    <HugeiconsIcon icon={HomeIcon} size={16} />  {/* Small */}
    <HugeiconsIcon icon={HomeIcon} size={20} />  {/* Medium */}
    <HugeiconsIcon icon={HomeIcon} size={24} />  {/* Large */}
    <HugeiconsIcon icon={HomeIcon} size={32} />  {/* Extra Large */}
    

    Stroke Width

    Adjust the icon weight:
    <HugeiconsIcon icon={BoldIcon} strokeWidth={1} />    {/* Thin */}
    <HugeiconsIcon icon={BoldIcon} strokeWidth={1.5} />  {/* Regular */}
    <HugeiconsIcon icon={BoldIcon} strokeWidth={2} />    {/* Medium */}
    <HugeiconsIcon icon={BoldIcon} strokeWidth={2.5} />  {/* Bold */}
    

    Custom Styling

    <HugeiconsIcon 
      icon={HeartIcon} 
      size={24}
      className="text-red-500 hover:text-red-600 transition-colors"
    />
    

    Upgrading to Pro

    To access 30,000+ premium icons:
    1. Purchase Hugeicons Pro
    2. Install the Pro package:
    npm install @hugeicons/core-icons
    
    1. Update the icons wrapper:
    // registry/new-york/ui/icons.tsx
    export * from "@hugeicons/core-icons";  // Changed from core-free-icons
    export { HugeiconsIcon } from "@hugeicons/react";
    
    1. Restart your dev server
    All components will automatically use Pro icons!

    Commonly Used Icons

    Here are icons frequently used in Gaia UI:
    import {
      ChevronRightIcon,
      ChevronLeftIcon,
      ChevronDownIcon,
      ChevronUpIcon,
      ArrowRight01Icon,
      Menu01Icon,
      Cancel01Icon,
    } from "@/components/icons";
    

    Actions

    import {
      Copy01Icon,
      Download01Icon,
      Upload01Icon,
      Tick02Icon,
      Delete02Icon,
      Edit02Icon,
    } from "@/components/icons";
    

    Media

    import {
      Image01Icon,
      File01Icon,
      Video01Icon,
      MusicNote01Icon,
      DocumentCodeIcon,
    } from "@/components/icons";
    

    UI Elements

    import {
      Search01Icon,
      Filter01Icon,
      Settings01Icon,
      Loading03Icon,
      AlertCircleIcon,
      CheckmarkCircle02Icon,
    } from "@/components/icons";
    

    Communication

    import {
      Mail01Icon,
      MessageIcon,
      NotificationIcon,
      Share01Icon,
    } from "@/components/icons";
    

    Icon Naming Convention

    Hugeicons follow a consistent naming pattern:
    • Base name: Describes the icon (e.g., Arrow, Search, File)
    • Variant number: Multiple versions of similar icons (e.g., 01, 02, 03)
    • Suffix: Icon at the end
    Examples:
    • Search01Icon, Search02Icon
    • Arrow01Icon, Arrow02Icon
    • Home01Icon, Home02Icon

    Finding Icons

    To find available icons:
    1. Browse the collection: Visit hugeicons.com
    2. Search in your IDE: Type Icon and use autocomplete
    3. Check the docs: See the full list in @hugeicons/core-free-icons

    Props

    Best Practices

    Size Guidelines

    • 16px: Inline text icons, compact UIs
    • 20px: Buttons, form inputs, navigation
    • 24px: Main UI elements, cards, lists
    • 32px+: Hero sections, empty states, large CTAs

    Color Usage

    Icons inherit text color by default:
    <div className="text-zinc-500">
      <HugeiconsIcon icon={InfoIcon} size={20} />
      {/* Icon will be zinc-500 */}
    </div>
    
    <div className="text-blue-600">
      <HugeiconsIcon icon={LinkIcon} size={20} />
      {/* Icon will be blue-600 */}
    </div>
    

    Accessibility

    Add labels for standalone icons:
    <button aria-label="Search">
      <HugeiconsIcon icon={Search01Icon} size={20} aria-hidden="true" />
    </button>
    
    <button>
      <HugeiconsIcon icon={Delete02Icon} size={16} aria-hidden="true" />
      <span>Delete</span>
    </button>
    

    Performance

    The icons wrapper enables tree-shaking:
    • Only imported icons are bundled
    • No impact on bundle size for unused icons
    • Minimal runtime overhead

    TypeScript Support

    Full TypeScript support out of the box:
    import { HugeiconsIcon, Search01Icon } from "@/components/icons";
    import type { HugeiconsIconProps } from "@hugeicons/react";
    
    const MyIcon: React.FC<HugeiconsIconProps> = (props) => {
      return <HugeiconsIcon icon={Search01Icon} {...props} />;
    };
    

    Build docs developers (and LLMs) love