Skip to content

cli tool to create jetpack compose ImageVector from vector XML files and SVG files in Android

License

Notifications You must be signed in to change notification settings

LennartEgb/vec2compose

Repository files navigation

vec2compose

Github Actions Status codecov

random logo showing svg and xml logo pointing to jetpack compose logo

A CLI tool to create ImageVector from Android vector XML and SVG.

Setup

CLI

Clone this repository and run ./gradlew assembleCli to generate the native binary to the dist folder.

Usage

There are two options to create the ImageVector. The first option is to create a Kotlin file.

vec2compose -i ic_done.xml -o DoneIcon.kt

The second option is to print the ImageVector to the console.

vec2compose -i ic_done.xml
ImageVector.Builder(
    name = "ic_done",
    defaultWidth = 24.dp,
    defaultHeight = 24.dp,
    viewportWidth = 24f,
    viewportHeight = 24f
).path(
    fill = SolidColor(Color.Black),
    fillAlpha = 1f,
    stroke = null,
    strokeAlpha = 1f,
    strokeLineWidth = 1f,
    strokeLineCap = StrokeCap.Butt,
    strokeLineJoin = StrokeJoin.Bevel,
    strokeLineMiter = 1f,
    pathFillType = PathFillType.NonZero
) {
    moveTo(9.0f, 16.2f)
    lineTo(4.8f, 12.0f)
    lineToRelative(-1.4f, 1.4f)
    lineTo(9.0f, 19.0f)
    lineTo(21.0f, 7.0f)
    lineToRelative(-1.4f, -1.4f)
    lineTo(9.0f, 16.2f)
    close()
}.build()

Desktop

Clone this repository and run ./gradlew desktopRun -DmainClass=MainKt --quiet.

Motivation

This is a project to play around with CLI tools and support the Jetpack Compose development. A custom icon set can be generated as the material icon set without adding XML resources.

About

cli tool to create jetpack compose ImageVector from vector XML files and SVG files in Android

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages