feat(android): use Material Outlined LibraryMusic for top-nav Library
android / Build + lint + test (push) Failing after 2m34s
android / Build + lint + test (push) Failing after 2m34s
Lucide has no music-library glyph — Library / LibraryBig / SquareLibrary all read as a generic books-on-shelf icon without a label. Operator picked Material's LibraryMusic (the canonical "books + music note" symbol used by every major music app) as the recognizable alternative. Use the Outlined variant: filled icons would clash with the neighbouring stroked Lucide icons (House, Search, EllipsisVertical), but Outlined's stroke style matches Lucide closely enough that the mix is subtle. Adds the compose-material-icons-extended dependency (version pinned by compose-bom). R8 strips unused icons in release builds so the APK cost is just the ones we actually reference.
This commit is contained in:
+10
-2
@@ -11,12 +11,13 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.LibraryMusic
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.navigation.NavHostController
|
||||
import com.composables.icons.lucide.House
|
||||
import com.composables.icons.lucide.Lucide
|
||||
import com.composables.icons.lucide.SquareLibrary
|
||||
import com.composables.icons.lucide.EllipsisVertical
|
||||
import com.composables.icons.lucide.Search as SearchIcon
|
||||
import com.fabledsword.minstrel.nav.Admin
|
||||
@@ -58,7 +59,14 @@ fun MainAppBarActions(
|
||||
}
|
||||
if (currentRouteName != Library::class.qualifiedName) {
|
||||
IconButton(onClick = { navController.navigate(Library) }) {
|
||||
Icon(Lucide.SquareLibrary, contentDescription = "Library")
|
||||
// Intentional cross-family icon — Lucide has no
|
||||
// equivalent "library + music" glyph and the literal
|
||||
// library icons (Library / LibraryBig / SquareLibrary)
|
||||
// don't read as "music collection" without a label.
|
||||
// Material's Outlined LibraryMusic is the canonical
|
||||
// music-library symbol; the outlined variant matches
|
||||
// Lucide's stroke style closely enough to blend.
|
||||
Icon(Icons.Outlined.LibraryMusic, contentDescription = "Library")
|
||||
}
|
||||
}
|
||||
if (currentRouteName != SearchRoute::class.qualifiedName) {
|
||||
|
||||
Reference in New Issue
Block a user