Icons

Tabler Icons library with 4,000+ MIT-licensed icons. Use the Icon wrapper component for consistent sizing and styling.

Icon Sizing System

Use the Icon component with standardized size presets for consistent sizing across the application.

XS

16px

SM

20px

MD

24px

LG

28px

XL

32px

Navigation

Icons for navigation, menus, and directional cues

Home

Homepage navigation

Menu

Mobile menu toggle

ChevronRight

Next, expand

ChevronDown

Dropdown, collapse

ArrowRight

Forward, continue

ArrowUp

Scroll to top

ArrowLeft

Back, previous

ExternalLink

External links

Actions

Common action icons for buttons and controls

Plus

Add, create new

Edit

Edit, modify

Trash

Delete, remove

Check

Confirm, success

X

Close, cancel

Copy

Copy to clipboard

Share

Share content

Download

Download file

Upload

Upload file

Refresh

Reload, refresh

User & Account

Icons for user profiles and account management

User

User profile

Login

Sign in

Logout

Sign out

Settings

Settings, preferences

Lock

Locked, secure

Unlock

Unlocked, open

Communication

Icons for messaging and notifications

Mail

Email, messages

Bell

Notifications

Heart

Like, favorite

Star

Rating, bookmark

Media & Files

Icons for media content and file management

Photo

Images, gallery

Camera

Take photo

Video

Video content

Music

Audio content

File

Generic file

Folder

Directory, collection

PlayerPlay

Play media

PlayerPause

Pause media

Volume

Audio volume

Status & Feedback

Icons for status indicators and user feedback

CheckCircle

Success state

AlertCircle

Warning, alert

InfoCircle

Information

Eye

View, visible

EyeOff

Hidden, invisible

Utilities

General utility icons

Search

Search functionality

Filter

Filter, sort

DotsVertical

More options menu

Calendar

Date picker

Clock

Time, duration

Link

URL, hyperlink

Usage Examples

Basic Icon Component

import { Icon } from "@/components/ui/icon"
import { IconSearch, IconHeart, IconCheck } from "@tabler/icons-react"

// Basic usage
<Icon icon={IconSearch} size="md" className="text-accent" />
<Icon icon={IconHeart} size="md" className="text-error" />
<Icon icon={IconCheck} size="md" className="text-success" />

Icon Button Component

import { IconButton } from "@/components/ui/icon"
import { IconSettings, IconHeart, IconPlus } from "@tabler/icons-react"

// Icon buttons with variants
<IconButton icon={IconSettings} label="Settings" variant="default" />
<IconButton icon={IconHeart} label="Like" variant="ghost" />
<IconButton icon={IconPlus} label="Add" variant="accent" />

Icons in Buttons

// Icons with button text
<button className="inline-flex items-center gap-2 bg-accent
               hover:bg-accent-hover text-white px-6 py-3 rounded-lg">
  <Icon icon={IconDownload} size="sm" />
  <span className="font-semibold">Download</span>
</button>

<button className="inline-flex items-center gap-2 bg-surface-2
               hover:bg-surface-3 text-foreground px-6 py-3 rounded-lg border">
  <Icon icon={IconShare} size="sm" />
  <span className="font-semibold">Share</span>
</button>

Best Practices

Do This

  • Use the Icon wrapper for consistent sizing
  • Apply semantic color classes (text-accent, text-error)
  • Provide aria-label for icon-only buttons
  • Match icon size to surrounding text
  • Use IconButton for standalone icon buttons

Do not Do This

  • Avoid using Tabler Icons directly without wrapper
  • Do not use arbitrary icon sizes (size={23})
  • Never use icons without accessible labels
  • Avoid mixing icon libraries
  • Do not use overly complex or detailed icons

Full Icon Library

Browse all 4,000+ Tabler Icons with search and filtering on the official website.

Visit Tabler Icons →