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