
Compose-first, lightweight icon library exposing the complete Iconsax set as strongly-typed, compile-time ImageVector icons in multiple styles; generated via Gradle for zero runtime parsing.
A lightweight Compose Multiplatform icon library providing the complete Iconsax icon set as strongly-typed, composable-friendly icons.
✅ Supports Android, iOS, and Desktop (JVM).
Designed to feel native to Compose while staying simple, fast, and dependency-light.
https://github.com/user-attachments/assets/e8fe0bf7-3df9-4a61-bb9f-f5508ef134e7
This repository contains:
iconsaxcompose → the reusable icon libraryThis README documents the library, not the sample application.
This library is distributed via JitPack.
In your root settings.gradle or build.gradle:
repositories {
maven { url = uri("https://jitpack.io") }
}For Compose Multiplatform, add it to the commonMain dependencies block (or via Jitpack if targeting branches directly):
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.github.YohannesTz:IconsaxCompose:1.0.1")
}
}
}For Android-only projects:
dependencies {
implementation 'com.github.YohannesTz:IconsaxCompose:1.0.1'
}Replace 1.0.1 with:
Latest version is shown in the badge above.
Iconsax icons are grouped by style:
Each style is exposed as a dedicated icon group for type safety and IDE discoverability.
Icon(
imageVector = Iconsax.Linear.Home,
contentDescription = "Home"
)Icon(
imageVector = Iconsax.Bold.Notification,
contentDescription = "Notifications",
tint = Color(0xFF3DDC84),
modifier = Modifier.size(24.dp)
)Row(
verticalAlignment = Alignment.CenterVertically
) {
Icon(
imageVector = Iconsax.Outline.SearchNormal,
contentDescription = null
)
Spacer(Modifier.width(8.dp))
Text("Search")
}Iconsax Compose icons are standard ImageVectors and fully respect:
LocalContentColorMaterialTheme.colorSchemeExample:
CompositionLocalProvider(
LocalContentColor provides MaterialTheme.colorScheme.primary
) {
Icon(
imageVector = Iconsax.Linear.Heart,
contentDescription = null
)
}All icons in this library are generated automatically using a custom Gradle task, ensuring consistency and eliminating manual maintenance.
ImageVector using
svg-to-compose (s2c)
Iconsax, IconsaxBold, etc.) are generated automatically./gradlew generateIconsaxThis task:
s2c CLI to convert SVGsAll generated code lives under src/main/java and is committed to the repository.
iconsaxcompose/
├── Iconsax.kt
├── IconsaxBold.kt
├── IconsaxLinear.kt
├── IconsaxOutline.kt
├── IconsaxTwoTone.kt
├── IconsaxBulk.kt
├── IconsaxBroken.kt
├── linear/
├── bold/
├── outline/
├── twotone/
├── bulk/
└── broken/
Each icon is generated as an ImageVector and grouped by style.
Iconsax icons are subject to the Iconsax license.
This project provides a Jetpack Compose wrapper and generated bindings only and does not claim ownership of the underlying icon designs.
Contributions are welcome, especially in the areas of:
Please open an issue or pull request.
A lightweight Compose Multiplatform icon library providing the complete Iconsax icon set as strongly-typed, composable-friendly icons.
✅ Supports Android, iOS, and Desktop (JVM).
Designed to feel native to Compose while staying simple, fast, and dependency-light.
https://github.com/user-attachments/assets/e8fe0bf7-3df9-4a61-bb9f-f5508ef134e7
This repository contains:
iconsaxcompose → the reusable icon libraryThis README documents the library, not the sample application.
This library is distributed via JitPack.
In your root settings.gradle or build.gradle:
repositories {
maven { url = uri("https://jitpack.io") }
}For Compose Multiplatform, add it to the commonMain dependencies block (or via Jitpack if targeting branches directly):
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.github.YohannesTz:IconsaxCompose:1.0.1")
}
}
}For Android-only projects:
dependencies {
implementation 'com.github.YohannesTz:IconsaxCompose:1.0.1'
}Replace 1.0.1 with:
Latest version is shown in the badge above.
Iconsax icons are grouped by style:
Each style is exposed as a dedicated icon group for type safety and IDE discoverability.
Icon(
imageVector = Iconsax.Linear.Home,
contentDescription = "Home"
)Icon(
imageVector = Iconsax.Bold.Notification,
contentDescription = "Notifications",
tint = Color(0xFF3DDC84),
modifier = Modifier.size(24.dp)
)Row(
verticalAlignment = Alignment.CenterVertically
) {
Icon(
imageVector = Iconsax.Outline.SearchNormal,
contentDescription = null
)
Spacer(Modifier.width(8.dp))
Text("Search")
}Iconsax Compose icons are standard ImageVectors and fully respect:
LocalContentColorMaterialTheme.colorSchemeExample:
CompositionLocalProvider(
LocalContentColor provides MaterialTheme.colorScheme.primary
) {
Icon(
imageVector = Iconsax.Linear.Heart,
contentDescription = null
)
}All icons in this library are generated automatically using a custom Gradle task, ensuring consistency and eliminating manual maintenance.
ImageVector using
svg-to-compose (s2c)
Iconsax, IconsaxBold, etc.) are generated automatically./gradlew generateIconsaxThis task:
s2c CLI to convert SVGsAll generated code lives under src/main/java and is committed to the repository.
iconsaxcompose/
├── Iconsax.kt
├── IconsaxBold.kt
├── IconsaxLinear.kt
├── IconsaxOutline.kt
├── IconsaxTwoTone.kt
├── IconsaxBulk.kt
├── IconsaxBroken.kt
├── linear/
├── bold/
├── outline/
├── twotone/
├── bulk/
└── broken/
Each icon is generated as an ImageVector and grouped by style.
Iconsax icons are subject to the Iconsax license.
This project provides a Jetpack Compose wrapper and generated bindings only and does not claim ownership of the underlying icon designs.
Contributions are welcome, especially in the areas of:
Please open an issue or pull request.