Compose icons is a pack of libraries that provide well known Icon Packs to use in Jetpack Compose Multiplatform.

Overview

compose-icons

Compose icons is a pack of libraries that provide well known Icon Packs to use in Jetpack Compose Multiplatform. The library usage is inspired by Compose Material Icons.

Compose versions

  • Jetpack Compose (Android): 1.0.0
  • Jetbrains Compose (Desktop): 0.5.0-build235

Adding to your project

Add the project repository:

repositories {
    mavenCentral()
}

For Jetpack Compose (Android):

implementation("br.com.devsrsouza.compose.icons.android:ICON_PACK:1.0.0")

For Jetbrains Compose (Desktop):

implementation("br.com.devsrsouza.compose.icons.jetbrains:ICON_PACK:1.0.0")

Example

Icon(
    imageVector = FontAwesomeIcons.Brands.Github,
)

Icon Packs

Icon pack Icon Version Dependency All Icons Docs
Simple-Icons 4.14.0 simple-icons docs
Feather 4.28.0 feather docs
Tabler Icons 1.39.1 tabler-icons docs
Eva Icons 1.1.3 eva-icons docs
Font Awesome 5.15.2 font-awesome docs
Octicons 12.1.0 octicons docs
Linea 1.0 linea docs
Line Awesome 1.3.0 (a60f113) line-awesome docs
Weather Icons by Erik Flowers 2.0.12 erikflowers-weather-icons docs
css.gg 2.0.0 css-gg docs

How the project works

The project uses Kotlin Scripting (main.kts) to download and generate the icons into Compose source code, to generate the source code it uses the tooling library svg-to-compose.

Currently, the Jetpack Compose(Android) and Jetbrains Compose (Desktop/Multiplatform) are a separated artifact and builds, this means that for the library to support both is need artifacts for both.

In the future, when Compose Desktop and Android use the same artifact, the project will migrate to it and use only one artifact for both.

Contribution

If you know a icon pack that the project could support, please, submit an issue :D

License

The icon packs have their own license that you can find at the All Icons Docs

Project license:

MIT License

