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.