Compose Unstyled 2.0 is out! Check the official announcement blog ->

ImageVector-based icons that inherit the surrounding content color by default.

Use icons for compact visual cues inside buttons, toolbars, menus, and status UI.

View on GitHub
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.composables.icons.lucide.Bell
import com.composables.icons.lucide.Heart
import com.composables.icons.lucide.Lucide
import com.composables.ui.components.Icon
import com.composables.ui.components.Text
import com.composables.ui.theme.colors
import com.composables.ui.theme.destructiveColor
import com.composables.ui.theme.mutedColor
import com.composeunstyled.ProvideContentColor
import com.composeunstyled.theme.Theme

@Composable
fun IconExample() {
    Icon(
        imageVector = Lucide.Heart,
        modifier = Modifier.size(24.dp),
    )
}

Installation

implementation("com.composables:ui:0.1.0")

Examples

Custom tint

View on GitHub
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.composables.icons.lucide.Heart
import com.composables.icons.lucide.Lucide
import com.composables.ui.components.Icon
import com.composables.ui.theme.colors
import com.composables.ui.theme.destructiveColor
import com.composeunstyled.theme.Theme

@Composable
fun TintedIconExample() {
    Icon(
        imageVector = Lucide.Heart,
        modifier = Modifier.size(24.dp),
        tint = Theme[colors][destructiveColor],
    )
}

Themed

View on GitHub
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.composables.icons.lucide.Bell
import com.composables.icons.lucide.Lucide
import com.composables.ui.components.Icon
import com.composables.ui.components.Text
import com.composables.ui.theme.colors
import com.composables.ui.theme.mutedColor
import com.composeunstyled.ProvideContentColor
import com.composeunstyled.theme.Theme

@Composable
fun ThemedIconExample() {
    ProvideContentColor(Theme[colors][mutedColor]) {
        Row(
            verticalAlignment = Alignment.CenterVertically,
            horizontalArrangement = Arrangement.spacedBy(8.dp),
        ) {
            Icon(
                imageVector = Lucide.Bell,
                modifier = Modifier.size(24.dp),
            )
            Text("3 Notifications")
        }
    }
}

API Reference

Icon

An ImageVector-based icon that tints from the current content color by default.

@Composable
fun Icon(
    imageVector: ImageVector,
    modifier: Modifier = Modifier,
    contentDescription: String? = null,
    tint: Color = LocalContentColor.current,
)
Parameter Type Description
imageVector ImageVector Vector asset drawn by the icon.
modifier Modifier Modifier applied to the icon.
contentDescription String? Accessible description announced for the icon.
tint Color Tint color applied to the icon.