A massive collection of icon libraries for Android and Compose Multiplatform projects in Android Vector Drawables and Compose Image Vector format.
The reason for this split is that some libraries are huge. The Material Icons library alone contains over 2,000 icons. Multiply this by 5 styles. You already have 10,000 Kotlin files added to your build.
This can significantly affect your build setup. This is the reason why Google decided to discontinue the original Material Icons library.
I have been personally using a library with a single style (Lucide β 1.6k icons) in my Compose Multiplatform apps for months now. I haven't noticed any performance hits while using the JVM target on my M3 Pro Max.
Every library also comes in two variants: Android and Compose Multiplatform.
The Android variant bundles icons as Android Vector Drawables (XML) which you can access via the R.drawable class. The
CMP variant adds icons as Compose Image Vectors, as extension to the respective object (i.e. Lucide.Icon).
This is more for a preference perspective, than performance. Android Studio gives you XML previews out of the box in the autocomplete, while the Image Vectors don't.
After adding the desired icon library dependency to your build.gradle.kts, you can use the icons in your Android app via R:
Icon(
painterResource(R.drawable.library_ic_icon),
contentDescription = null
)Replace library_ic_icon with the specific drawable resource name from the library.
After adding the desired icon library dependency, you can use the icons in your Compose Multiplatform app:
Image(Library.Icon, contentDescription = null)Replace Library with the specific object name from the library.
| Icon Library | Dependency | Preview |
|---|---|---|
| Bootstrap | Link | π |
| Codicons | Link | π |
| Feather | Link | π |
| Font Awesome | Link | π |
| Heroicons | Link | π |
| Lucide | Link | π |
| Material Icons | Link | π |
| Material Symbols | Link | π |
| Radix | Link | π |
| Tabler | Link | π |
Android
dependencies {
implementation("com.composables:icons-bootstrap-fill-android:2.2.0")
implementation("com.composables:icons-bootstrap-outline-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-bootstrap-fill-cmp:2.2.0")
implementation("com.composables:icons-bootstrap-outline-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-codicons-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-codicons-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-feather-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-feather-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-font-awesome-solid-android:2.2.0")
implementation("com.composables:icons-font-awesome-regular-android:2.2.0")
implementation("com.composables:icons-font-awesome-brands-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-font-awesome-solid-cmp:2.2.0")
implementation("com.composables:icons-font-awesome-regular-cmp:2.2.0")
implementation("com.composables:icons-font-awesome-brands-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-heroicons-outline-android:2.2.0")
implementation("com.composables:icons-heroicons-solid-android:2.2.0")
implementation("com.composables:icons-heroicons-mini-android:2.2.0")
implementation("com.composables:icons-heroicons-micro-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-heroicons-outline-cmp:2.2.0")
implementation("com.composables:icons-heroicons-solid-cmp:2.2.0")
implementation("com.composables:icons-heroicons-mini-cmp:2.2.0")
implementation("com.composables:icons-heroicons-micro-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-lucide-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-lucide-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-material-icons-filled-android:2.2.0")
implementation("com.composables:icons-material-icons-outlined-android:2.2.0")
implementation("com.composables:icons-material-icons-rounded-android:2.2.0")
implementation("com.composables:icons-material-icons-sharp-android:2.2.0")
implementation("com.composables:icons-material-icons-twotone-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-material-icons-filled-cmp:2.2.0")
implementation("com.composables:icons-material-icons-outlined-cmp:2.2.0")
implementation("com.composables:icons-material-icons-rounded-cmp:2.2.0")
implementation("com.composables:icons-material-icons-sharp-cmp:2.2.0")
implementation("com.composables:icons-material-icons-twotone-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-material-symbols-outlined-android:2.2.0")
implementation("com.composables:icons-material-symbols-rounded-android:2.2.0")
implementation("com.composables:icons-material-symbols-sharp-android:2.2.0")
implementation("com.composables:icons-material-symbols-outlined-filled-android:2.2.0")
implementation("com.composables:icons-material-symbols-rounded-filled-android:2.2.0")
implementation("com.composables:icons-material-symbols-sharp-filled-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-material-symbols-outlined-cmp:2.2.0")
implementation("com.composables:icons-material-symbols-rounded-cmp:2.2.0")
implementation("com.composables:icons-material-symbols-sharp-cmp:2.2.0")
implementation("com.composables:icons-material-symbols-outlined-filled-cmp:2.2.0")
implementation("com.composables:icons-material-symbols-rounded-filled-cmp:2.2.0")
implementation("com.composables:icons-material-symbols-sharp-filled-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-radix-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-radix-cmp:2.2.0")
}Android
dependencies {
implementation("com.composables:icons-tabler-outline-android:2.2.0")
implementation("com.composables:icons-tabler-filled-android:2.2.0")
}Compose Multiplatform
dependencies {
implementation("com.composables:icons-tabler-outline-cmp:2.2.0")
implementation("com.composables:icons-tabler-filled-cmp:2.2.0")
}Visit Composables.com to pick from over 17,000 free icons in Vector Drawable, Image Vector or SVG format.
We are currently accepting contributions in the form of bug reports and feature & icons requests, in the form of Github issues.