Icons


#Overview

NativePHP EDGE components use a smart icon mapping system that automatically converts icon names to platform-specific icons. On iOS, icons render as SF Symbols, while Android uses Material Icons.

You don't need to worry about the differences! Just use a single, consistent icon name in your components, and the EDGE handles the platform translation automatically.

#How It Works

The icon system uses a four-tier resolution strategy:

  1. Direct Platform Icons - On iOS, if the name contains a . it's used as a direct SF Symbol path (e.g., car.side.fill). On Android, any Material Icon ligature name works directly (e.g., shopping_cart).
  2. Manual Mapping - Explicit mappings for common icons and aliases (e.g., home, settings, user)
  3. Smart Fallback - Attempts to auto-convert unmapped icon names to platform equivalents
  4. Default Fallback - Uses a circle icon if no match is found

This approach means you can use intuitive icon names for common cases, leverage direct platform icons for advanced use cases, and get consistent results across iOS and Android.

#Platform Differences

#iOS (SF Symbols)

On iOS, icons render as SF Symbols. Manual mappings convert common icon names to their SF Symbol equivalents. For example:

  • homehouse.fill
  • settingsgearshape.fill
  • checkcheckmark.circle.fill

If an icon name isn't manually mapped, the system attempts to find a matching SF Symbol by trying variations like .fill, .circle.fill, and .square.fill.

#Android (Material Icons)

On Android, icons render using a lightweight font-based approach that supports the entire Material Icons library. You can use any Material Icon by its ligature name directly (e.g., shopping_cart, qr_code_2).

Manual mappings provide convenient aliases for common icon names. For example:

  • homehome
  • settingssettings
  • checkcheck
  • cartshopping_cart

#Direct Platform Icons

For advanced use cases, you can use platform-specific icon names directly.

#iOS SF Symbols

On iOS, include a . in the icon name to use an SF Symbol path directly:

Copied!
<native:bottom-nav-item icon="car.side.fill" ... />
<native:bottom-nav-item icon="flashlight.on.fill" ... />
<native:bottom-nav-item icon="figure.walk" ... />

#Android Material Icons

On Android, use any Material Icon ligature name (with underscores):

Copied!
<native:bottom-nav-item icon="qr_code_2" ... />
<native:bottom-nav-item icon="flashlight_on" ... />
<native:bottom-nav-item icon="space_dashboard" ... />

#Platform-Specific Icons

When you need different icons on each platform, use the System facade:

Copied!
<native:bottom-nav-item
id="flashlight"
icon="{{ \Native\Mobile\Facades\System::isIos() ? 'flashlight.on.fill' : 'flashlight_on' }}"
label="Flashlight"
url="/flashlight"
/>

This is useful when the mapped icon doesn't match your needs or you want to use platform-specific variants.

#Basic Usage

Use the icon attribute in any EDGE component that supports icons, simply passing the name of the icon you wish to use:

Copied!
<native:bottom-nav-item
id="home"
icon="home"
label="Home"
url="/home"
/>

#Icon Reference

All icons listed here are manually mapped and guaranteed to work consistently across iOS and Android.

Icon Description
dashboard Grid-style dashboard view
home House/home screen
menu Three-line hamburger menu
settings Gear/settings
account, profile, user User account or profile
person Single person
people, connections, contacts Multiple people
group, groups Group of people

#Business & Commerce

Icon Description
orders, receipt Receipt or order
cart, shopping Shopping cart
shop, store Store or storefront
products, inventory Products or inventory

#Charts & Data

Icon Description
chart, barchart Bar chart
analytics Analytics/analysis
summary, report, assessment Summary or report

#Time & Scheduling

Icon Description
clock, schedule, time Clock or time
calendar Calendar
history History or recent

#Actions

Icon Description
add, plus Add or create new
edit Edit or modify
delete Delete or remove
save Save
search Search
filter Filter
refresh Refresh or reload
share Share
download Download
upload Upload

#Communication

Icon Description
notifications Notifications or alerts
message Message or SMS
email, mail Email
chat Chat or conversation
phone Phone or call
Icon Description
back Back or previous
forward Forward or next
up Up arrow
down Down arrow

#Status

Icon Description
check, done Check or complete
close Close or dismiss
warning Warning
error Error
info Information

#Authentication

Icon Description
login Login
logout, exit Logout or exit
lock Locked
unlock Unlocked

#Content

Icon Description
favorite, heart Favorite or like
star Star or rating
bookmark Bookmark
image, photo Image or photo
image-plus Add photo
video Video
folder Folder
folder-lock Locked folder
file, description Document or file
book-open Book
newspaper, news, article News or article

#Device & Hardware

Icon Description
camera Camera
qr, qrcode, qr-code QR code scanner
device-phone-mobile, smartphone Mobile phone
vibrate Vibration
bell Bell or notification
finger-print, fingerprint Fingerprint or biometric
light-bulb, lightbulb, flashlight Light bulb or flashlight
map, location Map or location
globe-alt, globe, web Globe or web
bolt, flash Lightning bolt or flash

#Audio & Volume

Icon Description
speaker, speaker-wave Speaker with sound
volume-up Volume up
volume-down Volume down
volume-mute, mute Muted
volume-off Volume off
music, audio, music-note Music or audio
microphone, mic Microphone

#Miscellaneous

Icon Description
help Help or question
about, information-circle Information or about
more More options
list List view
visibility Visible
visibility_off Hidden

#Best Practices

Icons have meaning and most users will associate the visual cues of icons and the underlying behavior or section of an application across apps. So try to maintain consistent use of icons to help guide users through your app.

  • Stay consistent - Use the same icon name throughout your app for the same action
  • Test on both platforms - If you use auto-converted icons, verify they appear correctly on iOS and Android

#Finding Icons

#Android Material Icons

Browse the complete Material Icons library at Google Fonts Icons. Use the icon name exactly as shown (with underscores, e.g., shopping_cart, qr_code_2).

#iOS SF Symbols

Browse SF Symbols using this community Figma file. While not comprehensive, it's a great starting point for discovering available symbols.

For the complete library, download the SF Symbols app for macOS.