simpmusic-icons

Generates Material Symbols ImageVector icons for the SimpMusic Compose Multiplatform codebase.

10.9k|566|Updated Apr 15, 2023
One-click install
npx skills add https://github.com/maxrave-dev/SimpMusic --skill simpmusic-icons
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: simpmusic-icons
Source: https://github.com/maxrave-dev/SimpMusic/tree/main/.claude/skills/simpmusic-icons
Command: npx skills add https://github.com/maxrave-dev/SimpMusic --skill simpmusic-icons

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

SimpMusic has no material-icons dependency and no XML icon drawables, so adding or replacing an icon requires generating a Material Symbols ImageVector file by hand with exact package, naming, and axis conventions. This Skill encodes that workflow and the traps that cause compile errors.

Core Features & Use Cases

  • Icon Generation: Downloads the Compose-ready Kotlin file from Google's font service with fixed axes (Rounded, opsz 24, wght 400, FILL 1, ROND 50) and rewrites it into the SimpIcons.<Name> extension-property pattern.
  • Migration Guidance: Explains how to replace painterResource(Res.drawable.X) usages safely, including per-icon imports and rememberVectorPainter for Painter-typed APIs.
  • Use Case: When a new settings screen needs a download icon, generate Download.kt under ui/icon, import it, and pass SimpIcons.Download to RippleIconButton without touching any dependency or drawable resource.

Quick Start

Add a new Material Symbols icon named 'queue_music' to the SimpMusic icon set and use it in a RippleIconButton.

Frequently Asked Questions about simpmusic-icons

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new icon to a Compose Multiplatform project without material-icons?

Download the generated Kotlin file from Google's font service for the Material Symbols Rounded symbol, then rewrite its package, rename the property to a SimpIcons extension, and place it under ui/icon. Import the icon individually before use.

How to convert XML drawable icons to ImageVector in Compose?

Replace painterResource(Res.drawable.X) calls with Icon(SimpIcons.X) using a generated ImageVector file. Do not regex-replace blindly, since Painter-typed parameters and multi-line painterResource calls will break and require manual fixes.

Why does my ImageVector not work with AsyncImage placeholder?

ImageVector is not a Painter, and AsyncImage placeholder and error parameters expect a Painter. Wrap the icon with rememberVectorPainter(SimpIcons.X) before passing it to Painter-typed APIs or DrawScope drawing.

Why is my SimpIcons icon unresolved after importing SimpIcons?

Each icon is an extension property on the SimpIcons object, so importing SimpIcons alone leaves it unresolved. Add a per-icon import such as import com.maxrave.simpmusic.ui.icon.PlayArrow.

When should I keep an XML drawable instead of using an ImageVector?

Keep drawables whose color carries state meaning, such as the blue downloaded icon or red liked icon, plus logos and bitmaps. If a shared symbol needs that color, pass it explicitly via a parameter like iconColor.