Copyright (c) 2021 DevSrSouza

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Comments
  • Icon Request: Weather Icons

    Icon Request: Weather Icons

    It would be awesome if you could add support for erikflowers/weather-icons.

    I plan on moving one of my projects from Flutter over to Compose, and it relies on those weather icons. I actually created a package for flutter called weather_icons that incorporated those icons. So if you need help, or want me to take a stab at forking and adding them, I could try.

    One thing to note, in the README from my repo. I talk about how the icons don't display properly in the default Flutter Icon widget, so I created BoxedIcon which constrains the icons to a uniform box. I'm not sure if that would be a problem for Compose or not.

    new icon pack 
    opened by jordond 4
  • Bintray is shutting down

    Bintray is shutting down

    Bintray is closing: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

    It may be worth applying for coordinates on Maven Central if you own a domain. I can walk you through it if you need guidance.

    opened by tadfisher 4
  • Support Android via JetBrains' Compose artifact

    Support Android via JetBrains' Compose artifact

    This is an amazing idea and execution (the conversion of SVG to source); but the way it's currently packaged is unusable for me: JetBrains' Compose is (I'm sure you know, but for context) more than just Desktop, now encompassing both Android and Web artifacts too. Putting aside Web, which is a different beast, today's JetBrains Compose can be most useful when the common API between Android and Desktop is used (e.g. within some defined materialComposeMain source-set). This is how I'm using it, and it has enabled me to define nearly all of my view delcarations in common code.

    But, I can't use your icons from common code as, there seems to be no artifact: br.com.devsrsouza.compose.icons.jetbrains:octicons-android:1.0.0 ...so to truly use the icons in a multi-platform way I'd need to import the Android and Desktop artfiacts separately and roll my own expect/actual for each icon used; which takes away too much of the convenience.

    opened by chris-hatton 3
  • Icons are not working in the latest cfd build 0.4.0-build211

    Icons are not working in the latest cfd build 0.4.0-build211

      kotlin("jvm") version "1.5.10"
      id("org.jetbrains.compose") version "0.4.0-build211"
    

    Throwing the following exception when initializing the icon.

    Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: 'void androidx.compose.ui.graphics.vector.ImageVector$Builder.<init>(java.lang.String, float, float, float, float, long, androidx.compose.ui.graphics.BlendMode, int, kotlin.jvm.internal.DefaultConstructorMarker)'
            at compose.icons.simpleicons.KotlinKt.getKotlin(Kotlin.kt:19)
    
    opened by sureshg 3
  • Support Darwin targets (iOS, MacOS)

    Support Darwin targets (iOS, MacOS)

    Since Compose Multiplatform is supporting Darwin targets now, so should this library. Actual supported targets can be inferred from https://mvnrepository.com/artifact/org.jetbrains.compose.ui (https://github.com/JetBrains/compose-jb/blob/master/VERSIONING.md isn't listing new targets for now).

    opened by vganin 0
  • Support Lucide Icons (An extension of feather icons)

    Support Lucide Icons (An extension of feather icons)

    Hi, It would be great if we can support lucide icons (https://lucide.dev/) which is a fork of feather icons with much more icons and actively supported project.

    Github: https://github.com/lucide-icons/lucide

    opened by amank22 0
  • FontAwesome icons are too big

    FontAwesome icons are too big

    Using FA icons: image

    Using Jetpack Compose built-in Icons: image

    I am just using IconButton and Icon normally. I think there is something wrong with FA icons vectors, looking at the code from any icons from FA, it have its own viewport width and height:

    public val SolidGroup.Pen: ImageVector
        get() {
            if (_pen != null) {
                return _pen!!
            }
            _pen = Builder(name = "Pen", defaultWidth = 512.0.dp, defaultHeight = 512.0.dp,
                    viewportWidth = 512.0f, viewportHeight = 512.0f).apply {
                path(fill = SolidColor(Color(0xFF000000)), stroke = null, strokeLineWidth = 0.0f,
                        strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f,
                        pathFillType = NonZero) {
                    moveTo(290.74f, 93.24f)
                    lineToRelative(128.02f, 128.02f)
                    lineToRelative(-277.99f, 277.99f)
                    lineToRelative(-114.14f, 12.6f)
                    curveTo(11.35f, 513.54f, -1.56f, 500.62f, 0.14f, 485.34f)
                    lineToRelative(12.7f, -114.22f)
                    lineToRelative(277.9f, -277.88f)
                    close()
                    moveTo(497.94f, 74.18f)
                    lineToRelative(-60.11f, -60.11f)
                    curveToRelative(-18.75f, -18.75f, -49.16f, -18.75f, -67.91f, 0.0f)
                    lineToRelative(-56.55f, 56.55f)
                    lineToRelative(128.02f, 128.02f)
                    lineToRelative(56.55f, -56.55f)
                    curveToRelative(18.75f, -18.76f, 18.75f, -49.16f, 0.0f, -67.91f)
                    close()
                }
            }
            .build()
            return _pen!!
        }
    
    private var _pen: ImageVector? = null
    
    opened by risalfajar 5
Releases(1.0.0)
Owner
Gabriel Souza
Gabriel Souza
Over 1600 customizable icons for Android including 750+ Google Material Design icons, 25 ready-made social badges, and more!

droidicon - Over 1600 icons for Android! Icons From... Google Material Design FontAwesome Iconic Entypo Meteocons Unicode Icons Your own custom icons

Devon Guinane 2.2k Dec 19, 2022
Easy to use material icons for Android

All available icons (744) If, like me, you're tired of copying 5 images (ldpi, mdpi, hdpi, xhdpi, xxhdpi) for each icon you want to use in your app, f

Anton Malinskiy 388 Oct 26, 2022
Android-Iconics - Use any icon font, or vector (.svg) as drawable in your application.

Android-Iconics ... allows to include any icon font with all its vector icons in your project. No limits. Scale with no limit, use any color at any ti

Mike Penz 5k Jan 5, 2023
Forecast / DarkSky's Skycons, Animated Weather icons recreated for Android

Skycons for Android We set out to create a native weather app on Xamarin but we wanted to build something unique to differentiate ourselves amongst th

Torry Harris 200 Nov 14, 2022
This repo is to demonstrate the jetpack compose 's canvas api's usage and creating an icon pack using the basic functions.

Jetpack Compose Canvas API Demo App We all know that Jetpack Compose has now reached the 1.0.0 release milestone. This is a huge change we can say for

vikas kumar 32 Dec 15, 2022
Androidicons is a professional, handcrafted icon set with 250 icons in 14 different colors and 5 sizes, including an icon font and all sources.

Android Developer Icons Android Developer Icons is a custom icon set, created by Opoloo. Included are: 250 hand-crafted, pixel-perfect icons in 5 size

Opoloo 685 Nov 23, 2022
A monotone line-based icon pack for android

Arcticons (Arctic icons) is a line-based icon pack forked from Frost but rebuild with consistent sizing and adjustments specifically for lines in mind

Donno 413 Jan 2, 2023
Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled.

freegemas-gdx Freegemas libGDX is an Android, HTML 5 and Java desktop port of Freegemas, which in turn is an open source version of the well known Bej

David Saltares 144 Jun 21, 2022
Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled.

freegemas-gdx Freegemas libGDX is an Android, HTML 5 and Java desktop port of Freegemas, which in turn is an open source version of the well known Bej

David Saltares 144 Jun 21, 2022
A Ktor-based server that handles game process, user registration and packs provision

Polyhoot! Server backend A Ktor-based server that handles game process, user registration and packs provision Deploying server locally You can deploy

Polyhoot! 2 May 31, 2022
Sometimes, we need to show a label above an ImageView or any other views. Well, LabelView will be able to help you. It's easy to implement as well!

LabelView Sometimes, we need to show a label above an ImageView or any other views. Well, LabelXXView will be able to help you. It's easy to implement

Jingwei 1.9k Dec 6, 2022
Over 1600 customizable icons for Android including 750+ Google Material Design icons, 25 ready-made social badges, and more!

droidicon - Over 1600 icons for Android! Icons From... Google Material Design FontAwesome Iconic Entypo Meteocons Unicode Icons Your own custom icons

Devon Guinane 2.2k Dec 19, 2022
About-icons - Android library to easily give credit if using icons which require attribution

Android About Icons Library About this project Features How to use Planned improvements Screenshots Contribute Apps using this library License About t

Niko Diamadis 4 Nov 6, 2022
Optimize notification icons for ColorOS and adapt to native notification icon specifications

Optimize notification icons for ColorOS and adapt to native notification icon specifications

Fankesyooni 23 Jan 4, 2023
GitHub IntelliJ IDEs theme pack

GitHub-theme-pack Template ToDo list Create a new IntelliJ Platform Plugin Template project. Get familiar with the template documentation. Verify the

Alexey Ivanov 0 Nov 22, 2021
Carol 12 Sep 25, 2022
Examples of the use of animations in jetpack compose and view, as well as measurements of perfomance

AndroidAnimationWorld Примеры использования анимаций в jetpack compose и view, а также замеры perfomance для

Lukian Zhukov 7 Oct 22, 2022
Svg-to-compose-intellij - A simple Android Studio plugin to generate Jetpack Compose ImageVector icons

svg-to-compose-intellij A simple Android Studio plugin to generate Jetpack Compo

Pavel Shurmilov 21 Dec 15, 2022
ModernStorage is a group of libraries that provide an abstraction layer over storage on Android to simplify its interactions

ModernStorage ModernStorage is a group of libraries that provide an abstraction layer over storage on Android to simplify its interactions by apps dev

Google 1.1k Dec 30, 2022
Annotation Processing Library. Generates proxy class on top of interface/abstract class, that allows to intercept calls. Also known as a design pattern: proxy, delegate, interceptor.

1. AutoProxy Annotation Processing Library. Generates proxy class on top of interface/abstract class, that allows to intercept calls. Also known as a

Oleksandr 19 Nov 24, 2022