lucide-compose
1.16.0indexedCurated Lucide v1.16.0 icons as ImageVector assets for Compose, fully customizable stroke, color and size, organized into categories and usable type-safely at runtime.
Curated Lucide v1.16.0 icons as ImageVector assets for Compose, fully customizable stroke, color and size, organized into categories and usable type-safely at runtime.
A Kotlin Multiplatform library providing Lucide Icons (v1.16.0) as ImageVectors for Jetpack Compose and Compose Multiplatform.
ImageVector objects.Add the following to your commonMain dependencies in build.gradle.kts:
sourceSets {
commonMain.dependencies {
implementation("io.github.thelacspace:lucide-compose:1.16.0")
}
}
Add the dependency to your app's build.gradle.kts:
dependencies {
implementation("io.github.thelacspace:lucide-compose:1.16.0")
}
(Note: The version follows the format [lucide-version]-[library-patch], e.g., 1.16.0)
Use icons directly from the LucideIcons object. Each icon is available as a @Composable property that automatically resolves its configuration.
import androidx.compose.material3.Icon
import dev.lucide.LucideIcons
import dev.lucide.categories.Animals
@Composable
fun MyScreen() {
Icon(
imageVector = LucideIcons.Animals.Cat,
contentDescription = "Cat Icon"
)
}
You can customize the appearance of all icons in a sub-tree using LocalLucideIconConfig:
import dev.lucide.LocalLucideIconConfig
import dev.lucide.LucideIconConfig
CompositionLocalProvider(
LocalLucideIconConfig provides LucideIconConfig(
strokeWidth = 1.5f,
color = Color.Blue,
size = 32.dp
)
) {
// Icons inside this provider will use the custom configuration
Icon(imageVector = LucideIcons.Animals.Dog, contentDescription = "Dog")
}
If you need a specific icon with unique settings, you can use its Definition and convert it manually:
import dev.lucide.asImageVector
val customIcon = LucideIcons.Animals.BirdDefinition.asImageVector(
size = 48.dp,
strokeWidth = 3f
)
Icon(imageVector = customIcon, contentDescription = "Custom Bird")
Icons are grouped into various categories including:
ImageVector, ensuring smooth integration with Compose's rendering engine.The icons are generated from SVG files and metadata provided by the Lucide project.
git https://github.com/lucide-icons/lucide.git ../lucide
To publish the library to a Maven repository:
local.properties (or set as environment variables):
ossrhUsername=your_username
ossrhPassword=your_password
signingKey=your_gpg_private_key
signingPassword=your_gpg_passphrase
./gradlew :lucide-compose:publish
This library is based on Lucide Icons, which is licensed under the ISC License.
LucideIcons.AccessibilityLucideIcons.AnimalsLucideIcons.ArrowsLucideIcons.BuildingsLucideIcons.CommunicationLucideIcons.DevicesLucideIcons.FinanceLucideIcons.NavigationLucideIcons.WeatherlucideIconsDir to your local.properties pointing to the cloned repository:
lucideIconsDir=../lucide
Alternatively, you can pass it via command line:
./gradlew generateLucide -PlucideIconsDir=../lucide
./gradlew generateLucide
The generation task is also hooked into the build process and will run automatically before Kotlin compilation.Surfaced from shared tags and platforms — no rankings paid for.