Skip to content

composablehorizons/compose-icons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Compose Icons

A massive collection of icon libraries for Android and Compose Multiplatform projects in Android Vector Drawables and Compose Image Vector format.

Android vs Compose Multiplatform

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.

Basic Usage

Android

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.

Compose Multiplatform

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 Index

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 πŸ”

Bootstrap

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")
}

Codicons

Android

dependencies {
    implementation("com.composables:icons-codicons-android:2.2.0")
}

Compose Multiplatform

dependencies {
    implementation("com.composables:icons-codicons-cmp:2.2.0")
}

Feather

Android

dependencies {
    implementation("com.composables:icons-feather-android:2.2.0")
}

Compose Multiplatform

dependencies {
    implementation("com.composables:icons-feather-cmp:2.2.0")
}

Font Awesome

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")
}

Heroicons

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")
}

Lucide

Android

dependencies {
    implementation("com.composables:icons-lucide-android:2.2.0")
}

Compose Multiplatform

dependencies {
    implementation("com.composables:icons-lucide-cmp:2.2.0")
}

Material Icons

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")
}

Material Symbols

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")
}

Radix

Android

dependencies {
    implementation("com.composables:icons-radix-android:2.2.0")
}

Compose Multiplatform

dependencies {
    implementation("com.composables:icons-radix-cmp:2.2.0")
}

Tabler

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")
}

Browse over 17,000+ icons for Compose Multiplatform

Visit Composables.com to pick from over 17,000 free icons in Vector Drawable, Image Vector or SVG format.

Contributing

We are currently accepting contributions in the form of bug reports and feature & icons requests, in the form of Github issues.